APatch常見問題解答

ikay發表於2024-03-08

常見問題解答

什麼是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支援。

相關文章