Skip to content

Различия с 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 для удаления или замены файлов и папок.

Выпускается под лицензией GPL3.