android OTA升级包制作
2016-05-09 16:39
344 查看
java -Xmx2048m -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/testkey.x509.pem build/target/product/security/testkey.pk8
这个key是debug模式下自动生成的key
你也可以通过openssl创建自己私有的key
OTA打包过程中会自动使用生成的key进行签名,OTA升级包里签名的位置如下
│ [OTA PACKAGE]
│ └─META-INF
│ CERT.RSA
│ CERT.SF
│ MANIFEST.MF
│└─com
│---└─android
│------otacert
1.使用Android的打包命令制作oTA升级包
整个项目编译完成后再执行make otapackage
生成的完整升级包会存放在out\debug\target\product\[project name]\ 下
具体名字根据make otapackage的install来确定
生成的过程文件包在out/target/product/ardbeg/obj/PACKAGING/target_files_intermediates/目录下,该文件可用于创建差分升级包
2.OTA包的修改
1)update-script
OTA包解压后META-INF\com\google\android目录下有两个文件
update-binary是一个二进制文件,相当于一个脚本解释器,能够识别updater-script中描述的操作。该文件在Android源码编译后out/target/product/tcc8800/system bin/updater生成,可将updater重命名为update-binary得到。
该文件在具体的更新包中的名字由源码中bootable/recovery/install.c中的宏ASSUMED_UPDATE_BINARY_NAME的值而定。
updater-script:此文件是一个脚本文件,具体描述了更新过程。我们可以根据具体情况编写该脚本来适应我们的具体需求。该文件的命名由源码中bootable/recovery/updater/updater.c文件中的宏SCRIPT_NAME的值而定。
升级时的进度条,升级哪些文件都是这个脚本里指定的。如果需要修改打包的文件,这一般修改这个脚本或替换包里资源文件为主
关于这块网上描述的比较多,不再陈述了,可参考
[src path]\bootable\recovery
其中bootable\recovery\updater\install.c
该函数中注册的子函数可直接在update-script脚本中调用
部分嵌入式产品中,bootloader,开机画面等分区的烧写读取都是自己定义的,需要更新这种分区就需要在注册函数里,增加私有的函数
3)修改已产生的升级包
解压缩update.zip,并根据上述规则修改update-script脚本和资源文件
重新打包,打包时记住一定要用存储模式打包,千万不要选择有任何压缩内容相关的方式。否则签名会失败
再参考第0条手动签名新的包文件刷机就可以了
3.OTA差分升级包
先 make otapackage 分别制作新旧两个包。
用于制作差分包的包文件在如下目录下
out/target/product/[produce name]/obj/PACKAGING/target_files_intermediates/
因需要先刷到旧版本中才能使用差分包,故需要做版本管理的就要把中间文件和完整包都保存下来,分别在如下路径(需要同时生成的匹配的版本)
out/target/product/[produce name]/obj/PACKAGING/target_files_intermediates/
out/target/product/[produce name]/
再用新旧obj目录对应文件产生差分包
相关文章推荐
- (4.1.40.1)Android得到控件在屏幕中的坐标
- 关于Android 内存泄露整理
- android 自定义控件---圆形方向盘
- 【Android】16、体验活动的生命周期(上)
- (4.1.40)android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- Android Studio 运行发生异常failed to create jvm error code -4
- Android 完美实现图片圆角和圆形(对实现进行分析)
- android 录制系统内置声音 android remote submix audio.r_submix.default.so
- OpenCV 3.1.0+android 2.0 无需下载opencv manager配置
- 关于在android开发时图像识别so文件不兼容的问题
- Android沉浸式状态栏使用方法,让你的状态栏不一样
- android activity返回键被dialog屏蔽
- android基础总结篇之八:创建及调用自己的ContentProvider
- Android屏幕适配经验
- 《Android 开发艺术探索》笔记——(3)View 的事件体系
- 必须知道的Android屏幕自适应解决方案
- Android性能优化以及数据优化方法
- make update-api
- Android工程依赖:android中打包含有Activity以及资源文件的jar包在工程中调用
- Android自动回放工具——RERAN