CN117311746A - 终端、操作系统切换方法、存储介质 - Google Patents
终端、操作系统切换方法、存储介质 Download PDFInfo
- Publication number
- CN117311746A CN117311746A CN202210718146.4A CN202210718146A CN117311746A CN 117311746 A CN117311746 A CN 117311746A CN 202210718146 A CN202210718146 A CN 202210718146A CN 117311746 A CN117311746 A CN 117311746A
- Authority
- CN
- China
- Prior art keywords
- operating system
- data
- terminal
- partition
- storage partition
- 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
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000005192 partition Methods 0.000 claims abstract description 223
- 238000012795 verification Methods 0.000 claims abstract description 20
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种终端、操作系统切换方法、存储介质,终端包括:第一存储分区,用于存储升级包,其中,第二操作系统的升级包由终端在获取到系统切换指令后,通过第一操作系统下载到第一存储分区;第二存储分区,用于存储启动加载器BootLoader,其中,终端最后将BootLoader更新为第二操作系统的BootLoader;第三存储分区,用于存储认证数据,认证数据用于认证终端的合法性,以使终端在合法性验证通过后运行第二操作系统。根据本实施例的技术方案,能够将升级包存储在第一存储分区,并且在升级过程中最后更新BootLoader,有效避免断电后数据丢失,还能够根据认证数据对终端进行设备合法性认证后切换系统,有效确保数据的完整性,提高了系统切换的稳定性。
Description
技术领域
本发明涉及但不限于操作系统技术领域,尤其涉及一种终端、操作系统切换方法、存储介质。
背景技术
同一种终端可以安装有不同的操作系统,例如机顶盒设备,既可以安装Linux操作系统,也可以安装安卓(Android)操作系统。为了满足用户对不同的操作系统的功能需求,传统的做法是在终端同时部署多套操作系统,由用户根据需求进行操作系统的选择,但是操作系统的数据量通常较大,同时部署多套操作系统所需要的存储空间非常大,硬件成本较高。为了降低硬件成本,可以通过系统升级的方式实现不同系统之间的切换。在目前的升级方法中,由于不同操作系统的文件系统不一定相同,因此需要先将升级包和旧系统的数据转存储在内存中,先升级启动加载器(Bootloader),重启系统后将内存中的数据转存储到Flash或者新文件系统,最后加载新版本启动。然而,若在内存中的数据未写入新文件系统之前,终端出现断电,会导致内存中的数据全部丢失,导致设备无法使用。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种终端、操作系统切换方法、存储介质,能够提高终端切换操作系统的稳定性。
第一方面,本发明实施例提供了一种终端,所述终端包括:
第一存储分区,所述第一存储分区用于存储升级包,其中,所述第二操作系统的升级包由所述终端在获取到系统切换指令后,通过第一操作系统下载到所述第一存储分区,所述第一操作系统为所述终端当前运行的操作系统,所述第二操作系统为所述终端可切换的操作系统;
第二存储分区,所述第二存储分区用于存储启动加载器BootLoader,其中,所述终端在根据所述第二操作系统的升级包进行升级更新的过程中,最后将所述第二存储分区中存储的所述BootLoader更新为所述第二操作系统的BootLoader;
第三存储分区,所述第三存储分区用于存储认证数据,所述认证数据用于认证所述终端的合法性,以使所述终端在合法性验证通过后运行所述第二操作系统。
第二方面,本发明实施例提供了一种操作系统切换方法,应用于如第一方面所述的终端,所述方法包括:
当获取到系统切换指令,通过第一操作系统下载所述第二操作系统的升级包并保存在所述第一存储分区,其中,所述第一操作系统为所述终端当前运行的操作系统,所述第二操作系统为所述终端可切换的操作系统;
根据所述第二操作系统的升级包进行升级更新,并最后将所述第二存储分区中存储的所述BootLoader更新为所述第二操作系统的BootLoader;
从所述第三存储分区获取认证数据,根据所述认证数据进行合法性验证,在合法性验证通过后运行所述第二操作系统。
第三方面,本发明实施例提供了一种终端,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面所述的操作系统切换方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如第二方面所述的操作系统切换方法。
本发明实施例包括:第一存储分区,所述第一存储分区用于存储升级包,其中,所述第二操作系统的升级包由所述终端在获取到系统切换指令后,通过第一操作系统下载到所述第一存储分区,所述第一操作系统为所述终端当前运行的操作系统,所述第二操作系统为所述终端可切换的操作系统;第二存储分区,所述第二存储分区用于存储启动加载器BootLoader,其中,所述终端在根据所述第二操作系统的升级包进行升级更新的过程中,最后将所述第二存储分区中存储的所述BootLoader更新为所述第二操作系统的BootLoader;第三存储分区,所述第三存储分区用于存储认证数据,所述认证数据用于认证所述终端的合法性,以使所述终端在合法性验证通过后运行所述第二操作系统。根据本实施例的技术方案,能够将升级包存储在第一存储分区,并且在升级过程中最后更新BootLoader,有效避免断电后数据丢失,还能够根据认证数据对终端进行设备合法性认证后切换系统,有效确保数据的完整性,提高了系统切换的稳定性。
附图说明
图1是本发明一个实施例提供的终端的分区示意图;
图2是本发明另一个实施例提供的终端的分区示意图;
图3是本发明另一个实施例提供的终端的分区示意图;
图4是本发明另一个实施例提供的操作系统切换方法的流程图;
图5是本发明另一个实施例提供的部署升级文件的流程图;
图6是本发明另一个实施例提供的删除用户数据的流程图;
图7是本发明另一个实施例提供的获取认证数据的流程图;
图8是本发明另一个实施例提供的断电后处理的流程图;
图9是本发明另一个实施例提供的示例一的示意图;
图10是本发明另一个实施例提供的示例二的流程图;
图11是本发明另一个实施例提供的终端的装置图。
具体实施方式
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明提供了一种终端、操作系统切换方法、存储介质,终端包括:第一存储分区,所述第一存储分区用于存储升级包,其中,所述第二操作系统的升级包由所述终端在获取到系统切换指令后,通过第一操作系统下载到所述第一存储分区,所述第一操作系统为所述终端当前运行的操作系统,所述第二操作系统为所述终端可切换的操作系统;第二存储分区,所述第二存储分区用于存储启动加载器BootLoader,其中,所述终端在根据所述第二操作系统的升级包进行升级更新的过程中,最后将所述第二存储分区中存储的所述BootLoader更新为所述第二操作系统的BootLoader;第三存储分区,所述第三存储分区用于存储认证数据,所述认证数据用于认证所述终端的合法性,以使所述终端在合法性验证通过后运行所述第二操作系统。根据本实施例的技术方案,能够将升级包存储在第一存储分区,并且在升级过程中最后更新BootLoader,有效避免断电后数据丢失,还能够根据认证数据对终端进行设备合法性认证后,有效确保数据的完整性,提高了系统切换的稳定性。
以下结合附图,对本发明各实施例的技术方案进行进一步说明。
如图1所示,图1是本发明一个实施例提供的一种终端,所述终端包括:
第一存储分区100,第一存储分区100用于存储升级包,其中,第二操作系统的升级包由终端在获取到系统切换指令后,通过第一操作系统下载到第一存储分区100,第一操作系统为终端当前运行的操作系统,第二操作系统为终端可切换的操作系统;
第二存储分区200,第二存储分区200用于存储BootLoader,其中,终端在根据第二操作系统的升级包完成更新之后,将第二存储分区200中存储的BootLoader更新为第二操作系统的BootLoader;
第三存储分区300,第三存储分区300用于存储认证数据,认证数据用于认证终端的合法性,以使终端在合法性验证通过后运行第二操作系统。
需要说明的是,本实施例的各存储分区可以设置于终端的非易失性存储设备中,以确保终端断电后各数据不会丢失,有效提高数据的完整性,本实施例对非易失性存储设备的具体类型不做过多限定。
需要说明的是,本实施例对各存储分区的命名方式和数量不做限定,本领域技术人员可以根据具体需求对各个存储分区进行命名,以及根据所存储的数据量的大小增加各种存储分区的数量,例如,在第二操作系统的升级包的数据量较大的情况下,可以设置多个第一存储分区100进行升级包的存储,在认证数据较大的情况下,可以设置多个第三存储分区进行认证数据的存储,本领域技术人员熟知如何调整存储分区的数量以满足数据的存储需求,在此不多作限定。
值得注意的是,第一存储分区100中存储的升级包可以从服务器下载得到,例如,终端当前的操作系统为第一操作系统,当终端获取到系统切换指令,在第一操作系统的运行下从服务器下载第二操作系统的升级包,并保存到对应的第一存储分区100,具体的下载方式为本领域技术人员熟知的技术,在此不多作赘述。值得注意的是,完成升级包的下载之后,还可以对升级包进行签名校验和完整性校验,以确保下载到的升级包的合法性和数据的完整性。
需要说明的是,第二存储分区200用于存储BootLoader,本实施例在获取到第二操作系统的升级包之后,先根据升级包进行其他分区的更新,最后将BootLoader更新成第二操作系统的BootLoader,当更新过程中出现断电,BootLoader可以从第一存储分区100重新获取升级包进行升级,有效避免断电导致的更新失败,有效提高操作系统升级的稳定性。需要说明的是,第二存储分区200中存储BootLoader可以是BootLoader的镜像文件,本实施例对具体数据类型不做限定。
需要说明的是,认证数据可以是每个终端唯一的数据,能够用于验证终端的合法性即可,例如对于安卓电视(Android Television,ATV)系统,Widevine Key使设备能够进行身份校验并获得用于解密受数字版本管理(Digital Rights Mangement,DRM)保护的内容的许可证,是每个应用ATV操作系统的终端都必须要有的差异系统数据,因此可以将Widevine Key作为认证数据,也可以使用认证机构(Certification Authority,CA)证书,具体的认证数据类型根据操作系统的类型确定即可。值得注意的是,为了提高安全性,认证数据采用不易被获取的数据,且存储在安全性高的第三存储分区,例如上述的CA证书和Widevine Key,而对于设备序列号等数据,虽然也是每个设备唯一,但是可以轻易被获取,安全性较低,因此这类数据不用作认证数据。
需要说明的是,第三存储分区300可以是重放保护内存块(Replay ProtectedMemory Block,RPMB),也可以是其他自定义的存储分区,能够确保其安全性,并且用于存储认证数据即可,本实施例对第三存储分区300的数量和形式不作过多限定。
例如图2所示,第一操作系统为RDK操作系统,第二操作系统为ATV操作系统,则第一存储分区可以为升级(Update)分区110,第二存储分区可以为BootLoader分区210,第三存储分区可以为RPMB分区310,其中,Update分区110存储有ATV升级包,BootLoader分区210存储有BootLoader的镜像文件,RPMB分区310存储有终端的Widevive Key;又如图3所示,第一操作系统为Linux操作系统,第二操作系统为ATV操作系统,第一存储分区可以为Update分区110,第二存储分区可以为BootLoader分区210,第三存储分区可以包括RPMB分区310和CA分区320,其中,Update分区110存储有ATV升级包,BootLoader分区210存储有BootLoader的镜像文件,RPMB分区310存储有终端的Widevive Key,CA分区320存储有CA证书。上述描述均为终端文件系统的示例,并非对各存储分区做出的限定。
另外,在一实施例中,认证数据为差异系统数据,其中,差异系统数据为终端独占且归属于第二操作系统的系统数据;或者,认证数据不为差异系统数据,差异系统数据由终端根据认证数据进行合法性认证后下载。
需要说明的是,在同一操作系统下,不同的终端的系统数据通常包括通用系统数据和差异系统数据,通用系统数据为每台终端中相同的系统数据,可以通过升级包下载得到并更新到相应的存储分区。差异系统数据为第二操作系统所需的系统数据,且由每个终端独占,由于差异系统数据并非所有终端通用,因此需要另外进行下载,当认证数据为差异系统数据,可以确定终端已经具备了差异系统数据,直接运行第二操作系统即可;当认证数据不为差异数据,则可以确定终端缺少差异系统数据,终端可以通过认证数据在服务器完成合法性认证之后,从服务器下载差异系统数据,有效提高了数据的安全性,也确保了终端具备第二操作系统所需要的全部系统数据。
例如,参照图3,第一操作系统为Linux系统,第二操作系统为ATV系统,ATV系统的认证数据可以是Widevine Key,而Widevine Key是需要ATV项目完成立项后取得,在生产终端时未必能够获取到,在这种情况下,由于终端在CA分区320存储有CA证书,可以在获取到ATV操作系统的升级指令之后,根据CA证书向服务器申请下发Widevine Key,服务器根据CA证书校验该终端为合法终端之后,向其下发对应的Widevine Key,并保存至RPMB分区310,在后续升级过程中使用。
另外,在一实施例中,第二存储分区200和第三存储分区300至少由第一操作系统和第二操作系统共享;每个第二存储分区200的存储空间属性相同,每个第三存储分区300的存储空间属性相同,存储空间属性包括存储空间大小和偏移量。
需要说明的是,由于在升级过程中,第二存储分区200和第三存储分区300的数据需要被不同的操作系统调用,例如在完成升级之前,第一操作系统需要对第二存储分区200中的BootLoader进行更新,又如,在第一操作系统运行之下,根据第三存储分区300的认证数据对第二操作系统的合法性进行校验,因此,第二存储分区200和第三存储分区300需要被各个操作系统共享,以确保升级时能够读取到对应的数据。
值得注意的是,各个第二存储分区200的空间大小和偏移量相同,各个第三存储分区300的空间大小和偏移量相同,能够各个第二存储分区200和第三存储分区300能够正确被不同的操作系统识别和读取。
另外,在一实施例中,还包括至少一个第四存储分区400,第四存储分区400用于存储第一操作系统的通用系统数据和/或用户数据,第四存储分区400由第一操作系统独占;
或者,
至少一个第五存储分区500,第五存储分区500用于存储第二操作系统的通用系统数据和/或用户数据,第五存储分区500由第二操作系统独占。
需要说明的是,不同的操作系统之间的数据通常是不兼容的,因此,为了确保操作系统正常运行,需要在文件系统中为各个操作系统分配独占的分区,用于存储通用系统数据和/或用户数据,例如本实施例中为第一操作系统分配若干个第四存储分区400,为第二操作系统分配若干个第五存储分区500,第四存储分区400的数量和大小可以根据通用系统数据和用户数据的实际需求调整,第五存储分区500同理,在此不多作限定。
例如图2所示,第一操作系统为RDK系统,第二操作系统为ATV系统,设置有RDK分区410作为第四存储分区,设置ATV分区510作为第五存储分区;又如图3所示,第一操作系统为Linux系统,第二操作系统为ATV系统,设置有Linux分区420作为第四存储分区,设置ATV分区510作为第五存储分区,具体的分区命名方式根据操作系统的实际需求确定即可。
值得注意的是,第四存储分区400和第五存储分区500并非同时存在的分区,在终端运行第一操作系统时,设备中的分区为第四存储分区400,同理,在终端运行第二操作系统时,设备中的分区为第五存储分区500。值得注意的是,在完成操作系统的切换之后,可以对旧操作系统的用户数据进行删除,以提高存储空间的利用率。
另外,本发明实施例还提供了一种操作系统切换方法,应用于如上所述的终端,参照图4,操作系统切换方法包括但不限于有以下步骤:
步骤S410,当获取到系统切换指令,通过第一操作系统下载所述第二操作系统的升级包并保存在所述第一存储分区,其中,所述第一操作系统为所述终端当前运行的操作系统,所述第二操作系统为所述终端可切换的操作系统;
步骤S420,根据第二操作系统的升级包进行升级更新,并最后将第二存储分区中存储的BootLoader更新为第二操作系统的BootLoader;
步骤S430,从所述第三存储分区获取认证数据,在根据所述认证数据进行合法性验后运行所述第二操作系统。
需要说明的是,本实施例以第一操作系统通过升级的方式切换到第二操作系统为例,当然也可以采用同样的方法,在终端运行第二操作系统的情况下切换到第一操作系统或其他操作系统,在此不重复赘述。
需要说明的是,第一存储分区中存储的升级包可以从服务器下载得到,例如,终端当前的操作系统为第一操作系统,当终端获取到系统切换指令,在第一操作系统的运行下从服务器下载第二操作系统的升级包,并保存到对应的第一存储分区,具体的下载方式为本领域技术人员熟知的技术,在此不多作赘述。值得注意的是,完成升级包的下载之后,还可以对升级包进行签名校验和完整性校验,以确保下载到的升级包的合法性和数据的完整性。
需要说明的是,第二存储分区用于存储BootLoader,本实施例在获取到第二操作系统的升级包之后,先根据其他存储分区的更新,再最后将BootLoader更新成第二操作系统的BootLoader,当更新过程中出现断电,BootLoader可以从第一存储分区重新获取升级包进行升级,有效避免断电导致的更新失败,有效提高操作系统升级的稳定性。需要说明的是,第二存储分区中存储BootLoader可以是BootLoader的镜像文件,本实施例对具体数据类型不做限定。
需要说明的是,认证数据可以是每个终端唯一的数据,例如对于ATV系统,Widevine Key使设备能够进行身份校验并获得用于解密受DRM保护的内容的许可证,是每个应用ATV操作系统的终端都必须要有的差异系统数据,因此可以将Widevine Key作为认证数据,也可以使用CA证书,具体的认证数据类型根据操作系统的类型确定即可。值得注意的是,为了提高安全性,认证数据采用不易被获取的数据,且存储在安全性高的第三存储分区,例如上述的CA证书和Widevine Key,而对于设备序列号等数据,虽然也是每个设备唯一,但是可以轻易被获取,安全性较低,因此这类数据不用作认证数据。
另外,在一实施例中,终端还包括至少一个第五存储分区,第五存储分区用于存储第二操作系统的通用系统数据和/或用户数据,所述通用系统数据为不同的终端所通用的系统数据,参照图5,图4所示实施例的步骤S420还包括但不限于有以下步骤:
步骤S510,获取分区映射信息,分区映射信息记载有第二操作系统的通用系统数据在至少一个第五存储分区的分布情况;
步骤S520,根据升级分区映射信息,将第二操作系统的升级包中每个系统数据的镜像文件更新到所对应的第五存储分区。
需要说明的是,操作系统的升级包中通常包括各种通用系统数据的镜像文件,为了将通用系统数据更新到文件系统,可以先获取每个分区映射信息,确定每个镜像文件在第五存储分区的分布情况,再重启后通过Uboot将每个镜像文件依次更新至对应的存储区域,从而实现升级包的文件部署。
另外,在一实施例中,终端还包括至少一个第四存储分区,第四存储分区用于存储第一操作系统的通用系统数据和/或用户数据,参照图6,在执行完图4所示实施例的步骤S430之后,还包括但不限于有以下步骤:
步骤S610,删除第四存储分区中存储的第一操作系统的用户数据。
需要说明的是,由于不同操作系统的用户数据通常是不能相互兼容的,为了提高存储分区的利用率,可以在切换到新的操作系统之后,将旧操作系统的用户数据删除。
值得注意的是,由于第四存储分区由第一操作系统独享,可以直接将存储用户数据的分区进行清空处理,提高数据处理的效率。
另外,在一实施例中,参照图7,执行图4所示的步骤S430,还包括但不限于有以下步骤:
步骤S710,当所述认证数据为所述第二操作系统的所述差异系统数据,在根据所述认证数据进行合法性验后运行所述第二操作系统,其中,所述差异系统数据为所述终端独占且归属于所述第二操作系统的系统数据;
或者,
步骤S720,当所述认证数据不为所述差异系统数据,在根据所述认证数据进行合法性校验通过后下载所述差异系统数据,并运行所述第二操作系统。
需要说明的是,在同一操作系统下,不同的终端的系统数据通常包括通用系统数据和差异系统数据,通用系统数据为每台终端中相同的系统数据,可以通过升级包下载得到并更新到相应的存储分区。差异系统数据为第二操作系统所需的系统数据,且由每个终端独占,由于差异系统数据并非所有终端通用,因此需要另外进行下载,当认证数据为差异系统数据,可以确定终端已经具备了差异系统数据,直接运行第二操作系统即可;当认证数据不为差异数据,则可以确定终端缺少差异系统数据,终端可以通过认证数据在服务器完成合法性认证之后,从服务器下载差异系统数据,有效提高了数据的安全性,也确保了终端具备第二操作系统所需要的全部系统数据。
需要说明的是,认证数据既可以是在终端出厂之前提前烧录至第三存储分区,也可以是在升级过程中下载,例如,参照图3,第一操作系统为Linux系统,第二操作系统为ATV系统,ATV系统的认证数据可以是Widevine Key,而Widevine Key是需要ATV项目完成立项后取得,在生产终端时未必能够获取到,在这种情况下,由于终端可以在CA分区存储有CA证书,可以在获取到ATV操作系统的升级指令之后,根据CA证书向服务器申请下发WidevineKey,服务器根据CA证书校验该终端为合法终端之后,向其下发对应的Widevine Key,并保存至RPMB分区,在后续升级过程中使用。
需要说明的是,在同一操作系统下,不同的终端的系统数据通常包括通用系统数据和差异系统数据,通用系统数据为每台终端中相同的系统数据,差异系统数据为每台终端不同的系统数据,通用系统数据可以通过升级包携带并更新到相应的存储分区,但是升级包通常是服务器一对多提供,因此很难在升级包中携带每台终端的差异系统数据,因此,在根据认证数据在服务器完成终端的设备认证之后,从服务器下载该终端的差异系统数据,并更新到对应的分区,使得第二操作系统具备完整的系统数据。同时,由于差异系统数据是每台终端独有的数据,因此可以从差异系统数据中确定认证数据,从而对每台终端进行区分,例如上述的Widevine Key可以包含在差异系统数据中下载,并在下载之后用于对终端的合法性进行验证,在验证通过之后,可以确定终端已经完成了差异系统数据和通用系统数据的升级更新,可以正常运行第二操作系统。
另外,在一实施例中,参照图8,在执行图4所示的步骤S420之前,还包括但不限于有以下步骤:
步骤S810,当终端断电后重启,重新从第一存储分区获取第二操作系统的升级包;
步骤S820,根据重新获取的第二操作系统的升级包进行数据更新。
需要说明的是,由于第二操作系统的升级包存储在非易失性的第一存储分区,因此断电并不会导致升级包的原始数据丢失,即使进行升级包更新的过程中,相关数据存储在内存中,断电只会导致内存中的数据进行丢失,第一存储分区中仍然保存有升级包的原始数据,可以重新进行数据更新,并不会影响升级的可行性,有效提高了数据的安全性和升级的稳定性。
为了更好的说明本发明的技术方案,以下提出2个具体示例:
示例一:
在本示例中,以机顶盒从RDK操作系统升级到ATV操作系统为例,机顶盒中文件系统的分区情况参考图2所示,包括Update分区110、BootLoader分区210、RPMB分区310,还包括RDK分区410或ATV分区510,其中,Update分区110、BootLoader分区210、RPMB分区310由RDK操作系统和ATV操作系统共享且分区大小和偏移量相同,本示例的认证数据为WidevineKey。参照图9,示例一包括但不限于有以下步骤:
步骤S910,将Widevine Key预先烧录到终端的RPMB分区;
步骤S920,RDK系统将ATV系统的升级包下载到Update分区,并对该升级包进行签名校验和完整性校验;
步骤S930,升级包校验正确后重启进入uboot阶段,uboot获取升级包的分区映射信息,根据分区映射信息将升级包中的镜像文件逐个更新到相应的ATV分区,完成之后更新BootLoader分区;
步骤S940,完成升级包和BootLoader更新之后,重启终端,使得终端从RPMB分区检测到ATV系统DRM业务所需要的Widevine key存在,运行ATV系统。
示例二:
在本示例中,以机顶盒从Linus操作系统升级到ATV操作系统为例,机顶盒中文件系统的分区情况参考图2所示,包括Update分区110、BootLoader分区210、RPMB分区310、CA分区320,还包括Linus分区420或ATV分区510,其中,Update分区110、BootLoader分区210、RPMB分区310由Linus操作系统和ATV操作系统共享且分区大小和偏移量相同,RPMB分区310未预先烧录ATV操作系统的Widevine Key,Linux系统的认证数据以CA证书为例。参照图10,示例二包括但不限于有以下步骤:
步骤S1010,在生产终端时部署Linux系统,将Linux系统的CA证书预先保存在CA分区;
步骤S1020,Linux系统将ATV系统的升级包下载到Update分区,并对该升级包进行签名校验和完整性校验;
步骤S1030,升级包校验正确后重启进入uboot阶段,uboot获取升级包的分区映射信息,根据分区映射信息将升级包中的镜像文件逐个更新到相应的ATV分区,完成之后更新BootLoader分区;
步骤S1040,完成升级包和BootLoader更新之后,重启终端,终端从CA分区获取CA证书,根据CA证书向服务器请求下发本终端所需要的Widevine key,服务器根据CA证书校验终端为合法设备,向终端发送Widevine key,终端将Widevine key保存至RPMB分区,运行ATV系统。
另外,参照图11,本发明的一个实施例还提供了一种终端,该终端1100包括:存储器1110、处理器1120及存储在存储器1110上并可在处理器1120上运行的计算机程序。
处理器1120和存储器1110可以通过总线或者其他方式连接。
实现上述实施例的操作系统切换方法所需的非暂态软件程序以及指令存储在存储器1110中,当被处理器1120执行时,执行上述实施例中的操作系统切换方法,例如,执行以上描述的图4中的方法步骤S410至步骤S430、图5中的方法步骤S510至步骤S520、图6中的方法步骤S610、图7中的方法步骤S710至步骤S720、图8中的方法步骤S810至步骤S820、图9中的方法步骤S910至步骤S940、图10中的方法步骤S1010至步骤S1040。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分别到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述终端实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的操作系统切换方法,例如,执行以上描述的图4中的方法步骤S410至步骤S430、图5中的方法步骤S510至步骤S520、图6中的方法步骤S610、图7中的方法步骤S710至步骤S720、图8中的方法步骤S810至步骤S820、图9中的方法步骤S910至步骤S940、图10中的方法步骤S1010至步骤S1040。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分别在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
Claims (11)
1.一种终端,其特征在于,所述终端包括:
第一存储分区,所述第一存储分区用于存储升级包,其中,第二操作系统的升级包由所述终端在获取到系统切换指令后,通过第一操作系统下载到所述第一存储分区,所述第一操作系统为所述终端当前运行的操作系统,所述第二操作系统为所述终端可切换的操作系统;
第二存储分区,所述第二存储分区用于存储启动加载器BootLoader,其中,所述终端在根据所述第二操作系统的升级包进行升级更新的过程中,最后将所述第二存储分区中存储的所述BootLoader更新为所述第二操作系统的BootLoader;
第三存储分区,所述第三存储分区用于存储认证数据,所述认证数据用于认证所述终端的合法性,以使所述终端在合法性验证通过后运行所述第二操作系统。
2.根据权利要求1所述的终端,其特征在于:
所述认证数据为差异系统数据,其中,所述差异系统数据为所述终端独占且归属于所述第二操作系统的系统数据;
或者,所述认证数据不为所述差异系统数据,所述差异系统数据由所述终端根据所述认证数据进行合法性认证后下载。
3.根据权利要求2所述的终端,其特征在于:
所述第二存储分区和所述第三存储分区至少由所述第一操作系统和所述第二操作系统共享;
每个所述第二存储分区的存储空间属性相同,每个所述第三存储分区的所述存储空间属性相同,所述存储空间属性包括存储空间大小和偏移量。
4.根据权利要求1至3任意一项所述的终端,其特征在于,还包括:
至少一个第四存储分区,所述第四存储分区用于存储所述第一操作系统的通用系统数据和/或用户数据,所述第四存储分区由所述第一操作系统独占,所述通用系统数据为不同的终端所通用的系统数据;
或者,
至少一个第五存储分区,所述第五存储分区用于存储所述第二操作系统的通用系统数据和/或用户数据,所述第五存储分区由所述第二操作系统独占。
5.一种操作系统切换方法,应用于如权利要求1至4任意一项所述的终端,所述操作系统切换方法包括:
当获取到系统切换指令,通过第一操作系统下载所述第二操作系统的升级包并保存在所述第一存储分区,其中,所述第一操作系统为所述终端当前运行的操作系统,所述第二操作系统为所述终端可切换的操作系统;
根据所述第二操作系统的升级包进行升级更新,并最后将所述第二存储分区中存储的所述BootLoader更新为所述第二操作系统的BootLoader;
从所述第三存储分区获取认证数据,在根据所述认证数据进行合法性验后运行所述第二操作系统。
6.根据权利要求5所述的方法,其特征在于,所述终端还包括至少一个第五存储分区,所述第五存储分区用于存储所述第二操作系统的通用系统数据和/或用户数据,所述通用系统数据为不同的终端所通用的系统数据,所述根据所述第二操作系统的升级包进行数据更新,包括:
获取分区映射信息,所述分区映射信息记载有所述第二操作系统的通用系统数据在至少一个所述第五存储分区的分布情况;
根据所述升级分区映射信息,将所述第二操作系统的升级包中每个所述通用系统数据的镜像文件更新到所对应的所述第五存储分区。
7.根据权利要求6所述的方法,其特征在于,所述终端还包括至少一个第四存储分区,所述第四存储分区用于存储所述第一操作系统的通用系统数据和/或用户数据,在所述运行所述第二操作系统之后,所述方法还包括:
删除所述第四存储分区中存储的所述第一操作系统的用户数据。
8.根据权利要求5所述的方法,其特征在于,所述在根据所述认证数据进行合法性验后运行所述第二操作系统,包括:
当所述认证数据为所述第二操作系统的所述差异系统数据,在根据所述认证数据进行合法性验后运行所述第二操作系统,其中,所述差异系统数据为所述终端独占且归属于所述第二操作系统的系统数据;
或者,
当所述认证数据不为所述差异系统数据,在根据所述认证数据进行合法性校验通过后下载所述差异系统数据,并运行所述第二操作系统。
9.根据权利要求5所述的方法,其特征在于,在所述将所述第二存储分区中存储的所述BootLoader更新为所述第二操作系统的BootLoader之前,所述方法还包括:
当所述终端断电后重启,重新从所述第一存储分区获取所述第二操作系统的升级包;
根据重新获取的所述第二操作系统的升级包进行数据更新。
10.一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求5至9任意一项所述的操作系统切换方法。
11.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求5至9任意一项所述的操作系统切换方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210718146.4A CN117311746A (zh) | 2022-06-21 | 2022-06-21 | 终端、操作系统切换方法、存储介质 |
PCT/CN2023/100231 WO2023246594A1 (zh) | 2022-06-21 | 2023-06-14 | 终端、操作系统切换方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210718146.4A CN117311746A (zh) | 2022-06-21 | 2022-06-21 | 终端、操作系统切换方法、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117311746A true CN117311746A (zh) | 2023-12-29 |
Family
ID=89272456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210718146.4A Pending CN117311746A (zh) | 2022-06-21 | 2022-06-21 | 终端、操作系统切换方法、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117311746A (zh) |
WO (1) | WO2023246594A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356677B1 (en) * | 2001-10-19 | 2008-04-08 | Flash Vos, Inc. | Computer system capable of fast switching between multiple operating systems and applications |
CN102799484B (zh) * | 2012-07-11 | 2017-11-03 | 中兴通讯股份有限公司 | 移动终端运行多操作系统的方法及装置 |
CN103761088A (zh) * | 2014-01-13 | 2014-04-30 | 中南大学 | 一种适用于arm架构移动设备的多操作系统切换方法 |
CN104978231A (zh) * | 2015-07-10 | 2015-10-14 | 上海斐讯数据通信技术有限公司 | 基于内部存储分区的多系统及其加载和切换方法 |
EP3547195B1 (en) * | 2016-12-29 | 2020-11-25 | Huawei Technologies Co., Ltd. | System-on-chip and method for switching secure operating systems |
CN110677242B (zh) * | 2019-08-28 | 2022-08-09 | RealMe重庆移动通信有限公司 | 秘钥处理方法、秘钥处理装置及终端设备 |
CN110569075B (zh) * | 2019-09-12 | 2020-10-02 | 浙江立为信息科技有限公司 | 一种多操作系统的切换方法 |
-
2022
- 2022-06-21 CN CN202210718146.4A patent/CN117311746A/zh active Pending
-
2023
- 2023-06-14 WO PCT/CN2023/100231 patent/WO2023246594A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023246594A1 (zh) | 2023-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108551487B (zh) | PaaS平台的应用部署方法、装置、服务器及存储介质 | |
CN108595221B (zh) | PaaS平台的插件加载方法、装置、服务器及存储介质 | |
US10162625B2 (en) | Vehicle control storage methods and systems | |
WO2016015558A1 (zh) | 一种许可证申请方法及装置 | |
KR102618665B1 (ko) | 블록체인을 사용한 버전 이력 관리 | |
CN109062598B (zh) | 一种安全的ota升级方法及系统 | |
CN109189451A (zh) | 一种固件升级方法及装置 | |
CN103747433B (zh) | 一种通过厂商服务器实现root请求管理的方法及移动终端 | |
US20170068531A1 (en) | Method of deploying a set of software application(s) | |
US20210035120A1 (en) | Adaptive and verifiable bill of materials | |
KR20130012929A (ko) | 데이터 패키지의 효율적인 다운로드 방법 및 시스템 | |
CN112463191A (zh) | 一种文件更新方法及装置、设备、存储介质 | |
WO2011095074A1 (zh) | 一种终端设备系统升级方法及终端设备 | |
CN105511920A (zh) | 一种基于容器的移动终端操作系统升级方法和装置 | |
KR100660641B1 (ko) | 휴대 단말기의 부팅 보안 방법 및 그 휴대 단말기 | |
JP2023505844A (ja) | パッケージベースリモートファームウェアアップデート | |
JP5533935B2 (ja) | ソフトウェア配信システム、ソフトウェア配信方法 | |
WO2016082450A1 (zh) | 一种用户终端的升级方法和用户终端 | |
CN109246454B (zh) | 基于云平台的机顶盒管理方法、装置、终端及存储介质 | |
KR20120111852A (ko) | 사물통신에서 원격 소프트웨어를 분리 업그레이드하는 방법 및 장치 | |
CN117311746A (zh) | 终端、操作系统切换方法、存储介质 | |
CN106933604B (zh) | 一种系统升级方法及装置 | |
CN111064723A (zh) | 一种基于备份系统的空中下载升级方法及系统 | |
KR101461319B1 (ko) | 셋탑박스의 펌웨어 업그레이드 방법 및 펌웨어 업그레이드 장치 | |
CN113641391B (zh) | 升级区块链系统的方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |