Android 11 增加recovery分区大小
前言
在进行Frameworks开发过程中遇到需要客户需要修改开机logo,但是客户提供的图片过大,导致recovery.img大于设置的大小报错如下
error: +out/target/product/rk3566a_r/recovery.img too large (131807232 > 131663296
一、问题解决
1.定位问题
在经过查询报错的定义字段大小“131663296”,找到在device 的公共配置文件中找到定义recovery分区大小的地方。
jun@yialim-linux:~/ssd2/rk3399/rk_android_r_sdk/device$ grep -r -s "131663296"
rockchip/common/BoardConfig.mk: BOARD_RECOVERYIMAGE_PARTITION_SIZE ?= 131663296
2.解决问题
找到定义recovery分区大小的地方,将分区大小改为原先的两,(注:建议等比增加或者减小,这个单位是字节,如果修改成不是指定倍数大小的值,有可能会导致问题)
--- a/device/rockchip/common/BoardConfig.mk
+++ b/device/rockchip/common/BoardConfig.mk
@@ -177,7 +177,7 @@ else
endif
BOARD_CACHEIMAGE_PARTITION_SIZE ?= 402653184
BOARD_BOOTIMAGE_PARTITION_SIZE ?= 41943040
- BOARD_RECOVERYIMAGE_PARTITION_SIZE ?= 131663296
+ BOARD_RECOVERYIMAGE_PARTITION_SIZE ?= 263326592
BOARD_DTBOIMG_PARTITION_SIZE ?= 4194304
# Header V3, add vendor_boot
ifeq (1,$(strip $(shell expr $(BOARD_BOOT_HEADER_VERSION) \>= 3)))
总结
通过查询报错字段,找到设置大小的地方,粗暴解决(快,但是还是建议去了解分区加载的过程)
每日赠言
适当的总结与计划,总结能找到问题,计划能找到方向