# Tools Installation To start reviewing the android application, as a pre-requisite we need to install a few of toos for smoother testing. We will be using the following tools: * Genymotion emulator * adb * frida * Bytecode Viewer * Jadx-GUI * Ghidra * apktool * Burpsuite * Docker Since most of the android application are made up of either java or kotlin it is best to set the java environment beforehand if not already preinstalled. ## java JDK and JRE installation > sudo apt install default-jre && apt install default-jdk ## Install Genymotion > wget https://dl.genymotion.com/releases/genymotion-3.9.0/genymotion-3.9.0-linux_x64.run > chmod +x genymotion-3.9.0-linux_x64.run > ./genymotion-3.9.0-linux_x64.run -d PATH (the -d flag is optional) ## Install adb > sudo apt install adb ## Install frida > pip install frida-tools confirm the installed frida version for it is required to match the frida server that will be pushed into our emulator > frida ---version Finalize by checking the frida status with the bellow command: > frida-ps -U Download Frida server from github >wget https://github.com/frida/frida/releases/download/17.2.17/frida-server-17.2.17-android-x86.xz > xz -d frida-server-17.2.17-android-x86.xz ## Install Bytecode Viewer Here we can either use snap or directly install it from github > sudo snap install bytecode-viewer Or > wget https://github.com/Konloch/bytecode-viewer/releases/download/v2.13.1/Bytecode-Viewer-2.13.1.jar and run it as below: > java -jar Bytecode-Viewer-2.13.1.jar ## Download Jdx-Gui > wget https://github.com/skylot/jadx/releases/download/v1.5.2/jadx-1.5.2.zip ## Download Ghidra > wget https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.4.2_build/ghidra_11.4.2_PUBLIC_20250826.zip ## Download apktool > wget https://github.com/iBotPeaches/Apktool/releases/download/v2.12.0/apktool_2.12.0.jar ## Install Burpsuite > wget https://portswigger.net/burp/releases/download?product=pro&version=2025.7.4&type=Linux > > bash burpsuite_community_linux_v2025_7_4.sh ## Install Docker > sudo apt update > > sudo apt install apt-transport-https ca-certificates curl software-properties-common > > curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg > > echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null > sudo apt update > > apt-cache policy docker-ce > > sudo apt install docker-ce > > sudo systemctl status docker > > sudo usermod -aG docker ${USER} > > su - ${USER} > > sudo apt install docker-compose ## Configure burpsuite with emulator 1. Export Burp CA in der format by clicking the proxy tab and going to the proxy settings ![image](https://hackmd.io/_uploads/SkMsy1w5xe.png) 2. The next step is to covert the Burp certificate into PEM format using openssl which is installed by default in most linux distributions. > openssl x509 -inform DER -in Burp_cert.der -out Burp_cert.pem > > openssl x509 -inform PEM -subject_hash_old -in Burp_cert.pem |head -1 > > mv Burp_cert.pem 9a5ba575.0 3. Open GenyMotion Emulator and Create and choose the Android of your choice, for our case we will be using Google Pixel 3a running Android Version 9. ![image](https://hackmd.io/_uploads/Hyc1f1Dcge.png) 4. Start the Android Device, and finish on installing the Burp CA ![image](https://hackmd.io/_uploads/B1T6akw9lx.png) Confirm the device is connected to the host machine with the below command > adb devices The output should resemble the following: ![image](https://hackmd.io/_uploads/HygBCyvqxl.png) 5. Make the Android device system writable and upload certificate > adb remount > > adb push 9a5ba575.0 /system/etc/security/cacerts/ > adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0 6. After installing Burp CA now is time to set up our proxy. > adb shell settings put global http_proxy localhost:3333 > > adb reverse tcp:3333 tcp:8080 To disable proxy run: > adb shell settings put global http_proxy :0