Openharmony rk3568 AB系统刷机及升级调测
环境
系统:OpenHarmony 5.1.0 Release
产品:rk3568
编译
vendor/hihope/rk3568/config.json
修改enable_absystem属性为true,编译完成后在out/产品/packages/phone/images目录下将会生成config_ab.cfg和parameter_ab.txt。
也可以手动从device_board_hihope仓的rk3568/loader/目录获取config_ab.cfg和parameter_ab.txt文件。
烧录
1、在rk3568烧写工具中,鼠标右键分区表,选择config_ab.cfg导入配置,parameter项选择parameter_ab.tx

可以看到需要配置为ab分区的分区名都添加了“_a”和“_b”的命名方式,未添加的表示不需要区分ab分区,无需通过ab方式升级。
这里需要注意:rk3568烧写ab分区镜像需要烧录bootctrl镜像,否则无法正常开机,非ab分区镜像默认是不勾选的。
如需重新烧录回非ab分区镜像,需要擦除misc和bootctrl分区,否则无法正常开机。
bootctrl.img可通过https://gitcode.com/openharmony/device_board_hihope/pull/393/ 获取。
2、擦除misc分区

启动完成后
1、执行cat /proc/cmdline
能够找到bootslots=2,说明bootargs添加bootslots信息成功
如图所示

2、执行param get ohos.boot.bootslots
得到的结果是2,说明bootslots信息被成功写到了parameter中
3、执行ls -l /dev/block/by-name
能够找到system_b、vendor_b,说明新增的B分区设备节点创建成功

4、执行df -h
查看当前系统挂载分区

可以看到根文件系统(一个 ” / ” 表示)挂载的是mmcblk0p7,从上一张图中可以找到对应mmcblk0p7的是system_a;也可以看到/vendor中挂载的是mmcblk0p8,从上一张图中可以找到对应mmcblk0p8的是vendor_a。也就是说,现在挂载的是默认分区为A分区。
AB分区切换
setenforce 0:将selinux权限关掉,shell没有节点读写权限
begetctl partitionslot getslot:查看 slot 值
begetctl partitionslot setactive 2: 将活动分区slot设置为B分区的slot值
begetctl partitionslot setactive 1:将活动分区slot设置为A分区的slot值
切换步骤:
-
begetctl partitionslot setactive 待切换分区的slot值
-
reboot 重启设备

可以看到分区已切换为B分区。
更多推荐


所有评论(0)