一种Android平台上生产预置更新方法、装置、设备和介质制造方法及图纸

技术编号:31374665 阅读:12 留言:0更新日期:2021-12-15 11:07
本发明专利技术提供一种Android平台上生产预置更新方法、装置、设备和介质,涉及移动设备生产技术领域,本发明专利技术实施例针对开启AVB2.0的高版本Android系统不能通过自定义OTA包差分升级实现客制化需求,提供一种支持开启AVB2.0的高版本系统的自定义OTA差分包客制化升级方法,通过对高版本Android系统进行简单的改造,利用Android系统原生的recovery模式OTA升级流程来实现Android设备的客制化,不需要Android设备新增功能,造成系统功能的冗余,不增加开发及生产的负担,提高了系统定制化的生产效率,便于代码维护和系统镜像管理,能够快速应对不同客户的多种应用场景需求。同客户的多种应用场景需求。同客户的多种应用场景需求。

【技术实现步骤摘要】
一种Android平台上生产预置更新方法、装置、设备和介质


[0001]本专利技术涉及移动设备生产
,特别涉及一种Android平台上生产预置更新方法、装置、设备和介质。

技术介绍

[0002]验证启动(VerifiedBoot)是Android一个重要的安全功能,主要是为了防止启动镜像被篡改,保护boot/recovery/system/vendor等一些受保护分区的完整性,提高系统的抗攻击能力。早期的android系统没有验证启动这一安全功能,Google在AndroidO(8.0)上才推出了一个统一的验证启动框架Android verified boot2.0。AVB2.0既保证了基于该框架开发的verified boot功能能够满足CDD(Compatibility Definition Document)要求,又保留了各家OEM定制启动校验流程的弹性。AVB2.0引入一个新的分区:vbmeta.img(verified boot metadata),然后把所有需要校验的内容在编译时就计算好打包到这个分区,那么启动过程中BootLoader只需要校验vbmeta.img,就能确认vbmeta内的数据是否可信,再用vbmeta中的数据去比对boot.img,dtbo.img,system.img,vendor.img即可。除了最基本的验证启动之外,AVB2.0还提供防止回滚的功能和对AB分区备份的支持。自从AndroidP(9.0)版本开始,AVB2.0安全功能强制必须开启的。针对无AVB2.0的Android设备客户定制化需求,常用的方案是制作自定义的OTA差分包进行系统升级。自定义OTA差分包的制作方便,使用灵活,一套系统镜像烧写包,可以用不同的自定义OTA差分包升级为不同的客制化设备,在设备生产过程中提高工厂的生产效率。
[0003]但是,从AndroidP(9.0)版本开始,常用的自定义的OTA差分升级方案无法更新系统的system或者vendor分区。要实现AndroidP及后续版本设备的客制化要求,又不能禁用系统的AVB2.0功能,只能通过更改系统代码来重编系统镜像以满足不同客制化需求。系统工程师还需要维护多套系统代码,设备生产中需要烧录多套系统镜像。这种传统的客制化方式,效率低下,开发的代码维护和生产的系统镜像管理不方便,无法快速应对不同客户的多种应用场景需求。

技术实现思路

[0004]本专利技术要解决的技术问题,在于提供一种Android平台上生产预置更新方法、装置、设备和介质,针对开启AVB2.0的高版本Android系统不能通过自定义OTA包差分升级实现客制化需求,提供一种支持开启AVB2.0的高版本系统的自定义OTA差分包客制化升级方法。
[0005]第一方面,本专利技术提供了一种Android平台上生产预置更新方法,包括:系统预改造过程以及生产预置更新过程;
[0006]所述系统预改造过程包括:
[0007]在Android系统中新建自定义分区,用于存放预置的自定义文件,所述自定义文件包括APK安装包、开机动画/声音、关机动画/声音和/或系统属性文件;
[0008]在脚本解释器update

binary中增加API,所述API用于提取指定压缩包内的所有文件到指定的目标目录;
[0009]为PackageManagerService服务增加对自定义分区内APK安装包的管理;
[0010]更改系统设置,在Android系统启动过程中,当加载各个分区属性文件时,优先查找所述自定义分区内是否有系统属性文件,若有,则加载所述系统属性文件,若无,则正常加载系统默认属性文件;
[0011]当系统启动到加载开机动画/声音时,优先查找所述自定义分区内的开机动画/声音,若自定义分区有开机动画/声音文件则优先使用,若自定义分区没有开机动画/声音,则使用系统分区内的开机动画/声音;
[0012]在系统关机过程中,当系统执行到加载关机动画/声音时,优先查找所述自定义分区内的关机动画/声音,若自定义分区有关机动画/声音文件则优先使用,若自定义分区没有关机动画/声音,则使用系统分区内的关机动画/声音;
[0013]所述生产预置更新过程包括:
[0014]获取自定义OTA差分包发送到终端然后预处理,运行预置的系统升级接口,重启系统进入recovery模式执行OTA包升级。
[0015]进一步地,所述生产预置更新过程中,获取自定义OTA差分包发送到终端然后预处理,具体包括:
[0016]步骤S1、根据客制化需求制作自定义OTA差分包,所述自定义OTA差分包为二次压缩的压缩包;
[0017]步骤S2、将所述自定义OTA差分包使用私钥签名;
[0018]步骤S3、将签名后的自定义OTA差分包与签名文件下载到终端;
[0019]步骤S4、使用预置的公钥验签自定义OTA差分包;
[0020]步骤S5、当验签通过后,对自定义OTA差分包进行预处理。
[0021]进一步地,所述步骤S1具体包括:
[0022]S1a、根据定制目录模板在Linux环境下生成自定义OTA差分包,定制目录模板包含META

INF和自定义分区目录,自定义分区目录下的子目录及文件结构与源码编译出的自定义分区镜像目录结构相匹配;
[0023]S1b、向自定义分区目录的ver.ini文件写入应用版本号,从而确认自定义OTA差分包升级的版本信息;
[0024]S1c、压缩META

INF和自定义分区目录为一个压缩包,然后对压缩包进行签名,其中签名密钥与Android系统编译时候使用的密钥一致,签名后的压缩包放入指定的目标目录下;
[0025]S1d、对目标目录再次压缩生成自定义OTA差分包,该二次压缩的自定义OTA差分包用于系统升级时运行解压命令直接解压到默认的系统升级路径上。
[0026]进一步地,所述步骤S2具体包括:
[0027]对自定义OTA差分包使用密钥进行二次签名,所述二次签名密钥对应的公钥证书预置在系统的安全模块上,二次签名采用2048位RSA算法和SHA

256算法进行签名,首先将自定义OTA差分包的压缩包进行SHA

256运算得到HASH值,然后对所述HASH值使用私钥进行RSA签名,把签名的结果与验签用的工作证书以设定格式保存为SIG文件。
[0028]进一步地,所述步骤S4具体包括:
[0029]从SIG文件中提取出工作证书和签名;
[0030]用预置的公钥作为根公钥验证工作证书是否合法,如果验证通过继续下一步,验证失败则退出升级流程;
[0031]通过SHA

256算法计算自定义OTA差分包的HASH值,作为签名的原始数据与提取出的签名数据用工作证书进行验签,如果验签通过继续进行OTA差分包升级,如果验签失败则退出升级流程。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Android平台上生产预置更新方法,其特征在于,包括:系统预改造过程以及生产预置更新过程;所述系统预改造过程包括:在Android系统中新建自定义分区,用于存放预置的自定义文件,所述自定义文件包括APK安装包、开机动画/声音、关机动画/声音和/或系统属性文件;在脚本解释器update

binary中增加API,所述API用于提取指定压缩包内的所有文件到指定的目标目录;为PackageManagerService服务增加对自定义分区内APK安装包的管理;更改系统设置,在Android系统启动过程中,当加载各个分区属性文件时,优先查找所述自定义分区内是否有系统属性文件,若有,则加载所述系统属性文件,若无,则正常加载系统默认属性文件;当系统启动到加载开机动画/声音时,优先查找所述自定义分区内的开机动画/声音,若自定义分区有开机动画/声音文件则优先使用,若自定义分区没有开机动画/声音,则使用系统分区内的开机动画/声音;在系统关机过程中,当系统执行到加载关机动画/声音时,优先查找所述自定义分区内的关机动画/声音,若自定义分区有关机动画/声音文件则优先使用,若自定义分区没有关机动画/声音,则使用系统分区内的关机动画/声音;所述生产预置更新过程包括:获取自定义OTA差分包发送到终端然后预处理,运行预置的系统升级接口,重启系统进入recovery模式执行OTA包升级。2.根据权利要求1所述的方法,其特征在于:所述生产预置更新过程中,获取自定义OTA差分包发送到终端然后预处理,具体包括:步骤S1、根据客制化需求制作自定义OTA差分包,所述自定义OTA差分包为二次压缩的压缩包;步骤S2、将所述自定义OTA差分包使用私钥签名;步骤S3、将签名后的自定义OTA差分包与签名文件下载到终端;步骤S4、使用预置的公钥验签自定义OTA差分包;步骤S5、当验签通过后,对自定义OTA差分包进行预处理。3.根据权利要求2所述的方法,其特征在于,所述步骤S1具体包括:S1a、根据定制目录模板在Linux环境下生成自定义OTA差分包,定制目录模板包含META

INF和自定义分区目录,自定义分区目录下的子目录及文件结构与源码编译出的自定义分区镜像目录结构相匹配;S1b、向自定义分区目录的ver.ini文件写入应用版本号,从而确认自定义OTA差分包升级的版本信息;S1c、压缩META

INF和自定义分区目录为一个压缩包,然后对压缩包进行签名,其中签名密钥与Android系统编译时候使用的密钥一致,签名后的压缩包放入指定的目标目录下;S1d、对目标目录再次压缩生成自定义OTA差分包,该二次压缩的自定义OTA差分包用于系统升级时运行解压命令直接解压到默认的系统升级路径上。4.根据权利要求2所述的方法,其特征在于,所述步骤S2具体包括:
对自定义OTA差分包使用密钥进行二次签名,所述二次签名密钥对应的公钥证书预置在系统的安全模块上,二次签名采用2048位RSA算法和SHA

256算法进行签名,首先将自定义OTA差分包的压缩包进行SHA

256运算得到HASH值,然后对所述HASH值使用私钥进行RSA签名,把签名的结果与验签...

【专利技术属性】
技术研发人员:肖敏陈嘉祺谢纯珀
申请(专利权)人:福建魔方电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1