Android 6.0 OTA脚本添加匹配产品名升级

本文介绍了如何在Android 6.0的OTA更新脚本中添加产品名匹配,确保更新包只对特定设备有效。内容涉及Platform RK3368,运行在Android 6.0系统上,内核版本为3.10.0。通过修改升级脚本中的匹配规则,可以增强设备升级包的针对性。

Platform: RK3368

OS: Android 6.0

Kernel: 3.10.0


make otapackage默认生成的更新包,是以ro.product.device的值来判断升级包是否匹配当前设备。
在升级包中的升级脚本里面可以看到:
META-INF/com/google/android/updater-script

getprop("ro.product.device") == "DEVICE" || abort("This package is for \"DEVICE\" devices; this is a \"" + getprop("ro.product.device") + "\".");

如果还想将升级匹配做严格点,可以将产品名匹配也加入进来:

build
diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index f6d8560..1e2b2e8 100755
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -123,6 +123,14 @@ class EdifyGenerator(object):
                device, device)
     self.script.append(cmd)
 
+  def AssertName(self, name):
+    """Assert that the name identifier is the given string."""
+    cmd = ('getprop("ro.product.name") == "%s" || '
+           'abort("This package is for \\"%s\\"; '
+           'this device is \\"" + getprop("ro.product.name") + "\\".");') % (
+               name, name)
+    self.script.append(cmd)
+
   def AssertSomeBootloader(self, *bootloaders):
     """Asert that the bootloader version is one of *bootloaders."""
     cmd = ("assert(" +
diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py
index ec8a475..d7f636f 100755
--- a/tools/releasetools/ota_from_target_files.py
+++ b/tools/releasetools/ota_from_target_files.py
@@ -415,6 +415,8 @@ def AppendAssertions(script, info_dict, oem_dict=None):
   if oem_props is None or len(oem_props) == 0:
     device = GetBuildProp("ro.product.device", info_dict)
     script.AssertDevice(device)
+    name = GetBuildProp("ro.product.name", info_dict)
+    script.AssertName(name)
   else:
     if oem_dict is None:
       raise common.ExternalError(

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值