Payload.bin 提取刷入需要指定a分区吗,原系统在b分区
在 V/A B 分区结构的设备上,手动通过 Fastboot 刷入从 payload.bin 提取的镜像时,不需要也不建议手动为每个分区指定后缀(如 _a 或 _b)。
以下是具体的操作逻辑和建议步骤:
1. 为什么不需要手动指定 _a 或 _b?
当你执行 fastboot flash system system.img 而不带后缀时,Fastboot 工具会自动将镜像刷入当前的活动槽位(Current Active Slot)。
- 如果你的原系统在 B 分区,且当前手机处于 B 槽位,直接刷入会覆盖 B 分区(这通常用于系统修复)。
- 如果你想把系统刷入 A 分区,正确的做法是先切换槽位,而不是手动给命令加后缀。
2. 正确的操作流程
为了确保刷入过程安全且不混乱,建议遵循以下流程:
第一步:确认当前槽位
fastboot getvar current-slot假设返回 current-slot: b。
第二步:决定刷入位置
- 方案 A(覆盖原系统): 继续停留在 B 槽位刷入。
方案 B(刷入新分区,保留旧系统): 切换到 A 槽位再刷入(更推荐,因为失败了还能切回 B)。
fastboot --set-active=a
第三步:进入 Fastbootd 模式(关键)
由于 system、vendor、product 等分区现在大多被包含在 super 动态分区中,普通的 Fastboot 模式无法直接刷入,必须进入 Fastbootd:
fastboot reboot fastboot(此时屏幕应显示蓝色字样的 Fastbootd 菜单)
第四步:批量刷入
在 Fastbootd 模式下,直接执行不带后缀的命令:
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash vendor vendor.img
...(其他镜像)3. 特殊情况:何时需要指定后缀?
只有在极少数情况下,或者你非常确定自己在做什么时,才使用 _a 或 _b。例如,你身处 A 槽位,但想强行修改 B 槽位的某个镜像:
fastboot flash boot_b boot.img风险提示: 手动指定后缀容易导致“槽位污染”,即 A 槽位的内核配上了 B 槽位的系统,导致手机彻底无法启动。
总结建议
- 先切槽位:
fastboot --set-active=a。 - 再进 Fastbootd:
fastboot reboot fastboot。 - 直接刷入:不加任何
_a或_b后缀。
这样操作,Fastboot 会根据你设置的活动槽位,自动帮你完成所有分区对应关系,是最稳妥的做法。由于你之前提到需要保留数据,请务必跳过 userdata.img 的刷入。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
小菜鸡
评论已关闭