Repository navigation
Description
Steps to reproduce
- Environment: Xiaomi Mi 6 (sagit), LineageOS 22.2 nightly 20261030 (Android 15, SDK 35), Magisk v31.1 (31100) with built-in Zygisk disabled; Zygisk API provided by NeoZygisk v2.4. Correction (see my comment below): the boot that produced the original logs actually ran 289-08080ef due to a silently failed upgrade; the symptom has since been re-verified identically on a clean 299-666140e install (
magisk --install-module+ reboot, versionCode=299 confirmed active). SELinux enforcing. - Install an Xposed module that targets the system framework: GPS Setter 20-0.2.0 (
io.github.varma322.gpssetter, libxposed API 102). Scope:android(System Framework) plus the module's own app. - Reboot.
- Watch
/data/adb/lspd/log/verbose_*.logandmodules_*.log(debug build, verbose logging enabled).
Expected behaviour
The module loads into system_server the same way it loads into a regular scoped app: Loading module io.github.varma322.gpssetter → Loaded module … successfully for the system process (uid 1000).
Actual behaviour
The framework bootstraps completely inside system_server — injection, PreloadedDex mapping, full LSPlant init, all framework hooks, daemon channel — and then module loading for the system package never starts. No error, no exception, no skip entry; the process simply goes silent after bootstrap:
21:15:22.343 I/VectorNative: System server process detected. Marking for injection.
21:15:22.614 I/VectorNative: Got system server binder via serial on attempt 1.
21:15:22.618 D/VectorNative: Mapping PreloadedDex: fd=77, size=4150928
21:15:22.786 D/LSPlant: ArtMethod size: 32 … (full init: offsets, runtime instance,
debug_state, class_linker — all successful)
21:15:22.861 D/VectorFrameworkService: Process channel attached for system (pid=2099) ← daemon side
21:15:22.913 V/Vector: Loading Vector/Xposed for system (UID: 1000)
21:15:22.916–.960 V/LSPlant: framework hooks install fine (Thread.dispatchUncaughtException,
ZygoteInit.handleSystemServerProcess, LoadedApk constructors,
ActivityThread.attach, SystemServer.startBootstrapServices,
ActivityTaskSupervisor.resolveActivity, …)
21:15:22.932 I/VectorNative: Injected Vector framework into system_server.
21:15:22.960 D/Vector: Successfully hooked Activity Supervisor for Manager redirection.
…after this, pid 2099 never logs anything module-related again…
The modules journal of the same boot contains only the regular-app entry (module's own app, opened manually at 21:17):
21:17:06.967 10189:4922 D/VectorModuleManager: Loading module io.github.varma322.gpssetter
21:17:06.990 10189:4922 D/VectorModuleManager: Loaded module io.github.varma322.gpssetter successfully.
Further observations from the same boot:
- Daemon logs
System services are ready. Mapping modules and scopes.about 5 seconds after the system bootstrap line (21:15:27.5 vs 21:15:22.9), followed byManager is not installed(the manager app is not installed on this device; everything is configured through the Vector CLI). - There is no
Skipped system/1000line, and the system process stays attached (Process channel attached for system), so this does not look like scope filtering. - Other system processes are skipped normally (
Skipped com.android.systemui/10148,Skipped com.android.phone/1001, etc.). - Zero errors/exceptions from pid 2099 in the whole verbose log.
Things tried, with the identical result every time:
- Restarting the daemon with
--late-inject(daemon logsStarted after system_server. Forcing boot completed event.— system_server does not react). setprop ctl.restart zygotewhile the late-mode daemon was already running: a fresh system_server bootstraps on the restart and stops at exactly the same place.- Additional sepolicy rules (system_server execmem, properties_serial, …) — no change, and there are no AVC denials around the relevant timestamps.
- Identical behavior on the 3116-Release and 3116-Debug artifacts of the same commit.
This does not look like #971: LSPlant initializes successfully here (no mmap dual mapping failure — the complete init trace is in the attached logs).
Xposed Module List
io.github.varma322.gpssetter (GPS Setter 20-0.2.0, libxposed API 102)
Root implementation
Magisk v31.1 (31100); built-in Zygisk disabled — Zygisk injection provided by NeoZygisk v2.4 (original trace: 289-08080ef due to failed upgrade; re-verified on 299-666140e — see comment). SELinux enforcing.
System Module List
zygisksu (NeoZygisk v2.4-299)
zygisk_vector (v2.2-3116-d1d43f3c-Debug — the build in this report)
playintegrityfix (v19)
tricky_store (v3.1.0)
trickystore_autofetch (v1.4.1)
hma_oss_zygisk (oss-173)
Vector version
v2.2 (3116-d1d43f3c-Debug), GitHub Actions master artifact of 2026-11-05 (reproduced identically on the 3116-Release artifact of the same commit).
Android version
Android 15 (SDK 35), LineageOS 22.2 nightly 20261030, Xiaomi Mi 6 (sagit), arm64-v8a.
Version requirement
- I am using the latest debug build from GitHub Actions (master, 2026-11-05).
Logs
Original trace excerpts are quoted inline above (full verbose / modules / kmsg / props + magisk.log of that boot available on request). Fresh logs of the re-verification boot on genuine 299 are quoted in my correction comment below, full set also available on request.
One question that would help me debug further: what exactly is supposed to trigger module loading for the android package after Loading Vector/Xposed for system (UID: 1000)? With that pointer I can add targeted instrumentation — happy to test any build on this device.
Activity
veZuk commentedon Nov 5, 2026
Correction to the environment + re-verification on a clean 299 build
Correction first: the environment described in the report was wrong. The logs referenced there were produced on a boot where my NeoZygisk upgrade had silently failed — the active build was actually 289-08080ef, not 299 (the wrong zip got flashed during the module-file swap; discovered later by reading
module.propof the active module tree). Apologies for that — the report body has been corrected accordingly.I have now re-verified the symptom on a genuine 299-666140e installation:
magisk --install-module+ full reboot;/data/adb/modules/zygisksu/module.prop=versionCode=299, and the running monitor binary (/proc/$(pidof zygisk-ptrace64)/exe) is the newly swapped file;system_server (pid 2094, uid 1000) — full bootstrap, then module loading never starts:
The modules journal of the same boot contains only regular-app entries — the module's own app opened manually four minutes later loads it fine:
Scope verified after the reboot via
cli scope ls io.github.varma322.gpssetter→android,com.google.android.gms,io.github.varma322.gpssetter— the system framework was in scope, yet module loading for theandroidpackage never started.Full logs of this 299 boot (verbose / modules / dmesg / getprop / magisk.log + an environment README) are packed and ready — since GitHub does not accept issue attachments through the API, tell me if you want them and I will paste any part inline.
The question from the report stands: what exactly is supposed to trigger module loading for the
androidpackage afterLoading Vector/Xposed for system (UID: 1000)? Happy to add targeted instrumentation on this device.JingMatrix commentedon Nov 6, 2026
Please READ #123, and upload
/data/adb/lsp/logas logs.It is annoying to see arrogant AI agents posting non-sense analysis while not providing original logs.
veZuk commentedon Nov 6, 2026
Installed the debug CI build and pulled the raw logs.
Vector: v2.2 3116-2a8b39c3 (debug artifact — master state, PR #964 head before the squash into 093ea59), via magisk --install-module + reboot
NeoZygisk 299-666140e; manager installed as a user app (org.matrix.vector.manager, shows "Vector Active")
Same behavior on this boot (log/verbose, 11:12): system_server (pid 2163) bootstraps fully — last Vector line from pid 2163 is New hook took 1487us at 11:12:44.142 — then nothing module-related, no error, no skip entry. The same module loads fine into a regular scoped app minutes later (log/modules).
Vector-logs-master-2a8b39c3-20261106.zip attached: raw log/ (boot 11:12, the 2a8b39c build) + log.old/ (boot 10:39, the earlier d1d43f3 build, same symptom). Files unmodified except the device serial scrubbed.
Vector-logs-master-2a8b39c3-20261106.zip
JingMatrix commentedon Nov 6, 2026
Which is the Xposed module you want to inject into
system_server? Did you configure the module scope via the manager UI ?androiddoesn't meansystem_serversince a long time ago. For cli usage, use the namesystem(still a history legacy we have to bear for a while), for UI usages, choosesystem_server.