常見問題解答
什麼是APatch?
APatch是一種類似於Magisk或KernelSU的root解決方案,但APatch提供更多功能。
APatch分別結合了Magisk方便易用的透過boot.img
安裝的方法,和KernelSU強大的核心修補能力。
APatch與Magisk的區別?
- Magisk對啟動映像中的ramdisk進行補丁,以修改init系統。而APatch則直接修補Linux核心。
APatch與KernelSU的區別?
- KernelSU需要您裝置的核心的原始碼,而OEM並不總是提供該原始碼。而APatch僅需要您的裝置原本的
boot.img
。
APatch與Magisk、KernelSU的區別?
- APatch可選擇不修改SELinux,這意味著Android應用程式執行緒可以被root,無需libsu和IPC。
- APatch提供Kernel Patch Module(KP模組)。
什麼是Kernel Patch Module(KP模組)?
一些程式碼在核心空間執行,類似於Loadable Kernel Modules(LKM)。
此外,KPM提供在核心空間進行內聯hook、系統呼叫表hook的能力。
更多相關資訊,請參閱如何編寫KPM
APatch與KernelPatch的關係
APatch依賴於KernelPatch,繼承了其所有功能並進行了擴充套件。
您可以僅安裝KernelPatch,但如此將不允許您使用Magisk模組。
要使用超級使用者管理,您需要安裝AndroidPatch,然後解除安裝KernelPatch。
瞭解更多關於KernelPatch的資訊
什麼是SuperKey(超級金鑰)?
KernelPatch 新增了一個新的系統呼叫(syscall),為應用程式和使用者空間中的程式提供所有功能,此係統呼叫稱為SuperCall。
當應用程式/程式嘗試呼叫SuperCall時,它需要提供訪問憑據,稱為SuperKey。
只有當SuperKey正確時,才能成功呼叫 SuperCall。否則,呼叫方將不受影響。
關於SELinux如何處理?
- KernelPatch不修改SELinux上下文,而是透過hook繞過SELinux。 這允許您在應用程式上下文中root Android執行緒,無需使用libsu啟動新程序,然後執行IPC。這非常方便。
- 此外,APatch直接利用magiskpolicy提供額外的SELinux支援。