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(

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

被折叠的 条评论
为什么被折叠?



