Различия с Magisk
Несмотря на большое количество сходств между модулями KernelSU и модулями Magisk, неизбежно возникают и различия, обусловленные совершенно разными механизмами их реализации. Если вы хотите, чтобы ваш модуль работал как на Magisk, так и на KernelSU, вы должны понимать эти различия.
Сходства
- Формат файлов модулей: оба используют формат zip для организации модулей, и формат модулей практически одинаков
- Каталог установки модулей: оба расположены в
/data/adb/modules
. - Бессистемность: оба поддерживают модификацию /system бессистемным способом через модули
- post-fs-data.sh: время выполнения и семантика полностью совпадают
- service.sh: время выполнения и семантика полностью совпадают
- system.prop: полностью совпадает
- sepolicy.rule: полностью совпадает
- BusyBox: скрипты запускаются в BusyBox с включенным "автономным режимом" в обоих случаях
Различия
Прежде чем разбираться в различиях, необходимо знать, как отличить, в каком режиме работает ваш модуль - KernelSU или Magisk. Для этого можно использовать переменную окружения KSU
во всех местах, где можно запустить скрипты модуля (customize.sh
, post-fs-data.sh
, service.sh
). В KernelSU эта переменная окружения будет установлена в значение true
.
Вот некоторые отличия:
- Модули KernelSU не могут быть установлены в режиме Recovery.
- Модули KernelSU не имеют встроенной поддержки Zygisk (но вы можете использовать модули Zygisk через ZygiskNext.
- Метод замены или удаления файлов в модулях KernelSU полностью отличается от Magisk. KernelSU не поддерживает метод
.replace
. Вместо этого необходимо создать одноименный файл с помощью командыmknod filename c 0 0
для удаления соответствующего файла. - Каталоги для BusyBox отличаются. Встроенный BusyBox в KernelSU находится в каталоге
/data/adb/ksu/bin/busybox
, а в Magisk - в каталоге/data/adb/magisk/busybox
. Обратите внимание, что это внутреннее поведение KernelSU и в будущем оно может измениться! - KernelSU не поддерживает файлы
.replace
; однако KernelSU поддерживает переменныеREMOVE
иREPLACE
для удаления или замены файлов и папок.