CN114138343A - 一种终端及终端启动方法 - Google Patents

一种终端及终端启动方法 Download PDF

Info

Publication number
CN114138343A
CN114138343A CN202010923130.8A CN202010923130A CN114138343A CN 114138343 A CN114138343 A CN 114138343A CN 202010923130 A CN202010923130 A CN 202010923130A CN 114138343 A CN114138343 A CN 114138343A
Authority
CN
China
Prior art keywords
partition
check
portable system
portable
memory card
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
CN202010923130.8A
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.)
Hisense Mobile Communications Technology Co Ltd
Original Assignee
Hisense Mobile Communications Technology 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 Hisense Mobile Communications Technology Co Ltd filed Critical Hisense Mobile Communications Technology Co Ltd
Priority to CN202010923130.8A priority Critical patent/CN114138343A/zh
Publication of CN114138343A publication Critical patent/CN114138343A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

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

Abstract

本发明公开了一种终端及终端启动方法,涉及多系统启动技术领域,该方法包括:在开机上电后,若监听到插入外接存储卡,则读取外接存储卡的各个分区,外接存储卡包括系统分区、数据分区、第一校验分区和第二校验分区;系统分区用于存储便携系统,数据分区用于存储用户的数据,第一校验分区用于存储分区表信息,第二校验分区用于存储在便携系统启动过程中对系统分区进行校验时所使用的系统校验文件;根据第一校验分区存储的分区表信息,对外接存储卡的各分区信息进行第一校验;确定第一校验通过后,弹出是否启动便携系统的界面;启动用户通过界面指示启动的系统。本发明能够实现启动外接包含便携系统外接存储卡的终端。

Description

一种终端及终端启动方法
技术领域
本发明涉及多系统启动技术领域,尤其涉及一种终端及终端启动方法。
背景技术
随着多媒体技术的发展,终端内部的存储空间已经无法满足现实的需求,可以通过外接存储卡进行存储空间的扩展。对于现有技术中外接存储卡,存储的大多为一些文件信息,例如视频文件,图片文件,txt文件等,但由于安卓的安全限制,终端上下载的应用本体只能安装到本机系统的存储空间中,外接存储卡上不允许安装应用。
综上可知,现有技术中,外接存储卡的功能比较单一,仅用做存储功能,所以启动时并不会访问外接存储卡,从而造成无法启动外接存储卡的便携系统。
发明内容
本发明提供一种终端及终端启动方法,提供一种外接包含便携系统的外接存储卡的终端的启动方式。
第一方面,本发明提供一种终端,包括:接口、处理器和显示单元;
所述接口,用于外接包含便携系统的外接存储卡;
所述处理器,用于在开机上电后,若监听到插入外接存储卡,则读取外接存储卡的各个分区,所述外接存储卡包括系统分区、数据分区和第一校验分区;所述系统分区用于存储便携系统,所述数据分区用于存储用户的数据,所述第一校验分区用于存储分区表信息;根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行第一校验;确定所述第一校验通过后,弹出是否启动便携系统的界面;启动用户通过所述界面指示启动的系统;
所述显示单元,用于显示是否启动便携系统的界面,以及接收用户指示的启动的系统。
本发明提供的终端,提供了一种终端新的启动方式,在开机上电后,首先检测终端是否外接包含便携系统的外接存储卡,并在检测到有包含便携系统的外接存储卡时,提示用户是否启动便携系统,从而启动用户选择启动的系统,由于外接存储卡中包含便携系统以及存储用户的数据的数据分区,即可以在运行便携系统时,能够存储下载的应用以及其他文件信息,所以,本发明不仅能够实现终端使用多个系统,还扩展了外接存储卡的功能。
在一种可能的实现方式中,所述处理器,具体用于:
将第一校验分区存储的分区表信息与所述外接存储卡的各分区信息中的同类型信息进行第一校验;其中,所述同类型的信息包括各分区大小、各分区名称以及各分区的起始位置中的部分或全部。
本发明实施例提供一种终端,该终端通过校验分区信息与外接存储卡的各个分区信息中的同类型信息,确定该外接存储卡是否被篡改,提高了终端运行的安全性。
在一种可能的实现方式中,所述处理器,具体用于:
若用户通过所述界面指示启动的系统为所述便携系统,则进行重启操作,并在重启过程中,启动所述便携系统。
本实施例的所述终端,能够在用户选择便携系统时,通过重新启动的方式,中断本机系统的启动过程,重新启动时实现启动便携系统。
在一种可能的实现方式中,所述外接存储卡还包括第二校验分区,所述第二校验分区用于存储在便携系统启动过程中对所述系统分区进行校验时所使用的系统校验文件;
所述处理器,具体用于:
重启本机系统,并在本机系统重启的kernel启动阶段,读取外接存储卡的各个分区,以及根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行所述第一校验;
确定所述第一校验通过后,根据第二校验分区存储的系统校验文件,对所述外接存储卡的系统分区进行第二校验,若所述第二校验通过后,则在所述本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区,运行所述系统分区中的便携系统以执行便携系统启动的安卓启动阶段;
在所述便携系统启动的安卓启动阶段,中断本机系统挂载数据分区的流程,使用外接存储卡的设备标识挂载数据分区,并继续启动便携系统。
本发明还提供一种终端,能够在重启本机系统时,将与本机厂商相关的信息进行验证通过后,进入到本机系统重启的kernel启动阶段,并读取外接存储卡中的各个分区信息,进行验证外接存储卡的信息,并在验证通过后,将原本启动本机系统的过程替换为启动便携系统,在不改变本机厂商相关的信息下,能够实现在终端上运行两种不同的系统。
在一种可能的实现方式中,所述处理器,还用于:
若根据当前运行的便携系统的加密算法对当前运行的便携系统的版本号进行加密得到加密系统版本号,与所述第一校验分区中的便携系统的版本号不同,则中断启动便携系统,重新启动本机系统;或
若预设时间内未获取到所述第一校验分区中的便携系统的版本号和/或当前运行的所述便携系统的版本号,则中断启动便携系统,重新启动本机系统。
本实施例还提供一种终端,提供了两种校验便携系统版本号的方式,能够在用户自行烧录非官方版本的便携系统时,不启动便携系统,一种情况是,用户自行烧录的便携系统中不携带系统版本号,另一种情况是,用户烧录的便携系统中的系统版本号为非官方版本,从而不知道第一校验分区中的原始系统版本号的加密方式,由此导致校验失败,终止启动便携系统。
第二方面,本发明提供一种终端启动方法,应用于终端,所述方法包括:
在开机上电后,若监听到插入外接存储卡,则读取外接存储卡的各个分区,所述外接存储卡包括系统分区、数据分区和第一校验分区;所述系统分区用于存储便携系统,所述数据分区用于存储用户的数据,所述第一校验分区用于存储分区表信息;
根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行第一校验;
确定所述第一校验通过后,弹出是否启动便携系统的界面;
启动用户通过所述界面指示启动的系统。
在一种可能的实现方式中,所述根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行第一校验,包括:
将第一校验分区存储的分区表信息与所述外接存储卡的各分区信息中的同类型信息进行第一校验;其中,所述同类型的信息包括各分区大小、各分区名称以及各分区的起始位置中的部分或全部。
在一种可能的实现方式中,启动用户通过所述界面指示启动的系统,包括:
若用户通过所述界面指示启动的系统为所述便携系统,则进行重启操作,并在重启过程中,启动所述便携系统。
在一种可能的实现方式中,所述外接存储卡还包括第二校验分区,所述第二校验分区用于存储在便携系统启动过程中对所述系统分区进行校验时所使用的系统校验文件;所述启动所述便携系统,包括:
重启本机系统,并在本机系统重启的kernel启动阶段,读取外接存储卡的各个分区,以及根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行所述第一校验;
确定所述第一校验通过后,根据第二校验分区存储的系统校验文件,对所述外接存储卡的系统分区进行第二校验,若所述第二校验通过后,则在所述本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区,运行所述系统分区中的便携系统以执行便携系统启动的安卓启动阶段;
在所述便携系统启动的安卓启动阶段,中断本机系统挂载数据分区的流程,使用外接存储卡的设备标识挂载数据分区,并继续启动便携系统。
在一种可能的实现方式中,在继续启动便携系统之后,所述方法还包括:
若根据当前运行的便携系统的加密算法对当前运行的便携系统的版本号进行加密得到加密系统版本号,与所述第一校验分区中的便携系统的版本号不同,则中断启动便携系统,重新启动本机系统;或
若预设时间内未获取到所述第一校验分区中的便携系统的版本号和/或当前运行的所述便携系统的版本号,则中断启动便携系统,重新启动本机系统。
第三方面,本发明提供一种计算机存储介质,其上存储有计算机程序,该程序被处理单元执行时实现第二方面所述终端启动方法的步骤。
另外,第二方面至第三方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种外接存储卡的分区的示意图;
图2为本发明实施例提供的一种插入外接存储卡的终端的示意图;
图3为本发明实施例提供的一种供用户选择是否启动便携系统的界面图;
图4为本发明实施例提供的一种用户选择启动便携系统后的启动方法的流程图;
图5为本发明实施例提供的一种终端的结构框图;
图6为本发明实施例提供的一种终端的软件结构的示意图;
图7为本发明实施例提供的一种终端启动方法的流程图;
图8为本发明实施例提供的一种用户选择启动便携系统后的启动方法的完整的流程图;
图9为本发明实施例提供的一种当前运行便携系统时升级方法的流程图;
图10为本发明实施例提供的一种供用户选择是否升级本机系统的界面图;
图11为本发明实施例提供的一种供用户选择是否升级本机系统和便携系统的界面图;
图12为本发明实施例提供的一种当前运行本机系统时升级方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面对文中出现的一些词语进行解释:
1、本发明实施例中术语“或”,描述关联对象的关联关系,表示可以存在两种关系,例如,A或B,可以表示:单独存在A,单独存在B这两种情况。
2、本发明实施例中术语“终端”,或者叫“终端设备”,是计算机网络中处于网络最外围的设备,能够接入无线局域网络WLAN进行用户信息的输入以及处理结果的输出,包括台式电脑、手机、笔记本、平板电脑、POS机、车载电脑。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本发明实施例中提供了一种终端能够插入存储有便携系统的外接存储卡,并且终端可以识别该包含便携系统的外接存储卡,并运行外接存储卡上的便携系统。其中,本发明实施例中的外接存储卡可以但不限于是SD卡(Secure Digital Memory Card/SD card,安全数码卡)、T卡等,本发明实施例中的便携系统是一种操作系统,可以但不限于是安卓系统。其中,T卡,即TF卡是一种快闪存储器卡。
在终端上插入T卡,该T卡上包含便携系统,当该T卡插入终端后,终端可以运行T卡上的便携系统,也可以运行本机系统。
结合图1所示,本发明实施例中的便携系统是通用系统,其中,外接存储卡包括以下四个分区:
1)系统分区,存储system文件,可理解为存储便携系统及系统应用等文件;可选的本发明中的系统分区中不包含与驱动或硬件强相关的数据,因此本发明中的外接存储卡的便携系统具备通用性。
2)数据分区,存储用户的数据,如:联系人、短信、设置、用户安装的程序;
3)第一校验分区,存储分区表信息;第一校验分区没有文件系统,不可挂载,终端可以直接读取;
可选的,第一校验分区,还包括便携系统的版本号。
4)第二校验分区,存储系统校验文件;第二校验分区有文件系统,需挂载后终端才能读取。其中,该系统校验文件为在便携系统启动过程中对所述系统分区进行校验时所使用的。
本发明实施例中的外接存储卡可以通过烧录工具将上述四个分区的数据或文件烧录到外接存储卡中。
由于外接存储卡中包括上述分区,所以,在运行外接存储卡中的便携系统时,可以从终端中下载应用,并将应用保存在外接存储卡中的数据分区中,这样外接存储卡除了能够存储文本信息之外,还能够提供可以运行的操作系统以及操作系统下的应用,扩展了外接存储卡的功能,也能增加终端的内存。
结合图2所示,当终端插入包含便携系统的外接存储卡,即T卡时,终端可以运行便携系统。在运行便携系统时,启动数据分区中的应用,并将其应用图标显示在终端的用户界面上。便携系统中的应用例如,日历、音乐、股市、邮箱、电话、照相、图库、短信等等。
同样的,当终端当前运行本机系统时,可以运行本机存储器的应用,并将其应用图标显示在终端的用户界面上。
由于现有技术中,外接存储卡时并没有便携系统,所以,并没有启动带有便携系统的外接存储卡的终端的启动过程。对此,本发明实施例提供了一种终端,包括具有外接包含便携系统的外接存储卡的接口、显示是否启动便携系统的界面,以及接收用户指示的启动的系统的显示单元、以及进行逻辑处理的处理器,能够实现启动系统。
其中,启动过程主要在处理器中实现。
以下对处理器做详细介绍:
处理器用于在开机上电后,若监听到插入外接存储卡,则读取外接存储卡的各个分区,所述外接存储卡包括系统分区、数据分区、第一校验分区和第二校验分区;根据第一校验分区存储的分区表信息,对外接存储卡的各分区信息进行第一校验;确定第一校验通过后,弹出是否启动便携系统的界面;启动用户通过所述界面指示启动的系统。
在进行第一校验时,处理器用于将第一校验分区存储的分区表信息与外接存储卡的各分区信息中的同类型信息进行第一校验;其中,同类型的信息包括各分区大小、各分区名称以及各分区的起始位置中的部分或全部。也就是说,本实施例中的第一校验用于校验各分区信息是否被破坏了,例如各分区的大小是否被修改过。
实施中,处理器用于根据第一校验分区存储的分区表信息,比较外接存储卡的各分区信息是否与所述分区表信息中的各分区信息一致,如外接存储卡的各分区的大小是否与分区表信息中各分区的大小一致,外接存储卡的各分区的名称是否与分区表信息中各分区的名称一致,外接存储卡的各分区的起始位置是否与分区表信息中各分区的起始位置一致,若都一致则说明各分区信息未被修改验证通过。
比如,分区表信息包括从0x0000位置开始到0x0300位置结束的分区,其中,每82位长度代表一个分区的大小,第一个82位代表系统system分区的大小,第二个82位代表数据data分区的大小,第三个82位代表第一校验分区的大小,第四个82位代表第二校验分区的大小。
其中弹出的是否启动便携系统的界面,形成图3所示。用户可以选择“是”,处理器用于进行重启操作,并在重启过程中,启动便携系统,如果选择“否”则处理器用于启动本机系统,即进行正常的启动流程。
由于本发明实施例中启动便携系统的过程是在启动安卓系统的过程中完成的,所以,为了更加便于理解,首先介绍正常情况下启动安卓系统的过程:
安卓系统从上到下分为四层:应用层,应用程序框架层,系统运行库层和linux内核层;其中,Linux内核为安卓系统提供内存管理,进程管理,网络协议和各种驱动(如显示驱动、相机驱动、蓝牙驱动等);系统运行库层用于启动包括C/C++库和android runtime;应用框架层为应用层开发提供了各种组件和服务;应用层主要由java程序编写,包含各种资源文件,可以与用户进行交互。
对于整个Android系统的启动流程总的来说可以分为三个阶段,分别是:系统启动加载器Boot Loader引导阶段;linux内核启动即Kernel启动阶段;Android系统启动即ramdisk.img与system.img启动阶段。其中,Boot Loader可以理解为是为操作系统启动之前做的准备,用以初始化硬件设备,建立内存空间的映像图,为最终调用系统内核准备好环境,给内核传递必要的数据;linux内核启动主要是为了完成Linux内核初始化并进行系统设置;Linux内核初始化完成后,就可以加载Android系统了,加载Android系统首先会启动init进程;init进程是Android系统中用户空间的第一个进程,进程号为1,是Android系统启动中的一个关键进程,简单概括为:
(1)创建和挂载启动系统所需要的文件目录。
(2)初始化和启动属性服务。这里的属性服务,类似于Windows操作系统中的注册表管理器,用来记录用户、软件等的一些信息。
(3)解析init.rc配置文件,并启动孵化器Zygote进程。
Zygote进程启动主要用于创建应用程序进程以及创建并启动系统的关键服务System Server;System Server进程启动主要用于创建系统服务。系统启动的最后一步是启动启动器Launcher,用于启动应用程序,以及显示和管理应用程序的快捷图标或者其它桌面组件。
另外,Android系统中的ROM会划分为不同的区域,用于放置不同的程序,在Android系统中主要划分为以下几个分区:
·/boot:存放引导程序,包括内核和内存操作程序;
·/system:存放Android系统及系统应用;
·/recovery:恢复分区,可以进入该分区进行系统恢复;
·/data:用户数据区,包含了用户的数据:联系人、短信、设置、用户安装的程序;
·/cache:安卓系统缓存区,保存系统最常访问的数据和应用程序;
·/misc:包含一些杂项内容,如系统设置和系统功能启用禁用设置;
·/sdcard:用户自己的存储区,可以存放照片,音乐,视频等文件。
当开机通电时首先会加载Bootloader,Bootloader回读取ROM找到操作系统并将Linux内核加载到RAM中。当Linux内核启动后会加载驱动程序,挂载根文件系统,其中,挂载(mounting)是指由操作系统使一个存储设备(诸如硬盘、CD-ROM或共享资源)上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。
在上述过程中,由于本发明中外接存储卡的系统分区是system文件,而该system文件中只包含便携系统及系统应用的文件,并不包含与驱动或硬件相关的内容(可理解为不包含厂商的私有文件)。
同时,由于本机系统会通过使用一个保护分区中的vbmeta校验数据对系统system分区中的数据进行校验,当校验值一致时,才会走正常的系统启动流程,因此,这造成了一个终端的本机系统只能识别一个system,如果要识别多个system,就需要内置多个vbmeta校验数据,并准备多个system分区,才能实现两个系统间的切换。
可知,在用户选择启动的系统为便携系统之前,本机已经启动部分过程,所以为了能够启动便携系统,需要中断正在进行的启动过程,重新进行新的启动过程,即处理器用于在用户通过所述界面指示启动的系统为所述便携系统之后,进行重启操作,为了不破坏终端本机系统system分区的校验,在重新启动时,重新启动部分的本机系统的流程,即系统启动加载器Boot Loader引导阶段;Bootloader回读取ROM找到操作系统并将Linux内核加载到RAM中。
当Linux内核启动后会加载驱动程序,即在本机系统重启的kernel启动阶段,在该启动阶段应该加载本机系统,但由于用户选择启动便携系统,所以在本机系统重启的kernel启动阶段,处理器,用于读取外接存储卡的各个分区,以及根据第一校验分区存储的分区表信息,对外接存储卡的各分区信息进行第一校验;确定第一校验通过后,根据第二校验分区存储的系统校验文件,对外接存储卡的系统分区进行第二校验,若第二校验通过后,则在本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区,运行系统分区中的便携系统以执行便携系统启动的安卓启动阶段;在便携系统启动的安卓启动阶段,中断本机系统挂载数据分区的流程,使用外接存储卡的设备标识挂载数据分区,并继续启动便携系统。
其中,第一校验的过程与上述重启之前第一校验的过程相同,具体可以参考上述过程。
其中,第二校验过程是在本机系统启动的挂载流程阶段进行的。
可选的,本实施例提供第二校验的具体方式:
在本机系统启动的挂载流程阶段,创建临时目录,并将第二校验分区挂载到所述临时目录上,读取第二校验分区存储的系统校验文件;按照预设校验算法确定系统分区内的数据的校验值,比较系统校验文件中存储的校验码与校验值是否一致,若一致则确定第二校验通过。
可选的,本实施例中的预设校验算法可以但不限于是哈希校验。
其中,本实施例中所使用的预设校验算法可以在外接存储卡的系统分区中获取,也可以在外接存储卡的数据分区或第一校验分区或第二校验分区中获取,本实施例对此不作过多限定。可选的,本实施例中的外接存储卡还包括额外分区,用于存储所需的数据或预设校验算法。具体的,若预设算法为哈希校验,则在本机系统启动的挂载流程阶段,读取系统校验文件中的校验值(如哈希值),利用该校验值(如哈希值)对系统分区中的数据进行校验(如哈希校验),若校验通过则启动便携系统。
需要说明的是,本实施例中对便携系统的校验过程是在终端重启的过程中进行的,并且,在接收到启动便携系统的指示后触发的系统重启过程。由于在系统重启的过程中,本机系统会通过使用一个保护分区中的vbmeta校验数据对系统system分区中的数据进行校验,当校验值一致时,才会走正常的系统启动流程,因此,这造成了一个终端的本机系统只能识别一个system,如果要识别多个system,就需要内置多个vbmeta校验数据,并准备多个system分区,才能实现两个系统间的切换。
本发明实施例在系统重启的过程中,为了不破坏终端本机系统system分区的校验,在本机系统重启过程的kernel启动阶段,本机系统正常执行本机system分区的校验,本机system分区校验成功后,开始对便携系统进行校验,即可以读取外接存储卡的各个分区;或者,在系统重启过程的kernel启动阶段,本机系统正常执行本机system分区的校验,同时,读取外接存储卡的各个分区,在本机system分区校验成功且第一校验通过后,根据第二校验分区存储的系统校验文件,对外接设备的系统分区进行第二校验,若所述第二校验通过后,则启动便携系统。
可选的,在启动本机系统的kernel启动阶段,本机系统执行本机system分区的校验成功后,读取外接存储卡的各个分区,根据第一校验分区存储的分区表信息,对所述外接设备的各分区信息进行第一校验;或,
在启动本机系统的kernel启动阶段,本机系统执行本机system分区的校验,并读取外接存储卡的各个分区,根据第一校验分区存储的分区表信息,对外接设备的各分区信息进行第一校验,若本机system分区校验成功且第一校验通过后,根据第二校验分区存储的系统校验文件,对外接设备的系统分区进行第二校验,若第二校验通过后,则启动便携系统。
作为一种可选的实施方式,处理器还用于:在启动便携系统的过程中,根据第一校验分区中的原始系统版本号对系统分区中的便携系统的版本号进行校验。
作为一种可选的实施方式,处理器还用于:若第一校验失败,则中断当前的本机启动过程,重新启动系统回到本机系统;或,若第二校验失败,则中断当前的本机启动过程,重新启动系统回到本机系统;或,若根据第一校验分区中的原始系统版本号对所述系统分区中的便携系统的版本号进行校验后,校验失败,则中断当前的本机启动过程,重新启动系统回到本机系统。
需要说明的是,本发明实施例可以通过两次不同的校验方式,对便携系统进行校验,还可以在上述两次校验通过后,结合第三种校验方式对便携系统进行校验,其中,对外接存储卡进行第一校验,即校验各分区信息,能够使得各分区大小被调整后不会启动便携系统,认为该便携系统并非官方版本,被自行修改了;对外接存储卡进行第二校验,即校验系统分区,能够使得系统分区中的数据被替换后不会启动便携系统,保证系统分区的完整性;对外接存储卡的便携系统版本号进行校验,能够使得没有系统版本号或系统版本号非官方版本号时不会启动便携系统,防止用户在该外接存储卡中烧录非官方版本的便携系统时启动便携系统。
需要说明的是,上述终端对便携系统的版本号进行校验的过程,是在启动便携系统之后的流程中进行的。
本实施例还可以在所述第二校验通过后,启动便携系统过程中,需要说明的是,本实施例对数据分区挂载后,执行的启动流程和现有技术是一样的,由于本发明实施例便携系统的启动流程是基于本机系统的启动流程,因此具备通用性,任何装有安卓系统的终端都可以使用本发明中外接存储卡中的便携系统,本实施例便携系统的启动流程是在原有的本机系统启动的流程中添加了多个中断处理,用于对外接存储卡进行校验后启动该外接存储卡中的便携系统。其中一个中断处理用于在所述本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区,另一个中断处理用于中断本机系统挂载数据分区的流程,使用外接存储卡的设备标识挂载数据分区,执行了上述两个中断处理后,实际上当前本机启动的系统就是便携系统了。
需要说明的是,本实施例需要先中断本机系统挂载数据分区的流程,由于本机系统在挂载数据分区时,需要用到配置文件,而该配置文件是存储在vendor分区中的,由于vendor分区中的配置文件与驱动和硬件具有高耦合性,因此,本实施中并没有对vendor分区中的数据进行替换,那么,若正常执行本机系统挂载数据分区的流程,则读取的配置文件是本机系统的数据分区中的用户数据,并不是外接存储卡的数据分区。
因此,本实施例终端中断了本机系统挂载数据分区的流程,并使用外接存储卡的设备标识挂载数据分区,从而完成数据分区的替换,读取的是外接存储卡的数据分区中的用户数据。
作为一种可选的实施方式,处理器还用于在启动便携系统的过程中,根据第一校验分区中的原始系统版本号对系统分区中的便携系统的版本号进行校验,其中,具体的校验方式包括如下任一种:
1)若预设时间内未获取到所述第一校验分区中的便携系统的版本号和/或当前运行的所述便携系统的版本号,则中断启动便携系统,重新启动本机系统;
2)若根据当前运行的便携系统的加密算法对当前运行的便携系统的版本号进行加密得到加密系统版本号,与第一校验分区中的便携系统的版本号不同,则中断启动便携系统,重新启动本机系统。
在该校验方式下,所述终端在启动便携系统的过程中,便携系统将系统内部记录的便携系统版本号发送给驱动进行校验(以写节点的方式通知驱动):
一种方式是,驱动在预设时间内未获取到所述便携系统版本号,和/或,第一校验分区中的原始系统版本号,则确定校验失败;
另一种方式是,若驱动在预设时间内获取到所述便携系统版本号和所述原始系统版本号,则通过将便携系统版本号与原始系统版本号进行对比,若一致则校验通过,否则中断当前的本机启动过程,重新启动系统回到本机系统。
需要说明的是,本实施例中终端对便携系统的版本号进行校验的过程是在启动便携系统的过程中的使用外接存储卡的设备标识挂载数据分区之后执行的;实施中,本实施例中的便携系统的版本号是根据预设算法加密过的版本号。
如图4所示,终端对便携系统的版本号进行校验的具体的执行流程如下:
步骤400、若第二校验通过后,在本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区;
例如,替换后的本机目录为mount–t ext4/dev/block/mmcblk1p1/system,其中,mount是执行挂载动作的命令,即使用mount命令替换系统分区,–t ext4是指外接存储卡的文件系统是ext4格式,dev/block/mmcblk1p1为外接存储卡的设备名称(即便携系统对应的设备名称),system为外接存储卡的系统分区(即要替换的系统分区)。
步骤401、运行系统分区中的便携系统;
容易理解的是,由于终端将本机目录下挂载的系统分区替换为外接存储卡的系统分区,则本机系统运行的当前的系统分区实际上是外接存储卡中的便携系统。
作为一种可选的实施方式,在所述本机系统的挂载流程阶段,所述终端将本机目录下挂载的系统分区替换为外接存储卡的系统分区之后,还包括:所述终端在所述系统分区目录下创建预设目录的预设链接。
实施中,创建指向system目录下关键目录的一些关键链接,比如/product目录,需要指向/system/product目录,例如mount–o bind/system/product/product。
步骤402、在运行便携系统之后,中断本机系统挂载数据分区的流程;
步骤403、使用外接存储卡的设备标识挂载数据分区;
由于终端运行系统分区中的便携系统之后,实际当前本机系统启动的就是外接存储卡中的便携系统了,那么在启动便携系统的过程中,还可以对当前运行的便携系统的版本号进行校验。但是,在对便携系统的版本号进行校验之前,需要先中断本机系统挂载数据分区的流程,由于本机系统在挂载数据分区时,需要用到配置文件,而该配置文件是存储在vendor分区中的,由于vendor分区中的配置文件与驱动和硬件具有高耦合性,因此,本实施中并没有对vendor分区中的数据进行替换,那么,若正常执行本机系统挂载数据分区的流程,则读取的配置文件是本机系统的数据分区中的用户数据,并不是外接存储卡的数据分区。
因此,本实施例终端中断了本机系统挂载数据分区的流程,并使用外接存储卡的设备标识挂载数据分区,从而完成数据分区的替换,读取的是外接存储卡的数据分区中的用户数据。
步骤404、对数据分区按现有方式进行解密操作并在数据分区解密成功之后,便携系统以写节点的方式通知驱动,写入的节点内容可以是按照当前运行的便携系统的加密算法对当前运行的便携系统的版本号进行加密得到加密系统版本号;
步骤405、驱动收到加密系统版本号后,比较第一校验分区中的系统版本号与加密系统版本号是否一致;若一致执行步骤406,否则执行步骤407;
步骤406、继续启动便携系统;
步骤407、中断启动便携系统,重新启动系统回到本机系统。
在启动完成后,终端运行便携系统,同时用户可以看到外接存储卡中的数据分区中的数据,例如应用。
由于便携系统为通用系统,可以使用在不同的终端上,且运行便携系统时,存储的数据存储在数据分区中,所以,便携系统不会因为外接存储卡在不同终端上而导致存储在外接存储卡中的数据消失。
以终端为手机举例,手机A和手机B,手机A上的操作系统为Vision风格,内置了A1应用、A2应用、A3应用、A4应用。
手机B上的操作系统是行业客户定制风格,内置了B1应用、B2应用、B3应用、B4应用。
外接存储卡为SD卡为例,该SD卡烧录的便携系统为谷歌原生风格,内置C1应用、C2应用、C3应用、C4应用。
当SD卡插到手机A并切换至便携系统后,手机A的风格展现为谷歌原生风格,即SD卡中便携系统的风格,A1应用、A2应用、A3应用、A4应用将不可见,C1应用、C2应用、C3应用、C4应用可使用,同时,A1应用、A2应用、A3应用、A4应用的数据可通过SD卡公用存储空间还原,使得用户在使用便携系统时,也能看到该应用的数据,例如,通过A应用下载的图片,该图片可以存储在SD卡上,当用户使用便携系统时,可以通过访问SD卡的存储空间,读取A应用下载的图片。同时,当用户使用便携系统时,通过C1应用保存联系人C1的信息。
当SD卡插到手机B并切换至便携系统后,手机B的风格展现为谷歌原生风格,B1应用、B2应用、B3应用、B4应用将不可见,C1应用、C2应用、C3应用、C4应用可使用,同时通过C1应用保存联系人C1的信息,可以在手机B中查看到,即SD卡中的信息是跟随SD卡的,与手机无关,所以,手机B中,也可以看到A应用下载的图片。
反之当用户切换系统回手机A或手机B的本机系统后,本机系统的应用依然可以正常使用,应用数据依然存在,且也可以通过公用存储空间还原手机B或手机A上的联系人信息,从而实现用户数据迁移。
同一个设备比如手机A,可以支持多个便携系统,如用户有3张SD卡,这3张卡可以分别烧录不同风格的便携系统,比如一个Vision3.0、一个Vision5.0、一个原生风格。这三个便携系统都可以在A手机上切换使用。实现一机多系统的效果。
综上所述,由于每个系统的风格不同,所以同一处理事件,也会有不同的处理结果,从而可以满足用户不同的需求。
其中,终端同时接入多个外接存储卡时,终端处理器用于在开机上电后,监听是否有外接存储卡,若有多个外接存储卡时,一一记录每个外接存储卡的卡号,并读取每个外接存储卡的各个分区,根据第一校验分区存储的分区表信息,对外接存储卡的各分区信息进行第一校验,确定第一校验通过后,弹出是否启动便携系统的界面,其中由于启动便携可以为多个,即每个外接存储卡中包括一个便携系统,所以,可以将外接存储卡的卡号进行显示,使得用户用以区分不同的便携系统,用户选择该便携系统时,即启动对应的便携系统。
其中,可以在读取每个外接存储卡的各个分区的内容时,获取外接存储卡的风格信息,在弹出界面时,将风格信息也标注在界面上,方便用户根据不同的风格,选择使用的便携系统。
由于终端运行需要操作系统和驱动系统共同工作,所以,在终端当前运行便携系统时,使用本机的驱动系统和外接存储卡的便携系统,在终端当前运行本机系统时,使用本机的驱动系统和本机的操作系统。由于需要升级的系统是在未激活的状态下进行升级的,所以当终端可以运行两个系统时,本发明实施例提供了一种终端,该终端能够实现当前运行的系统不同时,对便携系统升级。
其中,升级过程主要在处理器中实现。
以下对处理器做详细介绍:
处理器用于确定终端是否外接包含便携系统的外接存储卡。
具体来说,处理器用于在开机上电后,对外接存储卡的校验分区中存储的分区表信息与外接存储卡的各分区信息进行校验,校验通过后,添加外接存储卡包含便携系统的标识。
处理器用于监听是否插入外接存储卡,如果有,则检测是否有外接存储卡包含便携系统的标识,如果有,则确定外接包含便携系统的外接存储卡。即可以检测是否有便携系统的新的版本,从而可以根据该信息进一步的进行升级事件的相关处理。
需要说明的是,升级事件是指按照预设的时间查询系统版本号,访问服务器是否有最新的版本,若有进行升级,若没有,则结束,这一整个流程。
在升级事件中,处理器,用于获取便携系统的版本号。
具体来说,由于运行系统的不同,系统能够访问的区域也不同,同时,第一校验分区存储的版本号为加密的。所以为了能够使得终端在使用不同系统时,均能够快速且便捷的获取便携系统的版本号,本发明实施例提供的处理器还用于,在确定终端外接包含便携系统的外接存储卡后,从外接存储卡的第一校验分区中读取便携系统的版本号并解密后记录到便携系统对应的数据库中,该对应的数据库例如,便携系统对应的settings数据库sdrom_version,当前运行便携系统,则在需要查询是否升级时,处理器用于直接从便携系统对应的数据库中读取便携系统的版本号,这样无需解密,使得处理更加简化,提高了处理速度。
当前运行本机系统时,由于本机系统运行时处理器无法访问便携系统对应的数据库,为了能够使得处理器获取到便携系统的版本号,处理器用于从外接存储卡的校验分区中直接读取便携系统的版本号并进行解密后得到的便携系统的版本号。
处理器用于将外接存储卡的校验分区中获取的便携系统的版本号与服务器中最新的便携系统的版本号进行比较。
如果确定当前运行便携系统,且根据比较结果确定便携系统有更新,由于在运行的系统并不能升级的原则,所以,该终端的处理器用于将该终端进行重启,并进入恢复recovery模式,在recovery模式下对存储在外接存储卡的便携系统进行升级处理,以及用升级后的新的版本号替换第一校验分区中的版本号。
如果确定当前运行本机系统,且根据比较结果确定便携系统有更新,由于在运行的系统不是便携系统,同时,便携系统的升级仅为操作系统升级,并不影响本机的驱动系统,即不影响本机的正常操作,所以,该终端的处理用于直接对存储在外接存储卡的便携系统进行升级处理,以及用升级后的新的版本号替换第一校验分区中的版本号。
然而,在当前运行本机系统时对便携系统进行升级的事件中,由于处理器的处理能力有限,所以,为了避免升级中断,而导致升级失败的情况,本发明实施例的终端可以在一定程度上限制用户对本机的使用。
例如,关闭在后台运行的应用;和/或,弹出提示页面,提示用户本机正在对便携系统正在升级,请稍后使用。
针对升级过程中,由于升级需要进行重启,为了避免重启后无法得知哪个系统需要升级处理,所以,终端的处理器在确定有便携系统更新后,进行重启之前,终端中处理器用于在第一公共存储区记录升级便携系统的标识,存储从服务器下载的最新版本的便携系统、以及新的版本号。其中公共存储区为终端当前运行便携系统或者本机系统均可以被访问的区域,该区域可以在本机的存储器中,也可以在外接存储卡上。第一公共存储区可以为终端的存储器中的cache分区,标识为:OTA_TYPE=1表示只升级便携系统。
终端的处理器用于在进行重启后,进入recovery模式下,从第一公共存储区检测到标识,则根据第一公共存储区存储的最新版本的便携系统更新系统分区上的所述便携系统,以及将第一公共存储区存储的新的版本号替换校验分区中的版本号。
除了对便携系统升级之外,本发明实施例的终端还可以为本机系统进行升级。具体来说:
为了能够使得当前运行便携系统时依然能够查询到本机系统的版本号,所以,在确定自身外接包含便携系统的外接存储卡后处理器用于将本机系统的版本号写入到第二公共存储区。
在查询是否升级时,处理器用于将第二公共存储区中读取的本机系统的版本号与服务器中最新的本机系统的版本号进行比较,若当前运行便携系统,且根据比较结果确定本机系统有更新,则进行重启,并进入recovery模式,在recovery模式下对存储在终端存储器的本机系统进行升级处理;或者,若当前运行本机系统,且根据比较结果确定本机系统有更新,则进行重启,并进入recovery模式,在recovery模式下对存储在终端存储器的本机系统进行升级处理。
同样的,为了避免重启后,终端不清楚对哪个系统升级,处理器还用于在第一公共存储区内记录升级本机系统的标识,存储从服务器下载的最新版本的本机系统、以及新的版本号。升级本机系统的标识可以为:OTA_TYPE=0表示只升级本机系统。
然后,处理器还用于进行重启,并进入recovery模式,在recovery模式下查询到升级本机系统的标识,根据从服务器下载的最新版本的本机系统更新存储在终端存储器的本机系统,以及在stable分区记录升级后的本机系统的新的版本号。
当处理器确定便携系统和本机系统均需要升级时,在第一公共存储区内记录升级本机系统和便携系统的标识,存储从服务器下载的最新版本的本机系统、从服务器下载的最新版本的便携系统、本机系统的新的版本号、以及便携系统的新的版本号。升级本机系统和便携系统的标识可以为:OTA_TYPE=2表示升级本机系统和升级便携系统。
若当前运行本机系统,处理器可以用于直接在对存储在所述外接存储卡的便携系统进行升级处理,以及用升级后的新的版本号替换校验分区中的版本号,即直接升级便携系统,然后进行重启,进入recovery模式,在recovery模式下对存储在终端存储器的本机系统进行升级处理。
若当前运行本机系统,处理器除了上述执行的方式外,处理器还用于进行重启,进入recovery模式,在recovery模式下分别对便携系统升级和本机系统升级。
若当前运行便携系统,由于便携系统升级的话如果不重启需要其在未启动状态,同时,由于本机系统升级需要对终端的存储器进行修改,其使得终端无法正常使用。
综上,在当前运行便携系统时,若两个系统均需要升级,处理器用于进行重启,进入recovery模式,在recovery模式下分别对便携系统升级和本机系统升级。
针对上述的说明,本发明实施例还提供了一种终端的结构。
下面以终端500为例对实施例进行具体说明。应该理解的是,图5所示终端500仅是一个范例,并且终端500可以具有比图5中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
图5中示例性示出了根据示例性实施例中终端500的硬件配置框图。如图5所示,终端500包括:射频(radio frequency,RF)电路510、存储器520、显示单元530、摄像头540、音频电路550、无线保真(Wireless Fidelity,Wi-Fi)模块560、处理器570、蓝牙模块580、以及电源590等部件。
RF电路510可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器570处理;可以将上行数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
存储器520可用于存储软件程序及数据。处理器570通过运行存储在存储器520的软件程序或数据,从而执行终端500的各种功能以及数据处理。存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器520存储有使得终端500能运行的操作系统。本申请中存储器520可以存储操作系统及各种应用程序,还可以存储执行本申请实施例所述方法的代码。
显示单元530可用于接收输入的数字或字符信息,产生与终端500的用户设置以及功能控制有关的信号输入,具体地,显示单元530可以包括设置在终端500正面的触摸屏531,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
显示单元530还可用于显示由用户输入的信息或提供给用户的信息以及终端500的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元530可以包括设置在终端500正面的显示屏532。其中,显示屏532可以采用液晶显示器、发光二极管等形式来配置。显示单元530可以用于显示本申请中所述的各种图形用户界面。
其中,触摸屏531可以覆盖在显示屏532之上,也可以将触摸屏531与显示屏532集成而实现终端500的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元530可以显示应用程序以及对应的操作步骤。具体来说,显示屏532显示是否启动便携系统的界面,触摸屏531接收用户指示的启动的系统。
摄像头540可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器570转换成数字图像信号。这样通过摄像头540拍摄的图片可以保存在终端的存储器520中,也可以保存在外接存储卡中。
音频电路550、扬声器551、麦克风552可提供用户与终端500之间的音频接口。音频电路550可将接收到的音频数据转换后的电信号,传输到扬声器551,由扬声器551转换为声音信号输出。终端500还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风552将收集的声音信号转换为电信号,由音频电路550接收后转换为音频数据,再将音频数据输出至RF电路510以发送给比如另一终端,或者将音频数据输出至存储器520或者外接存储卡以便进一步处理。本申请中麦克风552可以获取用户的语音。
Wi-Fi属于短距离无线传输技术,终端500可以通过Wi-Fi模块560帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
处理器570是终端500的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器520内的软件程序,以及调用存储在存储器520内的数据,执行终端500的各种功能和处理数据。在一些实施例中,处理器570可包括一个或多个处理单元;处理器570还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器570中。本申请中处理器570可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例所述的处理方法。另外,处理器570与显示单元530耦接。
蓝牙模块580,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端500可以通过蓝牙模块580与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
终端500还包括给各个部件供电的电源590(比如电池)。电源可以通过电源管理系统与处理器570逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端500还可配置有电源按钮,用于终端的开机和关机,以及锁屏等功能。
图6是本发明实施例的终端500的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图6所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图6所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端500的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,通信终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明终端500软件以及硬件的工作流程。
当触摸屏531接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头540捕获静态图像或视频。
本申请实施例中的终端500可以为手机、平板电脑、可穿戴设备、笔记本电脑以及电视等。
通过上述介绍的终端,以下结合附图介绍本发明实施例提供的一种终端启动方法:
结合图7所示,该方法包括:
S700:在开机上电后,若监听到插入外接存储卡,则读取外接存储卡的各个分区;
S701:根据第一校验分区存储的分区表信息,对外接存储卡的各分区信息进行第一校验;
S702:确定第一校验通过后,弹出是否启动便携系统的界面;
S703:启动用户通过界面指示启动的系统。
再结合图3所示,显示“是否启动便携系统”,用户可以选择“是”,即启动便携系统继续进行启动,如果选择“否”则启动本机系统,即进行正常的启动流程。
结合图8所示,提供用户选择启动便携系统之后的终端启动过程,包括:
S800:接收到启动便携系统的指示,重启系统;
S801:重启本机系统,并在本机系统重启的kernel启动阶段,读取外接存储卡的各个分区;外接存储卡包括系统分区、数据分区、第一校验分区和第二校验分区;
S802:根据第一校验分区存储的分区表信息,对外接存储卡的各分区信息进行第一校验;
S803:判断第一校验是否通过,若通过则执行步骤804,否则执行S813;
S804:在本机系统启动的挂载流程阶段,创建临时目录,并将第二校验分区挂载到临时目录上;
S805:读取第二校验分区存储的系统校验文件,按照预设校验算法确定系统分区内的数据的校验值;
S806、比较系统校验文件中存储的校验码与校验值是否一致,若一致则执行S807,否则执行S813;
其中,S804~S806的过程为根据第二校验分区存储的系统校验文件,对外接存储卡的系统分区进行第二校验的过程。
S807、在本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区,运行系统分区中的便携系统以执行便携系统启动的安卓启动阶段;
S808、在便携系统启动的安卓启动阶段,中断本机系统挂载数据分区的流程,使用外接存储卡的设备标识挂载数据分区;
S808、按预设方式对数据分区进行解密操作;
所述预设方式与现有技术对数据分区的加解密操作是一样的;
S810、解密成功后,根据第一校验分区中的系统版本号对系统分区中的便携系统的版本号进行校验;
S811、判断校验是否通过,若校验通过执行S812,否则执行S813;
可选的,若在预设时间内未获取到第一校验分区中的系统版本号和/或当前运行的便携系统的版本号,则确定校验失败;或,
根据当前运行的便携系统的加密算法对当前运行的便携系统的版本号进行加密得到加密系统版本号,若第一校验分区中的系统版本号与加密系统版本号相同,则确定校验通过,即比较第一校验分区中的系统版本号与加密系统版本号是否一致。
S812:继续启动便携系统。
S813:中断启动便携系统,重启系统返回本机系统。
其中,确定出第一校验通过,则生成外接存储卡包含便携系统的标识,并将其存储在公共存储区。
其中,该标识可以为flag=sdrom。
由于当前运行的系统无法访问另一个系统的系统文件,即当前运行便携系统时,无法访问本机系统对应的存储空间;当前运行本机系统时,无法访问便携系统对应的存储空间,例如setings数据库。为了完成不同运行系统,均能更加便捷的实现两个系统升级的情况,本发明可以在首次运行便携系统过程中,读取第一校验分区中的便携系统的版本号,并进行解密,将该版本号,例如H1754.00.01.SD,将其记录到settings数据库sdrom_version中。
在首次运行本机系统过程中,将本机系统的版本号查询出来,并写入本机的第一公共存储区中,例如:本机的存储器的stable分区。
通过上述介绍的终端,以下结合附图介绍本发明实施例提供的多种外接存储卡便携系统升级方法:
如果用户选择启动便携系统,可以按照图8的方式启动便携系统,启动完成后,将其应用进行显示,按照预设的时间进行定期查询版本号,以及根据版本号确定是否升级。
具体来说,结合图9所示,在启动便携系统时,该升级过程包括:
S900:在settings数据库中sdrom-version中查询便携系统的版本号,以及在stable分区查询本机系统的版本号;
S901:根据便携系统的版本号,向服务器查询便携系统是否新的版本,以及根据本机系统的版本号,向服务器查询本机系统是否有新的版本;若仅有本机系统有新的版本,则执行S902~904;若仅有便携系统有新的版本,则执行S905~S907,若便携系统和本机系统均有新的版本,则执行S908~S910,若均没有升级,则结束。其中,与S902~S904并列的方案如下S905~S907,以及S908~S910。
S902:下载对应的升级包,并弹出是否升级本机系统的页面;
S903:确定用户指示升级后,在cache分区写入标识,标识本机系统需要升级;
结合图10所示,在用户界面上显示是否升级本机系统。如果用户点击“是”则执行S903,如果用户点击否,则不进行升级处理,即不执行S903以及S903之后的步骤。
S904:在写入标识后,进行重启操作,进入recovery模式,在cache分区中读取到标识,对本机系统升级处理;
S905:确定仅有便携系统有新的版本,则下载对应的升级包,并弹出是否升级本机系统的页面;
S906:确定用户指示升级后,在cache分区写入标识,标识便携系统需要升级;
S907:在写入标识后,进行重启操作,进入recovery模式,在cache分区中读取到标识,对便携系统升级处理。
S908:下载对应的升级包,并弹出是否升级本机系统和便携系统的页面;
S909:在用户点击确定升级后,在cache分区写入标识,标识便携系统以及本机系统需要升级;
S910:在写入标识后,进行重启操作,进入recovery模式,在cache分区中读取到标识,对本机系统和便携系统进行升级处理。
其中,弹出是否升级本机系统和便携系统的页面,结合图11所示,可以仅对本机系统升级,以及便携系统进行升级两个系统分别提示,用户可以确定其中一个系统升级,若用户仅升级本机系统,则参照S902~S904执行,若用户仅升级便携系统,则参照S905~S907执行,或者确定两个系统均升级,S908~S910为确定两个系统升级的流程。若检测到两个系统均没有新的版本,那么不作升级处理,即结束流程。
上述方法介绍了在当前运行便携系统时,便携系统升级的方式。具体来说,由于正在运行的系统本身不能升级,所以,需要重启后,进入recovery模式,在recovery模式下,对存储外接存储卡的便携系统进行升级处理,同时用升级后的新的版本号替换第一校验分区中的版本号。
其中,对存储外接存储卡的便携系统进行升级处理时,是根据从服务器下载的最新的便携系统,更新外接存储卡的系统分区中的便携系统。以及,将从服务器下载的最新的便携系统的版本号替换第一校验分区中的版本号。
在当前运行本机系统时升级便携系统的方法,由于便携系统记录在外接存储卡上,升级时,终端可以正常运行,所以不需要重启,进入recovery模式升级,而是直接进行升级处理。
当运行便携系统时,本机系统升级的方法,便携系统运行时需要使用本机的驱动等,所以,本机系统升级时,驱动应该处于未工作状态,所以,在本机系统升级时,只能重启,进入recovery模式,在recovery模式下对本机系统升级处理。
如果用户选择启动本机系统,正常继续启动本机系统,启动完成后,将其应用进行显示,按照预设的时间进行定期查询版本号,以及根据版本号确定是否升级。
其中,用户选择启动本机系统时升级事件操作流程可以为:
具体来说,结合图12所示,该升级过程包括:
S1200:检测flag参数是否为sdrom,即检测终端是否外接包含便携系统的外接存储卡;
S1201:若有,则在外接存储卡中的第一校验分区中读取所述便携系统的版本号并进行解密,以及在stable分区查询本机系统的版本号;
S1202:根据便携系统的版本号,向服务器查询便携系统是否新的版本,以及根据本机系统的版本号,向服务器查询本机系统是否有新的版本;
S1203:确定本机系统仅有新的版本,则下载对应的升级包,并弹出是否升级本机系统的页面;
S1204:确定用户指示升级后,在cache分区写入标识,标识本机系统需要升级;
S1205:在写入标识后,进行重启操作,进入recovery模式,在cache分区中读取到标识,对本机系统升级处理;
与S1203~S1205并列的方案如下S1206~S1208,以及S1209~S1211。
S1206:确定仅有便携系统有新的版本,则下载对应的升级包,并弹出是否升级本机系统的页面;
S1207:确定用户指示升级后,在cache分区写入标识,标识便携系统需要升级;
S1208:在cache分区中读取到标识,对便携系统升级处理。
S1209:若两个系统均需要升级时,下载对应的升级包,并弹出是否升级本机系统和便携系统的页面;
S1210:在用户点击确定升级后,在cache分区写入标识,标识便携系统以及本机系统需要升级;
S1211:在写入标识后,进行重启操作,进入recovery模式,在cache分区中读取到标识,对本机系统和便携系统进行升级处理。
同样的,弹出是否升级本机系统和便携系统的页面,结合图11所示,可以仅对其中一个系统升级,也可以两个系统均升级。
其中,在上述流程中,S1202之后,若检测到两个系统均没有新的版本,那么不作升级处理,即结束流程。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本发明实施例上述任意一项终端启动方法。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种终端,其特征在于,包括:接口、处理器和显示单元;
所述接口,用于外接包含便携系统的外接存储卡;
所述处理器,用于在开机上电后,若监听到插入外接存储卡,则读取外接存储卡的各个分区,所述外接存储卡包括系统分区、数据分区和第一校验分区;所述系统分区用于存储便携系统,所述数据分区用于存储用户的数据,所述第一校验分区用于存储分区表信息;根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行第一校验;确定所述第一校验通过后,弹出是否启动便携系统的界面;启动用户通过所述界面指示启动的系统;
所述显示单元,用于显示是否启动便携系统的界面,以及接收用户指示的启动的系统。
2.根据权利要求1所述的终端,其特征在于,所述处理器,具体用于:
将第一校验分区存储的分区表信息与所述外接存储卡的各分区信息中的同类型信息进行第一校验;其中,所述同类型的信息包括各分区大小、各分区名称以及各分区的起始位置中的部分或全部。
3.根据权利要求1所述的终端,其特征在于,所述处理器,具体用于:
若用户通过所述界面指示启动的系统为所述便携系统,则进行重启操作,并在重启过程中,启动所述便携系统。
4.根据权利要求3所述的终端,其特征在于,所述外接存储卡还包括第二校验分区,所述第二校验分区用于存储在便携系统启动过程中对所述系统分区进行校验时所使用的系统校验文件;
所述处理器,具体用于:
重启本机系统,并在本机系统重启的kernel启动阶段,读取外接存储卡的各个分区,以及根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行所述第一校验;
确定所述第一校验通过后,根据第二校验分区存储的系统校验文件,对所述外接存储卡的系统分区进行第二校验,若所述第二校验通过后,则在所述本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区,运行所述系统分区中的便携系统以执行便携系统启动的安卓启动阶段;
在所述便携系统启动的安卓启动阶段,中断本机系统挂载数据分区的流程,使用外接存储卡的设备标识挂载数据分区,并继续启动便携系统。
5.根据权利要求4所述的终端,其特征在于,所述处理器,还用于:
若根据当前运行的便携系统的加密算法对当前运行的便携系统的版本号进行加密得到加密系统版本号,与所述第一校验分区中的便携系统的版本号不同,则中断启动便携系统,重新启动本机系统;或
若预设时间内未获取到所述第一校验分区中的便携系统的版本号和/或当前运行的所述便携系统的版本号,则中断启动便携系统,重新启动本机系统。
6.一种终端启动方法,其特征在于,应用于终端,所述方法包括:
在开机上电后,若监听到插入外接存储卡,则读取外接存储卡的各个分区,所述外接存储卡包括系统分区、数据分区和第一校验分区;所述系统分区用于存储便携系统,所述数据分区用于存储用户的数据,所述第一校验分区用于存储分区表信息;
根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行第一校验;
确定所述第一校验通过后,弹出是否启动便携系统的界面;
启动用户通过所述界面指示启动的系统。
7.根据权利要求6所述的终端启动方法,其特征在于,所述根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行第一校验,包括:
将第一校验分区存储的分区表信息与所述外接存储卡的各分区信息中的同类型信息进行第一校验;其中,所述同类型的信息包括各分区大小、各分区名称以及各分区的起始位置中的部分或全部。
8.根据权利要求6所述的终端启动方法,其特征在于,启动用户通过所述界面指示启动的系统,包括:
若用户通过所述界面指示启动的系统为所述便携系统,则进行重启操作,并在重启过程中,启动所述便携系统。
9.根据权利要求8所述的终端启动方法,其特征在于,所述外接存储卡还包括第二校验分区,所述第二校验分区用于存储在便携系统启动过程中对所述系统分区进行校验时所使用的系统校验文件;所述启动所述便携系统,包括:
重启本机系统,并在本机系统重启的kernel启动阶段,读取外接存储卡的各个分区,以及根据第一校验分区存储的分区表信息,对所述外接存储卡的各分区信息进行所述第一校验;
确定所述第一校验通过后,根据第二校验分区存储的系统校验文件,对所述外接存储卡的系统分区进行第二校验,若所述第二校验通过后,则在所述本机系统的挂载流程阶段,将本机目录下挂载的系统分区替换为外接存储卡的系统分区,运行所述系统分区中的便携系统以执行便携系统启动的安卓启动阶段;
在所述便携系统启动的安卓启动阶段,中断本机系统挂载数据分区的流程,使用外接存储卡的设备标识挂载数据分区,并继续启动便携系统。
10.根据权利要求9所述的终端启动方法,其特征在于,在继续启动便携系统之后,所述方法还包括:
若根据当前运行的便携系统的加密算法对当前运行的便携系统的版本号进行加密得到加密系统版本号,与所述第一校验分区中的便携系统的版本号不同,则中断启动便携系统,重新启动本机系统;或
若预设时间内未获取到所述第一校验分区中的便携系统的版本号和/或当前运行的所述便携系统的版本号,则中断启动便携系统,重新启动本机系统。
CN202010923130.8A 2020-09-04 2020-09-04 一种终端及终端启动方法 Pending CN114138343A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010923130.8A CN114138343A (zh) 2020-09-04 2020-09-04 一种终端及终端启动方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010923130.8A CN114138343A (zh) 2020-09-04 2020-09-04 一种终端及终端启动方法

Publications (1)

Publication Number Publication Date
CN114138343A true CN114138343A (zh) 2022-03-04

Family

ID=80438356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010923130.8A Pending CN114138343A (zh) 2020-09-04 2020-09-04 一种终端及终端启动方法

Country Status (1)

Country Link
CN (1) CN114138343A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816571A (zh) * 2022-04-15 2022-07-29 西安广和通无线通信有限公司 外挂闪存的方法、装置、设备及存储介质

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040210793A1 (en) * 2003-04-21 2004-10-21 International Business Machines Corporation Method and apparatus for recovery of partitions in a logical partitioned data processing system
CN102902488A (zh) * 2012-08-06 2013-01-30 广东欧珀移动通信有限公司 一种手持设备的存储卡及其动态挂载方法
CN103077350A (zh) * 2012-12-13 2013-05-01 北京奇虎科技有限公司 一种恶意代码的查杀方法和系统
CN103761130A (zh) * 2014-01-15 2014-04-30 深圳创维-Rgb电子有限公司 双系统启动控制方法及装置
CN104750532A (zh) * 2015-04-27 2015-07-01 东南大学 一种基于Android的双系统土地核查PAD及启动方法
WO2016062060A1 (zh) * 2014-10-21 2016-04-28 中兴通讯股份有限公司 通过t卡更新/备份操作系统的方法及装置、存储介质
CN106201767A (zh) * 2016-08-10 2016-12-07 深圳市蜂联科技有限公司 一种基于ECC校验的防止SD使用过程中flash被意外篡改的方法
CN106250172A (zh) * 2016-07-18 2016-12-21 北京理工大学 一种共享内核分区的Android双启动方法
CN106250262A (zh) * 2016-08-10 2016-12-21 深圳市蜂联科技有限公司 一种基于双镜像的防止SD使用过程中flash被意外篡改的方法
CN106372527A (zh) * 2016-04-28 2017-02-01 深圳市金立通信设备有限公司 一种数据处理方法及终端
WO2017096521A1 (zh) * 2015-12-08 2017-06-15 华为技术有限公司 一种扩展用户分区的方法和装置
CN107346392A (zh) * 2017-06-27 2017-11-14 努比亚技术有限公司 终端系统更改识别方法、装置及可读存储介质
CN109101279A (zh) * 2018-06-26 2018-12-28 珠海全志科技股份有限公司 一种多版本系统的兼容性启动方法
CN109408153A (zh) * 2018-11-01 2019-03-01 百度在线网络技术(北京)有限公司 软件启动方法和软件升级方法
CN110083404A (zh) * 2019-04-23 2019-08-02 深圳昆仑通态科技有限责任公司 人机界面设备的数据处理方法及系统和人机界面设备
US20190265964A1 (en) * 2018-02-28 2019-08-29 Ricoh Company, Ltd. Electronic apparatus, updating method, and recording medium

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040210793A1 (en) * 2003-04-21 2004-10-21 International Business Machines Corporation Method and apparatus for recovery of partitions in a logical partitioned data processing system
CN102902488A (zh) * 2012-08-06 2013-01-30 广东欧珀移动通信有限公司 一种手持设备的存储卡及其动态挂载方法
CN103077350A (zh) * 2012-12-13 2013-05-01 北京奇虎科技有限公司 一种恶意代码的查杀方法和系统
CN103761130A (zh) * 2014-01-15 2014-04-30 深圳创维-Rgb电子有限公司 双系统启动控制方法及装置
WO2016062060A1 (zh) * 2014-10-21 2016-04-28 中兴通讯股份有限公司 通过t卡更新/备份操作系统的方法及装置、存储介质
CN104750532A (zh) * 2015-04-27 2015-07-01 东南大学 一种基于Android的双系统土地核查PAD及启动方法
WO2017096521A1 (zh) * 2015-12-08 2017-06-15 华为技术有限公司 一种扩展用户分区的方法和装置
CN106372527A (zh) * 2016-04-28 2017-02-01 深圳市金立通信设备有限公司 一种数据处理方法及终端
CN106250172A (zh) * 2016-07-18 2016-12-21 北京理工大学 一种共享内核分区的Android双启动方法
CN106250262A (zh) * 2016-08-10 2016-12-21 深圳市蜂联科技有限公司 一种基于双镜像的防止SD使用过程中flash被意外篡改的方法
CN106201767A (zh) * 2016-08-10 2016-12-07 深圳市蜂联科技有限公司 一种基于ECC校验的防止SD使用过程中flash被意外篡改的方法
CN107346392A (zh) * 2017-06-27 2017-11-14 努比亚技术有限公司 终端系统更改识别方法、装置及可读存储介质
US20190265964A1 (en) * 2018-02-28 2019-08-29 Ricoh Company, Ltd. Electronic apparatus, updating method, and recording medium
CN109101279A (zh) * 2018-06-26 2018-12-28 珠海全志科技股份有限公司 一种多版本系统的兼容性启动方法
CN109408153A (zh) * 2018-11-01 2019-03-01 百度在线网络技术(北京)有限公司 软件启动方法和软件升级方法
CN110083404A (zh) * 2019-04-23 2019-08-02 深圳昆仑通态科技有限责任公司 人机界面设备的数据处理方法及系统和人机界面设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
慷齐资讯编著: "《FreeBSD & Windows集成组网实务》", 中国铁道出版社, pages: 62 - 66 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816571A (zh) * 2022-04-15 2022-07-29 西安广和通无线通信有限公司 外挂闪存的方法、装置、设备及存储介质
CN114816571B (zh) * 2022-04-15 2023-06-16 西安广和通无线通信有限公司 外挂闪存的方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11803451B2 (en) Application exception recovery
US20100093396A1 (en) Systems and methods for storing or performing functions within removable memory, such as a subscriber identity module of a mobile device
CN110865837B (zh) 一种进行系统升级的方法和终端
CN115328563B (zh) 系统启动方法及电子设备
WO2022135215A1 (zh) 一种开机异常的修复方法及装置
CN112394906A (zh) 一种应用切换运行的方法及设备
CN111158735B (zh) 一种热补丁文件处理方法及通信终端
CN113835928A (zh) 应用的备份和恢复方法、设备、存储介质和程序产品
CN114138343A (zh) 一种终端及终端启动方法
CN116700768B (zh) 一种应用的处理方法及相关装置
CN114138293A (zh) 一种终端及外接存储卡便携系统升级方法
CN114595203A (zh) 基于双系统的文件同步方法、终端设备及存储介质
CN113642010A (zh) 一种获取扩展存储设备数据的方法及移动终端
CN117093315B (zh) 一种升级内容显示方法、电子设备和存储介质
CN115941674B (zh) 多设备应用接续方法、设备及存储介质
CN116743908B (zh) 壁纸显示方法及相关装置
CN116719556B (zh) 系统升级的方法和电子设备
CN117135263B (zh) 日志信息获取方法、电子设备及计算机可读存储介质
CN114816169B (zh) 桌面图标的显示方法、设备及存储介质
CN115146293A (zh) 一种文件加、解密方法、设备及介质
CN113254052A (zh) 一种水墨屏硬解码芯片的固件升级方法及终端设备
CN114356352A (zh) 多用户下应用数据的管理方法和终端设备
CN115562732A (zh) 一种开机方法、电子设备及计算机存储介质
CN112764832A (zh) 一种应用程序安装、卸载方法及通信终端
CN117971305A (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