| name | magisk-module |
| description | Build and package the Ola Magisk zip (olatrix-engine) and push it to device internal storage. Use when the user mentions Magisk, 模块, 刷入, ola-engine zip, build-module, or nsenter deploy. |
Magisk Module
Module id is olatrix-engine. Binaries live at magisk-module/system/bin/{ola,ola-sense} and on device under Magisk init mount namespace (/data/adb/modules/olatrix-engine/system/bin). Plain Magisk su (u:r:magisk:s0) cannot ls/cp that path; inspect or overwrite with nsenter -t 1 -m.
Build (do not skip)
Linker wrapper uses $HOME/bin/androidsys/libunwind.a. Tool HOME is often /root; always set HOME=/home/wlq.
export HOME=/home/wlq CARGO_HOME=/home/wlq/.cargo RUSTUP_HOME=/home/wlq/.rustup
export PATH=/home/wlq/.cargo/bin:$PATH
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=/home/wlq/bin/android-linker.sh
cd /home/wlq/wlq/Ola
cargo build --target aarch64-linux-android --release --bin ola --bin ola-sense
cp -f target/aarch64-linux-android/release/ola magisk-module/system/bin/ola
cp -f target/aarch64-linux-android/release/ola-sense magisk-module/system/bin/ola-sense
bash scripts/build-module.sh
scripts/build-android.sh only builds libadaptive_tuner.so. scripts/build-module.sh only zips existing ELFs; it does not compile.
Push for manual flash
adb push ola-engine-v1.3.zip /sdcard/Download/ola-engine-v1.3.zip
Do not magisk --install-module unless the user asks. After flash, Magisk remounts; APK ctl must use /data/local/tmp/ola-bin/ola or nsenter -t 1 -m -- .../olatrix-engine/system/bin/ola --ctl, never a stale /system/bin/ola.
Constraints (do not revert)
- Do not expand PPO
ACTION_DIM.
service.sh starts ola --daemon and ola-sense --daemon with --data /data/adb/ola.
pidof ola matches --ctl clients; running check is pgrep -f 'ola --daemon'.
- Bump
module.prop version/versionCode together with scripts/build-module.sh OUT= name.