Upstream/samsung postboot validation - #149
Closed
igorcv88 wants to merge 2 commits into
Closed
Conversation
JingMatrix
marked this pull request as draft
August 8, 2026 13:55
Owner
|
Stop AI content, and I don't understand what is helpful by writing this docs that you should keep for your own. |
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.
I tested NeoZygisk in a KernelSU session that is acquired after Android has already booted (https://github.com/BuSung-dev/Root-My-Galaxy). In this setup the normal module boot hooks have passed, zygote and system_server already exist, and KernelSU is late-loaded by an exploit on a bootloader-locked Samsung device.
Rather than opening a large PR with fork branding, release automation and device-specific packaging mixed together, this PR adds the part that is useful upstream: the lifecycle, the failure boundaries and the complete hardware result.
Tested device
Design decisions
The working path deliberately avoids injecting the already-running zygote.
/dev/.neozygisk.The
/devruntime path was required because Samsung DEFEX rejected the zygote opening the injection library from the persistent module directory under/data/adb./debug_ramdiskwas not a usable staging location in this temporary KernelSU environment.Generation safety
A second failure was reproduced after installing a newer provider package while the previous monitor and
/devruntime were still alive. The next Soft Reboot produced:The daemon being alive was not enough to call the provider healthy. The earlier verifier also printed a stale success result because
statusonly displayed the previous status file.The tested recovery build added these fail-closed checks:
(deleted);stopped(zygote crashed)is a hard failure;statusperforms a fresh live check;The safe provider-update sequence is therefore: install without Soft Reboot, fully reboot the device, acquire KernelSU again, then run KernelSU Manager Soft Reboot.
Hardware result
After a full reboot, the normal exploit, the guarded provider package and one user-initiated KernelSU Manager Soft Reboot, live verification returned:
The runtime reported an injected
zygote64, a runningzygiskd64, and two loaded modules: Zygisk Assistant and LSPosed. Both were functional after the Soft Reboot.Relationship to #107
This is not a replacement for the standalone late-injection work in #107. That PR injects an already-running process; this path waits for the next zygote creation produced by the external KernelSU module lifecycle.
The scope is narrower, but it gives a production-device test result for a late-loaded root environment without remote injection into the current Android zygote. It also identifies update-generation checks that are useful regardless of which late-load mechanism is eventually preferred.
Scope of this PR
This PR only adds documentation and a README link. It does not attempt to merge the full PostBoot fork as-is. The complete reference implementation remains available in
igorcv88/NeoZygisk-PostBoot, while this change keeps the upstream discussion focused on the tested behavior and the parts that may be worth integrating.