# Prerequisites

Emulating Android inside a Windows VM (Android VM within a Windows VM) is difficult to achieve, and so we recommend emulating Android directly on your host machine.

For the purposes of these labs, we will be assuming that you are using a Windows host. However, there is no reason this content should not also work on other host OS'es.

At the end of the day, **any Android emulator** that allows root access can likely be made to work as a reversing sandbox. However, we are only providing an image for Android Device Emulator (ADE) and Virtualbox (VBOX).

### Which emulation environment should I choose?

It comes down to preference! Any Android emulator that allows you to act as root will suffice. Virtual Box, Android Device Emulator, Nox, Genymotion will all work.

For me, ADE is a way better emulation environment. It looks better, runs smoother, and uses less system resources. However, if you already have another emulator up and running you are welcome to use that.

### System Prerequisites

These prerequisites are required regardless of emulation environment.

* [ ] Python 3+ and pip installed, available from your PATH. (Verify this by opening a command prompt and typing python --version and pip .. you should see a version of 3 or higher.)<br>

* [ ] Install frida-tools as per [these instructions](https://frida.re/docs/installation/). We recommend using pip as in: `pip install frida-tools`

* [ ] You must have `adb` installed and in your path. If you don't, follow the instructions [here ](https://www.xda-developers.com/install-adb-windows-macos-linux/)under "Microsoft Windows ADB Setup". ( Verify this is installed by opening a command prompt and typing `adb` )<br>

* [ ] We are going to be using jadx-gui for static analysis. Jadx requires Java Runtime Environment 8. However, it has a download available that includes it. Check the releases page [here](https://github.com/skylot/jadx/releases) or download version 1.1.0 from [this link](https://github.com/skylot/jadx/releases/download/v1.1.0/jadx-gui-1.1.0-with-jre-windows.zip).

### Lab Kit

This lab kit includes: the PhotoVault APK version we used in this lab, frida scripts, and sample data.

{% file src="/files/-M6XP090JDdhFn37u093" %}
Download Lab Kit
{% endfile %}

### Video Walkthrough: Environment Setup

{% embed url="<https://www.youtube.com/watch?v=Ew3VfY07Pxk>" %}

This video covers the following topics:

* Installing frida-tools on the host machine.
* Obtaining the appropriate frida-server from the github releases page.
* Pushing frida-server to the device and making it executable.
* Running frida-server in a way that does not halt everything when you close your ADB session.

See also [\[1\] Lab setup and initial app exploration](/lab/1-lab-setup-and-initial-app-exploration.md) for non-video based instructions!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://summit-labs.frida.ninja/setting-up/before-you-start-prerequisites.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
