JingMatrix / JingMatrix/Vector

system_server: LSPlant init fails (mmap dual mapping EACCES) — module handleLoadPackage never runs there

Open
#971 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
12.5k
Forks
836
Avg merge
1d 18h
Merged PRs (30d)
5

Description

Environment

  • Device: moto g54 5G (MTK Dimensity 6020), Android 15, stock-ish ROM
  • Root: Magisk 30.7 + Zygisk, SELinux Enforcing
  • Vector v2.2 (3110-c4a701aa)

Symptom
The framework injects into system_server and logs Loading Vector/Xposed for system (UID: 1000), but immediately after:

E/LSPlant: mmap dual mapping failed with 13: Permission denied
I/VectorNative: Injected Vector framework into system_server.

After this, module handleLoadPackage is never invoked for the system_server process (zero module logs from the system_server pid), while injection into regular apps works perfectly on the same device and boot.

Diagnosis attempts

  • Kernel audit is functional (other unrelated avc denials from system_server are logged at boot), but no avc denial corresponds to the LSPlant mmap failure — so this appears to be something other than a SELinux policy denial (memfd/seccomp/kernel restriction on system_server?).
  • Applying allow system_server system_server process execmem via magiskpolicy (live + module sepolicy.rule) and rebooting has no effect — same error.
  • dmesg -n 8 + reboot also produced no avc line for this operation.

Expected
Either system_server module loading works (module entry point invoked), or the failure mode is documented with the required kernel/SELinux prerequisites.

Question
Is system_server module loading supported on this combination, and if so what kernel/SELinux prerequisites does the LSPlant dual mapping need there? Happy to test canary builds or provide more logs.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the system_server injection path and the LSPlant dual-mapping failure reported as EACCES. Reproduce on the stated Android 15 and Magisk/Zygisk setup, then compare system_server behavior with regular app injection while collecting relevant logs. Done means either module loading works in system_server or the required kernel and SELinux prerequisites are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile-dev, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.