AxManager 中文文档 下载 App

脚本中的环境变量与 PATH 配置

自动注入的环境变量

当 AxManager 执行 Shell 命令或运行插件脚本时,会自动注入以下环境变量:

变量值说明
AXERONtrue标识当前在 AxManager 环境中运行
AXERONVER整数AxManager 服务器版本,如 10400
BOOTMODEtrueAxManager 中始终为 true
MODDIR路径当前插件的目录(仅插件脚本)
MODPATH路径插件安装目标路径(仅 customize.sh)
TMPDIR路径临时文件目录
ZIPFILE路径安装 ZIP 文件(仅 customize.sh)
ARCH字符串CPU 架构:arm / arm64 / x86 / x64
IS64BITbool是否 64 位架构
API整数Android API 级别(Android 14 = 34)

判断运行环境

AxManager、KernelSU、Magisk 三者的环境变量有重叠但也有差异。在脚本中可以用 $AXERON 判断当前是不是在 AxManager 中运行:

# 判断是否在 AxManager 中
if [ "$AXERON" = "true" ]; then
    echo "运行在 AxManager 中"
fi

同理,KernelSU 提供 $KSU 变量,Magisk 提供 $MAGISK 变量。一个写得好的模块脚本应该同时兼容这三种环境。


PATH 构成

AxManager 会在执行 shell 命令前修改 PATH,确保:

  1. BusyBox 的 bin 目录在 PATH 最前面
  2. 插件的 system/bin 目录被加入 PATH
  3. 系统原有 PATH 被保留

这意味着插件如果自带了某个二进制文件放在 system/bin/ 下,脚本中可以直接调用它,不需要写完整路径。


版本号格式

AXERONVER 是一个整数版本号,格式为:主版本号 × 10000 + 次版本号 × 100 + 修订号。

例如版本 v1.4.6 对应的 AXERONVER = 10406。插件的 module.prop 中 axeronPlugin 字段用的就是这个整数。


实用技巧

获取模块目录(除 customize.sh 外的所有插件脚本):

MODDIR=${0%/*}

根据架构选择二进制:

case "$ARCH" in
    arm64)  BIN="$MODDIR/bin/arm64/binary" ;;
    arm)    BIN="$MODDIR/bin/arm/binary" ;;
    x64)    BIN="$MODDIR/bin/x64/binary" ;;
    x86)    BIN="$MODDIR/bin/x86/binary" ;;
esac

根据 Android 版本判断:

if [ "$API" -ge 30 ]; then
    # Android 11+ 的逻辑
else
    # 旧版本的逻辑
fi