小米 / 红米 HyperOS 刷 NetHunter 全流程:解锁 BL 到 Kali chroot

为什么 HyperOS 比当年的 MIUI 难刷

站内已经有《Kali NetHunter 如何刷到任何手机上》和一加系列的完整教程,但小米/红米用户照着做,大概率会卡在三个新问题上:

  1. BL 解锁政策收紧:不再是想解就解,有账号绑定时长、社区等级、年度次数限制。
  2. GKI 内核 + init_boot 分区:Android 13 起,ramdisk 从 boot.img 挪到了 init_boot.img,Magisk 该补哪个镜像变了。
  3. ARB 反回滚:刷入 ARB index 更低的固件,会直接「系统已损坏」,这不是普通变砖,是硬砖。

这篇按顺序把整条链路走一遍,并在每一步标注「出错会怎样」。

风险声明:以下操作会导致保修失效、数据全清、存在变砖风险。只在你自己的设备上做,操作前把重要数据备份到电脑。因操作导致的设备损坏由操作者自行承担。

一、先搞清楚你的机器是什么结构

连接电脑,打开 USB 调试,执行:

adb shell getprop ro.product.device      # 机型代号,如 fuxi / mondrian
adb shell getprop ro.build.version.release  # Android 版本
adb shell getprop ro.build.version.sdk      # API 级别
adb reboot bootloader
fastboot getvar current-slot                # A/B 分区当前槽位
fastboot getvar product                     # 确认连接的是对的设备

判断三件事

判断项 怎么看 影响
是否 A/B 分区 current-slot 返回 a 或 b A/B 机型刷写要针对当前槽,或两个槽都刷
是否有 init_boot Android 13+ 的 GKI 机型几乎都有 Magisk 要补 init_boot.img 而不是 boot.img
内核版本 adb shell uname -r 决定你能不能找到/编出 NetHunter 内核

把机型代号记下来,后面找固件、找内核、找 TWRP 全靠它。代号错了必砖,这一步不要靠猜。

二、解锁 Bootloader

小米的解锁走官方「小米解锁工具」,但门槛这几年一直在变(账号绑定天数、社区等级、答题、年度次数上限)。具体条件以小米社区当前公告为准,这里只讲流程和技术注意点:

  1. 设备登录小米账号,开启「查找设备」,绑定账号并等待满足时长要求。
  2. 在「设置 → 更多设置 → 开发者选项 → 设备解锁状态」里绑定账号。
  3. 电脑安装官方解锁工具,登录同一账号,进入 fastboot 后按提示解锁。

解锁后的两个副作用

  • TRIGGER 反回滚保护:解锁会清除所有数据。
  • 部分功能受限:指纹支付、部分银行 App、Google Pay 会检测 BL 状态。可用 Magisk 的 DenyList + Play Integrity Fix 缓解,但不保证。

如果卡在「解锁工具提示验证失败」,常见原因是账号绑定未满时长、设备未联网、或该机型不在当年允许名单内。

三、提取 boot / init_boot

推荐用官方线刷包(fastboot 包),因为它的镜像和当前系统版本完全一致,兼容性最好。下载后解压,你会看到 payload.bin,需要解包工具:

# 用 payload-dumper-go(跨平台,比 Python 版快很多)
payload-dumper-go -o extracted payload.bin

# 解出来的目录里会有:
# boot.img  init_boot.img  vbmeta.img  vbmeta_system.img  dtbo.img ...

如果只刷 Magisk,只需要 init_boot.img(Android 13+ GKI 机型)或 boot.img(更老的机型)。不确定就把两个都解出来,但只补需要的那一个。

四、用 Magisk 修补并刷入

  1. 手机安装 Magisk App(从官方 GitHub 下载,别用第三方站点的「汉化版」)。
  2. 把 init_boot.img 传到手机。
  3. Magisk → 安装 → 选择「选择并修补一个文件」→ 选 init_boot.img。
  4. 修补完成后,产物在 Download/magisk_patched-xxxxx.img,拷回电脑。
fastboot flash init_boot magisk_patched-xxxxx.img
# A/B 机型建议两个槽都刷
fastboot flash init_boot_a magisk_patched-xxxxx.img
fastboot flash init_boot_b magisk_patched-xxxxx.img
fastboot reboot

重启后打开 Magisk,显示版本号即 root 成功。

如果开机卡在 logo

说明刷错了镜像(补了 boot 却刷到 init_boot,或版本与系统不匹配)。用 fastboot flash init_boot 原版init_boot.img 回退即可,不用慌。

五、关闭 verity 与 dm-verity

改过 boot 分区后,Android 的验证启动会检测到校验失败,部分机型会反复重启。需要刷入对应版本的 vbmeta 并关闭校验:

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
# A/B 机型
fastboot --disable-verity --disable-verification flash vbmeta_a vbmeta.img
fastboot --disable-verity --disable-verification flash vbmeta_b vbmeta.img

注意:vbmeta.img 必须来自与当前系统同一版本的固件包,混版本刷可能无法开机。

六、NetHunter 内核:这一步才是真正的门槛

NetHunter 不是普通 App,它依赖内核提供:

  • mac80211 / cfg80211:外置网卡的监听模式
  • USB HID gadget:把手机模拟成键盘/网卡
  • SELinux 调整与相应的驱动集:让 chroot 里的工具能正常操作硬件

小米/红米没有官方 NetHunter 内核。三条路:

路线 A:找社区已编译内核(最省事)

部分热门机型的社区维护得不错,比如 Poco F1(beryllium)、红米 Note 8(ginkgo)这类保有量大的机器。判断标准:

  • 仓库最近 6 个月有提交
  • README 里明确写了支持的 Android 版本与内核版本
  • 有对应的 Magisk 模块或 zip 安装包

注意:内核必须与你的 HyperOS 版本 / 内核版本匹配,跨版本刷入会直接卡 logo 或无法启动。

路线 B:自己编译(复杂但通用)

# 大致流程,具体以你机型的内核源码为准
git clone <机型内核源码> -b <对应分支>
# 在 defconfig 中开启:
#   CONFIG_MAC80211=y / CONFIG_CFG80211=y
#   CONFIG_USB_CONFIGFS_F_HID=y
#   CONFIG_ATH9K_HTC=y 等网卡驱动
make O=out ARCH=arm64 <defconfig>
make O=out ARCH=arm64 -j$(nproc)
# 产物:out/arch/arm64/boot/Image(或 Image.gz-dtb)

难点不在编,在打包回 boot.img:需要正确的 mkbootimg 参数(内核偏移、ramdisk 偏移、header version),参数错了就是黑屏。GKI 机型还要处理 vendor_boot。

如果你是第一次做,建议先走路线 A 或直接换一台一加(站内教程最全)。

路线 C:不换内核,只装 NetHunter 的「用户态」部分

可以只装 Kali chroot 和工具链,跳过内核相关功能(监听注入、HID)。适合只想在手机上跑 nmap、sqlmap 这类纯网络工具的人,成本最低。

七、安装 NetHunter

现在的推荐方式是 Magisk 模块,不再是早年 TWRP 刷 zip:

  1. 下载 kali-nethunter-<版本>-<机型>.zip(官方 installer 构建,或社区打包版)。
  2. Magisk → 模块 → 从本地安装 → 选 zip。
  3. 重启。首次启动会花几分钟部署 chroot,不要中途断电。
  4. 打开 NetHunter App,完成初始化。

如果 App 提示 chroot 未安装,可以用 NetHunter 内的 Kali Chroot Manager 重新下载安装。

八、验证整条链路

adb shell su -c "bootkali"          # 进入 Kali chroot,能进就成功一半
adb shell su -c "ls /data/local/nhsystem/kali-arm64"   # chroot 目录存在

# 进入 chroot 后
uname -a                            # 确认跑的是 NetHunter 内核
lsusb                               # 插上外置网卡后能否识别
iw dev                              # 是否出现 wlan1

网卡能不能用,参考站内《NetHunter 外置无线网卡选型指南》——先确认内核有没有编进对应驱动,再看注入测试是否通过。

九、变砖了怎么办

现象 严重程度 处理
卡 logo / 无限重启 软砖 fastboot 刷回原版 init_boot/boot 即可
进不了系统也进不了 fastboot 需要救砖 尝试长按电源+音量下强制进 fastboot;不行则用 EDL 模式
提示「系统已损坏」 ARB 触发 只能刷 ARB index ≥ 当前版本的固件,刷低版本会彻底锁死
fastboot 能进但刷什么都失败 分区表异常 用 MiFlash 线刷完整包(会清空数据)

只要 fastboot 还能进,基本都救得回来。所以刷机前务必确认:官方线刷包已下载、MiFlash 已装好、数据已备份。

十、常见问题

Q:HyperOS 2 还能解锁吗?

能,但门槛更高、名额更少,具体规则小米改过多次。建议先去小米社区看当月的解锁政策,别按两年前的教程操作。

Q:刷了 NetHunter 还能收到系统更新吗?

不能 OTA。系统更新会覆盖 boot 分区,root 和 NetHunter 内核都会丢失,需要重新刷。建议关闭自动更新。

Q:必须用官方线刷包吗?

强烈建议。第三方 ROM 的 boot 镜像与官方分区表不匹配,是变砖的高发原因。

Q:为什么别人的教程里刷的是 boot.img?

因为那是 Android 12 及更早的机型,ramdisk 还在 boot 里。Android 13+ 的 GKI 设备已拆到 init_boot,照抄老教程会刷错分区。

十一、小结

把这条链路压缩成一句:解锁 BL → 解包官方固件拿 init_boot → Magisk 修补并刷入 → 关 verity → 换 NetHunter 内核(最难)→ Magisk 装 NetHunter 模块。

对大多数小米/红米用户,真正的卡点是第六步——没有匹配的内核,前面全白做。所以动手前先回答一个问题:你的机型有可用的 NetHunter 内核吗?没有的话,要么接受「只有用户态工具」,要么换机型,要么自己编。

延伸阅读:


免责声明:刷机属于高风险操作,可能导致设备损坏、数据丢失与保修失效。本文仅用于自有设备的技术研究,操作前请自行评估风险并做好备份。

© 版权声明
THE END
喜欢就支持一下吧
点赞16赞赏 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容