環境準備

備註

本章節為手動部署相關文件,適用於您需要將服務端內置到 ROM 或者自行拉起 FIRERPA 服務的情況,如您已使用 APP 啟動了服務端且無相關需求則無需再查看本章節。

本文介紹在安裝、執行 FIRERPA 前應完成的設備、系統與網路等環境準備工作。FIRERPA 支援的設備類型和架構較多,此處列舉了各種常見設備以及需提前設定的環境,您可以根據實際情況選擇合適的方法。FIRERPA 整體分為用戶端和服務端:用戶端主要是 Python 相關函式庫及介面,服務端則是執行在目標手機上的服務。您可以選擇在電腦上安裝 Python 函式庫來控制手機;但如果您需要通過 Python 控制設備,則必須在手機上安裝並執行 Android 服務端。

基礎要求

FIRERPA 最理想的執行環境是一台執行記憶體大於 4 GB,可用儲存空間大於 4 GB 的 Android 設備或模擬器。如果您沒有實體 Android 手機,也可以使用最新版夜神、雷電模擬器,或者 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 埠。

備註

使用以上命令啟動的 Android redroid 容器,因其進行了埠映射,系統內的 65000 被映射到了宿主機的 65001,需在宿主機上通過 http://127.0.0.1:65001 存取。