HarmonyOS 鸿蒙Next目前支持热补丁吗

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next目前支持热补丁吗 目前支持热补丁吗,有限制条件

2 回复
  1. 仅支持修复应用的TS和C++代码,对应的文件为.abc文件(TS编译后的文件)和.so文件(C++编译后的文件),不支持对资源的修复。
  2. 不支持新增.abc文件和.so文件。
  3. 快速修复包部署时要确保对应应用包已安装,如果未安装,则部署失败。
  4. 快速修复包中配置的包名和应用版本号必须和已安装的包名和版本号应用相同,如果不同则部署失败。
  5. 如果已经部署过快速修复包,新部署的快速修复包的版本号必须大于之前快速修复包的版本号,否则部署失败。
  6. 快速修复包的签名信息和待修复的应用的签名信息必须一致,否则会部署失败。
  7. 新的应用版本发布安装时,会清理掉快速修复包。

1. 编写配置文件patch.json

在本地新建一个patch.json文件,放到的项目任意目录,方便后续打包工具能够找到该文件,配置编写示例如下:

{
 "app" : {
  "bundleName" : "com.ohos.quickfix",
  "versionCode" : 1000000, // 应用版本号
  "versionName" : "1.0.0.1",
  "patchVersionCode" : 1000000, // 补丁版本号
  "patchVersionName" : "1.0.0.1"
 },
 "module" : {
  "name" : "entry",
  "type" : "patch",
  "deviceTypes" : [
   "default",
   "tablet"
  ],
  "originalModuleHash" : "11223344556677889900" // 待修复hap包的sha256值
 }
}

2. 快速修复TS文件的代码

在DevEco Studio中修改TS文件后,编译HAP,可以在工程目录下找到对应的abc文件,如build\default\cache\default\LegacyCompileETS\jsbundle\temporary\pages\index.abc。

3. 生成.hqf的快速修复包

通过本地OpenHarmony SDK路径的toolchains文件夹下的app_packing_tool.jar生成.hqf包,执行打包命令如下:

$ java -jar app_packing_tool.jar --mode hqf --json-path patch.json --lib-path libs --ets-path patchs --out-path entry-default-unsigned.hqf --force true

4. 快速修复包的签名

签名与hap签名相同,将上述生成的entry-default-unsigned.hqf包,通过签名工具进行签名。可以使用本地OpenHarmony SDK路径的toolchains文件夹下的hap-sign-tool.jar,命令如下:

$ java -jar hap-sign-tool.jar sign-app -keyAlias "OpenHarmony Application Release" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "OpenHarmonyApplication.pem" -profileFile "ohos_provision_release.p7b" -inFile "entry-default-unsigned.hqf" -keystoreFile "OpenHarmony.p12" -outFile "entry-signed-release.hqf" -keyPwd "123456" -keystorePwd "123456"

5. 安装快速修复包

将上述entry-signed-release.hqf包推送到设备上

hdc.exe file send .\entry-signed-release.hqf /data/

在设备上通过下述命令行安装补丁包

$ bm quickfix -a -f /data/entry-signed-release.hqf

更多关于HarmonyOS 鸿蒙Next目前支持热补丁吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next目前支持热补丁。

热补丁技术是一种在不重启应用或设备的情况下,对正在运行的系统或应用进行代码或数据修复的技术。鸿蒙系统在设计时考虑到了系统的稳定性和可维护性,因此集成了热补丁功能。这意味着,当系统或应用中的某些部分出现问题时,开发者可以通过发布热补丁来快速修复这些问题,而无需用户重启设备或应用。

热补丁的支持使得鸿蒙系统能够更灵活地应对各种突发情况,提高了系统的可用性和稳定性。同时,这也为开发者提供了一种高效的问题修复手段,降低了维护成本。

需要注意的是,虽然鸿蒙系统支持热补丁,但在实际应用中,热补丁的发布和实施需要遵循一定的规范和流程。开发者需要确保热补丁的安全性和稳定性,并在发布前进行充分的测试。此外,用户也需要及时更新系统或应用,以获取最新的热补丁修复。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部