APatch - это root решение, похожее на Magisk или KernelSU, которое объединяет лучшее из обоих.
Оно сочетает удобный и простой метод установки Magisk через boot.img
с мощными возможностями исправления ядра KernelSU.
- Magisk изменяет систему инициализации с помощью патча на RAM-диске вашего загрузочного образа, в то время как APatch вносит изменения непосредственно в ядро.
- Для KernelSU требуется исходный код ядра вашего устройства, который не всегда предоставляется OEM-производителем. APatch работает напрямую с вашим исходным
boot.img
.
- APatch позволяет при необходимости не изменять SELinux. Он также позволяет вам рутировать поток приложения, не создавая новый, поэтому libsu и IPC не требуются.
- Kernel Patch Module предоставляется.
Некоторый код выполняется в пространстве ядра, аналогично загружаемым модулям ядра (Loadable Kernel Modules, LKM).
Кроме того, KPM предоставляет возможность выполнять inline-hook, syscall-table-hook в пространстве ядра.
Для получения дополнительной информации смотрите Как написать KPM
APatch основан на KernelPatch, унаследовал все его возможности и был расширен.
Вы можете установить только KernelPatch, но это не позволит вам использовать модули Magisk, а чтобы использовать управление суперпользователем, вам необходимо установить AndroidPatch, а затем удалить его.
KernelPatch добавляет новый системный вызов (syscall) для предоставления всех возможностей приложениям и программам в пользовательском пространстве. Этот системный вызов называется SuperCall. Когда приложение/программа пытается вызвать SuperCall, ему необходимо предоставить учетные данные для доступа, называемые SuperKey. SuperCall может быть успешно вызван только в том случае, если SuperKey правильный, а в противном случае вызывающий объект останется незатронутым.
- KernelPatch не изменяет контекст SELinux и обходит SELinux с помощью перехвата. Это позволяет вам рутировать поток Android в контексте приложения без необходимости использовать libsu для запуска нового процесса и последующего выполнения IPC. Это очень удобно.
- Кроме того, APatch напрямую использует magiskpolicy для обеспечения дополнительной поддержки SELinux.
Однако, именно это может быть распознано как Magisk. Любой желающий может попробовать обойти это, проблема уже достаточно ясна.