覺得Magisk太容易被Root偵測針對?想用KernelSU卻發現手機廠商太黑心沒有提供GKI核心?這時可以使用APatch。
APatch是介於KernelSU以及Magisk的折衷方案,同時相容兩邊的模組,並且可以達到不錯的Root隱蔽性。
本文Ivon分享開源Root方案「APatch」的安裝方式。
1. APatch介紹#
APatch屬於融合Magisk與KernelSU二者優點的Root方案,最早於2024年出現,開發者為bmax121。
根據APatch官網文件介紹,APatch有以下特點:
- APatch支援Linux核心版本3.8以上,64位元的Android裝置。
- Linux核心需啟用「
CONFIG_KALLSYMS=y
和CONFIG_KALLSYMS_ALL=y
」或者「CONFIG_KALLSYMS=y
和CONFIG_KALLSYMS_ALL=n
」選項,大部分裝置應該都有。 - APatch不像KernelSU需要GKI核心,也不用重新編譯Linux核心,只要像Magisk那樣修補boot.img就好了,因此理論上支援更多裝置。
- APatch的隱藏Root能力接近KernelSU,但沒辦法100%通過Play Integrity。
- APatch同時支援Magisk與KernelSU的模組,也支援使用Zygisk。
超級密鑰(SuperKey)為APatch所新增的項目,它是應用程式執行高權限的SuperCall所需的金鑰,使用者得用APatch的APP自行設定一組密碼。它的權限比Root權限更高,因此不要用太簡單的密碼。
從以上資料可以觀察到,APatch算是Magisk與KernelSU兩著之間的折衷方案,給那些想要更好隱藏Root,卻無法使用KernelSU用戶的另外一個選擇。
2. 修補boot.img,安裝APatch#
撰文當下測試的手機:
- Sony Xperia 10 V,已解鎖Bootloader
- 系統版本LineageOS 22 (Android 15)
- Linux核心版本5.4.2
解鎖手機的Bootloader。
如果能取得Root權限,先在ADB Shell執行指令,檢查目前的核心是否有啟用APatch要求的選項,否則就得重新編譯核心了:
zcat /proc/config.gz | grep -w CONFIG_KALLSYMS
# 應會列出CONFIG_KALLSYMS=y 和CONFIG_KALLSYMS_ALL=y
準備裝置的boot.img,原廠Android系統通常能從刷機包裡面解出來,例如小米的刷機包裡面通常有boot.img檔案,Sony有Sony Dump Tool。LineageOS的話就到ROM下載頁面取得boot.img。
將boot.img傳到手機。
到APatch的Github下載APK。這個階段還不需要Root權限。
開啟APP後點選右上角 → 選取要修補的boot.img映像檔
設定一組超級密鑰,然後開始修補
修補完的boot.img應該會儲存到手機內部儲存空間
Download
資料夾。把修補後的檔案傳到電腦。
下載Platform Tools,讓手機進入Fastboot模式。
再用fastboot指令刷入到手機的boot分區
fastboot flash boot apatch_patched_*.img
- 重開機後輸入超級密鑰就能用了。
APatch界面操作類似KernelSU,所有的APP預設都無法使用Root權限,必須個別啟用。
KernelSU模組請到「KP」模組界面刷入;Magisk模組則是到「AP」模組界面刷入。
3. 繞過Play Integrity#
關於Play Integrity對策法,實測在解鎖Bootloader的LineageOS 22 (Android 15) 手機安裝APatch,再刷入ZygiskNext與Play Integrity Fix模組,不用輸入指紋,就能達到MEETS_BASIC_INTEGRITY
和MEETS_DEVICE_INTEGRITY
等級。
根據其他用戶回報,APatch搭配Tricky Store或許能達到MEETS_STRONG_INTEGRITY
。