点击查看-X黑手网
点击查看-X黑手网
[NetHunter]「0基础了解刷机」第二篇「分区篇」

[NetHunter]「0基础了解刷机」第二篇「分区篇」

【刷机前必读】Android 分区机制全解析(A/B|vA/B|Dynamic|Super)

刷机有风险,操作需谨慎
本帖仅用于技术交流,请在充分理解原理后再进行实操
变砖后果自负,主力机请勿尝试


⚠️ 强烈提醒(必看)

  • 请确认你的设备是否支持解锁 Bootloader(BL 锁)

  • 不建议使用主力机刷机

  • 刷机失败 ≠ 教程有问题

  • 错误操作导致的变砖请自行承担

⚠️ 民间玄学提示(信不信随你)
不建议在晚上 7 点 – 早上 7 点刷机
精神状态差 + 网络波动 = 翻车概率 MAX


一、为什么要先懂分区?

很多刷机翻车的原因不是 ROM 有问题,而是:

  • 不清楚自己是 A/B 还是 vA/B

  • 不知道 system 已经不是实体分区

  • 还在用 “只刷 system.img” 的远古教程

👉 在 Android 10+ 时代,不懂分区 = 必砖


二、Android 7.0 之前 —— 单分区时代(Only A)

特点

  • 单系统分区(Only A 或 Only B)

  • 结构简单

常见分区

  • /system:系统分区

  • /boot:内核 + ramdisk

  • /vendor:厂商文件

  • /userdata:用户数据

OTA 机制

  • 下载完整系统镜像

  • 重启进入 Recovery

  • 直接覆盖 system

优缺点

✅ 实现简单、稳定
❌ 更新必须停机,更新失败容易炸


三、Android 7.0 之后 —— 真·A/B 双分区

设计目的

👉 无缝 OTA 更新(Seamless Update)


分区结构

 
system_a / system_b
boot_a / boot_b
vendor_a / vendor_b
……

工作原理

  • 当前运行在 A 槽位

  • OTA 更新写入 B 槽位

  • 重启 → 切换到 B

  • 成功后同步更新 A

回滚机制

  • OTA 更新失败 → 自动回滚

  • 仅对 OTA 有效

⚠️ 注意:

手动 fastboot 刷坏 boot_a / system_a
Bootloader 不会帮你回滚,直接变砖


优缺点

✅ 更新不中断使用
✅ 有自动回滚
❌ 占用存储空间大
❌ 刷机复杂度上升


四、Android 10 起 —— Dynamic Partition(动态分区)

⚠️ Android 10 开始,Google 强烈推动动态分区 + A/B 架构


结构变化

  • system / vendor / product / odm 等

  • 不再是固定大小分区

  • 所有逻辑分区 → 从 super 分区映射

super 分区

  • 物理大分区

  • 内部按需切割给 system / vendor / product 等


优缺点

✅ 灵活调整分区大小
✅ 更适合不同 ROM / 厂商定制
❌ 非 A/B 架构下不支持回滚


五、Android 11+ —— Virtual A/B(虚拟双分区)

为什么要 vA/B?

  • 物理双 system 太占空间

  • Dynamic 分区更灵活


vA/B 核心机制

  • 只有一套系统

  • 有两个逻辑槽位(slot a / slot b)

  • 通过 Snapshot + COW 实现更新

工作流程

  1. 当前运行 slot a

  2. OTA 创建 snapshot

  3. 更新写入 slot b(COW)

  4. 重启 → 切换 slot

  5. 合并完成 → 旧系统消失

⚠️ 重点:

vA/B 的回滚只存在于 更新阶段
更新完成后 不可回退到旧系统


六、Android 11 的 vA/B(已淘汰)

  • 使用 内核 COW

  • 不支持压缩

  • 空间占用高

  • 已被废弃


七、Android 12 / 13 的 vA/B(现行方案)

改进点

  • Android 专用 COW 格式

  • 支持压缩

  • Android 13 起:

    • 移除内核 COW

    • 移除 dm-snapshot 依赖

👉 目前主流方案


八、Dynamic + Super 的真实设备映射结构

 
/system 
  └─ dm-verity 
    └─ dm-linear 
      └─ super

各层说明

  • super:物理分区

  • dm-linear:映射逻辑分区

  • dm-verity:完整性校验

  • /system:最终挂载点


九、新手最容易翻车的 3 个操作(必看)

❌ 只刷 system.img
❌ 不看当前 slot 就刷
❌ 忘了刷 / 刷错 vbmeta


十、刷机前必查命令(强烈建议)

 
fastboot getvar current-slot 
fastboot getvar has-slot:system 
fastboot getvar is-logical:system

十一、总结

Android 10+ 刷机核心不再是 system,而是:

slot + boot/init_boot + vbmeta + 分区结构


 
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 共2条

请登录后发表评论

    暂无评论内容