Repository navigation
v2.0.0 — 6 devices, 3 SoCs, full HyperOS lifecycle
·
22 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Community expansion release: 6 hardware unlocks confirmed across 4 SoCs, covering the full HyperOS lifecycle (1, 2, 3). New SoC-specific RPMB sector discovery, A/B slot divergence after OTA documented, and community-contributed improvements.
What's new since v1.0.0
- 5 new Tier 1 devices proven on hardware by community testers
- RPMB sector is SoC-specific — MT6781/MT6769Z = 57344, MT6833 = 65504. Always grep before erasing. (Discovered by KTS618)
- lk_a ≠ lk_b after OTA — slot A and slot B can carry different LK builds. Always scan both. (Discovered by piotrurban)
- HyperOS 1 + 2 + 3 confirmed — the RPMB lock mechanism is consistent across all HyperOS generations
- Step 0 added — mandatory sector discovery via
grep -boa "Jz8PNRUF" rpmb_dump.bin - Linux pre-flight documented — ModemManager kill + kernel module unload (PR #6 by miromraz)
- scan_lk.py as decision gate — README restructured to route users through the scanner first (PR #5 by miromraz)
- Windows struct.error FAQ — documented USB bulk driver limitation + WSL2 / Live USB workaround
- Boot flow diagram — mi_check_magic() decision tree added to README
Tested on
| Device | Codename | SoC | Firmware | RPMB Sector | Result | Tester |
|---|---|---|---|---|---|---|
| POCO M4 Pro 4G | fleur | MT6781 | HyperOS 1.0.11.0 | 57344 | Unlocked, persistent | Jz8root |
| Redmi Note 11 4G | fleur (2201117SY) | MT6781 | HyperOS 1.0 | — | Unlocked (Path B, seccfg only) | miromraz |
| Redmi Note 11S Global | miel | MT6781 | HyperOS 1.0.9.0 | 57344 | Unlocked, persistent | ITSME |
| Redmi Note 11S | miel | MT6781 | HyperOS 1.0.9.0 | 57344 | Unlocked, persistent | kwhj4ff67r-crypto |
| Redmi Note 13 5G | gold | MT6833 | HyperOS 3.0.9.0 / Android 15 | 65504 | Unlocked, persistent | KTS618 |
| Redmi 12 | fire | MT6769Z | HyperOS 2.0.207 | 57344 | Unlocked, persistent | piotrurban |
Quick start
git clone https://github.com/Jz8Root/xiaomi-hyperos-bootloader-unlock
cd xiaomi-hyperos-bootloader-unlock
# Step 0: Scan your LK binary (scan BOTH slots)
python3 scan_lk.py /path/to/lk_a.bin
python3 scan_lk.py /path/to/lk_b.bin
# Step 0b: Find your RPMB sector (do NOT skip)
python3 mtk.py da rpmb r rpmb_dump.bin
grep -boa "Jz8PNRUF" rpmb_dump.bin
# sector = byte_offset / 256
# Then follow README.md → "The Method — 3 Commands"Warnings
- Backup RPMB and NV partitions before anything
- This wipes your data (factory reset on first boot after unlock)
- BROM V6 (MT6789+) is patched in hardware — this method won't work
- RPMB sector is NOT universal — always grep the dump first. Sector 57344 is only confirmed for MT6781/MT6769Z. MT6833 uses 65504.
- Scan both LK slots — after an OTA, lk_a and lk_b can diverge
- Use Linux for the RPMB erase step — Windows USB drivers cause struct.error
- Voids manufacturer warranty
Help wanted
If you successfully unlock another device, please file a Device Test Report. Each successful report expands the compatibility database for everyone.
Priority targets: Redmi 9A/9C (MT6762), Redmi 12C (MT6765/MT6769) — issue #81 has been waiting since 2021.
Links
- XDA thread
- mtkclient — the foundation
Credits
- bkerler/mtkclient — Xiaomi MTK BROM + DA framework
- The Kamakiri exploit researchers
- miromraz — PR #5 (README restructure), PR #6 (Linux pre-flight), Path B confirmation, SK Hynix RPMB layout
- KTS618 — MT6833 sector 65504 discovery, first HyperOS 3.0 confirmation
- piotrurban — lk_a/lk_b OTA divergence discovery, first HyperOS 2.0 confirmation
- ITSME — first independent hardware confirmation (miel)
- kwhj4ff67r-crypto — miel replication
- Everyone who reported the seccfg bug on GitHub — your reports helped map the scope
Researched by Jz8root. Community tested.