“我并不是为我菜而辩解,愿意为 sunstone 做适配的太少了,少到令我头皮发麻,ruby(同系列 Pro)的都比他要有更多教程,可以说祸根从选择这台手机就开始了Redmi Note 12 5G(sunstone)这个机器已经不在小米的版本更新列表了,无缘 HyperOS 后续更新,最新的官方系统停留在 OS2(OS2.0.6.0.UMQCNXM,2025年8月12日)无缘最新更新不是最要命的不需要更新系统的设备才是好设备,更要命的是这台手机有 Google 验证,但是小米愣是不给他用谷歌的机会,严重怀疑 不用严重怀疑了就是 是为了给同一个内部代号的 Poco X5 做的验证,一举击碎我那刚从华为跑出来的谷歌梦想所以我早早就刷了 Xiaomi.EU,好死不死今年开始他们不打算往里直接修补 GApps 了,那我也没有什么吊在 MIUI & HyperOS 的必要了,就去找了类原生,也是第一次接触卡刷这玩意,之前都是线刷的虽然最终选择了 crDroid,但是叠加这个手机的 BUFF,刷个锤子P0:准备Warning理论上从这里开始的每一步都可以类比到别的手机,但要时刻牢记:别忘记留一份官方线刷包,不然炸系统到根本没法修复就真砖了另外,为简短编写,后续会用设备内部代号(也就是例如 stone 这种)称呼小米公司出品的手机最必要的几条:在电脑上安装 adb 套件:刷机过程中用得上,下载地址(中国大陆下载地址)备份手机:当然你也可以不备份解锁 bootloader:对这台手机来说,由于他的出厂系统是 MIUI12,所以解锁起来比出厂就是 HyperOS 的要简单得多,故不赘述下载最新的固件:一定得是 HyperOS 的固件,不能是 MIUI 的固件,不然会卡开机,可以去 这里下载(sunstone 的最新固件)下载 ROM 包:在 crDroid 官网搜寻型号后,进入对应型号的下载页面,点击Download latest version,下载 ROM 包TipRedmi Note 12 5G 可以对应的内部代码有 sunstone、stone、gemstone,理论上不能跨内部代码刷机,我这里硬跨了内部代码刷机,不要学我截至发稿时,网站可以搜寻到的有 gemstone(crDroid 12)和 stone(crDroid 11、10),根据自己的情况选择下载 boot.img、vendor_boot.img 和 dtbo.img:在下图的地方下载,经过实际操作,借助这些刷机会比走 TWRP 简单得多(可选)下载 GApps 组件包:你可以走上图的 Gapp(官方推荐),也可以直接用 NikGapps(官方推荐的本身也是 NikGapps,只不过是经过专门适配的版本)P1:刷系统把刚才下载的固件包、ROM 包、boot.img、vendor_boot.img 和 dtbo.img、NikGapps 包放在同一个目录下,方便操作Note为了方便,所有文件都修改成了方便理解的文件名,请你根据自己的情况按需修改把手机和电脑用一根数据线连接起来(废话进入 fastboot,长按电源键+音量键-,如果你的手机启用了 ADB,可以执行以下指令TEXT複製adb reboot bootloader手机屏幕显示 Fastboot 的时候,就说明已经切换到 Fatboot 了接下来是最重要的一步:依次刷入 boot.img、vendor_boot.img、dtbo.img,槽位不能乱TEXT複製fastboot flash boot boot.img fastboot flash vendor_boot vendor_boot.img fastboot flash dtbo dtbo.img确认全部刷好后,执行以下指令TEXT複製fastboot reboot recovery此时手机会重启,并切换到 crDroid Recovery 系统还没装好恢复模式先装好了此时界面会有 Reboot system now、Apply update、factory reset、Advanced 四个选项依次选择 factory reset 👉 Format data/factory reset 👉 Format data ,此时手机会清空用户数据,这就是为什么要提前备份的原因,不做这一步会直接卡系统做完上面一步后,退到最初始的页面,依次选择 Apply update 👉 Apply from ADB,页面下方显示 Now send the package you want to apply,就说明 ADB 已经启用好了,此时是 sideload 模式接下来依次刷入 固件包、ROM 包TEXT複製adb sideload sunstone-ota_full-OS2.0.6.0.UMQCNXM-user-14.0.zip adb sideload crDroidAndroid-16.0-v12.11.zip比较重要的一点是,sideload 模式下,每执行完一次指令就会回到一开始进入 Recovery 的页面,重新走一遍启用就好在刷入 ROM 包时,手机可能会出现让你确认是 Yes 还是 No 的地方,这里不用管上面写什么(实际含义是固件的版本差异问题),直接 Yes 就行此时手机会直接重启,重启后会回到 crDroid Recovery,此时选择 Reboot system now,就进入 crDroid 的初始界面了,跟着走完步骤就行大功告成P2:Google 框架可以看到所有的自带软件都是 AOSP 的东西,此时如果需要 Google 服务,将手机调回 crDroid Recovery,启用 ADB sideload 模式,刷入 NikGapps 即可TEXT複製adb sideload NikGapps-core-arm64-16-20260222-signed.zipImportantNikGapps 分为六个分支,针对于 crDroid,只需要在 Core 和 Basic 中间选,这样不容易炸系统刷入完成后,手机不会自己重启,需要选择 Reboot system now 才会重启进入系统后,你就可以看到 Google Play 在你的桌面了P3:输入法这其实是 AOSP 的锅,所以请安装 Gbord 或者其他的输入法,不然你没法输入中文的如果你装了 GApps,我会更建议用 GbordP4:禁用内核校验其实写这篇文章的时候我的手机一直在砖和不砖的情况反复跳跃,其实很明显是因为跨内部版本号导致的,但没办法,会给 sunstone 做第三方系统的太少了,连 Xiaomi.EU 都没有接着做了(很正常,因为他们跟随小米的大版本步伐),一般情况下,只要内部版本号对的上,就不需要这种情况就需要提取到 vbmeta.img 去禁用 AVB(Android Verified Boot)的分区完整性签名校验,另外还可能需要禁用 SELinux 强制校验,以防万一,我每个都做P4.1:提取 vbmeta.img下载 payload-dumper-go,根据 README 部署到系统上解压 ROM 包,并在解压后的目录上运行:TEXT複製payload-dumper-go payload.bin运作完成后,同目录下会出现 extracted_xxxxxxxx_xxxxxx 的文件夹,里面就有提取出来的一众 img 文件P4.2:禁用 AVB 分区完整性签名校验依次把 vbmeta.img 和 vbmeta_system.img 刷入TEXT複製fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img fastboot flash vbmeta_system --disable-verity --disable-verification vbmeta_system.img刷入完成后,重启设备:TEXT複製fastboot rebootP4.3:禁用 SELinux 强制校验Warning禁用 SELinux 强制校验必须要 root 设备,关于如何 root 设备,在此不赘述运行以下指令确认 SELinux 的状态TEXT複製adb shell getenforce如果显示 Enforcing:说明强制校验依然开启。如果显示 Permissive:说明已经变为宽容模式(已放行)。接下来进入 shell(不是电脑的 shell,而是通过电脑进入 Android 的 shell)TEXT複製adb shell当看到例如 sunstone:/ $ 时,则代表成功进入依次运行TEXT複製su setenforce 0运行 adb shell getenforce,显示 Permissive 则说明 SELinux 强制校验已经临时关闭,设备重启后即失效为了持久化这一个程序,我们需要写一个开机启动脚本(类似 Linux systemd)TEXT複製# 1. 在 APatch/KernelSU/Magisk 的通用自启目录下创建脚本 echo "#!/system/bin/sh" > /data/adb/service.d/permissive.sh echo "setenforce 0" >> /data/adb/service.d/permissive.sh # 2. 赋予脚本执行权限 chmod 755 /data/adb/service.d/permissive.sh重启设备,并再走一次验证 adb shell getenforce,显示 Permissive 则说明 SELinux 强制校验已经在开机工序上关闭了同时设备也显示 SELinux 未工作在强制模式,部分银行类应用因此直接无法运作,这时候就需要修补了,不多赘述PE:后续不得不提 crDroid 官方直接支持的设备就有好多,比 PiexlOS 要好,但可惜的是还是没有 sunstone,思来想去大概是因为 sunstone 只对中国大陆发售,不能指望海外团队专门买一台无法启用 Google 的设备去做测试做适配实际上小米也有问题,stone 这一边都是内核开源不完全的,很难受
Redmi Note 12 5G(sunstone)这个机器已经不在小米的版本更新列表了,无缘 HyperOS 后续更新,最新的官方系统停留在 OS2(OS2.0.6.0.UMQCNXM,2025年8月12日)
无缘最新更新不是最要命的不需要更新系统的设备才是好设备,更要命的是这台手机有 Google 验证,但是小米愣是不给他用谷歌的机会,严重怀疑 不用严重怀疑了就是 是为了给同一个内部代号的 Poco X5 做的验证,一举击碎我那刚从华为跑出来的谷歌梦想
所以我早早就刷了 Xiaomi.EU,好死不死今年开始他们不打算往里直接修补 GApps 了,那我也没有什么吊在 MIUI & HyperOS 的必要了,就去找了类原生,也是第一次接触卡刷这玩意,之前都是线刷的
虽然最终选择了 crDroid,但是叠加这个手机的 BUFF,刷个锤子
P0:准备
理论上从这里开始的每一步都可以类比到别的手机,但要时刻牢记:别忘记留一份官方线刷包,不然炸系统到根本没法修复就真砖了
另外,为简短编写,后续会用设备内部代号(也就是例如 stone 这种)称呼小米公司出品的手机
最必要的几条:
Redmi Note 12 5G 可以对应的内部代码有 sunstone、stone、gemstone,理论上不能跨内部代码刷机,我这里硬跨了内部代码刷机,不要学我
截至发稿时,网站可以搜寻到的有 gemstone(crDroid 12)和 stone(crDroid 11、10),根据自己的情况选择
P1:刷系统
把刚才下载的固件包、ROM 包、boot.img、vendor_boot.img 和 dtbo.img、NikGapps 包放在同一个目录下,方便操作
为了方便,所有文件都修改成了方便理解的文件名,请你根据自己的情况按需修改
把手机和电脑用一根数据线连接起来(废话
进入 fastboot,长按电源键+音量键-,如果你的手机启用了 ADB,可以执行以下指令
手机屏幕显示 Fastboot 的时候,就说明已经切换到 Fatboot 了
接下来是最重要的一步:依次刷入 boot.img、vendor_boot.img、dtbo.img,槽位不能乱
确认全部刷好后,执行以下指令
此时手机会重启,并切换到 crDroid Recovery 系统还没装好恢复模式先装好了
此时界面会有 Reboot system now、Apply update、factory reset、Advanced 四个选项
依次选择 factory reset 👉 Format data/factory reset 👉 Format data ,此时手机会清空用户数据,这就是为什么要提前备份的原因,不做这一步会直接卡系统
做完上面一步后,退到最初始的页面,依次选择 Apply update 👉 Apply from ADB,页面下方显示 Now send the package you want to apply,就说明 ADB 已经启用好了,此时是 sideload 模式
接下来依次刷入 固件包、ROM 包
比较重要的一点是,sideload 模式下,每执行完一次指令就会回到一开始进入 Recovery 的页面,重新走一遍启用就好
在刷入 ROM 包时,手机可能会出现让你确认是 Yes 还是 No 的地方,这里不用管上面写什么(实际含义是固件的版本差异问题),直接 Yes 就行
此时手机会直接重启,重启后会回到 crDroid Recovery,此时选择 Reboot system now,就进入 crDroid 的初始界面了,跟着走完步骤就行
大功告成
P2:Google 框架
可以看到所有的自带软件都是 AOSP 的东西,此时如果需要 Google 服务,将手机调回 crDroid Recovery,启用 ADB sideload 模式,刷入 NikGapps 即可
NikGapps 分为六个分支,针对于 crDroid,只需要在 Core 和 Basic 中间选,这样不容易炸系统
刷入完成后,手机不会自己重启,需要选择 Reboot system now 才会重启
进入系统后,你就可以看到 Google Play 在你的桌面了
P3:输入法
这其实是 AOSP 的锅,所以请安装 Gbord 或者其他的输入法,不然你没法输入中文的
如果你装了 GApps,我会更建议用 Gbord
P4:禁用内核校验
其实写这篇文章的时候我的手机一直在砖和不砖的情况反复跳跃,其实很明显是因为跨内部版本号导致的,但没办法,会给 sunstone 做第三方系统的太少了,连 Xiaomi.EU 都没有接着做了(很正常,因为他们跟随小米的大版本步伐),一般情况下,只要内部版本号对的上,就不需要
这种情况就需要提取到 vbmeta.img 去禁用 AVB(Android Verified Boot)的分区完整性签名校验,另外还可能需要禁用 SELinux 强制校验,以防万一,我每个都做
P4.1:提取 vbmeta.img
下载 payload-dumper-go,根据 README 部署到系统上
解压 ROM 包,并在解压后的目录上运行:
运作完成后,同目录下会出现 extracted_xxxxxxxx_xxxxxx 的文件夹,里面就有提取出来的一众 img 文件
P4.2:禁用 AVB 分区完整性签名校验
依次把 vbmeta.img 和 vbmeta_system.img 刷入
刷入完成后,重启设备:
P4.3:禁用 SELinux 强制校验
禁用 SELinux 强制校验必须要 root 设备,关于如何 root 设备,在此不赘述
运行以下指令确认 SELinux 的状态
接下来进入 shell(不是电脑的 shell,而是通过电脑进入 Android 的 shell)
当看到例如 sunstone:/ $ 时,则代表成功进入
依次运行
运行 adb shell getenforce,显示 Permissive 则说明 SELinux 强制校验已经临时关闭,设备重启后即失效
为了持久化这一个程序,我们需要写一个开机启动脚本(类似 Linux systemd)
重启设备,并再走一次验证 adb shell getenforce,显示 Permissive 则说明 SELinux 强制校验已经在开机工序上关闭了
同时设备也显示 SELinux 未工作在强制模式,部分银行类应用因此直接无法运作,这时候就需要修补了,不多赘述
PE:后续
不得不提 crDroid 官方直接支持的设备就有好多,比 PiexlOS 要好,但可惜的是还是没有 sunstone,思来想去大概是因为 sunstone 只对中国大陆发售,不能指望海外团队专门买一台无法启用 Google 的设备去做测试做适配
实际上小米也有问题,stone 这一边都是内核开源不完全的,很难受