Self-contained toolkit to root a Fire HD 10 (trona / PS7331.4460N) over adb and install a working Magisk userspace + manager — all in one run, without touching /boot or the underlying /system filesystem.
Everything runs from the host over adb. Two stages, both reversible in one boot:
-
Root chain (
runme.sh root)- Arms the verified boot-time
time_updateparser (persist.sys.saved_time) with a waiter via the boot's single zygote injection. - Reboots; on the fresh boot the carrier is respawned through
WebViewZygoteInit, the hwbinder stateful leak + NULL write drop SELinux to
Permissive, then the pre-armed waiter launches the payload and restores
the original numeric
saved_time. - End state: a uid-0 listener on
127.0.0.1:4325(u:r:time_update:s0).
- Arms the verified boot-time
-
Magisk userspace (
runme.sh bootstrapthenrunme.sh manager)bootstrapmounts a Magisk tmpfs on/sbin(original entries preserved via bind mounts), applies a live SELinux policy, startsmagiskd, and binds the Manager'strusted_certfrom the staged stub APK before any su test, so a cold daemon can never uninstall the Manager.managerstages the matching stub + BusyBox, runs--post-fs-data, installs the Manager APK, runs--service/--boot-complete, and launches the app.
runme.sh single entry point
scripts/
root_poc.sh full root driver (root|status|disarm)
stage_reroot_waiter.sh arm the boot waiter (pre-reboot)
reroot_after_boot.sh per-boot reroot chain
rootsvc_payload.sh uid-0 listener payload
zygote_payload_system_app.sh
webview_zygote_preload_client.py
snusnu_magisk_bootstrap.sh Phase 1 /sbin runtime
snusnu_magisk_manager.sh Phase 2 Manager integration
magisk/
out/app-release.apk Manager APK (com.topjohnwu.magisk, 30700)
native/out/arm64-v8a/ magisk, magiskpolicy, magiskboot, magiskinit, libinit-ld.so
.snusnu-revision build revision the APK/binaries were produced from
tools/xbps-root/usr/ minimal adb + transitive shared-library closure
git clone git@github.com:voidnullvalue/SnuSnuRoot.git
cd SnuSnuRoot
./runme.sh status # confirm adb device + current state
./runme.sh root # stage waiter, reboot, reroot (uid-0 on 127.0.0.1:4325)
./runme.sh bootstrap # live Magisk runtime on /sbin
./runme.sh manager # install + launch Magisk Manager
./runme.sh request # trigger an adb-shell su request; tap Allow on the tablet
./runme.sh status # verify: Manager installed, daemon version, policiesOnce the Manager is up it reports Magisk installed/up-to-date (the Home card's "Reinstall" button is the installed state indicator) and MagiskSU GUI authorization works per-app.
- Do not reboot after disarm. Root is an in-memory per-boot chain;
persist.sys.saved_timereturning to a plain numeric value means the waiter is disarmed and the next boot is stock. - The device kernel has no mount namespaces (
CONFIG_NAMESPACESunset), so the/sbintmpfs is system-global and visible to ordinary adb shell too. - Payloads reference on-device paths (
/data/securedStorageLocation/...,/data/local/tmp/...); they are re-created at runtime. - Prebuilt only: no Magisk source is shipped.
snusnu_magisk_manager.shverifies artifacts againstmagisk/.snusnu-revision; rebuilding requires the fulltopjohnwu/magiskcheckout and build environment.
SnuSnuRoot is distributed under the GNU General Public License v3.0; see
LICENSE.
This repository also redistributes Magisk APK/native artifacts built from
topjohnwu/Magisk, which is GPL-3.0 licensed. The bundled artifacts correspond
to the exact upstream revision recorded in magisk/.snusnu-revision:
8c4341e9288360010495a2bc3b46fd2e3f505f9f — Magisk v31.0 release preparation.
Corresponding source for that revision is available from:
https://github.com/topjohnwu/Magisk/tree/8c4341e9288360010495a2bc3b46fd2e3f505f9f
The Magisk project and its copyrights remain with their respective upstream copyright holders. SnuSnuRoot's own modifications, scripts, and integration code are likewise distributed under GPL-3.0.
- Linux host with
adb(the bundled one is used automatically),unzip,base64,python3. - Fire HD 10 with USB debugging enabled and an authorized adb host.