插件安装程序
AxManager 插件安装程序是打包在 ZIP 文件中的 root 模块,可以在 AxManager 中刷入。最简单的 AxManager 插件安装程序只是打包为 ZIP 文件的 root 模块。
module.zip
│
├── customize.sh <--- (可选,更多详情见后文)
│
├── ...
├── ... /* 模块的其余文件 */
│WARNING
KernelSU 模块不兼容通过自定义 Recovery 安装。
AxManager 插件严格遵循所使用的底层 root 模块的行为。
自定义
如果您需要自定义模块安装过程,可以选择在安装程序中创建一个名为 customize.sh 的脚本。此脚本将在所有文件被提取并应用默认权限和安全上下文后,由模块安装程序脚本source(而不是执行)。如果您的模块需要根据设备 ABI 进行额外设置,或者您需要为某些模块文件设置特殊权限/安全上下文,这非常有用。
如果您想完全控制和自定义安装过程,请在 customize.sh 中声明 SKIPUNZIP=1 以跳过所有默认安装步骤。这样,您的 customize.sh 将负责自行安装所有内容。
customize.sh 脚本在启用独立模式的 AxManager BusyBox ash shell 中运行。以下变量和函数可用:
变量
AXERON(bool):一个标记脚本在 AxManager 环境中运行的变量,此变量的值将始终为 true。您可以使用它来区分 AxManager、KernelSU 和 Magisk。AXERONVER(int):当前运行的 AxManager 服务器的版本整数(例如 30000)。BOOTMODE(bool):在 AxManager 中始终为 true。MODPATH(path):应该安装模块文件的路径。TMPDIR(path):您可以临时存储文件的地方。ZIPFILE(path):模块的安装 ZIP。ARCH(string):设备的 CPU 架构。值为 arm、arm64、x86 或 x64。IS64BIT(bool):如果 $ARCH 是 arm64 或 x64,则为 true。API(int):设备的 API 级别(Android 版本)(例如,Android 6.0 为 23)。
函数
ui_print <msg>
将 <msg> 打印到控制台
避免使用 'echo',因为它不会在自定义恢复的控制台中显示
abort <msg>
将错误消息 <msg> 打印到控制台并终止安装
避免使用 'exit',因为它会跳过终止清理步骤
set_perm <target> <owner> <group> <permission> [context]
此函数是以下命令的简写:
chown owner:group target (尽力而为,失败会被忽略)
chmod permission target (始终执行;失败时 set_perm 返回失败)
chcon context target (仅在设置了 [context] 时执行)
如果未设置 [context],SELinux 上下文保持不变
set_perm_recursive <directory> <owner> <group> <dirpermission> <filepermission> [context]
对于 <directory> 中的所有文件和符号链接,它将调用:
set_perm file owner group filepermission context
对于 <directory> 中的所有目录(包括其自身),它将调用:
set_perm dir owner group dirpermission context