环境准备¶
备注
本章节为手动部署相关文档,适用于您需要将服务端内置到 ROM 或者自行拉起 FIRERPA 服务的情况,如您已使用 APP 启动了服务端并且无相关需求则无需再查看本章节。
本文介绍在安装、运行 FIRERPA 前应完成的设备、系统与网络等环境准备工作。FIRERPA 支持的设备类型和架构较多,此处列举了各种常见设备以及需提前设置的环境,您可以根据实际情况选择合适的方法。FIRERPA 整体分为客户端和服务端:客户端主要是 Python 相关库及接口,服务端则是运行在目标手机上的服务。您可以选择在电脑上安装 Python 库来控制手机;但如果您需要通过 Python 控制设备,则必须在手机上安装并运行安卓服务端。
基础要求¶
FIRERPA 最理想的运行环境是一台运行内存大于 4 GB,可用存储空间大于 4 GB 的安卓设备或模拟器。如果您没有实体安卓手机,也可以使用最新版夜神、雷电模拟器,或者 AVD 模拟器。发挥全部能力的 FIRERPA 需要您的设备具备 root 权限。如果设备不具备 root 权限,仍然可以通过开发者模式使用 adb shell 权限运行,只是部分特权功能将会受限或不可用。
系统设置¶
通常情况下,您的手机还需进行如下设置。这些设置并非必选,但为了确保一次成功,建议您在时间允许时完成以下几项设置。
检查时区时间¶
打开系统设置,找到日期与时间,检查是否已自动设置 中国标准时间 或您所在地的时区,并确认时间是否正确或在可接受的误差范围内。如果没有,请关闭 使用网络提供的时区 以及 网络时间,然后手动将时区和时间设置为当前所在地的对应值。
关闭无障碍¶
打开系统设置,找到无障碍(位于系统或更多设置中),关闭或卸载所有使用无障碍功能的应用(例如 talkback、autojs 等)。
备注
无障碍功能可能导致相关功能冲突,仅在您无法正常使用 FIRERPA 远程桌面或相关接口时检查此项环境。
网络设置¶
真机、云手机、模拟器等设备的网络情况各不相同,您需要根据实际情况完成以下对应设置,否则安装后可能无法正常访问服务。
对于真机,只需确保电脑与手机处于同一网络即可。对于模拟器,默认创建的模拟器通常与本机网络并不互通。如果您使用的是 Android-x86 基于 VMware 的虚拟机,需在虚拟机设置中将网络模式设置为桥接。对于雷电、夜神等模拟器,需要在其实例的设置中根据提示安装驱动、开启桥接模式并重启系统。对于 Android Studio 的虚拟设备,由于其不存在相关设置,所以如需连接 AVD 内的 FIRERPA,需要执行 adb forward tcp:65000 tcp:65000,然后使用 localhost 进行连接。
备注
对于转发或原本绑定到回环地址的服务端口,我们建议使用 localhost 代替 127.0.0.1,因为我们的部分工具(如中间人抓包)会依据 localhost 来判断是否基于 USB 使用。
其他设置¶
WSA (Windows Subsystem for Android)¶
如果使用的是 WSA (Windows Subsystem for Android),请确保 WSA 版本不低于 2210.40000。随后打开 WSA 设置 -> Subsystem Resources -> 选择 Continuous,关闭 Advanced Networking。再选择 Developer,开启 Developer mode 并展开选项卡,勾选 “Support single machine UI automation”,最后重启 WSA 子系统即可。
AVD (Android Studio Virtual Device)¶
如果使用的是 AVD (Android Studio Virtual Device),请先扩展默认存储空间和内存大小。
点击 Android Studio 中的 Virtual Device Manager,新建一个虚拟机。然后找到对应虚拟机并点击后方的编辑按钮(笔形符号),点击 Show Advanced Settings,找到 Storage -> Internal Storage 并将其设置为至少 2 GB,同时将 RAM 内存大小设置为至少 4 GB。
Redroid (android in docker)¶
注意
下列方法可能不适用于其他 Linux 发行版。
如果使用的是 Redroid (android in docker),以官方建议的 Ubuntu 20.04 为例,首先安装 linux-modules-extra 相关模块。
apt install linux-modules-extra-`uname -r`
编辑文件 /etc/modules,将下列名称复制并插入文件底部,然后重启当前宿主机。
# redroid modules
mac80211_hwsim
binder_linux
ashmem_linux
最后使用以下命令启动,redroid_gpu_mode 及其他相关参数请根据实际情况修改。
注意
注意:以下命令与官方指引有所不同,请务必按照如下命令使用。
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
上述命令中将容器 65000 映射到本机 65001,是因为部分工具需要临时绑定到本机的 65000 端口。为避免冲突,我们使用 65001 端口。
备注
使用以上命令启动的安卓 redroid 容器,因其进行了端口映射,系统内的 65000 被映射到了宿主机的 65001,需在宿主机上通过 http://127.0.0.1:65001 访问。