CN1758220A - 一种升级软件版本的方法 - Google Patents
一种升级软件版本的方法 Download PDFInfo
- Publication number
- CN1758220A CN1758220A CN 200410080701 CN200410080701A CN1758220A CN 1758220 A CN1758220 A CN 1758220A CN 200410080701 CN200410080701 CN 200410080701 CN 200410080701 A CN200410080701 A CN 200410080701A CN 1758220 A CN1758220 A CN 1758220A
- Authority
- CN
- China
- Prior art keywords
- version
- software
- difference
- tabulation
- handheld device
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种升级软件版本的方法,该方法包括:a、将第一版本软件与第二版本软件进行比较,得出版本区别列表,所述版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识;b、具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。该方法可以避免下载待升级文件,这对于变化不大的软件版本来说,是一种高效的软件版本升级方式。而且,不需要改变任何现有软件流程和机制,只需要是在手机版本升级软件上稍做修改即可,因此实现简单。
Description
技术领域
本发明涉及软件升级技术,特别是指一种升级软件版本的方法。
背景技术
随着科学技术的发展,各种手持设备已逐渐成为人们生活、工作中不可缺少的一部分,如手机、个人数字助理(PDA)等。为了不断满足人们的需要,制造商也在不断开发和更新手持设备。而同时,由于制造商推出产品的周期也越来越短,当产品上市时,经常会有一些缺陷或者不尽人意之处。因此,随着技术的日趋完善,售出产品也需要不断的升级,其升级过程往往是一个软件版本升级过程。这里,软件版本是指软件每一次升级,所有功能都集合成一个文件,以二进制形式存在,配合相应硬件设备,共同实现相关功能。由于软件可能存在错误,在不修改硬件的前提下,经常会出现软件版本升级的情况。
对于软件来说,通常将整体软件根据功能的不同,存储在不同的只读存储器(ROM)空间,软件存储区的划分使得整体软件依赖物理存储而分开,从而实现了升级部分软件功能。以手持设备软件存储区为例,一般软件存储区的划分如图1所示,图1中的软件存储区分为四个部分:Boot存储区、App可执行文件区、文件系统区和保留的专用数据存储区。各个部分的功能如下:
Boot存储区存储的是Boot软件,Boot软件是整个软件的引导,有三个功能:
1、软件启动时,引导软件的启动过程;
2、软件升级时,通过计算机(PC)端的相关软件与PC建立通信,并把PC上的App代码下载到手持设备中;
3、在App软件损坏时,引导重新加载App的可执行二进制文件到“App可执行文件区”。
App可执行文件区,用于存储软件运行程序。
文件系统区,用于存储文件,如摄像头获取的图片文件、通过网络获取的MP3文件等。
保留的专用数据存储区,用于保留一些关键参数,包括某些参数的备份。
通常所说的软件升级,主要是指升级App可执行文件区中的软件,升级方法为:Boot软件通过和PC端的相关软件与PC建立通信,并把PC中的App软件下载到手持设备中。由于app软件较大,这种app软件升级,需要将app待加载软件下载到本地空间,此时需要大量占据本地空间,而如果本地flash空间较小,将无法进行升级操作。而且,在升级过程中,需要将全部的app软件都升级一次,对于大的软件而言,要花很长的时间。
发明内容
有鉴于此,本发明的目的在于提供一种升级软件版本的方法,该方法可以不需要将全部应用软件下载到本地进行软件版本升级,进而节省升级时间,减少占用存储空间。
为了达到上述目的,本发明提供了一种升级软件版本的方法,该方法包含:a.将第一版本软件与第二版本软件进行比较,得出版本区别列表;
b.具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。
所述版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识。
步骤b包括:
b1、手持设备获取版本区别列表;
b2、手持设备中boot软件根据版本区别列表中的版本升级标识,确定该版本区别列表是否是自身需要的,如果是,则利用该版本区别列表更新自身flash中的第一版本软件实现,否则,跳出本流程。
步骤b2中所述修改包括:
b21、获取版本区别列表记录的版本区别位置和该位置需要修改成的内容,在第一版本软件中的所述版本区别位置处,按照获取到所述要修改成的内容刷新该位置的内容。
所述版本区别列表进一步包括第二版本数据的大小。
步骤a中所述版本区别列表是将第一版本软件与第二版本软件按字节、比特位或区域比较得出的。
当步骤a中所述版本区别列表保存在网络侧或PC机中时,步骤b1中所述手持设备是根据与网络侧或PC机通信获取到所述版本区别列表的。
所述通信为有线或无线通信方式。
步骤a中所述版本区别列表保存在手机中,步骤b1中手持设备是通过直接读取自身保存的所述版本区别列表实现的。
本发明对原软件版本与新软件版本进行比较,得出两个版本的版本区别列表,然后利用版本区别列表更新手机中的软件版本。该方法可以避免下载待升级文件,这对于变化不大的软件版本来说,是一种高效的软件版本升级方式。而且,该方法不需要改变任何现有软件流程和机制,只需要是在手机版本升级软件上稍做修改即可,因此实现简单。
附图说明
图1为手机存储区间的划分示意图;
图2为实现本发明方法的流程示意图;
图3为本发明生成软件版本的示意图;
图4为本发明利用版本区别列表完成版本软件升级的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
由于软件版本的编译、连接过程是在整个软件大工程的基础上进行,一般而言,软件的工程会保留不变,即上一个版本与下一个版本之间,使用同一个工程,因此对于成熟的软件而言,软件版本之间的差异会很小,这些较小的差异不仅表现在源代码上,同时也表现在编译连接生成后的bin文件上。
因此,本发明的核心思想是:比较两个软件版本之间的区别得到软件版本区别列表,手持设备通过软件版本区别列表中软件二进制文件的区别,直接修改自身的原软件版本中需要改变的部分。这里,软件版本区别列表主要是一种特殊定义的文件格式,该文件格式以某一个软件版本文件为参照物,通过直接比较两个软件版本的方式,以特定的格式来记录两个软件版本之间的差异。参见图2所示,实现本发明方法包括以下步骤:
步骤201:将第一版本软件与第二版本软件进行比较,得出版本区别列表。
本发明中的版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识。其中,版本升级标识,用于描述本版本区别列表用于何种版本软件到何种版本软件的升级,如从版本A到版本B的升级。版本区别位置,用于表示第二版本与第一版本之间的二进制代码内容改变的位置。结束标识,用于表示该版本区别列表结束。
具体生成版本区别列表的过程是这样实现的:首先,记录先后两个版本标识,描述出自身是从何种版本升级到何种版本的区别列表,然后按照字节、位或块比较两个版本升级软件的不同,记录内容不同的位置标识以及该位置需要更新的内容,在记录完成后,设置结束标识,此时生成了版本区别列表。而且,具体按哪种方式进行比较,可以根据手机设备中保存需要更新软件的具体的flash类型选择,如NAND型flash,必须按block进行读写或擦除操作。
举例说明,在图3中,版本A为手机flash中保存的原软件版本的一部分,版本B为新软件版本的一部分,在版本A和版本B中都是以0xxxxx为首地址,其分别有96个byte的数据块。图3所示的版本区别列表包括三部分,其中,第一部分为版本升级描述,表示版本升级标识,即from版本A to版本B;第二部分表示两个版本的有区别的位置以及欣版本中该位置的内容,如:版本A和版本B之间在0xxxxx+27、0xxxxx+28、0xxxxx+29、0xxxxx+30、0xxxxx+93、0xxxxx+94、0xxxxx+95不同,其后,在版本区别列表中分别记录版本B中这些位置的内容,即要更新的内容ff、ff、ff、ff、89、89、89。步骤202:手持设备获取版本区别列表,并判断该版本区别列表是否为自身需要的,如果是,则执行步骤203,否则,升级失败,跳出本流程。
这里,手持设备获取版本区别列表文件的方式不限,可以直接将版本区别列表下载到手机本地文件系统中,也可以将版本区别列表保存在网络上或在PC上,然后手机通过某种通信方式,与网络侧或PC机连接后获取。
而且,手持设备中的Boot区需要通过版本升级标识所描述的信息,确定判断该版本区别列表是自身需要的,这需要手持设备具有自识别功能。比如,手持设备中当前版本为A版本,如果版本区别列表中的版本升级标识表示是从版本A到版本B的升级,那么,手持设备是可以利用该版本升级列表进行升级的,如果版本区别列表中的版本升级标识表示是从版本B到版本C的升级,则此时手持设备是不能利用该版本升级列表来升级的,否则会出现升级错误。
步骤203:具有第一软件版本的手持设备,利用所述该版本区别列表更新第一版本软件。这里,第一软件版本即为原软件版本,第二软件版本即为新软件版本。
在实际应用中,需要开发一种PC端的工具软件,该工具软件将先后的两个版本软件,即最终的bin文件,作为输入,然后对这两个bin文件按bit、byte或block进行比较,对比较不同之处在版本区别列表文件中列出。
以下结合图3以可直接读写字节(byte)的NOR型flash为例,来说明PC机端工具软件的工作原理。
按照byte,比较图3所示的版本A和版本B,确定两个版本软件共有7个byte不同,在版本区别列表文件中,将内容不同的地址和要修改成的内容,都一一记录。
而对于版本A或版本B增加或减少的说明,可采用下面方式:
0xyyyy del 表示版本B比版本A少此空间;
0xyyyy xx 表示版本B比版本A多此空间,xx表示具体内容。
当然,版本区别列表文件中,也可以适当增加一些其他部分必要信息,如版本B的数据大小等。而且版本区别列表文件并不局限于某一种具体的文件格式,简单的文本文件格式即可满足要求。
版本升级过程是建立版本区别列表文件的逆过程,其具体如下:手机获取版本区别列表文件,手机中的boot软件识别版本区别列表文件,获取版本区别列表记录的版本区别位置和该位置需要修改成的内容,然后按照该版本区别列表文件中描述的相对位置,重新改写flash的相关部分。
如,在图4中,版本区别列表已记录版本A和版本B之间在0xxxxx+27、0xxxxx+28、0xxxxx+29、0xxxxx+30、0xxxxx+93、0xxxxx+94、0xxxxx+95不同,而且分别记录版本B中这些位置的内容,即ff、ff、ff、ff、89、89、89。因此,在升级的过程中,需要在0xxxxx+27、0xxxxx+28、0xxxxx+29、0xxxxx+30、0xxxxx+93、0xxxxx+94、0xxxxx+95的位置处,分别将其原来的内容更新为ff、ff、ff、ff、89、89、89。
本发明不局限于某种具体设备中的软件更新,比如:手机、PDA等各种手持设备。而且,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (9)
1、一种升级软件版本的方法,其特征在于,该方法包括以下步骤:
a.将第一版本软件与第二版本软件进行比较,得出版本区别列表;
b.具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。
2、根据权利要求1所述的方法,其特征在于,所述版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识。
3、根据权利要求2所述的方法,其特征在于,步骤b包括:
b1、手持设备获取版本区别列表;
b2、手持设备中boot软件根据版本区别列表中的版本升级标识,识别该版本区别列表是否是自身需要的,如果是,则利用该版本区别列表更新自身的第一版本软件,否则,跳出本流程。
4、根据权利要求3所述的方法,其特征在于,步骤b2中所述更新包括:
b21、获取版本区别列表记录的版本区别位置和该位置需要修改成的内容,在第一版本软件中的所述版本区别位置处,按照获取到所述要修改成的内容刷新该位置的内容。
5、根据权利要求2所述的方法,其特征在于,所述版本区别列表进一步包括第二版本数据的大小。
6、根据权利要求1所述的方法,其特征在于,步骤a中所述版本区别列表是将第一版本软件与第二版本软件按字节、比特位或区域比较得出的。
7、根据权利要求3所述的方法,其特征在于,当步骤a中所述版本区别列表保存在网络侧或PC机中时,步骤b1中所述手持设备是根据与网络侧或PC机通信获取到所述版本区别列表的。
8、根据权利要求7所述的方法,其特征在于,所述通信为有线或无线通信方式。
9、根据权利要求3所述的方法,其特征在于,步骤a中所述版本区别列表保存在手持设备中,步骤b1中手持设备是通过直接读取自身保存的所述版本区别列表实现的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410080701 CN1758220A (zh) | 2004-10-08 | 2004-10-08 | 一种升级软件版本的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410080701 CN1758220A (zh) | 2004-10-08 | 2004-10-08 | 一种升级软件版本的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1758220A true CN1758220A (zh) | 2006-04-12 |
Family
ID=36703610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410080701 Pending CN1758220A (zh) | 2004-10-08 | 2004-10-08 | 一种升级软件版本的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1758220A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007118419A1 (fr) * | 2006-04-14 | 2007-10-25 | Beijing Rising International Software Co., Ltd | Procédé et dispositif de mise à jour d'un logiciel |
CN100449487C (zh) * | 2006-11-03 | 2009-01-07 | 北京启明星辰信息技术有限公司 | 支持多种产品的软件统一升级技术方法 |
CN101110788B (zh) * | 2006-07-20 | 2010-09-08 | 阿里巴巴集团控股有限公司 | 升级客户端软件的方法及系统 |
CN102043656A (zh) * | 2011-01-20 | 2011-05-04 | 宇龙计算机通信科技(深圳)有限公司 | 软件管理方法、软件管理服务器 |
CN102147742A (zh) * | 2011-03-18 | 2011-08-10 | 深圳市广和通实业发展有限公司 | 一种嵌入式软件的在线升级方法及系统 |
CN101355454B (zh) * | 2008-09-09 | 2011-10-26 | 中兴通讯股份有限公司 | 一种自动升级分布式网络管理服务器的系统与方法 |
CN101374307B (zh) * | 2008-09-26 | 2012-08-22 | 北京大学 | 一种移动设备中更新数字内容信息的方法及装置 |
CN102999349A (zh) * | 2011-09-19 | 2013-03-27 | 施耐德电器工业公司 | 一种软件升级方法 |
CN103024026A (zh) * | 2012-12-07 | 2013-04-03 | 康佳集团股份有限公司 | 基于Android版多屏互动软件自动更新方法及系统 |
CN103297482A (zh) * | 2012-03-05 | 2013-09-11 | 联想(北京)有限公司 | 信息处理方法和设备 |
CN103577318A (zh) * | 2012-08-07 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种代码检测方法和装置 |
CN104484194A (zh) * | 2014-11-24 | 2015-04-01 | 东软集团股份有限公司 | 车载智能终端的系统更新方法及设备 |
CN104951315A (zh) * | 2014-03-25 | 2015-09-30 | 上海三旗通信科技股份有限公司 | 一种手机软件快速更新下载的方法 |
CN106598608A (zh) * | 2016-12-19 | 2017-04-26 | 深圳天珑无线科技有限公司 | 应用版本更换方法、装置及相关终端 |
CN107844300A (zh) * | 2017-11-03 | 2018-03-27 | 中国银行股份有限公司 | 脚本处理方法及系统 |
CN108701067A (zh) * | 2016-03-01 | 2018-10-23 | 洋马株式会社 | 终端装置以及软件改写程序 |
-
2004
- 2004-10-08 CN CN 200410080701 patent/CN1758220A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007118419A1 (fr) * | 2006-04-14 | 2007-10-25 | Beijing Rising International Software Co., Ltd | Procédé et dispositif de mise à jour d'un logiciel |
CN101110788B (zh) * | 2006-07-20 | 2010-09-08 | 阿里巴巴集团控股有限公司 | 升级客户端软件的方法及系统 |
CN100449487C (zh) * | 2006-11-03 | 2009-01-07 | 北京启明星辰信息技术有限公司 | 支持多种产品的软件统一升级技术方法 |
CN101355454B (zh) * | 2008-09-09 | 2011-10-26 | 中兴通讯股份有限公司 | 一种自动升级分布式网络管理服务器的系统与方法 |
CN101374307B (zh) * | 2008-09-26 | 2012-08-22 | 北京大学 | 一种移动设备中更新数字内容信息的方法及装置 |
CN102043656A (zh) * | 2011-01-20 | 2011-05-04 | 宇龙计算机通信科技(深圳)有限公司 | 软件管理方法、软件管理服务器 |
CN102147742B (zh) * | 2011-03-18 | 2015-04-22 | 深圳市广和通实业发展有限公司 | 一种嵌入式软件的在线升级方法及系统 |
CN102147742A (zh) * | 2011-03-18 | 2011-08-10 | 深圳市广和通实业发展有限公司 | 一种嵌入式软件的在线升级方法及系统 |
CN102999349A (zh) * | 2011-09-19 | 2013-03-27 | 施耐德电器工业公司 | 一种软件升级方法 |
CN102999349B (zh) * | 2011-09-19 | 2016-06-08 | 施耐德电器工业公司 | 一种软件升级方法 |
CN103297482B (zh) * | 2012-03-05 | 2016-12-14 | 联想(北京)有限公司 | 信息处理方法和设备 |
CN103297482A (zh) * | 2012-03-05 | 2013-09-11 | 联想(北京)有限公司 | 信息处理方法和设备 |
CN103577318A (zh) * | 2012-08-07 | 2014-02-12 | 腾讯科技(深圳)有限公司 | 一种代码检测方法和装置 |
CN103577318B (zh) * | 2012-08-07 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 一种代码检测方法和装置 |
CN103024026A (zh) * | 2012-12-07 | 2013-04-03 | 康佳集团股份有限公司 | 基于Android版多屏互动软件自动更新方法及系统 |
CN104951315A (zh) * | 2014-03-25 | 2015-09-30 | 上海三旗通信科技股份有限公司 | 一种手机软件快速更新下载的方法 |
CN104484194A (zh) * | 2014-11-24 | 2015-04-01 | 东软集团股份有限公司 | 车载智能终端的系统更新方法及设备 |
CN108701067A (zh) * | 2016-03-01 | 2018-10-23 | 洋马株式会社 | 终端装置以及软件改写程序 |
CN106598608A (zh) * | 2016-12-19 | 2017-04-26 | 深圳天珑无线科技有限公司 | 应用版本更换方法、装置及相关终端 |
CN107844300A (zh) * | 2017-11-03 | 2018-03-27 | 中国银行股份有限公司 | 脚本处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8296535B2 (en) | Generating incremental program updates | |
US8200886B2 (en) | Efficient system and method for updating a memory device | |
CN1758220A (zh) | 一种升级软件版本的方法 | |
TWI439931B (zh) | 用於增加三角差動效能之目的碼之產生 | |
KR101426710B1 (ko) | 휴대단말기의 버전정보 갱신 장치 및 방법 | |
US8453138B2 (en) | Method and apparatus for generating an update package | |
US7555750B1 (en) | Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets | |
CN1278236C (zh) | 在分离的存储区域中存储数据组的不同版本的装置和更新存储器中数据组的方法 | |
US8479189B2 (en) | Pattern detection preprocessor in an electronic device update generation system | |
EP1956482B1 (en) | Generating delta updates for a processing device | |
US20110261638A1 (en) | Method for Storing Data into a Memory | |
CN1313941C (zh) | 数据处理装置与操作系统进行数据交换的方法 | |
CN107506219A (zh) | 一种基于Android系统的通用版本升级方法 | |
CN101331444A (zh) | 在线存储卷收缩 | |
CN101211265A (zh) | 一种终端嵌入式系统的软件更新方法和装置 | |
WO2005119432A2 (en) | Method and system for in-place updating content stored in a storage device | |
CN101026825A (zh) | 用于补丁最小化工具的系统和方法 | |
CN101208755A (zh) | 用于存取非现场执行的快闪存储器中的持久文件的装置、系统和方法 | |
EP1738256B1 (en) | Method and apparatus for reliably updating a stored version of content | |
WO2019041891A1 (zh) | 升级包的生成方法及装置 | |
US20040181777A1 (en) | Method and device for programming electronic devices using a uniform parameter format | |
KR101182534B1 (ko) | 플랫폼 라이브러리내 상호 에이피아이 호출기능이 구비된단말장비, dsl 모듈 생성방법 및 상호 에이피아이호출방법 | |
US20080320461A1 (en) | Method and Apparatus for Reliable In-Place Update | |
CN1855049A (zh) | 存储器配置系统与方法 | |
RU2375769C2 (ru) | Автоматическое резервное сохранение при модификациях встроенного программного обеспечения |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |