| name | daemon-status |
| description | Diagnose or change how the Ola APK detects the Magisk daemon. Use when the user mentions 引擎核心, daemon not running, ola.sock, nc -U, DaemonClient, or DaemonStatusProvider. |
Daemon Status Detection
The dashboard "引擎核心" row is DaemonStatusProvider.running. That used to be ai_status != null only.
Constraints (do not revert)
- This device toybox
nc cannot talk Unix sockets: -U is illegal, -f returns "No such device or address". Never use nc -U /data/adb/ola/ola.sock.
- APK talks to the daemon via
ola --ctl (UnixStream client in src/bin/ola.rs). Client binary must be /data/local/tmp/ola-bin/ola or nsenter -t 1 -m -- /data/adb/modules/olatrix-engine/system/bin/ola.
- Do not call
/system/bin/ola --ctl: Magisk overlay may still be an old ELF that ignores --ctl and starts a second daemon, stealing ola.sock.
- Magisk module files live in init mount ns. Plain
su -c ls /data/adb/modules/... is Permission denied. Deploy with nsenter -t 1 -m.
- Running check is
pgrep -f 'ola --daemon' (not raw pidof ola, which also matches --ctl clients).
status must not read the whole ola.log. Tail the last 4KB.
- Socket accept loop must spawn a thread per connection.
ai_status must use engine::cached_ai_status_json (never wait on the PPO get_engine() lock).
DaemonStatusProvider.running is ai_status != null || isDaemonRunning().
After a stage
Follow session-memory: /home/wlq/wlq/record.sh with WLQ_DIR=/home/wlq/wlq.