欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

DFOTA更新后,QCS2290设备分区切换失效问题

最编程 2024-02-23 09:15:36
...

在做了OTA升级后重启后,设备一直重启,多次重启后会正常进入slot A分区

开机log如下:

Active Slot _b is bootable, retry count 4
Booting from slot (_b)
....
[   14.470311] device-mapper: verity-fec: 253:11: FEC: recursion too deep
[   14.471821] Workqueue: events_freezable mmc_rescan
[   14.478405] device-mapper: verity: 253:11: metadata block 152276 is corrupted
[   14.483168] pstate: 60400005 (nZCv daif +PAN -UAO)
[   14.483176] pc : sdhci_request+0x1d8/0x2b0
[   14.498992] reboot: Restarting system with command 'dm-verity device corrupted'

从log来看OTA升级是成功的,并且将启动b 分区,但是metadata 分区校验失败了,而校验数据是放在vbmeta.img 镜像文件中,所以可能是vbmeta 分区数据有问题。

解决办法

1. 保证制作的OTA包中含有vbmeta.img,目录为ota_target_files/IMAGES/vbmeta.img

2. 保证需要升级的分区包含了vbmeta 分区,即AB_OTA_PARTITIONS 属性中含有vbmeta,比如:

device/qcom/bengal/BoardConfig.mk

....
# in the full set mentioned above as part of your make commandline
AB_OTA_PARTITIONS ?= boot vendor vbmeta
....