CN109240720B - 一种安卓系统的固件升级方法及一种存储设备 - Google Patents

一种安卓系统的固件升级方法及一种存储设备 Download PDF

Info

Publication number
CN109240720B
CN109240720B CN201810966474.XA CN201810966474A CN109240720B CN 109240720 B CN109240720 B CN 109240720B CN 201810966474 A CN201810966474 A CN 201810966474A CN 109240720 B CN109240720 B CN 109240720B
Authority
CN
China
Prior art keywords
boot
recovery
partition
firmware
upgrade
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.)
Active
Application number
CN201810966474.XA
Other languages
English (en)
Other versions
CN109240720A (zh
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.)
Rockchip Electronics Co Ltd
Original Assignee
Rockchip Electronics 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 Rockchip Electronics Co Ltd filed Critical Rockchip Electronics Co Ltd
Priority to CN201810966474.XA priority Critical patent/CN109240720B/zh
Publication of CN109240720A publication Critical patent/CN109240720A/zh
Application granted granted Critical
Publication of CN109240720B publication Critical patent/CN109240720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

本发明涉及嵌入式开发测试技术领域,特别涉及一种安卓系统的固件升级方法及一种存储设备。所述一种安卓系统的固件升级方法,包括步骤:获取升级包;在“引导通信分区”位置2写入升级引导信息;重启系统,若“引导通信分区”位置1和位置2都有Recovery标记,则引导“只读可信操作系统”和“只读二级引导程序”,并引导设备进入Recovery系统;根据固件升级操作指令,使用升级包对设备固件进行升级。通过以上方法,若在升级的过程中出现意外中断,当设备重新上电后,因为“引导通信分区”位置1和位置2的Recovery标记都存在,则“一级引导程序”仍可以顺利引导“只读可信操作系统”和“只读二级引导程序”,并对设备固件进行重新升级,避免设备变砖的问题。

Description

一种安卓系统的固件升级方法及一种存储设备
技术领域
本发明涉及嵌入式开发测试技术领域,特别涉及一种安卓系统的固件升级方法及一种存储设备。
背景技术
随着Android系统越来越广泛地被使用,越来越多的用户会涉及到Andorid系统的升级。现有技术中,Android系统中的固件升级方法有两种:
1.Recovery模式升级,在这种升级模式下,如果在升级固件过程中出现掉电等意外,可能导致设备变砖,再次上电无法启动。如在升级uboot,turst和boot的过程中出现掉电,则设备必然变砖。
2.AB升级,在AB升级模式下,系统中每一个要升级的固件分区,如uboot,trust,boot,system,vendor等,都要有两个分区(a和b),如system_a和system_b,这种升级方式能够保证升级的可靠性,避免升级过程中设备变砖。这种方式在保证可靠性的同时降低了设备中存储介质的空间利用率,而存储介质是非常宝贵的系统资源,因此这种方法大幅降低了设备中存储介质的空间利用率,增加了设备器件成本。
而现有的改进的研究方法集中在以下几个方面,而是要么关注应用程序的升级,要么关注升级包的生成方式,要么关注升级包的管理,要么关注升级交互协议,所有这些都不涉及到固件升级机制本身地研究。
要么只关注Android应用程序(APP)的升级,这方面不涉及到Android系统固件升级。
要么关注升级包的生成方式,这类研究重点关注升级包的构建,用特殊方式构建升级包,同时在升级过程中以对应的方式进行解包,这类研究不涉及到Android固件升级机制本身,最终升级时还是使用上面的传统“Recovery”模式。
要么关注升级包的管理,此类研究关注升级服务器管理升级包的技术,不涉及到固件升级机制本身。
要么关注设备与远程包管理服务器交互的升级协议,这类研究也不涉及到Android固件升级机制本身,最终升级时还是使用上面的传统“Recovery”模式。
发明内容
为此,需要提供一种安卓系统的固件升级方法,用以解决安卓系统固件升级无法兼顾预防升级过程断电设备变砖和提高存储介质空间利用率的问题。具体技术方案如下:
一种安卓系统的固件升级方法,包括步骤:获取升级包;在“引导通信分区”位置2写入升级引导信息,所述升级引导信息包括:Recovery标记和固件升级操作指令;重启系统,“一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记,若“引导通信分区”位置1和位置2都有Recovery标记,则引导“只读可信操作系统”和“只读二级引导程序”,且在“只读二级引导程序”中引导设备进入Recovery系统;在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行升级;若“引导通信分区”位置1和位置2不都有Recovery标记,则引导“可信操作系统”和“二级引导程序”,且根据“二级引导程序”中预置的Recovery模式触发条件,依次检测是否引导设备进入Recovery模式,若检测到引导设备进入Recovery模式,则在“引导通信分区”的位置1和位置2同时写入Recovery标记,并在写“引导通信分区”位置2时保留已有的Recovery操作指令;重启系统,重复步骤““一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记”。
进一步的,还包括步骤:固件升级后,清除“引导通信分区”位置2的升级引导信息;重启系统,“一级引导程序”引导设备进入升级后的系统。
进一步的,还包括步骤:若检测到引导设备不进入Recovery模式,则引导“非可信操作系统”,并由“非可信操作系统”引导“安卓主系统”。
进一步的,所述预置的Recovery模式触发条件包括:是否按下特定物理按键、芯片内特定内存区的标记值、特定寄存器值和“引导通信分区”位置2内容中的一种或多种。
进一步的,所述“获取升级包”,还包括步骤:通过网络或外部存储介质获取升级包,并校验所述升级包是否合法;所述升级包不包括固定保存不变的分区映像,所述固定保存不变的分区映像包括:“一级引导程序”、“只读二级引导程序”、“只读可信操作系统”和“Recovery系统”。
为解决上述问题,还提供了一种存储设备,具体技术方案如下:
一种存储设备,其中存储有指令集,所述指令集用于执行:获取升级包;在“引导通信分区”位置2写入升级引导信息,所述升级引导信息包括:Recovery标记和固件升级操作指令;重启系统,“一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记,若“引导通信分区”位置1和位置2都有Recovery标记,则引导“只读可信操作系统”和“只读二级引导程序”,且在“只读二级引导程序”中引导设备进入Recovery系统;在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行升级;若“引导通信分区”位置1和位置2不都有Recovery标记,则引导“可信操作系统”和“二级引导程序”,且根据“二级引导程序”中预置的Recovery模式触发条件,依次检测是否引导设备进入Recovery模式,若检测到引导设备进入Recovery模式,则在“引导通信分区”的位置1和位置2同时写入Recovery标记,并在写“引导通信分区”位置2时保留已有的Recovery操作指令;重启系统,重复步骤““一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记”。
进一步的,所述指令集还用于执行:固件升级后,清除“引导通信分区”位置2的升级引导信息;重启系统,“一级引导程序”引导设备进入升级后的系统。
进一步的,所述指令集还用于执行:若检测到引导设备不进入Recovery模式,则引导“非可信操作系统”,并由“非可信操作系统”引导“安卓主系统”。
进一步的,所述预置的Recovery模式触发条件包括:是否按下特定物理按键、芯片内特定内存区的标记值、特定寄存器值和“引导通信分区”位置2内容中的一种或多种。
进一步的,所述指令集还用于执行:所述“获取升级包”,还包括步骤:通过网络或外部存储介质获取升级包,并校验所述升级包是否合法;所述升级包不包括固定保存不变的分区映像,所述固定保存不变的分区映像包括:“一级引导程序”、“只读二级引导程序”、“只读可信操作系统”和“Recovery系统”。
本发明的有益效果是:通过以上固件升级方法,若在升级的过程中出现意外中断(如掉电等),当设备重新上电后,因为“引导通信分区”位置1和位置2的Recovery标记都存在,则“一级引导程序”仍可以顺利引导“只读可信操作系统”和“只读二级引导程序”,并且由“只读二级引导程序”再次引导设备进入Recovery系统,在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行重新升级。通过以上方式,解决了即便升级过程中突然中断,也避免设备变砖的问题。且通过该方法,无需每一个要升级的固件分区都要有两个分区,从而避免宝贵的存储介质空间的浪费,大大降低设备硬件成本,提高空间利用率。
附图说明
图1为一种安卓系统的固件升级方法的流程图;
图2为一种安卓系统的固件升级方法的检测到引导设备不进入Recovery模式的流程图;
图3为具体实施方式所述存储设备的模块示意图。
附图标记说明:
300、存储设备。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
本发明最关键的发明构思在于:正常升级过程中,当“引导通信分区”位置1和位置2都有Recovery标记,才进行升级,因此就算升级过程中设备突然意外掉电等等,设备重新上电后,因为“引导通信分区”位置1和位置2的Recovery标记都在,则“一级引导程序”仍可以顺利引导“只读可信操作系统”和“只读二级引导程序”,并且由“只读二级引导程序”再次引导设备进入Recovery系统,在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行重新升级。通过这种处理,即避免升级过程掉电设备变砖,也避免宝贵的存储介质空间的浪费。
请参阅图1,首先对本实施方式中的一些名词及概念做以下解释说明:
1、固件升级主要涉及的系统包括:固件分区表结构、固件升级包生成子系统、一级引导程序、二级引导程序、可信操作系统、只读二级引导程序、只读可信操作系统、Recovery系统、非可信操作系统和安卓主系统。
在本实施方式中,在上述系统中,一级引导程序、只读二级引导程序、只读可信操作系统、Recovery系统在设备出厂后保持不变,不会对其内容进行修改,确保终端设备系统在任何时候总是存在一套可以工作的恢复系统。
2、接下来对以上部分组成部分进行详细说明:
1)、“固件分区表结构”:所述系统的分区表包括二级引导程序分区、可信操作系统分区、只读二级引导程序分区、只读可信操作系统分区、引导通信分区、Recovery分区、非可信操作系统和其他分区(比如“安卓主系统分区”等等)。
2)、分区表中的“引导通信分区”:用于Andriod系统或Recovery系统与引导程序(包括一级引导程序、二级引导程序、只读二级引导程序)进行通信;在该“引导通信分区”设置位置1和位置2;其中在位置1要么为空,要么设置进入Recovery系统的标记;在位置2保存Recovery标记和所要执行的操作指令(如固件升级(FOTA,Firmware Over The Air)或恢复出厂设置等等指令)。
3)、“固件升级包生成子系统”:所述系统的的固件升级包生成子系统用于生成待升级分区的固件升级包。升级包不包括一级引导程序、只读可信操作系统、只读二级引导程序、Recovery系统分区。除上述之外,包括任何其他待升级分区,包括二级引导程序、可信操作系统、非可信操作系统和其它分区(如“安卓主系统分区(system)”等)。
4)、“一级引导程序”:根据“引导通信分区”中位置1和位置2中是否都有Recovery标记来决定后续引导流程,如果两个位置都有Recovery标记,则引导“只读可信操作系统”和“只读二级引导程序”,否则引导“可信操作系统”和“二级引导程序”。该程序在设备出厂后保持不变,不会对其内容进行修改。
5)、“二级引导程序”:用于从“非可信操作系统分区(boot)”引导设备的普通操作系统,在该程序中会根据预置的多种Recovery触发条件(如是否按下特定物理按键,或者芯片内特定内存区域的取值,或特定寄存器值,或“引导通信分区”的位置2内容等)来依次检查决定是否要引导设备进入Recovery模式,如果是则在“引导通信分区”的位置1和位置2同时写Recovery标记,在写“引导通信分区”的位置2时要确保保留已有的Recovery操作指令。
6)、“可信操作系统”:运行安全操作系统,负责对设备敏感信息的访问,保证设备安全。该系统可在固件升级过程中进行擦除和升级。
7)、“只读二级引导程序”:用于引导Recovery系统。该系统在设备出厂后保持不变,不会对其内容进行修改。
8)、“只读可信操作系统”:运行安全操作系统,负责对设备敏感信息的访问,保证设备安全。该系统在设备出厂后保持不变,不会对其内容进行修改。
9)、“Recovery系统”:根据“引导通信分区”位置2中保存的操作指令进行相关操作,如固件升级。该系统在设备出厂后保持不变,不会对其内容进行修改。
10)、“非可信操作系统”:用于引导安卓主系统。
在本实施方式中,一种安卓系统的固件升级方法的具体实施方式如下:
步骤S101:获取升级包。可采用如下方式:通过网络或外部存储介质获取升级包,并校验所述升级包是否合法;所述升级包不包括固定保存不变的分区映像,所述固定保存不变的分区映像包括:“一级引导程序”、“只读二级引导程序”、“只读可信操作系统”和“Recovery系统”。在本实施方式中,外部存储介质包括:USB卡/SD卡,在其它实施方式中,亦可以有其它任何方式获取升级包。在本实施方式中,主要通过对升级包进行数字签名来验证升级包是否合法。
获取完升级包后,执行步骤S102:在“引导通信分区”位置2写入升级引导信息,所述升级引导信息包括:Recovery标记和固件升级操作指令。在本实施方式中,固件升级操作指令包括:固件升级(FOTA,Firmware Over The Air)或恢复出厂设置等等。
写完升级引导信息后,执行步骤S103:重启系统。重启系统后,执行步骤S104:“一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记。
若“引导通信分区”位置1和位置2都有Recovery标记,则执行步骤S105:引导“只读可信操作系统”和“只读二级引导程序”。步骤S106:在“只读二级引导程序”中引导设备进入Recovery系统。步骤S107:在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行升级。
若“引导通信分区”位置1和位置2不都有Recovery标记,则执行步骤S108:引导“可信操作系统”和“二级引导程序”。步骤S109:根据“二级引导程序”中预置的Recovery模式触发条件,依次检测是否引导设备进入Recovery模式。步骤S110:引导设备进入Recovery模式。步骤S111:在“引导通信分区”的位置1和位置2同时写入Recovery标记,并在写“引导通信分区”位置2时保留已有的Recovery操作指令;重启系统,重复步骤““一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记”。
具体的,在本实施方式中,所述预置的Recovery模式触发条件包括:是否按下特定物理按键、芯片内特定内存区的标记值、特定寄存器值和“引导通信分区”位置2内容中的一种或多种。
在本实施方式中,固件升级后,还包括步骤:固件升级后,清除“引导通信分区”位置2的升级引导信息;重启系统,“一级引导程序”引导设备进入升级后的系统。
从上述描述可知,升级成功后,清除“引导通信分区”位置2的升级引导信息,可避免重启系统后又进入升级操作。
请参阅图2,在本实施方式中,若检测到引导设备不进入Recovery模式,执行步骤S212:则引导“非可信操作系统”,并由“非可信操作系统”引导“安卓主系统”。(其中步骤S201-S211与图1均相同,在此不做重复说明)
从上述描述可知,若未检测到启动模式是Recovery模式,则引导进入“安卓主系统”,可使手机恢复正常的使用。
通过以上固件升级方法,若在升级的过程中出现意外中断(如掉电等),当设备重新上电后,因为“引导通信分区”位置1和位置2的Recovery标记都存在,则“一级引导程序”仍可以顺利引导“只读可信操作系统”和“只读二级引导程序”,并且由“只读二级引导程序”再次引导设备进入Recovery系统,在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行重新升级。通过以上方式,解决了即便升级过程中突然中断,也避免设备变砖的问题。且通过该方法,无需每一个要升级的固件分区都要有两个分区,从而避免宝贵的存储介质空间的浪费,大大降低设备硬件成本,提高空间利用率。
且在本实施方式中,确保终端系统在任何时候总是存在一套可以工作的恢复系统,以便上电后继续完成固件升级或者通过外置存储设备对终端系统进行恢复,为基于Android的终端在特殊场景下的应用提供可靠性支撑,提高用户满意度。
在本实施方式中,使用升级包升级时,过程中如果出现设备异常(如掉电等),再次上电重启时,若所述升级包是完整包,则Recovery自动继续根据完整包对设备固件进行升级;若所述升级包是差异包,则可通过外部存储介质获取完整版,使用获取的完整包对设备固件进行恢复。
请参阅图3,在本实施方式中,一种存储设备300的具体实施方式如下:
一种存储设备300,其中存储有指令集,所述指令集用于执行:获取升级包;在“引导通信分区”位置2写入升级引导信息,所述升级引导信息包括:Recovery标记和固件升级操作指令;重启系统,“一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记,若“引导通信分区”位置1和位置2都有Recovery标记,则引导“只读可信操作系统”和“只读二级引导程序”,且在“只读二级引导程序”中引导设备进入Recovery系统;在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行升级;若“引导通信分区”位置1和位置2不都有Recovery标记,则引导“可信操作系统”和“二级引导程序”,且根据“二级引导程序”中预置的Recovery模式触发条件,依次检测是否引导设备进入Recovery模式,若检测到引导设备进入Recovery模式,则在“引导通信分区”的位置1和位置2同时写入Recovery标记,并在写“引导通信分区”位置2时保留已有的Recovery操作指令;重启系统,重复步骤““一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记”。
具体在本实施方式中:
可通过网络或外部存储介质获取升级包,并校验所述升级包是否合法;所述升级包不包括固定保存不变的分区映像,所述固定保存不变的分区映像包括:“一级引导程序”、“只读二级引导程序”、“只读可信操作系统”和“Recovery系统”。在本实施方式中,外部存储介质包括:USB卡/SD卡,在其它实施方式中,亦可以有其它任何方式获取升级包。在本实施方式中,主要通过对升级包进行数字签名来验证升级包是否合法。
在本实施方式中,固件升级操作指令包括:固件升级(FOTA,Firmware Over TheAir)或恢复出厂设置等等。
进一步的,所述指令集还用于执行:固件升级后,清除“引导通信分区”位置2的升级引导信息;重启系统,“一级引导程序”引导设备进入升级后的系统。
从上述描述可知,升级成功后,清除“引导通信分区”位置2的升级引导信息,可避免重启系统后又进入升级操作。
进一步的,所述指令集还用于执行:若检测到引导设备不进入Recovery模式,则引导“非可信操作系统”,并由“非可信操作系统”引导“安卓主系统”。
从上述描述可知,若未检测到启动模式是Recovery模式,则引导进入“安卓主系统”,可使手机恢复正常的使用。
进一步的,所述预置的Recovery模式触发条件包括:是否按下特定物理按键、芯片内特定内存区的标记值、特定寄存器值和“引导通信分区”位置2内容中的一种或多种。
进一步的,所述指令集还用于执行:所述“获取升级包”,还包括步骤:通过网络或外部存储介质获取升级包,并校验所述升级包是否合法;所述升级包不包括固定保存不变的分区映像,所述固定保存不变的分区映像包括:“一级引导程序”、“只读二级引导程序”、“只读可信操作系统”和“Recovery系统”。
在本实施方式中,使用升级包升级时,过程中如果出现设备异常(如掉电等),再次上电重启时,若所述升级包是完整包,则Recovery自动继续根据完整包对设备固件进行升级;若所述升级包是差异包,则可通过外部存储介质获取完整版,使用获取的完整包对设备固件进行恢复。
通过以上存储设备300中的指令集执行以上命令,使得若在升级的过程中出现意外中断(如掉电等),当设备重新上电后,因为“引导通信分区”位置1和位置2的Recovery标记都存在,则“一级引导程序”仍可以顺利引导“只读可信操作系统”和“只读二级引导程序”,并且由“只读二级引导程序”再次引导设备进入Recovery系统,在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行重新升级。通过以上方式,解决了即便升级过程中突然中断,也避免设备变砖的问题。且通过该方法,无需每一个要升级的固件分区都要有两个分区,从而避免宝贵的存储介质空间的浪费,大大降低设备硬件成本,提高空间利用率。
且在本实施方式中,确保终端系统在任何时候总是存在一套可以工作的恢复系统,以便上电后继续完成固件升级或者通过外置存储设备对终端系统进行恢复,为基于Android的终端在特殊场景下的应用提供可靠性支撑,提高用户满意度。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

Claims (10)

1.一种安卓系统的固件升级方法,其特征在于,包括步骤:
获取升级包;
在“引导通信分区”位置2写入升级引导信息,所述升级引导信息包括:Recovery标记和固件升级操作指令;
重启系统,“一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记,若“引导通信分区”位置1和位置2都有Recovery标记,则引导“只读可信操作系统”和“只读二级引导程序”,且在“只读二级引导程序”中引导设备进入Recovery系统;在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行升级;
若“引导通信分区”位置1和位置2不都有Recovery标记,则引导“可信操作系统”和“二级引导程序”,且根据“二级引导程序”中预置的Recovery模式触发条件,依次检测是否引导设备进入Recovery模式,若检测到引导设备进入Recovery模式,则在“引导通信分区”的位置1和位置2同时写入Recovery标记,并在写“引导通信分区”位置2时保留已有的固件升级操作指令;重启系统,重复步骤““一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记”。
2.根据权利要求1所述的一种安卓系统的固件升级方法,其特征在于,还包括步骤:
固件升级后,清除“引导通信分区”位置2的升级引导信息;
重启系统,“一级引导程序”引导设备进入升级后的系统。
3.根据权利要求1所述的一种安卓系统的固件升级方法,其特征在于,还包括步骤:
若检测到引导设备不进入Recovery模式,则引导“非可信操作系统”,并由“非可信操作系统”引导“安卓主系统”。
4.根据权利要求1所述的一种安卓系统的固件升级方法,其特征在于,
所述预置的Recovery模式触发条件包括:是否按下特定物理按键、芯片内特定内存区的标记值、特定寄存器值和“引导通信分区”位置2内容中的一种或多种。
5.根据权利要求1所述的一种安卓系统的固件升级方法,其特征在于,
所述获取升级包还包括步骤:
通过网络或外部存储介质获取升级包,并校验所述升级包是否合法;
所述升级包不包括固定保存不变的分区映像,所述固定保存不变的分区映像包括:“一级引导程序”、“只读二级引导程序”、“只读可信操作系统”和“Recovery系统”。
6.一种存储设备,其中存储有指令集,其特征在于,所述指令集用于执行:
获取升级包;
在“引导通信分区”位置2写入升级引导信息,所述升级引导信息包括:Recovery标记和固件升级操作指令;
重启系统,“一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记,若“引导通信分区”位置1和位置2都有Recovery标记,则引导“只读可信操作系统”和“只读二级引导程序”,且在“只读二级引导程序”中引导设备进入Recovery系统;在Recovery系统中根据“引导通信分区”位置2的固件升级操作指令,使用所述升级包对设备固件进行升级;
若“引导通信分区”位置1和位置2不都有Recovery标记,则引导“可信操作系统”和“二级引导程序”,且根据“二级引导程序”中预置的Recovery模式触发条件,依次检测是否引导设备进入Recovery模式,若检测到引导设备进入Recovery模式,则在“引导通信分区”的位置1和位置2同时写入Recovery标记,并在写“引导通信分区”位置2时保留已有的固件升级操作指令;重启系统,重复步骤““一级引导程序”检测“引导通信分区”位置1和位置2是否都有Recovery标记”。
7.根据权利要求6所述的一种存储设备,其特征在于,所述指令集还用于执行:
固件升级后,清除“引导通信分区”位置2的升级引导信息;
重启系统,“一级引导程序”引导设备进入升级后的系统。
8.根据权利要求6所述的一种存储设备,其特征在于,所述指令集还用于执行:
若检测到引导设备不进入Recovery模式,则引导“非可信操作系统”,并由“非可信操作系统”引导“安卓主系统”。
9.根据权利要求6所述的一种存储设备,其特征在于,
所述预置的Recovery模式触发条件包括:是否按下特定物理按键、芯片内特定内存区的标记值、特定寄存器值和“引导通信分区”位置2内容中的一种或多种。
10.根据权利要求6所述的一种存储设备,其特征在于,所述指令集还用于执行:
所述获取升级包还包括步骤:
通过网络或外部存储介质获取升级包,并校验所述升级包是否合法;
所述升级包不包括固定保存不变的分区映像,所述固定保存不变的分区映像包括:“一级引导程序”、“只读二级引导程序”、“只读可信操作系统”和“Recovery系统”。
CN201810966474.XA 2018-08-23 2018-08-23 一种安卓系统的固件升级方法及一种存储设备 Active CN109240720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810966474.XA CN109240720B (zh) 2018-08-23 2018-08-23 一种安卓系统的固件升级方法及一种存储设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810966474.XA CN109240720B (zh) 2018-08-23 2018-08-23 一种安卓系统的固件升级方法及一种存储设备

Publications (2)

Publication Number Publication Date
CN109240720A CN109240720A (zh) 2019-01-18
CN109240720B true CN109240720B (zh) 2021-11-26

Family

ID=65069117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810966474.XA Active CN109240720B (zh) 2018-08-23 2018-08-23 一种安卓系统的固件升级方法及一种存储设备

Country Status (1)

Country Link
CN (1) CN109240720B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032377A (zh) * 2019-03-19 2019-07-19 芯讯通无线科技(上海)有限公司 通信模块软件升级方法、系统及通信模块
CN110175039A (zh) * 2019-04-26 2019-08-27 潍坊歌尔电子有限公司 在线升级方法、设备、可读存储介质及电子设备
CN111694608B (zh) * 2020-06-08 2023-06-20 阿波罗智联(北京)科技有限公司 终端设备的系统升级方法和装置、电子设备和终端设备
CN113254030B (zh) * 2021-04-09 2024-04-16 联合汽车电子有限公司 车载微处理器软件应急刷新方法、装置、存储介质及系统
CN113238771B (zh) * 2021-04-27 2022-06-21 瑞芯微电子股份有限公司 一种基于安卓系统的fota固件升级方法和装置
CN113778496A (zh) * 2021-09-16 2021-12-10 联想(北京)有限公司 固件升级方法、装置及电子设备和存储介质
CN113905365B (zh) * 2021-12-13 2022-03-15 龙旗电子(惠州)有限公司 安卓终端单双卡配置方法、装置及设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473097A (zh) * 2013-09-09 2013-12-25 福州瑞芯微电子有限公司 Android系统固件升级系统、装置及升级方法
CN103699421A (zh) * 2014-01-08 2014-04-02 金三立视频科技(深圳)有限公司 嵌入式设备系统升级方法及其装置
CN104572229A (zh) * 2015-02-12 2015-04-29 西安诺瓦电子科技有限公司 嵌入式系统的固件升级方法以及固件升级装置
CN105094927A (zh) * 2015-08-28 2015-11-25 东方网力科技股份有限公司 一种设备固件升级方法和装置
CN105573780A (zh) * 2015-12-08 2016-05-11 北京元心科技有限公司 一种基于容器的移动终端操作系统升级方法和装置
CN105740034A (zh) * 2016-04-13 2016-07-06 深圳市高巨创新科技开发有限公司 Mcu在线升级固件的系统及方法
CN106528114A (zh) * 2016-10-25 2017-03-22 北京海誉动想科技股份有限公司 安卓固件应用、安卓固件和固件升级方法
CN106610840A (zh) * 2015-10-22 2017-05-03 深圳市中兴微电子技术有限公司 一种无线固件升级方法及系统
US9672047B1 (en) * 2014-10-31 2017-06-06 American Megatrends, Inc. Systems and methods for accessing a bootable partition on a serial peripheral interface device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101403305B1 (ko) * 2012-08-23 2014-06-05 한국전자통신연구원 백업부트레코드 정보를 이용한 파티션 복구 장치 및 방법
JP6351413B2 (ja) * 2014-07-15 2018-07-04 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
US10097563B2 (en) * 2016-05-04 2018-10-09 Gbs Laboratories, Llc Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473097A (zh) * 2013-09-09 2013-12-25 福州瑞芯微电子有限公司 Android系统固件升级系统、装置及升级方法
CN103699421A (zh) * 2014-01-08 2014-04-02 金三立视频科技(深圳)有限公司 嵌入式设备系统升级方法及其装置
US9672047B1 (en) * 2014-10-31 2017-06-06 American Megatrends, Inc. Systems and methods for accessing a bootable partition on a serial peripheral interface device
CN104572229A (zh) * 2015-02-12 2015-04-29 西安诺瓦电子科技有限公司 嵌入式系统的固件升级方法以及固件升级装置
CN105094927A (zh) * 2015-08-28 2015-11-25 东方网力科技股份有限公司 一种设备固件升级方法和装置
CN106610840A (zh) * 2015-10-22 2017-05-03 深圳市中兴微电子技术有限公司 一种无线固件升级方法及系统
CN105573780A (zh) * 2015-12-08 2016-05-11 北京元心科技有限公司 一种基于容器的移动终端操作系统升级方法和装置
CN105740034A (zh) * 2016-04-13 2016-07-06 深圳市高巨创新科技开发有限公司 Mcu在线升级固件的系统及方法
CN106528114A (zh) * 2016-10-25 2017-03-22 北京海誉动想科技股份有限公司 安卓固件应用、安卓固件和固件升级方法

Also Published As

Publication number Publication date
CN109240720A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
CN109240720B (zh) 一种安卓系统的固件升级方法及一种存储设备
US7991988B2 (en) Communication device and firmware update method thereof
CN104850762B (zh) 防止计算机的动作不良的方法、计算机程序以及计算机
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
CN104102518B (zh) 一种双cpu系统及其程序升级方法
US20100082955A1 (en) Verification of chipset firmware updates
CN103106092A (zh) 终端设备中系统软件升级方法和装置
WO2014146256A1 (zh) 一种升级方法、智能终端及升级系统
CN104461594B (zh) 嵌入式操作系统的升级方法及装置
WO2016078060A1 (zh) 用于多系统终端的系统升级方法、升级装置和终端
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
CN112433769A (zh) 一种bmc启动方法、装置、计算机设备及存储介质
CN108958785B (zh) 一种应用程序升级方法及装置
CN103455750A (zh) 一种嵌入式设备的高安验证方法及装置
US20070157014A1 (en) Apparatus for remote flashing of a bios memory in a data processing system
CN116755749A (zh) 板载mcu的升级方法、板载mcu、板卡及信息处理系统
CN115102855B (zh) 智能水表嵌入式软件在线升级方法及系统
KR101529713B1 (ko) 비정상 전원절환에 대한 안드로이드 단말의 안정성 강화 방법 및 이를 위한 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN106919423B (zh) 一种固件升级方法及装置
CN104750505A (zh) 用于单片机的在线升级方法及系统
CN113721959A (zh) 一种信息处理方法、装置及电子设备
CN102460386B (zh) 用于在引导过程期间加载文件的方法和装置
CN111813597A (zh) 一种空调器
KR20110137064A (ko) 이동통신 단말기 및 이동통신 단말기의 펌웨어 업데이트 방법
CN114610415B (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
CB02 Change of applicant information

Address after: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province

Applicant after: Ruixin Microelectronics Co., Ltd

Address before: 350003 building 18, No.89, software Avenue, Gulou District, Fuzhou City, Fujian Province

Applicant before: FUZHOU ROCKCHIP ELECTRONICS Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant