Repository navigation
Conversation
This was referenced Oct 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When the daemon restarts while an injected
system_serversurvives, the existing bridge can receive its replacement binder but the daemon loses process registration, module services and hot-reload targets. The manager then reports the framework as detached. This change restores that connection through the existing bridge without rerunning module entry points or reinstalling hooks.Fixes #1015. Related to #878. Applies directly to master; #1012 handles the separate daemon/compiler-mount lifecycle. No new manager control, public module API, service endpoint or application interception point is introduced.
Log: vector-lifecycle-sanitized-evidence.zip
Validation and limits
Validation: clean-source Kotlin and four-ABI native builds; 68 lifecycle assertions for each selected API branch (controlled host doubles), plus native handshake retry/failure tests. The combined changes with #1012 and hot-reload cleanup #1018 also compile and pass their regression suites. On Android 12 with NeoZygisk, a local validation build reconnected after two daemon replacements while preserving the kernel boot ID and the PID/start time of
system_serverand both zygotes. New application injection continued to work. A subsequent KernelSU emulated soft reboot completed with one daemon and the same compiler-mount count; application tests and two further hot reloads passed. The clean PR sources were built separately from that local validation build.Limits: this recovers an already injected system server. It cannot inject an untouched running process, restore external module overlays, or resolve the firmware/APEX failure reported in #878. The locked-bootloader LKM late-load setup was not reproduced. Host API branches are not a device compatibility matrix. Deployment needs one full reboot so the running framework contains this change.