红米 Note 10 5G (camellia) 刷入 crDroid

#刷机 #安卓 2025/02/16 00:42:25
目录
  1. 代号 Camellia
  2. Bootloader 解锁
  3. 刷入 crDroid 系统
  4. 其他问题

从我妈手里继承了一台红米 Note 10 5G,系统更新到 MIUI 14,Android 13,在此记录一下和这台手机的相处之道。

代号 Camellia

adb shell getprop ro.product.system.device

搜索发现红米 Note 10 有好多个版本,红米 Note 10 (mojito) / 红米 Note 10S (rosemary) / 红米 Note 10 Pro (sweet) / 红米 Note 10 5G (camellia) / 红米 Note 10 Pro 5G (chopin),为了确保自己手机的型号可以使用上面的 adb 命令。

Bootloader 解锁

因为当前是 MIUI 系统,只需要将小米 ID 与设备绑定七天,通过小米的官方的解锁工具就可以解锁了,相比于 Hyper OS 的解锁限制,如此已经很欣慰了 (Hyper OS 的解锁限制真让人失望)。

刷入 crDroid 系统

因为红米 Note 型号很多,搜索发现大部分支持的刷机资源都是非 camellia 型号,好在有crDroid支持 camellia 这个型号,最新版本是 crDroid10 Android 14,最后构建时间是 2024-03-03。

提前准备

刷机步骤

# 1. 重启系统至 bootloader
adb reboot bootloader

# 2. 刷入前面下载的 recovery 文件 boot.img
fastboot flash boot boot.img

# 3. 进入 crDroid 的 recovery 系统
fastboot reboot recovery

# 进入 recovery 后,通过音量和电源键选择 Apply Update > Apply from ADB

# 4. 通过命令 adb 侧载命令刷入 Rom
adb sideload <rom_file>.zip

# 5. 可以刷入 GApps
adb sideload <GApps>.zip

# 重启进入系统

其他问题

  • 如何从刷机包中获取 boot.img 文件?

    前面在刷入 crDroid 时使用到了 boot.img,这实际是系统的启动镜像,在刷入其他系统时也采用这种方式。

    boot.img 可以从刷机包.zip 文件中提取,有的刷机包解压后可以直接找到 boot.img,没有的话可以找到 payload.bin 文件,使用payload_dumper提取。

    docker run --rm -v "${PWD}":/data -it vm03/payload_dumper /data/payload.bin --out /data
  • 如何刷入 Magisk?

    topjohnwu/Magisk: The Magic Mask for Android下载安装 apk 文件,安装 > 选择并修补一个文件 > 选择上面的 boot.img,Magisk 会修补 boot.img 生成修补后的镜像 patched_boot.img,将镜像在 bootloader 刷入即可。

    fastboot flash boot patched_boot.img
  • Magisk 模块 - PlayIntegrityFix 通过 Play 保护机制认证

    因为刷机在 Play 商店的 Play 保护机制认证会提示设备未经验证,这导致有些软件无法正常使用,比如 ChatGPT,为了通过这个验证,可以刷入 Magisk 模块 chiteroman/PlayIntegrityFix: Fix Play Integrity (and SafetyNet) verdicts.

  • Magisk 模块 - Shamiku 隐藏 Root

    有些软件会检测手机 root 信息,妨碍软件的正常使用,可以使用Shamiku 模块。Shamiku 默认采用黑名单模式,仅对在 Magisk 中选择排除的 APP 生效,如果平时没有特殊的软件需要唤醒授权,可以采用白名单模式,将会对所有软件都隐藏 Root,但是已授权的应用不影响。

    启用白名单需要在data/adb/shamiko目录下创建空白文件名 whitelist,修改后打开 Magisk 会看到 Shamiku 已经成为了白名单模式。

  • 如何为没有无线调试功能的设备启用无线调试?

    Android 11 之后,安卓有了无线调试,可以通过设备的 ip 地址和随机端口连接设备。但是在 Android 11 之前,如果想要实现远程调试功能,可以通过设置 ADB 服务监听 TCP 端口。

    # usb 已连接设备的前提下或者 termux 命令行中
    su
    adb shell
    stop adbd
    setprop service.adb.tcp.port 5555
    start adbd
    exit
    
    # 通过 ip 地址连接
    adb connect <ip_addr>
  • 安卓终端工具 Termux

    # 启用 termux 存储权限,可以读取本地文件目录
    termux-setup-storage
    
    # termux 中使用 adb 连接本机
    # 开发者选项,启用无线调试功能
    adb connect <ip_addr>:<port>
    adb connect localhost:<port>
    
  • DSU 动态系统更新

    Android 11 之后,安卓系统引入了 DSU 加载器,打开设备的开发者模式,可以找到 DSU loader 这个选项,它可以帮你安装一个 GIS 系统到 A/B slot 的另一个分区,安装成功之后,只需要重启就可以启动到新安装的 GIS,开启一个新的原生体验,再次重启后回到主系统,两者互不影响。

    但是实际测试,在开发者模式下的 DSU loader 安装 GIS 系统后,每次重启后卡开机 Logo 后,又重启到了主系统。

    好在有一个帮助自定义安装的 GIS 系统的 DSU 工具—DSU Sideloader,下载软件后,在Community GSIs下载想要尝试的 GIS 系统,后续只需在 DSU Sideloader 里面操作。

    试了几个 GIS 系统,多数都是卡开机 Logo,只测试出Pixel OS Android 14可以正常开机成功,不知道是什么原因。