Android Fota(差分包)制作

本文介绍了Android FOTA(Over-the-Air)包的生成步骤。首先,完成系统编译后,通过`make otapackage`创建target package,然后提取ota_target_files.zip。接着,将base和target版本的ota包重命名并合并,使用特定命令生成FOTA更新包。最后,对update包进行签名。在生成过程中可能遇到FactoryTest.apk的差分问题,解决方案是整体升级FactoryTest.apk。
摘要由CSDN通过智能技术生成

Android Fota包制作

Fota包生成步骤

在Android系统编译(make)完成后,执行 make otapackage即可生成制作差分包所需的target package。
target包路径:android/out/target/product/msm_xxxx/target_files-package.zip
解压target_files-package.zip后,会看到一个ota_target_files.zip,这是制作Fota包需要的ota包。

Fota包是利用base版本(刷在手机中版本)ota_target_files.zip和目标版本的ota_target_files.zip进行制作的。
将base版本的ota_target_files.zip重命名为base.zip,目标版本的ota_target_files.zip重命名为target.zip,将base.zip复制到目标版本target_files-package.zip的解压目录,然后在该目录下执行Fota生成命令。

Fota生成命令:
使用testkey签名Fota包:
./build/tools/releasetools/ota_from_target_files -v --block -p out/host/linux-x86 -k build/target/product/security/testkey -i base.zip target.zip update.zip
使用releasekey签名Fota包:
./build/tools/releasetools/ota_from_target_files -v --block -p out/host/linux-x86 -k build/target/product/security/releasekey -i base.zip target.zip update.zip

对update包重新签名:
java -Xmx2048m -Djava.library.path=out/host/linux-x86/lib64 -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/releasekey.x509.pem build/target/product/security/releasekey.pk8 update.zip update1.zip
Note:不同平台Fota包的生成命令可能存在差异。

问题

在Fota的生成过程中,我遇到过如下问题:
错误log:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/huangxiaobin/fota/0112/build/tools/releasetools/blockimgdiff.py", line 1535, in SplitLargeApks
    src_name, tgt_name, imgdiff_output)
AssertionError: Failed to create imgdiff patch between //system/app/FactoryTest/FactoryTest.apk and //system/app/FactoryTest/FactoryTest.apk:
W/ziparchive(
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 单片机分升级是一种升级方式,它能够在保证升级过程安全和可靠的前提下,减少升级时间和数据包大小,提高了升级效率。而在单片机分升级中,上位机软件分包则是一种将整个升级包拆分成多个小包逐步传输的方法。 在单片机分升级过程中,由于升级包的大小可能较大,并且在传输过程中还需要保证数据的完整性和准确性,因此一次性将整个升级包传输到单片机可能会存在困难。因此,将升级包拆分成多个小包,逐步将其传输到单片机,可以降低传输的压力和出错概率,提高升级的稳定性和成功率。 在实践中,上位机软件分包具体操作过程一般为:首先将整个升级包分割成多个块,然后依次将每个块传输到单片机,单片机接收到每个块时即可进行验证和更新操作。在这个过程中,需要确保每个小块的大小和顺序都能够正确匹配,同时还需要确定数据传输的方式和协议,以确保整个升级过程的成功和重新升级的可行性。 总的来说,单片机分升级和上位机软件分包是在保证升级安全和效率的前提下,提高升级精度和稳定性的有效措施。通过这种方法,可以更好地实现单片机的远程升级,减少出错和重复升级的可能,从而提高产品的质量和可靠性。 ### 回答2: 单片机分升级(FOTA)是指在不需要将整个程序烧录到芯片中的情况下,仅仅升级芯片中的一部分程序。而上位机软件分包是指将大文件切割成多个小文件传输,以提高传输效率和稳定性。这两个概念的结合,可以为单片机升级提供更加高效的解决方案。 单片机分升级需要将新程序与旧程序进行比较,找出异部分,将异部分烧录到芯片中,从而实现升级。上位机软件分包则可以将大文件切割成多个小文件,并分为多个包逐个传输,这样可以避免传输中断或错误,提高传输效率和稳定性。将分升级和上位机软件分包相结合,可以使单片机升级更加高效并且更加安全。 对于大功率设备或者移动设备,上位机软件分包更是必不可少的方案。这些设备通常数据传输量大,而通信环境不够稳定,使用上位机软件分包可以减少意外中断或者传输错误的影响,有效减少重传的次数,提高数据传输效率和可靠性。 总之,单片机分升级和上位机软件分包的相结合能够为单片机升级提供更加高效和安全的解决方案,尤其是对于大功率和移动设备,更是不可或缺的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值