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
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
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
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
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
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