有時候APP會把Waydroid當成root過的破解裝置,不給執行,例如Apple Music。
可是問題是根本就沒root啊?誰說的,Waydroid基於LineageOS開發,本身就是有root權限的,用waydroid shell指令進去輸入su不就看到了。
Waydroid連最基本的Play Integrity API等級都無法通過,因此部份APP會拒絕執行。
另外,由於Waydroid是LXC容器,所以會抓Bootloader解鎖的APP就無法使用。
1. 測試環境 #
- Ubuntu 24.04
- Waydroid版本:LineageOS 20 (Android 13)
2.防root偵測方法 #
如果上述步驟都做了還是被偵測到root,那可能有更底層的原因,例如Waydroid的映像檔使用了userdebug標籤建置,SELinux不完全,甚或被當成模擬器等等。
相關問題請到Waydroid的Github issue詢問。
3. 嘗試僞裝機型 #
使用Quackdoc/waydroid-scripts修改build.prop,將Waydroid偽裝成Pixel裝置:
git clone https://github.com/Quackdoc/waydroid-scripts.git
cd waydroid-scripts
chmod +x spoof-device.sh
sudo ./spoof-device.sh
sudo systemctl restart waydroid-container這個能夠在Android 13以下的系統通過Play Integrity。但不見得能通過大部分Root偵測。
4. 安裝Root權限管理器 #
安裝Root權限管理器或可以針對Root偵測做更多應對,例如可以安裝TEESimulator模組,更可以裝Xposed攔截,部分遊戲就可以過驗證。
Magisk #
-
因應Google日益嚴峻的Root偵測,這裡Magisk裝的是專為反Root偵測設計的分支版:Kitsune Mask (Magisk Delta)
-
因為Waydroid沒有TWRP,所以得借助外部工具刷入。修改Waydroid的boot.img。例如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。
KernelSU #
-
由於KernelSU需要在kernel space運作,不能單靠user space安裝,所以必須在Linux Host安裝額外的kernel modules修改開機過程。
-
Ubuntu發行版安裝這個DKMS模組:https://github.com/shadichy/kernelsu-dkms-debian/。警告:安裝這個會自動將開機引導變成rEFInd。
-
然後在Waydroid安裝KernelSU Manager。
5. 安裝Xposed #
Xposed能夠讓HideMyApplist運作
安裝Root權限管理器後再參照Xposed安裝,需要Zygisk。