Prerequisites
- Burp suite
- openssl (Windows users, see this tutorial)
- ADB from Android SDK platform tools
- gmsaas (for Genymotion SaaS)
Step 1 – Setting up Burp Suite
- In Burp Suite, go to the Proxy tab.
- Click on Proxy Settings
Here, we will choose to listen to port 8080 from all interfaces:

- Click import/export CA certificate > Export > Certificate in DER format
- Choose a path and name it anything with a .der extension
- Click Next
Step 2 – Upload and install the Burp Suite Certificate
Method 1: As a user certificate
To intercept basic traffic, such as simple HTTP, you will just need to add the certificate in the user certificate store:
- Start your device.
- Drag’n drop the Burp_cert.der file you generated to the device display.
- Go to Android Settings and search install a certificate. In the results, click Install certificates from SD Card and select CA certificate. Click install anyway to bypass the warning.
- Navigate to
/sdcard/Downloadand click on Burp_cert.der. - If you are using Android 9 or below, you may be requested to set a secure lock screen. Comply and set a lock.
- To verify whether the certificate is properly installed, go to Android settings, search and click Trusted credentials. You should see the certificate in the USER tab:

Method 2: As a system CA certificate
If you need to intercept more traffic, especially SSL (HTTPS), you will need to install the certificate as a certified CA system certificate, in the root store.
A. Connect the device to ADB
If you are using Genymotion Desktop, you can skip this step as ADB will automatically be connected to the first running local virtual device. For Genymotion SaaS and Genymotion PaaS, please refer to the following documentation:
- How to connect a device to ADB with Genymotion SaaS?
- How to connect a device to ADB with Genymotion PaaS?
B. Install the certificate
The method will differ depending on the Android image of your virtual device:
1. Root the device
Android 14+ images are not rooted by default, so make sure that the device is rooted before going any further. Please refer to Genymotion on-line documentation for instructions.
2. Install Magisk
Follow the instructions from our FAQ to install Magisk: How to install Magisk on Genymotion?
3. Install the certificate as user certificate
Follow the instructions from the previous chapter: “Method 1: As a user certificate”
4. Install the Cert-Fixer plugin for Magisk
- Download
Cert-Fixer.zipfrom Cert-Fixer github repository. - Upload the file to the device. You can either use
adb push Cert-Fixer.zip /sdcard/Downloador simply drag’n drop the file to the device display. - Open Magisk and go to the Plugins section.
- Click “Install from storage” and select
Cert-Fixer.zipfrom the Download folder (/sdcard/Download) - Wait for the plugin to install. When done, click “Reboot” to reboot the device.
After a reboot, the Burp Suite CA certificate (“PortSwigger CA”) should now be installed as a system certificate:
1. Root the device
Android 12 & 13 images are not rooted by default, so make sure that the device is rooted before going any further. Please refer to Genymotion on-line documentation for detailed instructions.
2. Convert the certificate
We need to convert the Burp certificate into PEM format. Use openssl to convert DER to PEM, then output the subject_hash_old:
openssl x509 -inform DER -in Burp_cert.der -out Burp_cert.pem # Convert DER certificate to PEM
openssl x509 -inform PEM -subject_hash_old -in Burp_cert.pem | head -1 # Display subject_hash_oldThen, rename the file with the output hash from the last command. For example, if the hash is 9a5ba575, then rename the file as 9a5ba575.0:
mv Burp_cert.pem 9a5ba575.03. Install the certificate
First, we need to make the /system partition writeable:
adb root # switch to root
adb shell 'mount -o rw,remount /' # remount the system with write permission
adb push <cert>.0 /system/etc/security/cacerts/ # upload the certificate
adb shell chmod 644 /system/etc/security/cacerts/<cert>.0 # Change the certificate permissionsFor example, with the 9a5ba575.0 certificate:
adb rootnadb shell 'mount -o rw,remount /'
adb push 9a5ba575.0 /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0Reboot the device.
After the device has rebooted, browsing to Settings -> Security -> Trusted Credentials should show the new “Portswigger CA” as a system trusted CA:
1. Root the device
Android 10 & 11 images are not rooted by default, so make sure that the device is rooted before going any further. Please refer to Genymotion on-line documentation for detailed instructions.
2. Convert the certificate
We need to convert the Burp certificate into PEM format. Use openssl to convert DER to PEM, then output the subject_hash_old:
openssl x509 -inform DER -in Burp_cert.der -out Burp_cert.pem # Convert DER certificate to PEM
openssl x509 -inform PEM -subject_hash_old -in Burp_cert.pem | head -1 # Display subject_hash_oldThen, rename the file with the output hash from the last command. For example, if the hash is 9a5ba575, then rename the file as 9a5ba575.0:
mv Burp_cert.pem 9a5ba575.02. Install the certificate
First, we need to make the /system partition writeable:
adb root # switch to root user
adb remount # remount the system with write permission
adb push <cert>.0 /system/etc/security/cacerts/ # upload the certificate
adb shell chmod 644 /system/etc/security/cacerts/<cert>.0 # Change the certificate permissionsFor example, with the 9a5ba575.0 certificate:
adb root
adb remount
adb push 9a5ba575.0 /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0Reboot the device.
After the device has rebooted, browsing to Settings -> Security -> Trusted Credentials should show the new “Portswigger CA” as a system trusted CA:
Step 3 – Set Android global proxy to Burp Suite proxy
Though it is possible to use Android settings, we recommend using ADB command line tool which is more reliable and easier to handle. To set the global proxy, use the following adb command:
adb shell settings put global http_proxy <burp_proxy_ip>:<burp_listening_port><burp_proxy_ip> is the IP of the host machine where Burp Suite is running, <burp_listening_port> is Burp Suite Listening port.
For example, if Burp is running on a host machine with IP 92.68.1.84 and is listening to port 8080, then the command should look like:
adb shell settings put global http_proxy 92.68.1.84:8080From then, Internet traffic should be redirected to Burp Suite.
Disable global proxy
Use the following ADB command to unset the proxy:
adb shell settings put global http_proxy :0About Genymotion Desktop (local setup only)
If Genymotion Desktop and Burp Suite run on the same host computer, you can use the following configuration for the proxy in the virtual device.
With VirtualBox (Windows)
You can use the IP address 10.0.3.2 from the virtual device to reach Burp Suite; IP 10.0.3.2 is a VirtualBox alias to your host loopback interface (i.e., 127.0.0.1 on your host machine).
So, if Burp Suite listens to 127.0.0.1:8080, it can be accessed from the virtual device using the IP 10.0.3.2:8080. All you need is to set Android global proxy to this address and port:
adb shell settings put global http_proxy 10.0.3.2:8080With QEMU (Linux/Mac)
Unlike VirtualBox, there is no loopback interface when using QEMU. However, it is possible to use adb reverse to bind a virtual device local port to a host local port.
First set Android global proxy to localhost:3333 (or any other available port):
adb shell settings put global http_proxy localhost:3333If Burp Suite listens to *:8080, we then need to use:
adb reverse tcp:3333 tcp:8080In this example, this will bind the virtual device local TCP port 3333 to your host machine local TCP port 8080.




