安卓固件应用、安卓固件和固件升级方法与流程

文档序号:12119616阅读:1488来源:国知局

本发明涉及安卓固件应用、安卓固件和固件升级方法。



背景技术:

某种操作系统加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以视为一个实例系统,实例系统中可以运行各种应用(应用指能够在实例系统的操作系统中运行的软件或程序)。将若干个实例系统按照一定的架构方式(例如分布式)集中管理,可以形成云系统。通常云系统由运营商负责日常运营,为用户提供服务。

近年来,开源的安卓(Android)系统应用非常广泛,也常被选为实例系统的操作系统。一般云系统的运营商负责软件开发,不具备硬件生产能力。运营商向具备硬件生产能力的工厂提供固件(firmware),工厂将固件烧入实例系统的存储器中,实例系统才能够正常工作。对运营商而言,这一过程存在泄密的风险,他人对固件进行破解能够获得运营商的技术秘密。

此外,安卓系统的代码量很大,如果固件包括安卓系统的全部分区,大小可能超过1G。固件越大,烧入存储器的时间就越长,而工厂普遍是按照烧入时间向运营商收取费用的。运营商往往要订购大量的实例系统,安卓固件过大会显著增加运营商的成本。如果运营商对安卓系统的代码更新比较频繁,订购新的实例系统时还要编译新的固件,进一步增加了成本。

在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。



技术实现要素:

为了克服“背景技术”部分所反映的缺陷,本发明提供安卓固件应用、安卓固件和固件升级方法。

安卓固件应用,所述的应用能够在安卓系统的恢复模式下运行,根据总线扩展器不同的输入电平进入不同的工作模式,所述的工作模式包括测试模式和初始化模式,测试模式能够检测实例系统的硬件,初始化模式能够从云系统的存储服务器下载安卓系统的完整分区文件。

安卓固件,由u-boot、misc、recovery分区文件和标识分区表信息的文件组成,所述的recovery分区文件由开机启动的虚拟内存盘、resource及kernel分区文件和用户态应用组成。

进一步的,所述的用户态应用包括安卓固件应用。

安卓固件升级方法,包括如下步骤:

控制器通过总线扩展器电平控制安卓固件应用进入初始化模式;

安卓固件应用根据预先写入的地址连接存储服务器,从存储服务器下载安卓系统的完整分区文件;

安卓固件应用重启进入安卓系统的常规模式。

进一步的,所述的控制器为ARM控制器。

本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解,“由……组成”等词语应按照封闭式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。

本发明提供的安卓固件应用、安卓固件和固件升级方法,安卓固件比较小,功能单一固定,除了一些极端情况外不需要更新,能够极大节约运营商的硬件订购成本。安卓固件应用能够从被运营商保护的存储服务器下载安卓系统的完整分区文件,这些文件无需对外提供,充分保障了运营商的技术秘密不泄露。

附图说明

图1为具体实施方式中安卓固件升级方法的流程图。

具体实施方式

下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。

安卓实例系统的实现,比较简单的方式是利用现有的开发板(例如ARM开发板等)。针对开发板的常规安卓固件包括u-boot、boot、resource、misc、kernel、system、recovery、sysbackup分区,其中boot、misc、system、recovery等分区名称几乎在所有的安卓系统方案中都存在。boot分区为常见的引导分区,安卓系统正常开机进入常规模式依赖于boot分区。在一些安卓系统的技术方案中boot分区包括了安卓系统的内核,但本发明技术方案中将安卓系统的内核存储在了kernel分区,boot分区中就不再包含安卓系统的内核。misc分区是一个杂项分区,存储一些系统设置或者其他分区的配置文件,例如recovery分区的引导信息。system分区为常见的系统分区,存储了整个安卓系统(已经存储在其他分区的内核等除外)。recovery分区存储了安卓系统进入恢复(recovery)模式时需要的文件。u-boot分区为通用引导分区(universal boot loader)。resource分区存储了与开发板对应的参数,例如安卓系统的内核根据开发板不同的电平信号执行何种操作。kernel分区存储了安卓系统的内核。sysbackup分区为系统备份分区,在一些技术方案中安卓系统设置两个以上的系统备份分区,固件中只包含一个系统备份分区即可,该分区为只读分区,在分区名后面加数字1(sysbackup1)标识。

本发明技术方案提供的安卓固件,只有u-boot、misc、recovery分区文件和标识分区表信息的文件(parameter文件)。recovery分区文件由开机启动的虚拟内存盘(ramdisk)、resource以及kernel分区文件(即resource及kernel分区中完整的文件)和少量的用户态(user mode)应用组成。

recovery分区文件的应用中,包括一个具有特别功能的应用(以下简称R应用),R应用能够在安卓系统的恢复模式下运行,根据总线扩展器(General Purpose Input Output,GPIO)不同的输入电平(可以是单电平或电平组合)进入不同的工作模式,所述的工作模式包括测试模式和初始化模式,测试模式能够检测实例系统的硬件,初始化模式能够从云系统的存储服务器下载安卓系统的完整分区文件。

本发明技术方案提供的安卓固件启动时(该安卓固件可以视为一个不完整的安卓系统,由于具有u-boot分区,也能够启动),u-boot分区的文件最先被加载执行,u-boot分区发现boot分区校验不通过,无法正常启动安卓系统进入常规模式,则u-boot分区会加载recovery分区的文件进入恢复(recovery)模式。recovery分区的文件中包括安卓系统的内核文件,在恢复模式下安卓内核可以运行,R应用相应的可以在安卓内核中运行。

当实例系统位于工厂时,实例系统开发板外接的调试板可以通过输入GPIO电平让R应用进入测试模式。测试模式下,R应用能够根据调试板的指令,检测实例系统的处理器、存储器等硬件是否正常工作。

运营商从工厂获得实例系统后,利用实例系统组建云系统。云系统中会设置不同类型的控制器对实例系统进行管理。控制器包括ARM控制器,即具有ARM架构的Linux服务器(arm controller),这类控制器成本低廉,其硬件电路与实例系统的开发板连接,通过输入GPIO电平管理实例系统中的安卓系统。运营商往往还在云系统中设置存储服务器,存储服务器存储了涉及运营商技术秘密的文件,运营商对存储服务器会采取严格的物理隔离和技术保护措施。云系统中的每个实例系统都可以与存储服务器通信,存储服务器校验实例系统身份无误后,向实例系统传输其需要的文件。

实例系统加入云系统后,ARM控制器通过GPIO电平让R应用进入初始化模式,R应用能够从存储服务器下载安卓系统的完整分区文件。

利用以上所述的安卓固件和R应用,能够实现安卓固件升级方法。安卓固件升级方法的流程如图1所示,包括:

S101:控制器通过总线扩展器电平控制安卓固件应用进入初始化模式。

具体的,ARM控制器通过输入预先设定的GPIO电平,让R应用进入初始化模式。

S102:安卓固件应用根据预先写入的地址连接存储服务器,从存储服务器下载安卓系统的完整分区文件。

具体的,R应用中预先写入了存储服务器的地址,R应用进入初始化模式后,根据该地址连接存储服务器,从存储服务器上下载最新版本的安卓系统完整分区文件,将这些文件存储到实例系统的存储器上。

S103:安卓固件应用重启进入安卓系统的常规模式。

具体的,所有的安卓系统分区文件存储到本地后,R应用重启安卓系统,重启后安卓系统已经不存在文件缺失,进入常规模式运行。

常规的安卓固件可能超过1G,而本发明技术方案提供的安卓固件只有30M左右。按照目前的烧写技术烧写1G数据至少5分钟,而烧写30M数据只需要10秒。本发明技术方案提供的安卓固件功能非常单一,只包含工厂测试实例系统硬件时必不可少的分区文件,不包含安卓系统的核心代码,除了分区表重新划分等极端情况外,不需要更新或升级,运营商可以长期使用。同时,涉及运营商技术机密的代码不需要外送,极大降低了运营商的泄密风险。

本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案,在此不一一列举。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1