CN114020299A - 一种安卓设备系统文件的更新方法 - Google Patents

一种安卓设备系统文件的更新方法 Download PDF

Info

Publication number
CN114020299A
CN114020299A CN202111357124.1A CN202111357124A CN114020299A CN 114020299 A CN114020299 A CN 114020299A CN 202111357124 A CN202111357124 A CN 202111357124A CN 114020299 A CN114020299 A CN 114020299A
Authority
CN
China
Prior art keywords
file
files
path
patch
package
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111357124.1A
Other languages
English (en)
Inventor
范旭峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN202111357124.1A priority Critical patent/CN114020299A/zh
Publication of CN114020299A publication Critical patent/CN114020299A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种安卓设备系统文件的更新方法,通过拓展系统文件路径查询的方式,以运行时重定向路径的方式更新系统文件,保证了系统镜像的完整性,不会影响系统正常的OTA升级和开机数据完整性校验;并且在做到仅更新变更涉及文件的同时,也保持了对Android 10之前的版本的可移植性,以及可更新文件的范围广,实现缩短开发周期,降低人力成本的优势。

Description

一种安卓设备系统文件的更新方法
技术领域
本发明涉及智能电视技术领域,尤其涉及一种安卓设备系统文件的更新方法。
背景技术
智能终端设备为了更好的服务用户,需要不断进行升级迭代更新系统固件,实现缺陷修复,功能更新,而很多时候版本更新点只涉及少量系统文件变化。
现有的系统升级方式通过下载并安装升级包的方式进行,来实现将设备上的旧版固件更新为新版固件的需求。Android官方的更新方式包含OTA升级,APEX升级。其中OTA升级会将整个系统固件状态从旧版本切换为新版本,由于整个系统版本发生改变,需要对整个系统进行测试。APEX升级为Android 10上引入的模式,支持对特定系统文件进行更新,不改变系统版本,但官方未提供对10以前的Android版本的适配,且该方法目前只支持部分系统文件,不够灵活。因此APEX升级虽然解决了前者测试量大的问题,却存在难以移植低版本Android、覆盖文件范围小的问题。
发明内容
本发明的目的就在于为了解决上述问题而提供一种安卓设备系统文件的更新方法,本发明在做到仅更新变更涉及文件的同时,也保持了对Android 10之前的版本的可移植性,以及可更新文件的范围广,实现缩短开发周期,降低人力成本的优势。
本发明通过以下技术方案来实现上述目的:
一种安卓设备系统文件的更新方法,包括以下步骤:
S1.系统修改;实现系统动态库文件的更新,在系统连接器命名空间配置文件中,将/data/test路径添加到namespace.default.search.paths的首位;
S2.获取需要更新的文件列表,由开发人员根据版本变更信息整理出需要更新的文件;
S3.制作补丁包,其中包含需要更新的文件,以及对应的描述文件desc.txt;
S4.云端部署补丁包;将patch.zip上传到升级业务平台,配置固件版本低于V2的设备能够获取到该补丁文件;
S5.终端获取补丁包;终端设备开机后,升级管理程序同时启动,向升级业务平台请求补丁文件,判断到符合升级条件时下载patch.zip文件,下载完毕后调用安装管理程序进行安装;
S6.安装补丁;安装管理程序对patch.zip进行签名验证,解析desc.txt文件获得待安装文件列表L1,解析/data/test目录下的文件结构>获得已安装文件列表L2;对比L1、L2,作如下处理:将L2独有的条目,同时存在于L1、L2但哈希值不同的条目从/data/test下删除;将L1独有的条目,同时存在于L1、L2但哈希值不同的条目按照L1中的路径从patch.zip中解压,更新/data/test目录权限为仅root用户可写。
进一步方案为,所述步骤S4中,补丁包在编译服务器上生成,具体步骤如下:
a)根据实际业务需求,按照文件类型分类定义更新规则A,A中包含文件类型、保存路径的对应关系;
b)编译源码构建发布版本固件,生成包含固件内所有文件的压缩包B;
c)开发人员根据更新需求输入对应的待更新文件列表C;
d)从B内提取出C中罗列的文件,并打包生成压缩包D;
e)依据关系A生成D内文件与实际保存路径的对应关系,计算D内文件各自的哈希值生成D内文件与哈希值的对应关系,最终得到一个D内文件的信息列表,包含文件在压缩包内的路径,文件哈希,文件解压后的保存路径,将该列表生成一个索引文件E,追加到D中;
f)利用安卓标准签名方法对D进行签名生成补丁包F。
进一步方案为,所述步骤S5中,补丁包由云端分发服务器、终端管理程序下发,具体步骤如下:
a.操作人员将上述补丁包生成装置产生的补丁包文件F上传到云端分发服务器上;
b.操作人员配置需要升级文件F的终端设备范围G;
c.终端管理程序定期向云端分发服务器发送升级请求,云端分发服务器判断终端是否包含在G内,对包含在G内的终端返回补丁包F的下载路径H;
d.终端管理程序下载路径H的文件并保存为I,下载完成后将I传递给补丁包安装装置。
进一步方案为,所述步骤s6中,补丁包安装在终端上,具体步骤如下:
1)依据上述补丁包生成装置内定义的对应关系A,对A中包含的每一个文件类型A1,保存路径A2,在系统加载、执行该类型文件的代码位置添加文件搜索路径,使系统优先采用A2处存在的文件,若A2处不存在需要的文件则采用原始路径处的文件;
2)收到来自补丁包下发装置传递过来的路径后,打开并锁定文件I,对文件的签名进行验证;
3)验证通过后加载I内的文件索引文件E,利用其中的文件哈希,文件解压后的保存路径生成一个路径-哈希的对应列表J;
4)依据上述补丁包生成装置内定义的对应关系A,分析其中包含的所有保存路径内的文件,若存在文件则计算各文件的哈希,并生成一个路径-哈希的对应列表K;
5)对比列表J、K。若K中存在路径未包含在J中的条目,路径包含在J中而哈希不同的条目,则删除这些条目对应的文件;若J中存在路径未包含在K中的条目,则解压这些条目到对应的路径;
6)最终在系统调用或执行到对应文件时,按照新增默认路径、原始路径的顺序进行文件查找,优先使用新增路径下的文件,从而实现更新效果。
进一步方案为,所述步骤s3中,需要先完整构建生成包含修补内容的V2版本固件,取用其中的target-files-package目标结果target_files.zip。从target_files.zip中解压出A、B、C文件,并添加到压缩文件patch.zip中;计算A、B、C文件的哈希值,生成描述文件desc.txt,每个文件的描述占用一行,每行包括文件在zip包中的存储路径、文件的MD5码、文件的解压的路径;将desc.txt添加到patch.zip中。使用签名工具signapk.jar对patch.zip进行签名。
本发明的有益效果在于:
1、升级包中仅包含实际功能变化的文件。保证了补丁包体积较小。由于程序、库等文件在编译过程中会编入环境信息,因此新版本固件即使源码没有改动也会有大量文件发生变化,导致发布时需要测试整个系统功能以保证功能不受编译影响。本方法通过排除与更新无关的文件,仅需要测试变更点,减少了测试资源的投入。
2、本方法的更新方式采用了拓展系统文件路径查询的方式,以运行时重定向路径的方式更新系统文件,保证了系统镜像的完整性,不会影响系统正常的OTA升级和开机数据完整性校验。
3、本方法仅修改定制了系统的文件路径查询方式,相比于安卓10原生提供的APEX功能代码改动小,移植到不同安卓版本的难度低,工作量小。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1:本方法中的补丁包下载流程;
图2:本方法中的补丁包安装流程;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的-2范围。
在任一实施例中,如图1所示,本发明的一种安卓设备系统文件的更新方法,以下实施例基于Android 9平台,通过更新三个库文件进行举例说明。
S1.系统修改定制。定制系统实现动态库文件更新。在系统连接器命名空间配置文件中,将/data/test路径添加到namespace.default.search.paths的首位。
S2.获取需要更新的文件列表。具体的,由开发人员根据版本变更信息整理出需要更新的文件,这里以动态库文件A、B、C举例。
S3.制作补丁包。其中包含需要更新的文件A、B、C,以及对应的描述文件desc.txt。
具体的,需要先完整构建生成包含修补内容的V2版本固件,取用其中的target-files-package目标结果target_files.zip。从target_files.zip中解压出A、B、C文件,并添加到压缩文件patch.zip中。计算A、B、C文件的哈希值,生成描述文件desc.txt,每个文件的描述占用一行,每行包括文件在zip包中的存储路径、文件的MD5码、文件的解压的路径。将desc.txt添加到patch.zip中。使用签名工具signapk.jar对patch.zip进行签名。
A e45fb04f8cb3da9cc2abf0843f5b8e26 /data/test/lib/A.so
B 679bfeb14c54f0fa857b4f5cce4f83e6 /data/test/lib/B.so
C 38ec9beec13dfeb73ff1dcd5a0f06206 /data/test/lib/C.so
S4.云端部署补丁包。将patch.zip上传到升级业务平台,配置固件版本低于V2的设备能够获取到该补丁文件。
S5.终端获取补丁包。终端设备开机后,升级管理程序同时启动,向升级业务平台请求补丁文件,判断到符合升级条件时下载patch.zip文件。下载完毕后调用安装管理程序进行安装。
S6.安装补丁。安装管理程序对patch.zip进行签名验证,解析desc.txt文件获得待安装文件列表L1,解析/data/test目录下的文件结构>获得已安装文件列表L2。对比L1、L2,作如下处理:将L2独有的条目,同时存在于L1、L2但哈希值不同的条目从/data/test下删除;将L1独有的条目,同时存在于L1、L2但哈希值不同的条目按照L1中的路径从patch.zip中解压。更新/data/test目录权限为仅root用户可写。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

Claims (5)

1.一种安卓设备系统文件的更新方法,其特征在于,包括以下步骤:
S1.系统修改;实现系统动态库文件的更新,在系统连接器命名空间配置文件中,将/data/test路径添加到namespace.default.search.paths的首位;
S2.获取需要更新的文件列表,由开发人员根据版本变更信息整理出需要更新的文件;
S3.制作补丁包,其中包含需要更新的文件,以及对应的描述文件desc.txt;
S4.云端部署补丁包;将patch.zip上传到升级业务平台,配置固件版本低于V2的设备能够获取到该补丁文件;
S5.终端获取补丁包;终端设备开机后,升级管理程序同时启动,向升级业务平台请求补丁文件,判断到符合升级条件时下载patch.zip文件,下载完毕后调用安装管理程序进行安装;
S6.安装补丁;安装管理程序对patch.zip进行签名验证,解析desc.txt文件获得待安装文件列表L1,解析/data/test目录下的文件结构>获得已安装文件列表L2;对比L1、L2,作如下处理:将L2独有的条目,同时存在于L1、L2但哈希值不同的条目从/data/test下删除;将L1独有的条目,同时存在于L1、L2但哈希值不同的条目按照L1中的路径从patch.zip中解压,更新/data/test目录权限为仅root用户可写。
2.如权利要求1所述的一种安卓设备系统文件的更新方法,其特征在于,所述步骤S4中,补丁包在编译服务器上生成,具体步骤如下:
a)根据实际业务需求,按照文件类型分类定义更新规则A,A中包含文件类型、保存路径的对应关系;
b)编译源码构建发布版本固件,生成包含固件内所有文件的压缩包B;
c)开发人员根据更新需求输入对应的待更新文件列表C;
d)从B内提取出C中罗列的文件,并打包生成压缩包D;
e)依据关系A生成D内文件与实际保存路径的对应关系,计算D内文件各自的哈希值生成D内文件与哈希值的对应关系,最终得到一个D内文件的信息列表,包含文件在压缩包内的路径,文件哈希,文件解压后的保存路径,将该列表生成一个索引文件E,追加到D中;
f)利用安卓标准签名方法对D进行签名生成补丁包F。
3.如权利要求1所述的一种安卓设备系统文件的更新方法,其特征在于,所述步骤S5中,补丁包由云端分发服务器、终端管理程序下发,具体步骤如下:
a.操作人员将上述补丁包生成装置产生的补丁包文件F上传到云端分发服务器上;
b.操作人员配置需要升级文件F的终端设备范围G;
c.终端管理程序定期向云端分发服务器发送升级请求,云端分发服务器判断终端是否包含在G内,对包含在G内的终端返回补丁包F的下载路径H;
d.终端管理程序下载路径H的文件并保存为I;下载完成后将I传递给补丁包安装装置。
4.如权利要求1所述的一种安卓设备系统文件的更新方法,其特征在于,所述步骤s6中,补丁包安装在终端上,具体步骤如下:
1)依据上述补丁包生成装置内定义的对应关系A,对A中包含的每一个文件类型A1,保存路径A2,在系统加载、执行该类型文件的代码位置添加文件搜索路径,使系统优先采用A2处存在的文件,若A2处不存在需要的文件则采用原始路径处的文件;
2)收到来自补丁包下发装置传递过来的路径后,打开并锁定文件I,对文件的签名进行验证;
3)验证通过后加载I内的文件索引文件E,利用其中的文件哈希,文件解压后的保存路径生成一个路径-哈希的对应列表J;
4)依据上述补丁包生成装置内定义的对应关系A,分析其中包含的所有保存路径内的文件,若存在文件则计算各文件的哈希,并生成一个路径-哈希的对应列表K;
5)对比列表J、K;若K中存在路径未包含在J中的条目,路径包含在J中而哈希不同的条目,则删除这些条目对应的文件;若J中存在路径未包含在K中的条目,则解压这些条目到对应的路径;
6)最终在系统调用或执行到对应文件时,按照新增默认路径、原始路径的顺序进行文件查找,优先使用新增路径下的文件,从而实现更新效果。
5.如权利要求1所述的一种安卓设备系统文件的更新方法,其特征在于,所述步骤s3中,需要先完整构建生成包含修补内容的V2版本固件,取用其中的target-files-package目标结果target_files.zip;从target_files.zip中解压出A、B、C文件,并添加到压缩文件patch.zip中;计算A、B、C文件的哈希值,生成描述文件desc.txt,每个文件的描述占用一行,每行包括文件在zip包中的存储路径、文件的MD5码、文件的解压的路径;将desc.txt添加到patch.zip中;使用签名工具signapk.jar对patch.zip进行签名。
CN202111357124.1A 2021-11-16 2021-11-16 一种安卓设备系统文件的更新方法 Pending CN114020299A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111357124.1A CN114020299A (zh) 2021-11-16 2021-11-16 一种安卓设备系统文件的更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111357124.1A CN114020299A (zh) 2021-11-16 2021-11-16 一种安卓设备系统文件的更新方法

Publications (1)

Publication Number Publication Date
CN114020299A true CN114020299A (zh) 2022-02-08

Family

ID=80064571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111357124.1A Pending CN114020299A (zh) 2021-11-16 2021-11-16 一种安卓设备系统文件的更新方法

Country Status (1)

Country Link
CN (1) CN114020299A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707977A (zh) * 2012-05-17 2012-10-03 江苏中科梦兰电子科技有限公司 一种基于Android应用软件的增量升级方法
CN104408370A (zh) * 2014-12-25 2015-03-11 珠海全志科技股份有限公司 安卓系统安全性验证方法及其验证装置
CN106528086A (zh) * 2016-10-10 2017-03-22 广州视源电子科技股份有限公司 一种安卓软件升级的方法及系统
CN106648765A (zh) * 2016-12-07 2017-05-10 京信通信系统(中国)有限公司 嵌入式设备固件补丁包生成及固件差分升级方法和装置
CN107025119A (zh) * 2017-03-06 2017-08-08 山东大学 一种Android智能终端系统软件热修复的方法
CN107301070A (zh) * 2017-06-20 2017-10-27 福州汇思博信息技术有限公司 一种升级方法及终端
CN108388442A (zh) * 2018-01-22 2018-08-10 深圳市亿道数码技术有限公司 一种安卓系统中固件的补丁管理方法及系统
CN109324821A (zh) * 2018-10-10 2019-02-12 湖南长城医疗科技有限公司 一种自助终端系统版本管理方法
CN109391936A (zh) * 2018-09-19 2019-02-26 四川长虹电器股份有限公司 一种ota升级包加密下载的方法
CN110597545A (zh) * 2019-09-04 2019-12-20 北京方研矩行科技有限公司 一种基于ota组件的热补丁智能升级方法及系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102707977A (zh) * 2012-05-17 2012-10-03 江苏中科梦兰电子科技有限公司 一种基于Android应用软件的增量升级方法
CN104408370A (zh) * 2014-12-25 2015-03-11 珠海全志科技股份有限公司 安卓系统安全性验证方法及其验证装置
CN106528086A (zh) * 2016-10-10 2017-03-22 广州视源电子科技股份有限公司 一种安卓软件升级的方法及系统
CN106648765A (zh) * 2016-12-07 2017-05-10 京信通信系统(中国)有限公司 嵌入式设备固件补丁包生成及固件差分升级方法和装置
CN107025119A (zh) * 2017-03-06 2017-08-08 山东大学 一种Android智能终端系统软件热修复的方法
CN107301070A (zh) * 2017-06-20 2017-10-27 福州汇思博信息技术有限公司 一种升级方法及终端
CN108388442A (zh) * 2018-01-22 2018-08-10 深圳市亿道数码技术有限公司 一种安卓系统中固件的补丁管理方法及系统
CN109391936A (zh) * 2018-09-19 2019-02-26 四川长虹电器股份有限公司 一种ota升级包加密下载的方法
CN109324821A (zh) * 2018-10-10 2019-02-12 湖南长城医疗科技有限公司 一种自助终端系统版本管理方法
CN110597545A (zh) * 2019-09-04 2019-12-20 北京方研矩行科技有限公司 一种基于ota组件的热补丁智能升级方法及系统

Similar Documents

Publication Publication Date Title
CN102622241B (zh) 一种软件升级方法及装置
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
US20070294686A1 (en) Program upgrade system and method for ota-capable device
KR101003888B1 (ko) 전자 장치에서의 3-단계 부팅 프로세스
CN105100191A (zh) 一种云编译实现Java应用安装的方法、装置及系统
CN111381858B (zh) 一种应用程序升级方法、服务器及终端设备
US20080216066A1 (en) Program upgrade system and method for ota-capable mobile terminal
CN103294514A (zh) 系统软件版本集成方法、编译服务器及系统
CN104991793A (zh) 一种用于应用程序分包的方法、装置以及系统
EP1803313A1 (en) Method and system for controlling software version updates
CN103701856A (zh) 一种定义及终端设备获取升级包的方法
CN112882729A (zh) 应用镜像升级方法、装置、计算机设备和存储介质
CN106951284B (zh) 基于安卓系统应用的用户界面升级方法、装置及智能终端
US20130111458A1 (en) Method and system for on-demand patch generation and management
CN110750286A (zh) OTA升级Mbn的管理方法、装置、系统、设备和介质
CN104699511A (zh) 插件升级方法及装置
CN110647337A (zh) 物联网mcu空中固件升级方法
CN110765394A (zh) so文件加载方法、装置、存储介质及终端设备
CN110413292B (zh) 应用程序的轻应用安装方法、移动终端及存储介质
CN104932887A (zh) 一种平台系统的插件管理方法和平台系统
CN112286543B (zh) 一种应用服务部署方法及装置
CN111683005B (zh) 一种物联网智能网关设备及其构建方法
CN108536444B (zh) 插件编译方法、装置、计算机设备和存储介质
CN114020299A (zh) 一种安卓设备系统文件的更新方法
CN115840598A (zh) 基于应用市场的微前端架构系统、开发方法、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination