Repository navigation
O3 Root v3.1
v3.1 — user-selected .ko with a compatibility check and adaptive fallback.
- App v3.1 (versionCode 14): new "选择 .ko" picker.
CustomKovalidates the chosen file before the run (ELF, 64-bit LEET_REL, AArch64,.modinfowithname=kernelsu…, kernel series match, ≤ 8 MB). Hard failures show a dialog with 仍然尝试 / 取消 / 退回自适应; a same-series-but-different-build module only warns. The choice lives for the app process (persistence lands in v3.1.1). - Payload:
O3P_CUSTOM_KOselects the file;ko_validate()re-checks it,ksu_try_load()is shared with the built-in path, and a rejected/unreadable/failed module falls back to the embedded blob automatically.O3P_CUSTOM_KO_FORCE=1covers the "仍然尝试" path forkernel_series_mismatchonly. - Hardware-verified on yingtian (2026-11-01): custom tiann v3.3.1 LKM accepted with a warning and loaded (
KSU_INSMOD_OUT:[rc=0],KSU_MODULE LIVE); a forced 6.6.000-vermagic module also loaded because the relink rewrites vermagic. The automatic fallback branch was not triggered on hardware. - Built-in LKMs unchanged: KernelSU v3.3.1, KernelSU-Next v3.4.2, SukiSU-Ultra v4.2.1-r2 (SukiSU v4.3.0 exists upstream; try it through the custom path).
- APK: 14,235,152 B, sha256 6d9041a97bb1ea6811b6cc512f3d98bb0504be2b8db1e375b73f56e9879e4d73. Kept in git history at tag
v3.1, not attached here.
Superseded by v3.1.1 (fixes persistence of the selection) — prefer that build.