Android14 OTA添加logo分区升级

下述改动在 vendor 侧完成。
该需求只在项目初期 进行添加, 会改变分区,无法支持跨大版本。

1.修改分区表

AB升级:将AB升级分区表partition_table_emmc_ab.csv内的logo分区一栏删除,然后分别添加上logo_a与logo_b分区,同时将logo_a与logo_b分区的OTA_Update状态由N改为Y;

non-AB升级:将non-AB升级分区表partition_table_emmc.csv内的logo分区一栏的OTA_Update状态由N改为Y;

将partition_table_emmc_ab.csv与partition_table_emmc.csv内的logo.bin修改为logo.img,因为OTA打包时只会打包分区img文件。

  • /vendor_ap_s0/vendor/mediatek/proprietary/tools/ptgen/MT6765/partition_table_emmc.csv

    在这里插入图片描述

  • /vendor_ap_s0/vendor/mediatek/proprietary/tools/ptgen/MT6765/partition_table_emmc_ab.csv

    在这里插入图片描述

2.修改编译文件
  • /vendor_ap_s0/vendor/mediatek/proprietary/bootable/bootloader/lk/Android.mk
     INSTALLED_LK_TARGET := $(PRODUCT_OUT)/lk.img
-    INSTALLED_LOGO_TARGET := $(PRODUCT_OUT)/logo.bin
+    INSTALLED_LOGO_TARGET := $(PRODUCT_OUT)/logo.img
  • /vendor_ap_s0/vendor/mediatek/proprietary/bootable/bootloader/lk/build_lk.mk
 INSTALLED_LK$(LK_MODE)_TARGET := $(PRODUCT_OUT)/lk$(call to-lower,$(LK_MODE)).img
-INSTALLED_LOGO$(LK_MODE)_TARGET := $(PRODUCT_OUT)/logo$(call to-lower,$(LK_MODE)).bin
+INSTALLED_LOGO$(LK_MODE)_TARGET := $(PRODUCT_OUT)/logo$(call to-lower,$(LK_MODE)).img
 TARGET_LK$(LK_MODE)_OUT := $(TARGET_OUT_INTERMEDIATES)/LK$(LK_MODE)_OBJ
 TARGET_LK$(LK_MODE)_ROOT_OUT := $(if $(filter /% ~%,$(TARGET_LK$(LK_MODE)_OUT)),,$(LK_ROOT_DIR)/)$(TARGET_LK$(LK_MODE)_OUT)
 BUILT_LK$(LK_MODE)_TARGET := $(TARGET_LK$(LK_MODE)_OUT)/build-$(LK_PROJECT)/lk.img
@@ -43,7 +43,7 @@ $(INSTALLED_LK$(LK_MODE)_TARGET): $(BUILT_LK$(LK_MODE)_TARGET) $(MTK_LK_DTB_TARG
 
 $(INSTALLED_LOGO$(LK_MODE)_TARGET): $(BUILT_LK$(LK_MODE)_TARGET)
        $(hide) mkdir -p $(dir $@)
-       $(hide) cp -f $(dir $<)logo.bin $@
+       $(hide) cp -f $(dir $<)logo.img $@
 
 .PHONY: lk clean-lk clean-lk$(LK_MODE)
  • /vendor_ap_s0/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/rules.mk
 BOOT_LOGO_RESOURCE := $(BUILDDIR)/$(BOOT_LOGO_DIR)/boot_logo.raw
-LOGO_IMAGE := $(BUILDDIR)/logo.bin
+LOGO_IMAGE := $(BUILDDIR)/logo.img
  • /vendor_ap_s0/vendor/mediatek/proprietary/custom/mt6765/security/cert_config/img_list.txt
 [single_bin]
-logo.bin=logo
+logo.img=logo
 boot.img=boot
 recovery.img=recovery
 spmfw.img=spmfw
3.添加权限

如果遇到ota升级失败报下面的错误

E update_engine: [ERROR:utils.cc(530)] Opening block device /dev/block/by-name/logo_b: Permission denied (13)
E update_engine: [ERROR:partition_writer.cc(104)] Unable to open file /dev/block/by-name/logo_b: Permission denied (13)
E update_engine: [ERROR:partition_writer.cc(300)] Unable to open target partition logo on slot B, file /dev/block/by-name/logo_b

按如下添加

  • /vendor_ap_s0/device/mediatek/mt6765/ueventd.mt6765.emmc.rc
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值