Installation Preparation

This installation preparation document describes the things you should prepare before installation. FIRERPA supports a wide range of device types and architectures. Here, we list the preparatory operations required for various common devices. You can decide which method to use based on your actual situation. FIRERPA is divided into a client and a server. The client mainly consists of Python-related libraries and interfaces, while the server is a service that runs on the target mobile phone. You can choose to install the Python library on your computer to control the phone. Similarly, if you need to control the device via Python, you must install and run the Android server on the phone; this is mandatory.

Basic Requirements

The ideal running environment for FIRERPA is a freshly rooted device (e.g., a new emulator, a ROM with built-in root permissions, or a device just rooted with Magisk). Please ensure you have a rooted Android device or emulator with more than 2GB of RAM and more than 1GB of available storage space. We recommend using the latest versions of NoxPlayer, LDPlayer, or AVD emulators. Before starting, be sure to check the following items:

  • Disable Magisk Hide
  • Stop frida-server
  • After confirming, restart the device

Important

If you do not perform the above operations as required, existing compatibility issues may prevent you from using FIRERPA interfaces or the remote desktop properly.

System Settings

Usually, your phone also needs the following settings. These are not mandatory, but to ensure a successful first attempt, it is recommended that you complete the following settings if you have time.

Check Time Zone and Time

Open System Settings, find Date & Time, and check if China Standard Time or your local time zone is set automatically. Check if the time is correct or within an acceptable margin of error. If not, please disable Use network-provided time zone and Use network-provided time, and manually set the time zone and time to your current local ones.

Disable Accessibility Services

Open System Settings, find Accessibility (in System or More settings), and disable or uninstall all applications that use accessibility services (e.g., TalkBack, Auto.js, etc.).

Note

Accessibility services may cause functional conflicts. Check this only if you are unable to use the FIRERPA remote desktop or related interfaces properly.

Network Settings

The network conditions for physical devices, cloud phones, and emulators vary. You need to configure the settings according to your specific situation; otherwise, you will not be able to access the service properly after installation.

For physical devices, just ensure that the computer and the phone are on the same network. For emulators, the default created emulator is usually not on the same network as your host machine. If you are using Android-x86 (an Android virtual machine based on VMware), try setting the network mode to Bridged Mode in the virtual machine settings. For emulators like LDPlayer and NoxPlayer, you need to install the driver and enable Bridged Mode in their settings as prompted, then restart the emulator. For Android Studio's Virtual Device, there are no related settings. If you need to connect to an AVD, first execute adb forward tcp:65000 tcp:65000 and connect using localhost.

Note

For service ports that are forwarded or originally bound to the loopback address, we recommend using `localhost` instead of `127.0.0.1`. This is because some of our related tools, such as man-in-the-middle packet sniffers, use `localhost` to determine if the connection is USB-based.

Other Settings

WSA (Windows Subsystem for Android)

If you are using WSA (Windows Subsystem for Android), ensure that the WSA version is not lower than 2210.40000 and that it is rooted. Then, open WSA Settings -> Subsystem Resources -> select Continuous, and turn off Advanced Networking. Select Developer, enable Developer mode and expand the tab, turn on "Support single machine UI automation", and then restart the WSA subsystem.

AVD (Android Studio Virtual Device)

If you are using AVD (Android Studio Virtual Device), first increase the default storage space and memory size.

In Android Studio, click on the Virtual Device Manager, create a new virtual device, then find the corresponding device and click the edit button (a pencil icon) next to it. Click Show Advanced Settings, find Storage -> Internal Storage and set it to at least 2GB, and set the RAM size to at least 4GB.

Redroid (android in docker)

Attention

The following method may not be applicable to other Linux distributions.

If you are using Redroid (android in docker), taking the officially recommended Ubuntu 20.04 as an example, first install the relevant linux-modules-extra modules.

apt install linux-modules-extra-`uname -r`

Edit the /etc/modules file, copy the following names and insert them at the bottom of the file, then restart the host machine.

# redroid modules
mac80211_hwsim

binder_linux
ashmem_linux

Finally, use the following command to start. Please modify redroid_gpu_mode and other related parameters according to your actual situation.

Attention

Note that the following command is different from the one provided in the official documentation. Please be sure to use the command as shown below.
docker run -itd --rm --privileged --pull always -v /lib/modules:/lib/modules:ro -v ~/redroid:/data -p 127.0.0.1:5555:5555 -p 127.0.0.1:65001:65000 redroid/redroid:12.0.0-latest androidboot.redroid_gpu_mode=guest

In the command above, the container's port 65000 is mapped to the host's port 65001 because some tools need to temporarily bind to port 65000 on the host. To avoid conflicts, we use port 65001.

Note

The Android container started with the above command needs to be accessed on the host machine via `http://127.0.0.1:65001`.