---
# System prepended metadata

title: Day - 1

---

# 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












