有時候APP會把Waydroid當成root過的破解裝置,不給執行,例如Apple Music。
可是問題是根本就沒root啊?誰說的,Waydroid本身就是有root權限的,用waydroid shell
指令進去不就看到了。只不過沒有Root權限管理器而已。
另外,由於Waydroid是LXC容器,所以會抓解bootloader的APP就無法使用。
1. 測試環境#
- Arch Linux
- Waydroid版本LineageOS 18 (Android 11)
2. 如果只是要擋Root偵測#
使用 Quackdoc/waydroid-scripts修改build.prop,將Waydroid偽裝成Pixel裝置:
wget https://raw.githubusercontent.com/Quackdoc/waydroid-scripts/refs/heads/main/spoof-device.sh
chmod +x spoof-device.sh
sudo ./spoof-device.sh
sudo systemctl stop waydroid-container
這樣應該大部分Root偵測都會過。
3. 安裝Magisk#
安裝Magisk可以針對Root偵測做更多應對。只要有Magisk,就可以安裝Play Integrity Fix模組,更可以裝LSPosed,部分遊戲就可以過驗證。
因應Google日益嚴峻的Root偵測,這裡Magisk裝的是專為反Root偵測設計的分支版:Kitsune Mask (Magisk Delta)
- 因為Waydroid沒有TWRP,所以得借助外部工具刷入,例如 casualsnek的Python指令稿
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py
- 依照畫面指示,安裝Magisk,然後重新啟動Waydroid。
3 . 安裝LSPosed#
LSPosed能夠讓Shamiko + Zygisk LSPosed + HideMyApplist運作
安裝Magisk後再參照 LSPosed官網安裝,需要Zygisk。
4. 防root偵測方法#
相關文章: Android手機Magisk防Root偵測
如果上述步驟都做了還是被偵測到root,那可能有更底層的原因,例如Waydroid的映像檔使用了userdebug標籤建置,SELinux不完全,甚或被當成模擬器等等。
相關問題請到 Github issue詢問。