基于Android Q的OTA包制作/签名(包含差分包)

先介绍一下关于OTA

什么是OTA?

通俗的说,OTA升级是指苹果手机通过无线网络下载升级数据包,之后直接安装升级的总称。通常我们利用iPhone手机无线wifi网络登录官方网站找到手机升级所需要的数据包或者直接在手机中找到升级入口进入下载安装等,主要包括iphone4s、iphone4、ipod touch、ipad等产品均可以实现OTA升级,使用过iPhone手机的朋友都知道,一般我们将手机与数据线与电脑连接后,一般是连接itunes实现软件管理、安装或者升级等。但这里的OTA升级降调的是无线升级,借助无线wifi或者GRRS、WAP、CDMA1XD等无线技术完成相关软件与系统的升级。

简言之:手机系统更新包

什么是OTA全包

OTA全包指的是系统大版本更新,更新整个系统,通常OTA包的大小都是1G以上.

什么是OTA差分包

既然有全包 就有差分包,差分包指的是小版本更新,在原有的代码和软件中更新一部分东西,通常大小不超过1G,具体大小看更新内容

进入正题

1.OTA差分包编译大法

  1. 使用make otapackage编译整包,拷贝out目录下的OTA整包,再拷贝out/target/product/dl35/obj/PACKAGING/tart.下的差异包,两个包都放进源代码目录
  2. 对代码改动一些,使得我们升级后能看得出来差异,再执行make otapackage编译整包,拷贝out/target/product/dl35/obj/PACKAGING/tart.目录下的差异包到源代码目录
    生成的结果如下:
    在这里插入图片描述制作命令:
//进入AOSP源码目录下,执行
./build/tools/releasetools/ota_from_target_files -v -p out/host/linux-x86 -k ./vendor/{
    
    project}/{
    
    projcts}/releasekey/us_gms/releasekey -i OTA/old.zip OTA/new.zip old_to_new.zip
    或者 
./build/tools/releasetools/ota_from_target_files -v -p out/host/linux-x86 -k ./vendor/{
    
    project}/{
    
    project}/releasekey/us_gms/releasekey -s vendor/mediatek/proprietary/scripts/releasetools/releasetools.py -i OTA/old.zip OTA/new.zip update2.zip

以上代码即可生成差分包,即可进行卡刷。下面的步骤可看可不看

2.OTA重新签名

第一个路径是需要签名的OTA包,第二个是重新生成的OTA包

java -Xmx1024m -Djava.library.path=out/host/linux-x86/lib64 -jar out/host/linux-x86/framework/signapk.jar -w vendor/{
    
    projects}/{
    
    projects}/releasekey/us_gms/releasekey.x509.pem vendor/{
    
    projects}/{
    
    projects}/releasekey/us_gms/releasekey.pk8 ~/NEWOTA/update.zip ~/NEWOTA/update_with_new_key.zip

3.OTA密钥制作

 Android 源码包里面提供了生成key的工具,development/tools/make_key, 命令如下:
 ./make_key releasekey '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX' rsa
 ./make_key platform  '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX'  rsa
 ./make_key shared '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX'   rsa
 ./make_key media    '/C=CN/ST=ShangHai/L=ShangHai/O=XXX/OU=XXX/CN=XXXV/emailAddress=XXX' rsa 

猜你喜欢

转载自blog.csdn.net/q1210249579/article/details/118895457