27 lines
3.4 KiB
Markdown
27 lines
3.4 KiB
Markdown
# Различия с Magisk {#title}
|
||
|
||
Несмотря на большое количество сходств между модулями KernelSU и модулями Magisk, неизбежно возникают и различия, обусловленные совершенно разными механизмами их реализации. Если вы хотите, чтобы ваш модуль работал как на Magisk, так и на KernelSU, вы должны понимать эти различия.
|
||
|
||
## Сходства {#similarities}
|
||
|
||
- Формат файлов модулей: оба используют формат zip для организации модулей, и формат модулей практически одинаков
|
||
- Каталог установки модулей: оба расположены в `/data/adb/modules`.
|
||
- Бессистемность: оба поддерживают модификацию /system бессистемным способом через модули
|
||
- post-fs-data.sh: время выполнения и семантика полностью совпадают
|
||
- service.sh: время выполнения и семантика полностью совпадают
|
||
- system.prop: полностью совпадает
|
||
- sepolicy.rule: полностью совпадает
|
||
- BusyBox: скрипты запускаются в BusyBox с включенным "автономным режимом" в обоих случаях
|
||
|
||
## Различия {#differences}
|
||
|
||
Прежде чем разбираться в различиях, необходимо знать, как отличить, в каком режиме работает ваш модуль - KernelSU или Magisk. Для этого можно использовать переменную окружения `KSU` во всех местах, где можно запустить скрипты модуля (`customize.sh`, `post-fs-data.sh`, `service.sh`). В KernelSU эта переменная окружения будет установлена в значение `true`.
|
||
|
||
Вот некоторые отличия:
|
||
|
||
- Модули KernelSU не могут быть установлены в режиме Recovery.
|
||
- Модули KernelSU не имеют встроенной поддержки Zygisk (но вы можете использовать модули Zygisk через [ZygiskNext](https://github.com/Dr-TSNG/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` для удаления или замены файлов и папок.
|