CN117632199A - 程序升级方法、电子设备、芯片系统和存储介质 - Google Patents
程序升级方法、电子设备、芯片系统和存储介质 Download PDFInfo
- Publication number
- CN117632199A CN117632199A CN202410112549.3A CN202410112549A CN117632199A CN 117632199 A CN117632199 A CN 117632199A CN 202410112549 A CN202410112549 A CN 202410112549A CN 117632199 A CN117632199 A CN 117632199A
- Authority
- CN
- China
- Prior art keywords
- program
- upgrade
- upgrading
- electronic device
- secure
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000005516 engineering process Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 14
- 238000002955 isolation Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本申请公开了一种程序升级方法、电子设备、芯片系统和存储介质,属于计算机技术领域。该方法包括:目标应用程序接收第一升级请求,第一升级请求携带升级程序的升级数据。目标应用程序将该升级数据存储至第一预设存储位置,向安全应用程序发送第二升级请求。安全应用程序从第一预设存储位置获取该升级数据,根据该升级数据升级该升级程序。本申请在安全区域中增加了可与非安全区域中的目标应用程序进行限制性通信的安全应用程序,如此,目标应用程序可指示安全应用程序升级该升级程序,安全应用程序可从第一预设存储位置获取该升级数据并据此对该升级程序进行升级,从而实现了该升级程序的自升级。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种程序升级方法、电子设备、芯片系统和存储介质。
背景技术
随着物联网(internet of things,IOT)技术的不断发展,诸如智能手表、智能手环等电子设备日益普及。
目前,为了提高电子设备的安全性,提供了信任区(TrustZone)技术。TrustZone技术能够将电子设备的各种资源设置为安全态和非安全态。非安全态的程序不能直接访问安全态的程序,而安全态的程序可以访问安全态的程序和非安全态的程序。
在电子设备中设置有升级程序的情况下,由于升级程序需要升级电子设备中所有安全态的程序和非安全态的程序,所以需要升级程序在运行时处于安全态。这种情况下,如何对安全态的升级程序自身进行升级是一个亟待解决的问题。
发明内容
本申请提供了一种程序升级方法、电子设备、芯片系统和存储介质,可以实现电子设备中的升级程序的自升级。所述技术方案如下:
第一方面,提供了一种程序升级方法,应用于电子设备。电子设备中的存储区域包括非安全区域和安全区域,该非安全区域包括目标应用程序区域,该安全区域包括安全应用程序区域和升级程序区域,目标应用程序区域存储有目标应用程序,该安全应用程序区域存储有安全应用程序,该升级程序区域存储有升级程序,该升级程序用于对电子设备中的程序进行升级。在该方法中,目标应用程序接收第一升级请求,第一升级请求携带该升级程序的升级数据。之后,目标应用程序将该升级程序的升级数据存储至第一预设存储位置,向该安全应用程序发送第二升级请求。该安全应用程序接收到第二升级请求后,从第一预设存储位置获取该升级程序的升级数据,根据该升级程序的升级数据升级该升级程序。
第一预设存储位置可以是预先设置的存储位置,第一预设存储位置位于非安全区域。第一预设存储位置可以是目标应用程序与该安全应用程序事先约定的。这种情况下,该安全应用程序能够访问第一预设存储位置。
目标应用程序运行时处于非安全态,因而目标应用程序不能直接对安全区域中的该升级程序进行升级。
该安全应用程序运行时处于安全态,因而其可以对安全区域中的该升级程序进行升级。
在本申请中,在安全区域中增加了可与非安全区域中的目标应用程序进行限制性通信的安全应用程序。这种情况下,目标应用程序在接收到第一升级请求后,可以将升级程序的升级数据存储至第一预设存储位置,并通过第二升级请求指示该安全应用程序升级该升级程序。该安全应用程序可以从第一预设存储位置获取该升级数据并据此对该升级程序进行升级。如此,可以实现该升级程序的自升级,在保证电子设备的安全性的情况下保证了电子设备的版本升级能力。
作为一种可选的方式,该非安全区域和该安全区域基于TrustZone技术实现。
TrustZone技术能够将电子设备的各种资源设置为安全态和非安全态。其中,运行在非安全态的程序不能直接访问安全态的程序和数据,而运行在安全态的程序可以访问安全态和非安全态的程序和数据,如此,可以为敏感业务和数据提供基于硬件隔离的安全的运行环境。
作为一种可选的方式,目标应用程序向该安全应用程序发送第二升级请求的操作可以为:目标应用程序通过预设接口向该安全应用程序发送第二升级请求。
预设接口可以为非安全区域中的可调用接口。预设接口的存在允许非安全区域中的程序请求安全区域中的程序执行某些敏感的操作,而不会直接访问安全区域的内部。这有助于确保安全敏感的任务由安全执行环境处理,而不会受到普通执行环境的干扰或攻击。
示例地,预设接口可以为NSC接口。这种情况下,该安全应用程序区域可以为NSC区域。NSC区域是安全区域中的一个特殊区域,可以将其配置为允许非安全区域中的程序进行限制性调用。
作为一种可选的方式,该安全应用程序根据该升级程序的升级数据升级该升级程序之后, 该安全应用程序还可以在该升级程序升级完成后向目标应用程序发送升级完成消息。目标应用程序接收到该升级完成消息后,可以重启电子设备,以使升级后的该升级程序生效。
作为一种可选的方式,该安全区域包括引导加载程序区域,该引导加载程序区域存储有引导加载程序,目标应用程序重启电子设备之后,电子设备在重启时启动该引导加载程序。该引导加载程序在电子设备存在升级需求的情况下启动该升级程序。该升级程序可以升级其他程序,在该其他程序升级完成后重启电子设备。
该引导加载程序运行时处于安全态,因而可以启动安全区域中的该升级程序。
该升级程序运行时处于安全态,因而可以对安全区域和非安全区域中的程序进行升级。
作为一种可选的方式,目标应用程序接收第一升级请求后,还可以创建标志文件,将该标志文件存储至第三预设存储位置。
第三预设存储位置可以是预先设置的存储位置,第三预设存储位置位于非安全区域。示例地,第三预设存储位置可以是目标应用程序与引导加载程序事先约定的。这种情况下,该引导加载程序能够访问第三预设存储位置。
这种情况下,电子设备在重启时启动该引导加载程序后,该引导加载程序在第三预设存储位置存储有该标志文件的情况下可以确定电子设备存在升级需求;该引导加载程序在第三预设存储位置未存储该标志文件的情况下可以确定电子设备不存在升级需求。
本申请中通过第三预设存储位置处该标志文件的存在与否,可以快速确定电子设备是否存在升级需求。
作为一种可选的方式,该引导加载程序在电子设备存在升级需求的情况下启动该升级程序之后,还可以删除第三预设存储位置处的该标志文件。
作为一种可选的方式,该升级程序在该其他程序升级完成后重启电子设备之后,电子设备重启时启动该引导加载程序,该引导加载程序在电子设备不存在升级需求的情况下启动目标应用程序,以便目标应用程序在运行时可以接收电子设备中的程序的升级数据,保证电子设备的正常升级。
第二方面,提供了一种程序升级方法,应用于电子设备。电子设备中的存储区域包括非安全区域和安全区域,该非安全区域包括目标应用程序区域和升级程序区域,该安全区域包括引导加载程序区域,目标应用程序区域存储有目标应用程序,该升级程序区域存储有升级程序,该升级程序用于对电子设备中的程序进行升级,该引导加载程序区域存储有引导加载程序。在该方法中,目标应用程序接收第一升级请求,第一升级请求携带升级程序的升级数据。之后,目标应用程序根据该升级数据升级该升级程序区域中的升级程序,在该升级程序升级完成后重启电子设备。电子设备重启时启动该引导加载程序,该引导加载程序在电子设备存在升级需求的情况下将该升级程序区域设置为安全区域,启动该升级程序。
在本申请中,将升级程序区域默认设置为非安全区域,这样目标应用程序就可以直接对升级程序区域中的升级程序进行升级。并且,电子设备重启时引导加载程序可以将升级程序区域设置为安全区域后再启动该升级程序,这样该升级程序运行时处于安全态,从而可以对非安全区域和安全区域中的程序进行升级。如此,可以在保证电子设备的安全性的情况下,实现该升级程序的自升级,保证电子设备的版本升级能力。
作为一种可选的方式,该非安全区域和该安全区域基于TrustZone技术实现。
作为一种可选的方式,该引导加载程序启动该升级程序之后,该升级程序可以升级其他程序,在该其他程序升级完成后重启电子设备。
作为一种可选的方式,目标应用程序接收第一升级请求后,还可以创建标志文件,将该标志文件存储至第三预设存储位置。
这种情况下,电子设备在重启时启动该引导加载程序后,该引导加载程序在第三预设存储位置存储有该标志文件的情况下可以确定电子设备存在升级需求;该引导加载程序在第三预设存储位置未存储该标志文件的情况下可以确定电子设备不存在升级需求。
作为一种可选的方式,该引导加载程序在电子设备存在升级需求的情况下启动该升级程序之后,还可以删除第三预设存储位置处的该标志文件。
作为一种可选的方式,该升级程序在该其他程序升级完成后重启电子设备之后,电子设备重启时启动该引导加载程序,该引导加载程序在电子设备不存在升级需求的情况下启动目标应用程序。
需说明的是,电子设备每次启动时该升级程序区域都会被默认设置为非安全区域。此后,若引导加载程序确定电子设备存在升级需求,才会将该升级程序区域重新设置为安全区域。而若引导加载程序确定电子设备不存在升级需求,则会启动目标应用程序,并不会重新设置该升级程序区域,这种情况下,该升级程序区域继续为非安全区域,从而便于目标应用程序对该升级程序区域中的该升级程序进行升级。
第三方面,提供了一种电子设备,电子设备包括:一个或多个处理器,以及存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得电子设备执行上述的程序升级方法。
第四方面,提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该一个或多个处理器用于调用计算机指令以使得电子设备执行上述的程序升级方法。
第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,当该指令在电子设备上运行时,使得电子设备执行上述的程序升级方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的程序升级方法。
上述第三方面、第四方面、第五方面和第六方面所获得的技术效果与上述第一方面和第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是本申请实施例提供的一种电子设备的结构示意图;
图2是本申请实施例提供的一种非安全态的示意图;
图3是本申请实施例提供的一种非安全态和安全态的示意图;
图4是本申请实施例提供的一种程序升级方法涉及的技术架构图;
图5是本申请实施例提供的一种程序升级方法的流程图;
图6是本申请实施例提供的另一种程序升级方法涉及的技术架构图;
图7是本申请实施例提供的另一种程序升级方法的流程图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。
应当理解的是,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应当理解的是,本申请提及的“一个或多个”是指一个、两个或两个以上,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请中描述的“一个实施例”或“一些实施例”等语句意味着在本申请的一个或多个实施例中包括该实施例描述的特定特征、结构或特点。由此,在本申请中的不同之处出现的“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等语句不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
本申请实施例提供的程序升级方法可以应用于电子设备。
可选地,该电子设备可以为具有TrustZone能力的电子设备。
示例地,该电子设备可以使用基于进阶精简指令集机器(advanced reducedinstruction set computer machine,ARM)(包括但不限于ARMv8-M等)的微控制单元(micro controller unit,MCU),如STM32U5A9微控制单元等。该ARM可以提供TrustZone能力。
在一些实施例中,该电子设备可以为移动设备、物联网设备、或其他嵌入式系统设备等。比如,该电子设备可以为智能手表、智能手环、智能耳机、手机、个人计算机等,本申请实施例不限定该电子设备的类型。
图1是本申请实施例提供的一种电子设备的结构示意图。参见图1,该电子设备包括至少一个处理器101、通信总线102、存储器103以及至少一个通信接口104。
处理器101可以是微处理器(包括中央处理器(central processing unit,CPU)等)、特定应用集成电路(application-specific integrated circuit,ASIC),或者可以是一个或多个用于控制本申请方案程序执行的集成电路。
通信总线102可包括一通路,用于在上述组件之间传送信息。
存储器103可以是只读存储器(read-only memory,ROM)、随机存取存储器(randomaccess memory,RAM)、电可擦可编程只读存储器(electrically erasable programmableread-only memory,EEPROM)、光盘(包括只读光盘(compact disc read-only memory,CD-ROM)、压缩光盘、激光盘、数字通用光盘、蓝光光盘等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器103可以是独立存在,并通过通信总线102与处理器101相连接。存储器103也可以和处理器101集成在一起。
通信接口104使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网、无线接入网(radio access network,RAN)、无线局域网(wireless local areanetwork,WLAN)等。
在具体实现中,作为一种实施例,处理器101可以包括一个或多个CPU,如图1中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,该电子设备可以包括多个处理器,如图1中所示的处理器101和处理器105。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,该电子设备还可以包括输出设备106和输入设备107。输出设备106和处理器101通信,可以以多种方式来显示信息。例如,输出设备106可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备107和处理器101通信,可以以多种方式接收用户的输入。例如,输入设备107可以是鼠标、键盘、触摸屏设备或传感设备等。
其中,存储器103用于存储执行本申请方案的程序代码110,处理器101用于执行存储器103中存储的程序代码110。该电子设备可以通过处理器101以及存储器103中的程序代码110,来实现下文实施例提供的程序升级方法。
可以理解的是,上文图1实施例示意的结构并不构成对该电子设备的具体限定。在本申请另一些实施例中,该电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
需说明的是,本申请实施例并未特别限定程序升级方法的执行主体的具体结构,只要可以通过运行记录有本申请实施例提供的程序升级方法的代码,以根据本申请实施例提供的程序升级方法进行处理即可。比如,本申请实施例提供的程序升级方法的执行主体可以是电子设备中能够调用程序并执行程序的功能模块,或者可以是应用于电子设备中的处理装置,如芯片等。
接下来对本申请实施例提供的程序升级方法涉及的应用场景予以说明。
随着智能手表、智能手环、智能耳机、手机、个人计算机等电子设备的日益普及,为了提高这些电子设备的安全性,提供了TrustZone技术。
TrustZone技术能够将电子设备的各种资源,如ROM、RAM、外设等,设置为安全态和非安全态。其中,运行在非安全态的程序不能直接访问安全态的程序和数据,而运行在安全态的程序可以访问安全态和非安全态的程序和数据,如此,可以为敏感业务和数据提供基于硬件隔离的安全的运行环境。
这种情况下,示例地,电子设备的运行环境可以包括:基于TrustZone技术的普通执行环境(也可称为富执行环境(rich execution environment,REE))和安全执行环境(也可称为可信执行环境(trusted execution environment,TEE))。安全执行环境是运行于普通执行环境之外的独立运行环境,是硬件可信的。
本申请实施例中,电子设备中包括升级程序。该升级程序用于为电子设备提供版本升级的能力。该升级程序可以对该电子设备中的程序(包括但不限于软件、固件等)进行升级。
在一些实施例中,该升级程序自身也可支持升级。这种情况下,该电子设备还可以包括目标应用程序(application),目标应用程序用于对该升级程序进行升级。
在未使能TrustZone能力的情况下,电子设备中的资源均运行在非安全态。由于均在同一状态,所以互相的访问无限制。这种情况下,如图2所示,通过目标应用程序可以直接完成对该升级程序的升级。该升级程序可以完成对其他程序的升级。
然而,在使能TrustZone能力的情况下,由于该升级程序需要升级电子设备中所有安全态的程序和非安全态的程序,所以需要该升级程序在运行时处于安全态。而目标应用程序因需要与外部设备通信,所以需要其在运行时处于非安全态。这种情况下,如图3所示,运行在非安全态的目标应用程序不能直接对安全态的该升级程序进行升级。
为了解决上述问题,本申请实施例提供了一种程序升级方法,可以实现对安全态的该升级程序的升级。可以理解的,本申请实施例中所述的升级也可称为更新。
图4是本申请实施例提供的一种程序升级方法涉及的技术架构图。该技术架构图中仅示出与本申请实施例相关的部分。在实际应用中,该技术架构图中还可以包含其他部分,不再一一示出。
示例地,如图4所示,电子设备中的存储区域包括非安全区域(也可称为非安全世界(non-secure world))和安全区域(也可称为安全世界(secure world))。非安全区域属于普通执行环境,安全区域属于安全执行环境。
非安全区域不受硬件级别的安全隔离保护。非安全区域通常可以包括一般用途的存储,如普通应用程序的数据和代码。
安全区域受到硬件级别的安全隔离保护。也即,在安全区域中运行的代码和存储的数据受到额外的安全性保护。安全区域通常可以用于存储和执行关键的安全代码、密钥和敏感数据。
非安全区域和安全区域相隔离。也即,非安全区域中的程序可以访问非安全区域中的程序和数据,但是,非安全区域中的程序不能直接访问安全区域中的程序和数据。安全区域中的程序可以访问非安全区域和安全区域中的程序和数据。在一些实施例中,非安全区域中的程序在经过安全检查和验证后才允许访问安全区域中的程序和数据。
非安全区域中的程序运行时处于非安全态,其可访问非安全区域中的程序和数据,不可直接访问安全区域中的程序和数据。安全区域中的程序运行时处于安全态,其可访问非安全区域和安全区域中的程序和数据。
可以理解的,本申请实施例中的非安全区域和安全区域可以基于TrustZone技术实现,当然,也可以基于其他技术实现,只要其能提供硬件级别的安全隔离即可,本申请实施例对此不作限定。
如图4所示,非安全区域包括目标应用程序区域,目标应用程序区域存储有目标应用程序。安全区域包括升级程序区域,升级程序区域存储有升级程序。
在本申请实施例中,安全区域还包括安全应用程序区域,安全应用程序区域包括安全应用程序。该安全应用程序用于对该升级程序进行升级。
在本申请实施例中,目标应用程序可以调用预设接口。预设接口用于在非安全区域与安全区域之间建立通信信道,也即,非安全区域中的程序可以通过预设接口与安全区域中的程序进行通信。
预设接口可以为非安全区域中的可调用接口。预设接口的存在允许非安全区域中的程序请求安全区域中的程序执行某些敏感的操作,而不会直接访问安全区域的内部。这有助于确保安全敏感的任务由安全执行环境处理,而不会受到普通执行环境的干扰或攻击。
在本申请实施例中,目标应用程序可以通过预设接口与该安全应用程序进行通信。具体地,目标应用程序可以通过预设接口请求该安全应用程序对该升级程序进行升级。
示例地,预设接口可以为非安全可调用(non-secure callable,NSC)接口、安全区域应用程序编程接口(application programming interface,API)等,本申请实施例对此不作限定。
比如,在预设接口为NSC接口的情况下,安全应用程序区域可以为NSC区域。NSC区域是安全区域中的一个特殊区域,可以将其配置为允许非安全区域中的程序进行限制性调用。
在一些实施例中,如图4所示,安全区域还可以包括引导加载程序(Bootloader)区域,引导加载程序区域存储有引导加载程序。
该引导加载程序是电子设备启动时的关键组件,负责加载操作系统、初始化硬件、提供引导选项等,以确保系统正常启动并创建运行环境。
本申请实施例中,该引导加载程序在电子设备启动时可以选择启动目标应用程序、该升级程序中的一个。
接下来对基于图4所示的技术架构图实现的程序升级方法进行详细地解释说明。
图5是本申请实施例提供的一种程序升级方法的流程图。参见图5,该方法可以包括以下步骤:
步骤501:目标应用程序接收第一升级请求。
第一升级请求携带升级程序的升级数据。可选地,第一升级请求还可以携带电子设备中除该升级程序之外的其他一个或多个程序的升级数据,该一个或多个程序可以包括目标应用程序,也可以不包括目标应用程序。
可选地,第一升级请求可以是服务器发送的。示例地,服务器可以确定电子设备是否存在可用的升级版本,并且,在电子设备存在可用的升级版本的情况下,可以将相关的升级数据发送给目标应用程序,以便目标应用程序可以据此对电子设备中的相关程序进行升级。
在一些实施例中,目标应用程序接收到第一升级请求后,可以创建标志文件,并将该标志文件存储至第三预设存储位置。该标志文件用于表示电子设备存在升级需求。
第三预设存储位置可以是预先设置的存储位置,第三预设存储位置位于非安全区域。示例地,第三预设存储位置可以是目标应用程序与引导加载程序事先约定的。这种情况下,该引导加载程序能够访问第三预设存储位置。
步骤502:目标应用程序将升级程序的升级数据存储至第一预设存储位置。
目标应用程序运行时处于非安全态,因而目标应用程序不能直接对安全区域中的该升级程序进行升级。因此,目标应用程序将该升级数据存储至第一预设存储位置,以便后续可以指示安全应用程序根据第一预设存储位置处的升级数据来升级该升级程序。
第一预设存储位置可以是预先设置的存储位置,第一预设存储位置位于非安全区域。第一预设存储位置可以是目标应用程序与该安全应用程序事先约定的。这种情况下,该安全应用程序能够访问第一预设存储位置。
在一些实施例中,若第一升级请求还携带有电子设备中除该升级程序之外的一个或多个程序的升级数据,则目标应用程序还可以将该一个或多个程序的升级数据存储至第二预设存储位置。
第二预设存储位置可以是预先设置的存储位置,第二预设存储位置位于非安全区域。第二预设存储位置可以是目标应用程序与该升级程序事先约定的。这种情况下,该升级程序额能够访问第二预设存储位置。
步骤503:目标应用程序向安全应用程序发送第二升级请求。
第二升级请求用于请求该安全应用程序对该升级程序进行升级。
示例地,目标应用程序可以通过预设接口向该安全应用程序发送第二升级请求。预设接口已在上文进行解释说明,此处不再赘述。
需说明的是,该安全应用程序运行时处于安全态,因而其可以对安全区域中的该升级程序进行升级。这种情况下,该安全应用程序相当于是在安全区域提供的升级代理程序。
步骤504:该安全应用程序接收到第二升级请求后,从第一预设存储位置获取该升级程序的升级数据,根据该升级数据升级该升级程序。
该安全应用程序接收到第二升级请求后,确定需要对该升级程序进行升级,因而可以先从第一预设存储位置获取该升级程序的升级数据,再根据该升级数据对升级程序区域中的该升级程序进行升级。
在本申请实施例中,在安全区域中增加了可与非安全区域中的目标应用程序进行限制性通信的安全应用程序。这种情况下,目标应用程序在接收到第一升级请求后,可以将升级程序的升级数据存储至第一预设存储位置,并通过第二升级请求指示该安全应用程序升级该升级程序。该安全应用程序可以从第一预设存储位置获取该升级数据并据此对该升级程序进行升级。如此,可以实现该升级程序的自升级,在保证电子设备的安全性的情况下保证了电子设备的版本升级能力。
步骤505:该安全应用程序在该升级程序升级完成后向目标应用程序发送升级完成消息。
该升级完成消息用于指示已完成对该升级程序的升级。
步骤506:目标应用程序接收到该升级完成消息后,重启电子设备。
目标应用程序在接收到该升级完成消息后,确定已完成对该升级程序的升级,因而可以重启电子设备,以使升级后的该升级程序生效。
步骤507:电子设备重启时启动引导加载程序。
电子设备在重启时可以运行引导加载程序。
该引导加载程序运行时处于安全态,因而可以启动安全区域和非安全区域中的程序。比如,该引导加载程序可以启动该升级程序、目标应用程序、该安全应用程序中的一个或多个。
在一些实施例中,该引导加载程序在运行时可以判断电子设备是否存在升级需求,后续据此可以选择是启动该升级程序还是启动目标应用程序。
作为一种示例,该引导加载程序可以确定第三预设存储位置是否存储有标志文件;若第三预设存储位置存储有该标志文件,则确定电子设备存在升级需求;若第三预设存储位置未存储该标志文件,则确定电子设备不存在升级需求。
如此,通过第三预设存储位置处该标志文件的存在与否,可以快速确定电子设备是否存在升级需求。
步骤508:该引导加载程序在电子设备存在升级需求的情况下启动该升级程序。
该引导加载程序若确定电子设备存在升级需求,则需要启动该升级程序,以便该升级程序可以对其他程序进行升级。
该升级程序运行时处于安全态,因而可以对安全区域和非安全区域中的程序进行升级。
在一些实施例中,在步骤501中目标应用程序可以在第三预设存储位置存储标志文件,那么在步骤508中该引导加载程序可以根据第三预设存储位置处的该标志文件确定电子设备存在升级需求。这种情况下,该引导加载程序可以启动该升级程序,且在启动该升级程序后还可以删除第三预设存储位置处的该标志文件。
步骤509:该升级程序升级其他程序,在升级完成后重启电子设备。
在一些实施例中,该升级程序可以从第二预设存储位置获取一个或多个程序的升级数据,然后根据该一个或多个程序中每个程序的升级数据升级对应的程序,之后,重启电子设备,以使升级后的程序生效。
可以理解的,若第二预设存储位置未存储升级数据,则该升级程序可以直接重启电子设备。
步骤510:电子设备重启时启动引导加载程序。
步骤511:该引导加载程序在电子设备不存在升级需求的情况下启动目标应用程序。
该引导加载程序若确定电子设备不存在升级需求,则可以启动目标应用程序,以便目标应用程序在运行时可以接收电子设备中的程序的升级数据,保证电子设备的正常升级。
在一些实施例中,在步骤508中该引导加载程序在启动该升级程序后可以删除第三预设存储位置处的标志文件,那么在步骤511中该引导加载程序可以确定第三预设存储位置未存储标志文件,继而可以确定电子设备不存在升级需求。
在一些实施例中,该引导加载程序还可以启动该安全应用程序。当然,该安全应用程序也可以在电子设备的运行过程中由其他模块启动,本申请实施例对此不作限定。
需说明的是,本申请实施例除了提供图4所示的技术架构图之外,还提供了另外一种技术架构图,下面对此进行说明。
图6是本申请实施例提供的一种程序升级方法涉及的技术架构图。该技术架构图中仅示出与本申请实施例相关的部分。在实际应用中,该技术架构图中还可以包含其他部分,不再一一示出。
示例地,如图6所示,电子设备中的存储区域包括非安全区域和安全区域。非安全区域属于普通执行环境,安全区域属于安全执行环境。
非安全区域和安全区域的概念已在上文图4实施例中进行解释说明,在此不再赘述。
如图6所示,非安全区域包括目标应用程序区域和升级程序区域,目标应用程序区域存储有目标应用程序,升级程序区域存储有升级程序。安全区域包括引导加载程序区域,引导加载程序区域存储有引导加载程序。
目标应用程序用于对该升级程序进行升级。
该升级程序用于对电子设备中的程序进行升级。
需说明的是,该升级程序所在的升级程序区域默认设置为非安全区域。而在需要启动该升级程序时升级程序区域可被动态设置为安全区域,以便该升级程序运行时可处于安全态,以对非安全区域和安全区域中的程序进行升级。
该引导加载程序是电子设备启动时的关键组件,负责加载操作系统、初始化硬件、提供引导选项等,以确保系统正常启动并创建运行环境。
本申请实施例中,该引导加载程序在电子设备启动时可以选择启动目标应用程序、该升级程序中的一个。并且,若该引导加载程序选择启动该升级程序,则该引导加载程序可以先将升级程序区域设置为安全区域,再启动升级程序区域中的升级程序。
接下来对基于图6所示的技术架构图实现的程序升级方法进行详细地解释说明。
图7是本申请实施例提供的一种程序升级方法的流程图。参见图7,该方法可以包括以下步骤:
步骤701:目标应用程序接收第一升级请求。
第一升级请求携带升级程序的升级数据。可选地,第一升级请求还可以携带电子设备中除该升级程序之外的其他一个或多个程序的升级数据,该一个或多个程序可以包括目标应用程序,也可以不包括目标应用程序。
步骤701的操作与上文图5实施例中步骤501的操作类似,本申请实施例对此不再赘述。
步骤702:目标应用程序根据升级程序的升级数据升级该升级程序。
目标应用程序运行时处于非安全态。由于升级程序区域默认设置为非安全区域,所以目标应用程序可以直接根据该升级数据对非安全区域中的该升级程序进行升级。
步骤703:目标应用程序在该升级程序升级完成后,重启电子设备。
目标应用程序重启电子设备,可以使升级后的该升级程序生效。
步骤704:电子设备重启时启动引导加载程序。
电子设备在重启时可以运行引导加载程序。
该引导加载程序运行时处于安全态,因而可以启动安全区域和非安全区域中的程序。比如,该引导加载程序可以启动该升级程序、目标应用程序中的一个。
在一些实施例中,该引导加载程序在运行时可以判断电子设备是否存在升级需求,后续据此可以选择是启动该升级程序还是启动目标应用程序。
作为一种示例,该引导加载程序可以确定第三预设存储位置是否存储有标志文件;若第三预设存储位置存储有该标志文件,则确定电子设备存在升级需求;若第三预设存储位置未存储该标志文件,则确定电子设备不存在升级需求。
如此,通过第三预设存储位置处该标志文件的存在与否,可以快速确定电子设备是否存在升级需求。
步骤705:该引导加载程序在电子设备存在升级需求的情况下将升级程序区域设置为安全区域,启动该升级程序。
该引导加载程序若确定电子设备存在升级需求,则需要启动该升级程序,以便该升级程序可以对其他程序进行升级。
本申请实施例中,该引导加载程序在启动该升级程序之前,先将升级程序区域设置为安全区域,再启动该升级程序。这种情况下,该升级程序运行时处于安全态,从而可以对安全区域和非安全区域中的程序进行升级。
在一些实施例中,在步骤701中目标应用程序可以在第三预设存储位置存储标志文件,那么在步骤705中该引导加载程序可以根据第三预设存储位置处的该标志文件确定电子设备存在升级需求。这种情况下,该引导加载程序在启动该升级程序后还可以删除第三预设存储位置处的该标志文件。
在本申请实施例中,将升级程序区域默认设置为非安全区域,这样目标应用程序就可以直接对升级程序区域中的升级程序进行升级。并且,电子设备重启时引导加载程序可以将升级程序区域设置为安全区域后再启动该升级程序,这样该升级程序运行时处于安全态,从而可以对非安全区域和安全区域中的程序进行升级。如此,可以在保证电子设备的安全性的情况下,实现该升级程序的自升级,保证电子设备的版本升级能力。
步骤706:该升级程序升级其他程序,在升级完成后重启电子设备。
在一些实施例中,该升级程序可以从第二预设存储位置获取一个或多个程序的升级数据,然后根据该一个或多个程序中每个程序的升级数据升级对应的程序,之后,重启电子设备,以使升级后的程序生效。
可以理解的,若第二预设存储位置未存储升级数据,则该升级程序可以直接重启电子设备。
步骤707:电子设备重启时启动引导加载程序。
步骤708:该引导加载程序在电子设备不存在升级需求的情况下启动目标应用程序。
该引导加载程序若确定电子设备不存在升级需求,则可以启动目标应用程序,以便目标应用程序在运行时可以接收电子设备中的程序的升级数据,保证电子设备的正常升级。
在一些实施例中,在步骤705中该引导加载程序在启动该升级程序后可以删除第三预设存储位置处的标志文件,那么在步骤708中该引导加载程序可以确定第三预设存储位置未存储标志文件,继而可以确定电子设备不存在升级需求。
需说明的是,电子设备每次启动时升级程序区域都会被默认设置为非安全区域。此后,若引导加载程序确定电子设备存在升级需求,才会将升级程序区域重新设置为安全区域。而若引导加载程序确定电子设备不存在升级需求,则会启动目标应用程序,并不会重新设置升级程序区域,这种情况下,升级程序区域继续为非安全区域,从而便于目标应用程序对升级程序区域中的该升级程序进行升级。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种芯片系统,芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请任一方法实施例的步骤。芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种程序升级方法,其特征在于,应用于电子设备,所述电子设备中的存储区域包括非安全区域和安全区域,所述非安全区域包括目标应用程序区域,所述安全区域包括安全应用程序区域和升级程序区域,所述目标应用程序区域存储有目标应用程序,所述安全应用程序区域存储有安全应用程序,所述升级程序区域存储有升级程序,所述升级程序用于对所述电子设备中的程序进行升级,所述方法包括:
所述目标应用程序接收第一升级请求,所述第一升级请求携带所述升级程序的升级数据;
所述目标应用程序将所述升级程序的升级数据存储至第一预设存储位置,向所述安全应用程序发送第二升级请求;
所述安全应用程序接收到所述第二升级请求后,从所述第一预设存储位置获取所述升级程序的升级数据,根据所述升级程序的升级数据升级所述升级程序。
2.如权利要求1所述的方法,其特征在于,所述非安全区域和所述安全区域基于信任区TrustZone技术实现。
3.如权利要求1所述的方法,其特征在于,所述目标应用程序向所述安全应用程序发送第二升级请求,包括:
所述目标应用程序通过非安全可调用NSC接口向所述安全应用程序发送所述第二升级请求。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述安全应用程序根据所述升级程序的升级数据升级所述升级程序之后,还包括:
所述安全应用程序在所述升级程序升级完成后向所述目标应用程序发送升级完成消息;
所述目标应用程序接收到所述升级完成消息后,重启所述电子设备。
5.如权利要求4所述的方法,其特征在于,所述安全区域包括引导加载程序区域,所述引导加载程序区域存储有引导加载程序,所述目标应用程序重启所述电子设备之后,还包括:
所述电子设备重启时启动所述引导加载程序,所述引导加载程序在所述电子设备存在升级需求的情况下启动所述升级程序;
所述升级程序升级其他程序,在所述其他程序升级完成后重启所述电子设备。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
所述目标应用程序接收所述第一升级请求后,创建标志文件,将所述标志文件存储至第三预设存储位置;
所述方法还包括:
所述引导加载程序在所述第三预设存储位置存储有所述标志文件的情况下确定所述电子设备存在升级需求;
所述引导加载程序在所述第三预设存储位置未存储所述标志文件的情况下确定所述电子设备不存在升级需求。
7.如权利要求6所述的方法,其特征在于,所述引导加载程序在所述电子设备存在升级需求的情况下启动所述升级程序之后,还包括:
所述引导加载程序删除所述第三预设存储位置处的所述标志文件。
8.如权利要求7所述的方法,其特征在于,所述升级程序在所述其他程序升级完成后重启所述电子设备之后,还包括:
所述电子设备重启时启动所述引导加载程序,所述引导加载程序在所述电子设备不存在升级需求的情况下启动所述目标应用程序。
9.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器,以及存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至8中任一项所述的方法。
10.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述一个或多个处理器用于调用计算机指令以使得所述电子设备执行如权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410112549.3A CN117632199B (zh) | 2024-01-26 | 程序升级方法、电子设备、芯片系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410112549.3A CN117632199B (zh) | 2024-01-26 | 程序升级方法、电子设备、芯片系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117632199A true CN117632199A (zh) | 2024-03-01 |
CN117632199B CN117632199B (zh) | 2024-07-05 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158906A (zh) * | 2007-08-10 | 2008-04-09 | 林明辉 | 一种客户端程序自动更新升级的方法 |
CN104702631A (zh) * | 2013-12-04 | 2015-06-10 | 航天信息股份有限公司 | 一种客户端软件的升级方法和系统 |
CN109429222A (zh) * | 2017-08-22 | 2019-03-05 | 马鞍山明阳通信科技有限公司 | 一种对无线网络设备升级程序及通讯数据加密的方法 |
CN112329019A (zh) * | 2020-11-02 | 2021-02-05 | 歌尔科技有限公司 | 基于TrustZone的编程方法、终端设备及存储介质 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158906A (zh) * | 2007-08-10 | 2008-04-09 | 林明辉 | 一种客户端程序自动更新升级的方法 |
CN104702631A (zh) * | 2013-12-04 | 2015-06-10 | 航天信息股份有限公司 | 一种客户端软件的升级方法和系统 |
CN109429222A (zh) * | 2017-08-22 | 2019-03-05 | 马鞍山明阳通信科技有限公司 | 一种对无线网络设备升级程序及通讯数据加密的方法 |
CN112329019A (zh) * | 2020-11-02 | 2021-02-05 | 歌尔科技有限公司 | 基于TrustZone的编程方法、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10614212B1 (en) | Secure software containers | |
CN108170503B (zh) | 一种跨系统运行安卓应用的方法、终端及存储介质 | |
JP6649510B2 (ja) | パッチアップグレードに基づくファイル処理方法及び機器、端末、並びに記憶媒体 | |
CN110637449B (zh) | 一种访问设备标识符的方法及装置 | |
CN107003889B (zh) | 用于提供全球平台兼容可信执行环境的系统和方法 | |
US9811393B2 (en) | Consistent extension points to allow an extension to extend functionality of an application to another application | |
US8893222B2 (en) | Security system and method for the android operating system | |
US8225061B2 (en) | Method and apparatus for protected content data processing | |
US11468170B2 (en) | Techniques for processor boot-up | |
US11579899B2 (en) | Method and device for dynamically managing kernel node | |
US11222118B2 (en) | Method for updating selinux security policy and terminal | |
JP2015531500A (ja) | 安全なファームウェア更新 | |
CN111159691B (zh) | 一种应用程序动态可信验证方法及系统 | |
WO2015183456A1 (en) | Consistent extension points to allow an extension to extend functionality of an application to another application | |
CN107567629B (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
WO2013159632A1 (zh) | 实现安全防护的方法、防火墙、终端及可读存储介质 | |
US10650159B1 (en) | Electronic device security through boot cycles | |
WO2018210063A1 (zh) | 一种终端系统启动方法及终端 | |
CN117632199B (zh) | 程序升级方法、电子设备、芯片系统和存储介质 | |
CN106778269B (zh) | 一种驱动层防注入方法、装置及客户端 | |
CN117632199A (zh) | 程序升级方法、电子设备、芯片系统和存储介质 | |
US8544082B2 (en) | Security reuse in hybrid information handling device environments | |
CN115562732A (zh) | 一种开机方法、电子设备及计算机存储介质 | |
US10924280B1 (en) | Digital notary use in distributed ledger technology (DLT) for block construction and verification | |
KR102532696B1 (ko) | 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법 |
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 | ||
GR01 | Patent grant |