CN101751273A - 用于嵌入式系统的安全引导装置及方法 - Google Patents
用于嵌入式系统的安全引导装置及方法 Download PDFInfo
- Publication number
- CN101751273A CN101751273A CN200810239924A CN200810239924A CN101751273A CN 101751273 A CN101751273 A CN 101751273A CN 200810239924 A CN200810239924 A CN 200810239924A CN 200810239924 A CN200810239924 A CN 200810239924A CN 101751273 A CN101751273 A CN 101751273A
- Authority
- CN
- China
- Prior art keywords
- operating system
- thread
- loading area
- program module
- flash
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种用于嵌入式系统的安全引导装置,包括安装在存储器写保护区域内的装载模块,其特征在于,所述装载模块包括第一引导程序模块、装载区操作系统和第二引导程序模块;所述第一引导程序模块用于开机后将系统硬件初始化,然后启动所述装载区操作系统;所述装载区操作系统具有跳转线程,所述跳转线程用于在装载区操作系统的其它线程执行完后,将程序跳转至第二引导程序模块的起始地址;所述第二引导程序模块用于将系统硬件重新初始化,然后启动主操作系统。另外,本发明还提供了相应的安全引导方法。本发明能够在安全引导阶段实现多种复杂功能,如主动在线升级上层应用程序和主操作系统内核,快速显示出彩色开机画面,实现逐级校检等。
Description
技术领域
本发明涉及嵌入式系统,具体地说,本发明涉及一种用于嵌入式系统的安全引导方法。
背景技术
随着网络通信技术、芯片技术和软件技术的飞速发展,嵌入式系统的应用也越来越广泛。数字电视因其广泛的市场需求前景和巨大的商业价值,使得机顶盒成为嵌入式系统的一个广泛应用领域。目前,嵌入式操作系统主要有Vxworks,Linux,WinCE,OS20,Psos,u/COS-II,eCOS等。其中u/COS-II,eCOS,Linux,Vxworks应用最为广泛。u/COS-II操作系统为公开源码的实时操作系统,内核针对实时系统的要求来设计实现,相对较简单,同时u/COS-II具有代码尺寸小,易于移植的特性。Linux操作系统同样也是完全开放源码的,提供标准的应用程序接口(API),嵌入式Linux内核是为特殊的硬件资源进行裁减和修改后的Linux内核,已越来越多地应用于各种嵌入式系统中。Vxworks是一种嵌入式实时操作系统,具有高性能的内核、友好的用户开发环境,具有很好的实时性,在军方和通信业得到了广泛的应用。
嵌入式计算机系统通过装载模块(Loader)来实现对系统的安全引导。目前的嵌入式系统中,Loader主要实现对CPU的初始化、串口初始化、内存DDR-SDRAM(或DDR2等)及Flash等主要硬件的初始化和加载驱动的功能。另外,某些嵌入式系统的Loader还具有在线升级功能,但现有的在线升级本质上是被动升级(主要是由于现有Loader功能简单,无法对码流进行实时分析和相应处理)。当需要从Loader升级上层应用程序时,采用读取Flash中特定扇区(Sector)的频点和调制方式等信息来锁频和下载(如机顶盒的DVB应用或IPTV应用),而上述升级相关信息是在前次关机前或重新启动前由上层应用程序根据是否有新应用程序版本需要升级而写入的。因此,当相关的上层应用程序出现故障时,可能就无法进行在线升级或修复。另外,由于所述升级相关信息均放置在Flash的写保护区之外(如图1所示,该图是现有技术中的机顶盒的Flash分区示意图),所述升级相关信息容易受到非法破坏(如黑客攻击),导致系统无法正常升级。
另外,由于现有Loader的功能较为简单,在安全引导阶段也无法实现其它一些较为复杂的功能。比如现有Loader无法对写保护区内外的Image数据逐级进行完整性校验;现有Loader不能支持图形界面,因此开机画面必须在Loader运行完并启动操作系统后才能出现,这就造成用户等待时间过长,体验不佳的问题。
发明内容
本发明的目的是为在嵌入式系统提供一种在Loader中嵌入操作系统以执行复杂功能的安全引导装置;本发明还提供一种能够实现主动在线升级的安全引导方法,所述引导装置及方法还能够进行逐级校验和提供快速开机画面。
为实现上述发明目的,本发明提供的用于嵌入式系统的安全引导装置,包括安装在存储器写保护区域内的装载模块,其特征在于,所述装载模块包括第一引导程序模块、装载区操作系统和第二引导程序模块;所述第一引导程序模块用于开机后将系统硬件初始化,然后启动所述装载区操作系统;所述装载区操作系统具有跳转线程,所述跳转线程用于在装载区操作系统的其它线程执行完后,将程序跳转至第二引导程序模块的起始地址;所述第二引导程序模块用于将系统硬件重新初始化,然后启动主操作系统。
上述技术方案中,所述装载区操作系统还具有在线升级线程,所述在线升级线程用于搜索并下载新版本的上层应用程序和/或主操作系统内核。
上述技术方案中,所述装载区操作系统还包括校验功能模块,所述校验功能模块用于判断上层应用程序和/或主操作系统内核是否遭到破坏,如判断为是,则启动装载区操作系统的在线升级线程重新下载所述上层应用程序和/或主操作系统内核。
上述技术方案中,所述在线升级线程还用于在检测到强制升级信号时,根据所述强制升级信号下载并安装目前最新版本的上层应用程序和或主操作系统内核。
上述技术方案中,所述存储器为flash存储器,所述装载区操作系统和使用ELF文件格式,经无损压缩后存储在所述flash存储器的写保护区域内;所述第一引导程序模块还用于解析ELF文件和解无损压缩。
上述技术方案中,所述第二引导程序模块的链接地址与第一引导程序模块不同,所述第二引导程序模块的烧写地址与第一引导程序模块不同。所述第二引导程序模块生成过程如下:使用重定位技术修改第一引导程序的链接地址并对第一引导程序重新编译,然后按照修改后的链接地址,将重新编译后的引导程序模块烧写进所述存储器的写保护区域内。
上述技术方案中,所述装载区操作系统还具有开机画面显示线程,所述开机画面显示线程的优先级高于所述跳转线程的优先级。
上述技术方案中,所述装载区操作系统为u/COS-II、eCOS、Psos或Vxworks操作系统;所述主操作系统为Linux、Vxworks,WinCE,OS20,Psos,u/COS-II或eCOS操作系统。
为实现另一发明目的,本发明提供的用于嵌入式系统的安全引导方法,包括如下步骤:
1)系统上电,启动第一引导程序模块,将系统硬件初始化,然后启动所述装载区操作系统;
2)装载区操作系统执行在线升级线程,所述在线升级线程用于搜索并下载新版本的上层应用程序和/或主操作系统内核;
3)装载区操作系统执行跳转线程,将指针指向第二引导程序模块的起始地址;
4)第二引导程序模块重新将系统硬件初始化,然后启动主操作系统。
上述技术方案中,所述步骤2)还包括校验主操作系统的上层应用程序和/或主操作系统内核是否遭到破坏,如遭到破坏,则启动在线升级线程重新下载所述上层应用程序和/或主操作系统内核。
上述技术方案中,所述步骤2)还包括启动开机画面显示线程,为用户提供开机画面;所述校验线程利用数字签名技术进行校验。
上述技术方案中,所述步骤1)还包括在系统硬件初始化后,对装载区操作系统和第二引导程序模块的数字签名进行校验,如果校验正确,则启动所述装载区操作系统;如果校验错误,则向用户告警。
上述技术方案中,所述步骤2)还包括检测强制升级信号,当检测到强制升级信号时,根据所述强制升级信号下载并安装目前最新版本的上层应用程序和/或主操作系统内核。
上述技术方案中,当装载区操作系统以ELF文件和无损压缩的形式存储时,所述步骤1)还包括对所述装载区操作系统进行ELF文件解析和解无损压缩。
本发明的一些事实方案与现有技术相比,具有如下技术效果:
1)本发明在Loader中嵌入了一个专用于安全引导的操作系统(如u/COS-II),能够通过运行该专用操作系统的各种功能线程在安全引导阶段实现多种复杂功能。
2)本发明的一些实施例具有主动在线升级上层应用程序和主操作系统内核的功能,即使Flash中上层应用程序或主操作系统内核被破坏,本发明仍然能够自动在线升级应用程序和主操作系统内核。
3)本发明的一些实施例能够对Flash各部分映像文件进行逐级校验,确保系统安全启动。对Flash上层应用程序或主操作系统内核的恶意破坏将导致系统告警和停止运行,能够防止黑客恶意替换上层应用程序或主操作系统内核。
4)本发明的一些实施例采用无损压缩和ELF格式文件,使得Loader中的操作系统编译压缩文件占用的Flash空间较小(约200KB左右)。
5)本发明的一些实施例还可以实现上电后快速显示出彩色开机画面,比在Linux启动后出彩色开机画面,具有更好的用户体验。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1为现有技术中的机顶盒的Flash分区示意图;
图2为本发明一个实施例中的Flash分区示意图;
图3为本发明一个实施例的多操作系统嵌入式平台软件启动流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步说明。
安全引导是嵌入式系统启动操作系统前的一个必要步骤。引导装置主要由装载模块(Loader)构成。现有技术中,由于Loader自身能力的限制,安全引导过程只能实现一些基本的功能。而本实施例主要构思是在Loader中嵌入一个专用于安全引导的操作系统,并依托该专用操作系统来实现一些复杂的功能,如实现主动在线升级、实现开机画面的快速显示、对数据完整性进行校检等。如图2所示,本实施例的Loader中嵌入了u/COS-II操作系统,称为装载区操作系统。对数据完整性进行校检通过数字签名来实现,图2中数字签名1用于对Loader整个Image(映像)文件进行完整性校验,数字签名2用于对主操作系统(本实施例为Linux)内核和上层应用程序进行完整性校验。
另一方面,本实施例设计了两个引导程序(Boot程序)模块,第一引导程序模块用于实现对CPU和板级硬件的初始化,并在初始化后引导装载区操作系统启动,第二引导程序模块主要用于引导主操作系统启动。同时,本实施例在装载区操作系统设计了一个跳转线程,用于将指针指向第二引导程序模块的起始地址。一般来说,跳转线程的优先级较低,这样在装载区操作系统运行完其它功能线程后,进入跳转线程,通过所述跳转线程自动进入第二引导程序,从而实现主操作系统的启动。本实施例中设置两个引导程序模块,由Loader中的装载区操作系统先跳转到第二个引导程序,再由第二个引导程序跳转到主操作系统,实现了系统软件的分层架构,简化系统软件的设计,避免了直接从Loader中的装载区操作系统跳转到主操作系统的复杂操作。本实施例中,所述第二个引导程序可以在第一个引导程序的基础上采用重定位技术获得,这样技术实现上较为方便。
再者,本实施例还采用了ELF文件格式以及无损压缩技术,从而大幅压缩了Loader所占的存储空间,以嵌入u/COS-II操作系统为例,编译的压缩Image文件代码尺寸可以缩小到200KB。
如图2所示,本实施例的Loader包括第一引导程序模块、装载区操作系统和第二引导程序模块。由于整个Loader均存储在Flash的写保护区(WP)内,因此装载区操作系统的所有线程都具有很强的安全性和稳定性。以实现在线升级为例,本实施例只需启动装载区操作系统并运行在线升级线程即可。而对比图1,现有技术的在线升级需要利用到存储在Flash写保护区(WP)外的升级相关信息,一旦这些升级相关信息遭到篡改,将无法实现在线升级功能。
参考图3,本实施例的嵌入式系统的安全引导流程如下:
步骤1)系统上电后,启动第一个Boot程序,对CPU、串口、内存DDR(或DDR2)、Flash等进行初始化,加载Flash驱动,配置DDR(或DDR2)的时序参数等,系统启动。
步骤2)读取Flash中数字签名1,校验u/COS-II的IMAGE(映像)文件与第二个Boot的数字签名,如果正确,则执行步骤3),否则系统进行LED或串口告警指示。
步骤3)对Flash分区中的u/COS-II文件进行解无损压缩,再进行ELF格式解析。执行u/COS-II应用程序的相关功能(如开机画面显示,判断是否有新版本的升级下载流,判断是否需要遥控器强制升级等,如需要升级,新版本应用程序升级后需相应更改其数字签名2),然后跳转到第二个Boot程序的地址。
步骤4)执行第二个Boot程序,实现对Linux内核和其应用程序的签名校验,如果正确,则执行步骤5),否则为上层应用程序或主操作系统内核被破坏,系统LED或串口告警指示,并进入Loader在线升级程序模块,应用程序升级后由Loader相应更改其数字签名2,并写入Flash中相应地址。
步骤5)对Flash分区中的Linux无损压缩内核文件进行解无损压缩,进行ELF格式解析,启动带根文件系统的RAMDISK自启动Linux内核。RAMDISK顾名词义,是在RAM中模拟一个硬盘分区,功能犹如块设备。
步骤6)由带根文件系统的RAMDISK的Linux内核,启动上层应用程序。
本实施例的引导装置通过以下步骤实现:
步骤1)编写特定嵌入式硬件平台Boot程序,实现对CPU的初始化,串口初始化、内存DDR-SDRAM(或DDR2)及Flash等主要硬件的驱动和初始化,进行Flash分区等。
本实施例的步骤1)为编写特定嵌入式平台的Boot程序,Boot程序一般由汇编和C混合编写完成。实现对CPU的初始化,对串口芯片,加载Flash芯片的驱动,配置内存芯片DDR-SDRAM(DDR2)的时序参数,进行Flash分区等。对内存DDR(DDR2)的初始化关键在于设计内存的时序与处理器的时序配合,对内存时序影响大并且与寄存器配置有关的参数列表如下,计算这些参数,采用汇编写入相应的配置寄存器。表1为内存芯片的一些常用参数配置。
表1
缩写 | 英文全名 | 作用 | 影响 |
tRC | ACTIVE-to-ACTIVE(same bank)command | 控制内存的行周期时间。tRC决定了完成一个完整的循环所需的最小周期数,也就是从行激活到行充电的时间。 | 稳定性和内存带宽 |
tRCD | ACTIVE-to-READor WRITE delay | 控制内存行地址(RAS,Row Address Strobe)信号与列地址选通脉冲信号之间的延迟。对内存进行读、写或刷新操作时,需要在这两种脉冲信号之间插入延迟时钟周期 | 影响带宽和稳定性 |
tRAS | ACTIVE-to-PREcharGEcommand | 控制内存最小的行地址激活时钟周期数,它表示一个行地址从激活到复位的时间。 | 轻微影响带宽和稳定性 |
tRP | PREcharGE ALLCommand period | 用来设定在另一行能被激活之前,RAS需要的充电时间。 | 内存带宽和稳定性。 |
tRFC | REFRESH-to-ACTIVEorREFRESH-to-REFRESHcommand interval | 代表在同一bank中刷新一个单独的行所需的时间。同时还是同一bank中两次刷新指令的间隔时间。 | 内存带宽和稳定性。 |
tRRD | Active to active commandperiod for 2KB page sizeproducts | 连续的激活指令到内存行地址的最小间隔时间,也就是预充电时间 | 轻微影响内存带宽和稳定性 |
tRTP | Internel read to prechargecommand delay | 读到预充电延迟时间。 | |
tWTR | Internel write to readcommand delay | 当内存控制器接收到一个读指令后立即又收到一个写指令,在写指令执行之前,会产生一个额外的延迟 | 轻微影响内存带宽和稳定性 |
tCCD | CAS to CAS commanddelay | 表示连续的激活指令到内存列地址的最小间隔时间。 |
缩写 | 英文全名 | 作用 | 影响 |
tEFI | Average periodic refreshinterval | 平均刷新的时间 | |
tWR | Write recovery time | tWR表示,在一个内存bank被充电之前,一个有效的写操作完成后延迟的时间。 | 轻微影响内存带宽和稳定性 |
BL | Burst length | 突发长度 | |
CL | CASLatency Control | CAS表示列地址寻址(Column Address Strobe or Column Address Select),CAS控制从接受一个指令到执行指令之间的时间。 | 影响稳定性,轻微影响带宽 |
Flash驱动采用汇编程序完成,采用C编写Flash分区程序。例如Flash的分区如下,采用以下数据结构:
ypedef struct newflash_part_t{
int fp_size;
char*fp_name;
}newflash_part_t;
typedef struct newflash_probe_t{
long flash_phys; /*Flash的物理地址*/
int flash_size; /*Flash总的存储空间大小*/
int flasn_flags; /*Flash的总线连接方式*/
int flash_type; /*Flash的类型*/
int flash_cmdset; /*Flash的命令设置*/
int flash_nsectors; /*扇区的数量*/
int flash_sectors[FLASH_MAXSECTORS];
/*以下为Flash的芯片数量*/
int flash_nchips; /*″flash_size″仅仅是一个Flash芯片的存
储空间大小*/
/*以下用于Flash的分区数量*/
int flash_nparts;/*如为0则表示Flash不进行分区*/
newflash_part_t flash_parts[FLASH_MAX_PARTITIONS];
int(*flash_ioctl_hook)(cfe_devctx_t*ctx,iocb_buffer_t*buffer);
/*flash引擎,用于不同厂家的Flash芯片*/
int(*flash_engine_hook)(flashinstr_t*prog);
}newflash_probe_t;
具体分区举例如下:
fprobe.flash_nparts=8;
fprobe.flash_parts[0].fp_size=0;
fprobe.flash_parts[0].fp_name=″ApplicationProgram″;
fprobe.flash_parts[1].fp_size=128*1024;
fprobe.flash_parts[1].fp_name=″FirstBoot″;
fprobe.flash_parts[2].fp_size=256*1024;
fprobe.flash_parts[2].fp_name=″UcosII″;
fprobe.flash_parts[3].fp_size=128*1024;
fprobe.flash_parts[3].fp_name=″SecondBoot″;
fprobe.flash_parts[4].fp_size=128*1024;
fprobe.flash_parts[4].fp_name=″BaseInformation″;
fprobe.flash_parts[5].fp_size=128*1024;
fprobe.flash_parts[5].fp_name=″NITandOthers″;
fprobe.flash_parts[6].fp_size=128*1024;
fprobe.flash_parts[6].fp_name=″OtherInformation″;
fprobe.flash_parts[7].fp_size=0x400000-896*1024;
fprobe.flash_parts[7].fp_name=″LinuxKernel″;
步骤2)编写ELF文件解析格式程序。
ELF全称为(Executable and Linking Format),ELF的文件主要包含以下几个部分:
21)ELF头(ELF Header),每一个ELF的开始部分为一个ELF头,它是一个类型为Elf32_Ehdr类型的结构体,保护有描述文件组织情况的信息。
22)程序头表(program header table):通知系统如何创建进程Image。用于建立一个进程Image的文件需要有一个程序头表,重定位文件没有。
23)节(section):含有目标文件的大部分信息,如指令、数据、符号表、重定位信息等。其中,较为重要的几个节为:(1).init初始化节,它包含有进程初始化时所执行的代码。当程序开始运行时,系统在调用main之前执行本节代码。(2).shstrtab节名节,含有节名,以字符串形式联系存储。(3).strtab字符串节,含有字符串,通常是代表与符号表入口相关名字的串。(4).symtab符号表节,含有一个符号表。(5).text正文节,含有程序的可执行指令。
24)节头表(section header table):含有文件中所包含节的入口信息。每个节在节头表中有一个入口,每个入口给出了节名、节大小等信息。在连接过程中,所使用的文件需要有一个节头表。
步骤3)编写解无损压缩程序(特别以gzip为典型)和数字签名校验程序。本实施例利用gzip无损解压缩技术,实现对u/COS-II与Linux的无损压缩Image文件的无损解压缩。有损压缩主要应用于图像、语音信号等,具有很高的压缩比,能够大大减小数据的存储空间,但信息受到了损失。而无损压缩应用于对宿主数据要求很高,信息量没有任何损失。这里采用gzip无损解压缩算法,Loader可以解gzip压缩的Image文件。压缩算法的重要三个输入对象是:输入数据流、输出数据流和一张用于编码的字符串表。输入数据流是指被压缩数据;输出数据流是指压缩后输出的数据流;字符串表存储的是数据的索引号,相同块的数据只输出第一块的索引号,从而实现了数据的压缩。解压缩是其逆过程。
本实施例对ELF的无损压缩可执行文件的主要步骤如下:
31)解无损压缩gzip文件
32)ELF格式文件解析
33)读入ELF可执行文件的头部信息以确定其文件格式及地址空间的大小;
34)以段的形式划分地址空间;
35)将可执行程序读入地址空间中的各个段,建立虚实地址间的映射关系;
36)将BBS段清零;
37)创建堆栈段;
38)建立程序参数、环境变量等程序运行过程中所需的信息;
39)启动运行。
步骤4)由步骤1)、步骤2)、步骤3)组合成Boot程序,实现对CPU和硬件的初始化,同时具有解无损压缩和解析ELF格式文件的功能,烧写入Flash相应开始启动地址。
本实施例主要实现在Loader中集成u/COS-II操作系统,u/COS-II为公开源码的实时系统,内核是针对实时系统的要求来实现的,相对比较简单,可满足较高的实时性要求。内核提供任务调度和管理、时钟管理、任务间同步和通信、内存管理和中断服务等功能。支持多任务,易于移植,适合于在Loader中完成在线系统升级等功能。
步骤5)编写基于u/COS-II操作系统的应用程序,实现对嵌入式平台硬件驱动的支持,可实现系统在线升级等功能,执行完相应功能后,进行强制地址跳转,跳转到步骤6)中第二个Boot在Flash中的烧写地址。生成ELF文件格式的无损压缩IMAGE文件。最后将其烧写入Flash的Boot程序下一个分区的起始地址。
一方面,本实施例需要编写在线升级的相关程序。下面,以下嵌入式系统以DVB-C机顶盒为例说明本实施例中在线升级的主要步骤,本领域技术人员可以根据这些步骤来编写在线升级的相关程序。
51)DVB-C机顶盒采用电缆与前端设备进行连接,采用QAM调制方式(如常采用QAM64方式)来传输数字信号。
52)本实施例的Loader带有操作系统,支持各种硬件资源的驱动,支持前面板的驱动,因此Loader系统可接收遥控器信号。在系统启动时规定遥控器的某些按键组合(如按键为7658等)为强制升级信号,当Loader收到该信号后则进入升级流程,采用该方法来实现强制升级。
53)本实施例的Loader带有操作系统,对于DVB-C信号,可按照一定的步骤主动进行一定频点和调制信息的码流搜索和锁定、进行节目映射表PMT、节目关联表PAT、网络信息表NIT等表的解析和处理,寻找特定PID的升级码流;规定前端服务器和终端采用特定包标识符PID的码流进行新版本的操作系统内核与应用程序Image的升级,码流的打包方式和相应的解析方式由前端和终端系统设计时确定。
54)启动Loader中的操作系统后,首先加载Tuner的驱动程序,实现对一定频点、符号率和调制方式的信号进行锁定,先根据Flash中特定存储区域的频率、调制信息来搜索码流,看是否能正常锁定;如果可以正常锁定,则进入步骤55);否则再按照运营商指定的几个常用的下载升级码流的频率、调制信息来尝试是否可重新尝试锁定码流;如果可以正常锁定,则进入步骤55);否则搜索网络信息表NIT,搜索相关频率和调制信息的码流,网络信息表NIT提供关于多组传输流和传输网络相关的信息,其中包含传输流描述符、通道频率、卫星发射器号码、调制特性等信息。搜索NIT表看是否可正常锁定;如果可以正常锁定,则进入步骤55);否则继续搜索NIT表。
55)升级程序线程解析PAT表,得到节目映射表(PMT),寻找对特定升级用的特定PID的下载流。PAT表用MPEG指定的PID(00)标明,通常用PID=0表示。它的主要作用是针对复用的每一路传输流,提供传输流中包含哪些节目、节目的编号以及对应节目的节目映射表(PMT)的位置,即PMT的TS包的包标识符(PID)的值,同时还提供网络信息表(NIT)的位置,即NIT的TS包的包标识符(PID)的值。
56)寻找到下载流后,然后根据前端发送的相应的打包方式来进行相应的解析,在内存中开辟缓冲区,将各个Section的数据收入缓冲区,最后当全部包收齐后,重新按序号进行组合得到新的主操作系统内核与应用程序的整个Image。
57)带有操作系统的Loader,将内存中收到的新版本的操作系统内核与应用程序的Image,烧写到Flash中的相应地址,同时修改相应的数字签名。
58)最后带操作系统的Loader在升级完成后,进行软复位,进行系统重新启动。
59)对于IPTV机顶盒,所需下载的升级码流通过网口进入系统,而不是电缆的方式,与之相似,带有Loader的操作系统同样可以完成在线升级的功能。
另一方面,本实施例需要实现对Loader中u/COS-II与第二个Boot程序的数字签名,同时也要实现对Linux内核和上层应用程序的数字签名。数字签名主要的功能是:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。在Flash中采用数字签名主要为了验证Flash中所存储的Image的完整性。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。
数字签名的基本原理如下:
由发送者把要签名的信息作Hash运算,得到一段难以伪造的并且长度固定的数据摘要。
发送者用自己的私钥把数据摘要加密成数字签名。并将其与信息一并发送给接收者。
接收者收到信息和数字签名后,对信息作Hash运算得到报文的数据摘要,再用公钥把数字签名解密为数据摘要。
比较这两份数据摘要,如果相同则签名有效,否则签名无效。这样就确定了信息的真实性。
本实施例中的Image文件,和相应的数字签名一块存储于Flash相应分区中。本实施例的数字签名算法可采用多种签名算法,数字签名算法程序应放入Loader中。
在步骤5)中,u/COS-II操作系统还提供快速开机画面和强制地址跳转功能。所述快速开机画面和强制地址跳转功能采用2个不同的线程来实现,一个线程用于实现对图形部分相应寄存器的初始化,显示彩色开机画面,该线程具有较高的优先级;另一个线程用于完成地址跳转,具有较低的优先级。当彩色开机画面显示完成后,具有较低优先级的跳转线程获得时间片进行运行,从而跳转到第二个Boot写入FLASH的起始地址。跳转的实现方式如下,先进行关中断、然后将一个空函数的函数指针设置为需跳转的目标地址,执行该函数,即跳转到第二个Boot写入FLASH的起始地址,采用u/COS-II操作系统,在此跳转过程中开机画面仍保持不变,一直保持到Linux应用程序重新初始化芯片的图形显示部分寄存器。采用该技术,可实现机顶盒快速开机画面,一般在系统上电后4秒左右(与具体的嵌入式系统处理器的速度有关)即可以显示彩色开机画面。以下为跳转函数的一种简单实现方法,例如跳转地址为:
void STBJump(void)
{
/*函数声明*/
void(*RESETJumpPtr)(void);
/*关中断*/
OS_ENTER_CRITICAL();
/*这里设置空函数的指针为跳转地址为0xbfc60000*/
RESETJumpPtr=(void(*)(void))(0xbfc60000);
/*进行跳转*/
RESETJumpPtr();
/*设置为u/COS-II较低的优先级,优先级低于图形初始化和加载开机
画面的优先级*/
OSTaskDel(55);
}
步骤6)采用重定位技术(relocation),修改Boot程序的链接地址并重新编译生成目标文件。将利用重定位技术修改后的Boot程序链接地址做为为第二个Boot烧写入Flash的Sector的起始地址。编译器在编译生成目标文件时,通常都使用从零开始的相对地址。然而,在链接过程中,链接器将从一个指定的地址开始,根据输入的目标文件的顺序以段为单位将目标文件一个接一个的拼装起来。除了目标文件的拼装之外,在重定位的过程中还完成了两个任务:一是生成最终的符号表;二是对代码段中的某些位置进行修改,所有需要修改的位置都由编译器生成的重定位表指出。以下以Broadcom BCM7309平台为例进行说明,第一个Boot程序烧写入Flash的地址为0x9FC00000;第二个Boot程序烧写入Flash的地址为0x9FC60000,需要相应修改cfe_rom_reloc_cached.lds文件如下:
OUTPUT_ARCH(mips)
ENTRY(vec_reset)
SECTIONS
{
.=0x9FC60000;/*地址由0x9FC00000修改为0x9FC60000*/
.text:
AT(0xBFC60000)
{
_ftext=.;
*(.init)
eprol=.;
*(.text)
PROVIDE(_runtime_reloc_start=.);
*(.rel.sdata)
PROVIDE(_runtime_reloc_stop=.);
*(.fini)
*(.rodata)
_etext=.;
}
.data 0x80001000:
AT(((ADDR(.text)|0xB0000000)+SIZEOF(.text)+15)&
0xFFFFFFF0)
{
_gp=ALIGN(16)+0x8000;
_fdata=.;
*(.rdata)
*(.data)
CONSTRUCTORS
*(.sdata)
}
.=ALIGN(16);
_edata=.;
_fbss=.;
.sbss:{
*(.sbss)
*(.scommon)
}
.bss:{
*(.bss)
*(COMMON)
}
.=ALIGN(16);
_end=.;
}
步骤7)Flash中第一个Boot文件、u/COS-II IMAGE与第二个Boot均存储在Flash的写保护区,在本实施例中,Loader包括第一个Boot文件、u/COS-II IMAGE与第二个Boot文件。
步骤8)按顺序读取Flash中从u/COS-II IMAGE文件的分区到第二个Boot文件末尾的所有数据,生成数字签名1,写入第二个Boot的下一个分区中,数字签名1所在Flash的Sector也应为写保护区。
步骤9)生成带有根文件系统,支持RAMDISK的Linux内核Image文件,该内核应为自启动的方式,格式为ELF格式,并进行gzip无损压缩。自启动和非自启动内核的根文件系统不同。生成的Linux内核与步骤10)中上层应用程序的数字签名2,写入FLASH相应地址,一般可连续烧写,烧写地址为数字签名1的下一个Sector首地址。例如,Spansion的Flash S29GL128N,共具有128个Sector,每个Sector的尺寸大小为128K字节。
步骤9)中,MTD存储设备(这里为Flash)采用JFFS2文件格式,其功能就是在管理MTD设备上实现日志型文件系统。与其它的存储设备设备存储方案相比,JFFS2会直接在MTD设备上实现日志结构的文件系统。JFFS2会在安装的时候,扫描MTD设备的日志内容,并在RAM中重新建立文件系统结构本身。除了提供具有断电可靠性的日志结构文件系统,JFFS2还会在它管理的MTD设备上实现“耗损平衡”和“数据压缩”等特性。JFFS2的“耗损平衡”的功能,是由于Flash设备中每个块的擦除操作有次数上的限制,通常为100000次,但不同的制造商之间可能会有差异。一旦块的擦除次数达到这个上限,制造商就无法保证该块的正常运行。为避免过度使用某些块让设备的寿命因而缩短,JFFS2实现了一个算法,可确保Flash设备上所有区块具有一致的使用率,因此可平衡每个区块的损耗程度。同时JFFS2还具有将数据经过压缩节省空间的功能,并在使用数据前将之解压缩到RAM中。由于JFFS2的这些优越特性,已广泛用于各种MTD设备的文件系统选项。Linux内核在系统启动期间进行的最后操作之一就是安装根文件系统。根文件系统是所有Linux系统不可缺少的组件。本实施例步骤9)的细节步骤如下:
1)建立loop设备的临时挂载点
#mkdir/mnt/loop
2)建立文件系统映象
#dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=15360
3)mke2fs-F-v-m0/tmp/loop_tmp
此处-F选项将可迫使mkefs2在文件上运行。否则mke2fs会抱怨/tmp/loop_tmp不是个块设备(/tmp/loop_tmp文件映象需要是块设备文件,前面的做法是用块设备文件/dev/loop0与之相关联)。-v选项指出mke2fs应该以verbose模式执行,-m0指出不必在文件系统上为“超级用户”保留任何区块,因为在嵌入式系统中通常是单用户系统,为“超级用户”保留区块没有意义。
4)挂载映象文件
#mount-o loop/tmp/loop_tmp/mnt/loop
挂载后,在/mnt/loop下就可以对文件系统的内容进行操作。
5)cp操作,用cp-af命令将所需要文件拷贝到虚拟盘上
6)卸载映象文件
#umount/mnt/loop
7)压缩映象文件
#gzip-v9/tmp/loop_tmp
自启动的Linux内核,其主要实现方法为,Linux内核启动后运行一个脚本文件,通过该脚本文件,进行mount Flash的应用程序的相应分区,加载板级驱动程序,从而运行系统的上层应用程序。
步骤10)开发上层基于Linux的应用程序,分别烧写入Flash的相应地址。
值得说明的是,本发明中,Loader中所嵌入的操作系统,除了u/COS-II操作系统外,还可以是eCOS、Psos、Vxworks操作系统;上层主操作系统除Linux外,还可以是Vxworks,WinCE,OS20,Psos,u/COS-II,eCOS操作系统。无损压缩方式除了gzip外,还可以是tar的方式;数字签名技术也可以被数字指纹、无损数字水印等方法来替代。
最后所应说明的是,以上仅用以说明本发明理论原理和技术方案而非限制。本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (13)
1.一种用于嵌入式系统的安全引导装置,包括安装在存储器写保护区域内的装载模块,其特征在于,所述装载模块包括第一引导程序模块、装载区操作系统和第二引导程序模块;所述第一引导程序模块用于开机后将系统硬件初始化,然后启动所述装载区操作系统;所述装载区操作系统具有跳转线程,所述跳转线程用于在装载区操作系统的其它线程执行完后,将程序跳转至第二引导程序模块的起始地址;所述第二引导程序模块用于将系统硬件重新初始化,然后启动主操作系统。
2.根据权利要求1所述的安全引导装置,其特征在于,所述装载区操作系统还具有在线升级线程,所述在线升级线程用于搜索并下载新版本的上层应用程序和/或主操作系统内核。
3.根据权利要求1所述的安全引导装置,其特征在于,所述装载区操作系统还包括校验功能模块,所述校验功能模块用于判断上层应用程序和/或主操作系统内核是否遭到破坏,如判断为是,则启动装载区操作系统的在线升级线程重新下载所述上层应用程序和/或主操作系统内核。
4.根据权利要求2所述的安全引导装置,其特征在于,所述在线升级线程还用于在检测到强制升级信号时,根据所述强制升级信号下载并安装目前最新版本的上层应用程序和/或主操作系统内核。
5.根据权利要求1所述的安全引导装置,其特征在于,所述存储器为flash存储器,所述装载区操作系统和使用ELF文件格式,经无损压缩后存储在所述flash存储器的写保护区域内;所述第一引导程序模块还用于解析ELF文件和解无损压缩。
6.根据权利要求1所述的安全引导装置,其特征在于,所述装载区操作系统还具有开机画面显示线程,所述开机画面显示线程的优先级高于所述跳转线程的优先级。
7.根据权利要求1所述的安全引导装置,其特征在于,所述装载区操作系统为u/COS-II、eCOS、Psos或Vxworks操作系统;所述主操作系统为Linux、Vxworks,WinCE,OS20,Psos,u/COS-II或eCOS操作系统。
8.一种利用权利要求1所述的安全引导装置进行安全引导的方法,包括如下步骤:
1)系统上电,启动第一引导程序模块,将系统硬件初始化,然后启动所述装载区操作系统;
2)装载区操作系统执行在线升级线程,所述在线升级线程用于搜索并下载新版本的上层应用程序和/或主操作系统内核;
3)装载区操作系统执行跳转线程,将指针指向第二引导程序模块的起始地址;
4)第二引导程序模块重新将系统硬件初始化,然后启动主操作系统。
9.根据权利要求8所述的安全引导方法,其特征在于,所述步骤2)还包括校验主操作系统的上层应用程序和/或主操作系统内核是否遭到破坏,如遭到破坏,则启动在线升级线程重新下载所述上层应用程序和/或主操作系统内核。
10.根据权利要求8所述的安全引导方法,其特征在于,所述步骤2)还包括启动开机画面显示线程,为用户提供开机画面;所述校验线程利用数字签名技术进行校验。
11.根据权利要求10所述的安全引导方法,其特征在于,所述步骤1)还包括在系统硬件初始化后,对装载区操作系统和第二引导程序模块的数字签名进行校验,如果校验正确,则启动所述装载区操作系统;如果校验错误,则向用户告警。
12.根据权利要求8所述的安全引导方法,其特征在于,所述步骤2)还包括检测强制升级信号,当检测到强制升级信号时,根据所述强制升级信号下载并安装目前最新版本的上层应用程序和/或主操作系统内核。
13.根据权利要求8所述的安全引导方法,其特征在于,当装载区操作系统以ELF文件和无损压缩的形式存储时,所述步骤1)还包括对所述装载区操作系统进行ELF文件解析和解无损压缩。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810239924 CN101751273B (zh) | 2008-12-15 | 2008-12-15 | 用于嵌入式系统的安全引导装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810239924 CN101751273B (zh) | 2008-12-15 | 2008-12-15 | 用于嵌入式系统的安全引导装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101751273A true CN101751273A (zh) | 2010-06-23 |
CN101751273B CN101751273B (zh) | 2013-04-24 |
Family
ID=42478289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810239924 Expired - Fee Related CN101751273B (zh) | 2008-12-15 | 2008-12-15 | 用于嵌入式系统的安全引导装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101751273B (zh) |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231857A (zh) * | 2011-07-01 | 2011-11-02 | 四川长虹电器股份有限公司 | 一种提高机顶盒开机速度的方法 |
CN102547400A (zh) * | 2010-12-08 | 2012-07-04 | 中国科学院声学研究所 | 一种嵌入式电视终端系统内容安全保护方法 |
CN102629206A (zh) * | 2012-02-29 | 2012-08-08 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式系统软件升级方法及系统 |
CN102681858A (zh) * | 2011-03-09 | 2012-09-19 | 研祥智能科技股份有限公司 | VxWorks操作系统及配置其启动等待时间的方法和装置 |
CN103002343A (zh) * | 2012-12-28 | 2013-03-27 | 深圳Tcl新技术有限公司 | 电视快速开机的方法及系统 |
CN103226482A (zh) * | 2013-03-22 | 2013-07-31 | 深圳市九洲电器有限公司 | 一种机顶盒引导启动方法和装置 |
CN103365676A (zh) * | 2012-04-01 | 2013-10-23 | 中兴通讯股份有限公司 | 通信设备的软件升级方法及装置 |
CN103455750A (zh) * | 2013-08-26 | 2013-12-18 | 北京视博数字电视科技有限公司 | 一种嵌入式设备的高安验证方法及装置 |
CN103581748A (zh) * | 2012-08-03 | 2014-02-12 | 珠海扬智电子科技有限公司 | 快速开机方法、数据处理方法及机顶盒 |
CN103677884A (zh) * | 2012-09-21 | 2014-03-26 | 华为技术有限公司 | flash分区表文件生成及其数据升级方法、装置 |
CN103761124A (zh) * | 2014-01-06 | 2014-04-30 | 武汉烽火富华电气有限责任公司 | 用于保护测控装置的嵌入式Linux系统启动方法 |
CN103929675A (zh) * | 2014-03-28 | 2014-07-16 | 深圳市九洲电器有限公司 | 一种机顶盒的通信实现方法及机顶盒 |
CN104035787A (zh) * | 2014-07-01 | 2014-09-10 | 深圳数字电视国家工程实验室股份有限公司 | 一种基于Andriod内核的强制访问控制方法及装置 |
WO2015100878A1 (zh) * | 2013-12-30 | 2015-07-09 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及多核处理器芯片、存储介质 |
CN105426749A (zh) * | 2015-11-03 | 2016-03-23 | 浪潮电子信息产业股份有限公司 | 一种基于签名机制控制elf文件运行的方法 |
WO2016090836A1 (zh) * | 2014-12-12 | 2016-06-16 | 中兴通讯股份有限公司 | 一种嵌入式系统的启动方法和装置 |
CN105975862A (zh) * | 2015-11-25 | 2016-09-28 | 武汉安天信息技术有限责任公司 | 一种基于漏洞触发方式的漏洞检测方法及系统 |
WO2016184180A1 (zh) * | 2015-10-30 | 2016-11-24 | 中兴通讯股份有限公司 | 一种系统安全启动方法及装置 |
CN103686332B (zh) * | 2013-12-11 | 2016-11-30 | 深圳创维数字技术有限公司 | 一种启用安全功能的方法和终端 |
CN106878380A (zh) * | 2016-12-27 | 2017-06-20 | 北京五八信息技术有限公司 | 一种修复APP线上bug的方法、装置及终端 |
CN107479919A (zh) * | 2017-08-04 | 2017-12-15 | 昊翔电能运动科技(昆山)有限公司 | 遥控器及使用遥控器控制主机进入下载模式的方法 |
WO2018001193A1 (zh) * | 2016-06-28 | 2018-01-04 | 中兴通讯股份有限公司 | 一种交互式网络电视频道安全播放的方法、装置和系统 |
CN107656765A (zh) * | 2017-08-31 | 2018-02-02 | 深圳英飞拓科技股份有限公司 | 一种设备初始化的方法、系统及终端设备 |
CN107967193A (zh) * | 2017-12-25 | 2018-04-27 | 北京四达时代软件技术股份有限公司 | Boot启动方法和嵌入式设备 |
CN107979774A (zh) * | 2017-12-12 | 2018-05-01 | 深圳创维数字技术有限公司 | 一种终端开机方法、终端以及存储介质 |
CN109189485A (zh) * | 2018-08-08 | 2019-01-11 | 烽火通信科技股份有限公司 | 一种嵌入式设备的系统启动管理、操作系统配置方法 |
CN109240721A (zh) * | 2018-08-24 | 2019-01-18 | 江苏恒宝智能系统技术有限公司 | 一种mcu在线升级的方法 |
CN109614798A (zh) * | 2017-09-30 | 2019-04-12 | 华为技术有限公司 | 安全启动方法、装置及终端设备 |
CN109634669A (zh) * | 2018-11-20 | 2019-04-16 | 锐捷网络股份有限公司 | 嵌入式系统的启动方法及装置 |
CN109901847A (zh) * | 2019-01-22 | 2019-06-18 | 珠海亿智电子科技有限公司 | 一种基于存储卡的量产系统固件量产方法 |
CN110888667A (zh) * | 2019-10-30 | 2020-03-17 | 北京军懋国兴科技股份有限公司 | 一种arm芯片程序在线重构的方法 |
CN111522590A (zh) * | 2020-04-24 | 2020-08-11 | 中电科航空电子有限公司 | 提高VxWorks操作系统启动速度的方法及其应用 |
CN111596904A (zh) * | 2020-04-29 | 2020-08-28 | 赵新伟 | 一种基于嵌入式的c语言脚本编程方法 |
CN112148100A (zh) * | 2019-06-26 | 2020-12-29 | 西安诺瓦星云科技股份有限公司 | 嵌入式设备控制方法、装置及系统 |
CN112181507A (zh) * | 2020-10-23 | 2021-01-05 | 北京安石科技有限公司 | 与操作系统融合的方法及系统 |
CN112231176A (zh) * | 2020-10-14 | 2021-01-15 | 天津津航计算技术研究所 | 一种简便的VxWorks操作系统系统日志记录方法 |
CN113590133A (zh) * | 2021-08-09 | 2021-11-02 | 咪咕文化科技有限公司 | 安卓系统注入检测方法、装置、设备以及计算机存储介质 |
WO2022170904A1 (zh) * | 2021-02-10 | 2022-08-18 | 华为技术有限公司 | 开机方法及电子设备、可读存储介质、计算机程序产品 |
CN116383091A (zh) * | 2023-05-29 | 2023-07-04 | 珠海妙存科技有限公司 | eMMC验证平台的启动方法、启动装置及存储介质 |
CN116795741A (zh) * | 2023-08-28 | 2023-09-22 | 凡澈科技(武汉)有限公司 | 存储器数据防删除篡改方法及系统 |
CN117648701A (zh) * | 2024-01-29 | 2024-03-05 | 威胜信息技术股份有限公司 | 一种嵌入式操作系统安全启动机制实现方法及电子终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1622038A (zh) * | 2005-01-07 | 2005-06-01 | 北京北大方正电子有限公司 | 一种通过因特网对打印设备进行自动升级的方法 |
CN1755628A (zh) * | 2004-09-30 | 2006-04-05 | 联想(北京)有限公司 | 操作系统启动过程中自动安装软件的方法 |
CN1916846A (zh) * | 2005-08-17 | 2007-02-21 | 联想(北京)有限公司 | 操作系统的自动部署方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978912A (en) * | 1997-03-20 | 1999-11-02 | Phoenix Technologies Limited | Network enhanced BIOS enabling remote management of a computer without a functioning operating system |
US7549042B2 (en) * | 2003-12-16 | 2009-06-16 | Microsoft Corporation | Applying custom software image updates to non-volatile storage in a failsafe manner |
KR100746012B1 (ko) * | 2005-11-07 | 2007-08-06 | 삼성전자주식회사 | 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 |
-
2008
- 2008-12-15 CN CN 200810239924 patent/CN101751273B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755628A (zh) * | 2004-09-30 | 2006-04-05 | 联想(北京)有限公司 | 操作系统启动过程中自动安装软件的方法 |
CN1622038A (zh) * | 2005-01-07 | 2005-06-01 | 北京北大方正电子有限公司 | 一种通过因特网对打印设备进行自动升级的方法 |
CN1916846A (zh) * | 2005-08-17 | 2007-02-21 | 联想(北京)有限公司 | 操作系统的自动部署方法 |
Cited By (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547400B (zh) * | 2010-12-08 | 2013-12-11 | 中国科学院声学研究所 | 一种嵌入式电视终端系统内容安全保护方法 |
CN102547400A (zh) * | 2010-12-08 | 2012-07-04 | 中国科学院声学研究所 | 一种嵌入式电视终端系统内容安全保护方法 |
CN102681858B (zh) * | 2011-03-09 | 2017-07-11 | 研祥智能科技股份有限公司 | VxWorks操作系统及配置其启动等待时间的方法和装置 |
CN102681858A (zh) * | 2011-03-09 | 2012-09-19 | 研祥智能科技股份有限公司 | VxWorks操作系统及配置其启动等待时间的方法和装置 |
CN102231857A (zh) * | 2011-07-01 | 2011-11-02 | 四川长虹电器股份有限公司 | 一种提高机顶盒开机速度的方法 |
CN102231857B (zh) * | 2011-07-01 | 2013-05-08 | 四川长虹电器股份有限公司 | 一种提高机顶盒开机速度的方法 |
CN102629206B (zh) * | 2012-02-29 | 2018-02-06 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式系统软件升级方法及系统 |
CN102629206A (zh) * | 2012-02-29 | 2012-08-08 | 深圳市赛格导航科技股份有限公司 | 一种嵌入式系统软件升级方法及系统 |
CN103365676A (zh) * | 2012-04-01 | 2013-10-23 | 中兴通讯股份有限公司 | 通信设备的软件升级方法及装置 |
CN103581748B (zh) * | 2012-08-03 | 2016-08-31 | 珠海扬智电子科技有限公司 | 快速开机方法、数据处理方法及机顶盒 |
CN103581748A (zh) * | 2012-08-03 | 2014-02-12 | 珠海扬智电子科技有限公司 | 快速开机方法、数据处理方法及机顶盒 |
CN103677884B (zh) * | 2012-09-21 | 2017-05-31 | 华为技术有限公司 | flash分区表文件生成及其数据升级方法、装置 |
CN103677884A (zh) * | 2012-09-21 | 2014-03-26 | 华为技术有限公司 | flash分区表文件生成及其数据升级方法、装置 |
CN103002343A (zh) * | 2012-12-28 | 2013-03-27 | 深圳Tcl新技术有限公司 | 电视快速开机的方法及系统 |
CN103226482A (zh) * | 2013-03-22 | 2013-07-31 | 深圳市九洲电器有限公司 | 一种机顶盒引导启动方法和装置 |
CN103226482B (zh) * | 2013-03-22 | 2016-08-24 | 深圳市九洲电器有限公司 | 一种机顶盒引导启动方法和装置 |
CN103455750B (zh) * | 2013-08-26 | 2016-08-10 | 北京视博数字电视科技有限公司 | 一种嵌入式设备的高安验证方法及装置 |
CN103455750A (zh) * | 2013-08-26 | 2013-12-18 | 北京视博数字电视科技有限公司 | 一种嵌入式设备的高安验证方法及装置 |
CN103686332B (zh) * | 2013-12-11 | 2016-11-30 | 深圳创维数字技术有限公司 | 一种启用安全功能的方法和终端 |
US9928077B2 (en) | 2013-12-30 | 2018-03-27 | Sanechips Technology Co., Ltd. | Chip starting method, multi-core processor chip and storage medium |
WO2015100878A1 (zh) * | 2013-12-30 | 2015-07-09 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及多核处理器芯片、存储介质 |
CN103761124B (zh) * | 2014-01-06 | 2017-03-01 | 武汉烽火富华电气有限责任公司 | 用于保护测控装置的嵌入式Linux系统启动方法 |
CN103761124A (zh) * | 2014-01-06 | 2014-04-30 | 武汉烽火富华电气有限责任公司 | 用于保护测控装置的嵌入式Linux系统启动方法 |
CN103929675A (zh) * | 2014-03-28 | 2014-07-16 | 深圳市九洲电器有限公司 | 一种机顶盒的通信实现方法及机顶盒 |
CN104035787A (zh) * | 2014-07-01 | 2014-09-10 | 深圳数字电视国家工程实验室股份有限公司 | 一种基于Andriod内核的强制访问控制方法及装置 |
WO2016090836A1 (zh) * | 2014-12-12 | 2016-06-16 | 中兴通讯股份有限公司 | 一种嵌入式系统的启动方法和装置 |
WO2016184180A1 (zh) * | 2015-10-30 | 2016-11-24 | 中兴通讯股份有限公司 | 一种系统安全启动方法及装置 |
CN105426749B (zh) * | 2015-11-03 | 2018-08-14 | 浪潮电子信息产业股份有限公司 | 一种基于签名机制控制elf文件运行的方法 |
CN105426749A (zh) * | 2015-11-03 | 2016-03-23 | 浪潮电子信息产业股份有限公司 | 一种基于签名机制控制elf文件运行的方法 |
CN105975862A (zh) * | 2015-11-25 | 2016-09-28 | 武汉安天信息技术有限责任公司 | 一种基于漏洞触发方式的漏洞检测方法及系统 |
CN107547918A (zh) * | 2016-06-28 | 2018-01-05 | 中兴通讯股份有限公司 | 一种交互式网络电视频道安全播放的方法、装置和系统 |
WO2018001193A1 (zh) * | 2016-06-28 | 2018-01-04 | 中兴通讯股份有限公司 | 一种交互式网络电视频道安全播放的方法、装置和系统 |
CN106878380A (zh) * | 2016-12-27 | 2017-06-20 | 北京五八信息技术有限公司 | 一种修复APP线上bug的方法、装置及终端 |
CN107479919A (zh) * | 2017-08-04 | 2017-12-15 | 昊翔电能运动科技(昆山)有限公司 | 遥控器及使用遥控器控制主机进入下载模式的方法 |
CN107656765A (zh) * | 2017-08-31 | 2018-02-02 | 深圳英飞拓科技股份有限公司 | 一种设备初始化的方法、系统及终端设备 |
CN109614798B (zh) * | 2017-09-30 | 2022-12-27 | 华为技术有限公司 | 安全启动方法、装置及终端设备 |
CN109614798A (zh) * | 2017-09-30 | 2019-04-12 | 华为技术有限公司 | 安全启动方法、装置及终端设备 |
CN107979774A (zh) * | 2017-12-12 | 2018-05-01 | 深圳创维数字技术有限公司 | 一种终端开机方法、终端以及存储介质 |
CN107979774B (zh) * | 2017-12-12 | 2020-12-08 | 深圳创维数字技术有限公司 | 一种终端开机方法、终端以及存储介质 |
CN107967193A (zh) * | 2017-12-25 | 2018-04-27 | 北京四达时代软件技术股份有限公司 | Boot启动方法和嵌入式设备 |
CN109189485A (zh) * | 2018-08-08 | 2019-01-11 | 烽火通信科技股份有限公司 | 一种嵌入式设备的系统启动管理、操作系统配置方法 |
CN109240721A (zh) * | 2018-08-24 | 2019-01-18 | 江苏恒宝智能系统技术有限公司 | 一种mcu在线升级的方法 |
CN109634669A (zh) * | 2018-11-20 | 2019-04-16 | 锐捷网络股份有限公司 | 嵌入式系统的启动方法及装置 |
CN109634669B (zh) * | 2018-11-20 | 2021-08-17 | 锐捷网络股份有限公司 | 嵌入式系统的启动方法及装置 |
CN109901847A (zh) * | 2019-01-22 | 2019-06-18 | 珠海亿智电子科技有限公司 | 一种基于存储卡的量产系统固件量产方法 |
CN109901847B (zh) * | 2019-01-22 | 2022-06-21 | 珠海亿智电子科技有限公司 | 一种基于存储卡的量产系统固件量产方法 |
CN112148100A (zh) * | 2019-06-26 | 2020-12-29 | 西安诺瓦星云科技股份有限公司 | 嵌入式设备控制方法、装置及系统 |
CN112148100B (zh) * | 2019-06-26 | 2022-08-16 | 西安诺瓦星云科技股份有限公司 | 嵌入式设备控制方法、装置及系统 |
CN110888667A (zh) * | 2019-10-30 | 2020-03-17 | 北京军懋国兴科技股份有限公司 | 一种arm芯片程序在线重构的方法 |
CN111522590B (zh) * | 2020-04-24 | 2023-06-20 | 中电科航空电子有限公司 | 提高VxWorks操作系统启动速度的方法及其应用 |
CN111522590A (zh) * | 2020-04-24 | 2020-08-11 | 中电科航空电子有限公司 | 提高VxWorks操作系统启动速度的方法及其应用 |
CN111596904A (zh) * | 2020-04-29 | 2020-08-28 | 赵新伟 | 一种基于嵌入式的c语言脚本编程方法 |
CN112231176B (zh) * | 2020-10-14 | 2023-03-03 | 天津津航计算技术研究所 | 一种简便的VxWorks操作系统系统日志记录方法 |
CN112231176A (zh) * | 2020-10-14 | 2021-01-15 | 天津津航计算技术研究所 | 一种简便的VxWorks操作系统系统日志记录方法 |
CN112181507A (zh) * | 2020-10-23 | 2021-01-05 | 北京安石科技有限公司 | 与操作系统融合的方法及系统 |
WO2022170904A1 (zh) * | 2021-02-10 | 2022-08-18 | 华为技术有限公司 | 开机方法及电子设备、可读存储介质、计算机程序产品 |
CN113590133A (zh) * | 2021-08-09 | 2021-11-02 | 咪咕文化科技有限公司 | 安卓系统注入检测方法、装置、设备以及计算机存储介质 |
CN116383091A (zh) * | 2023-05-29 | 2023-07-04 | 珠海妙存科技有限公司 | eMMC验证平台的启动方法、启动装置及存储介质 |
CN116383091B (zh) * | 2023-05-29 | 2023-08-29 | 珠海妙存科技有限公司 | eMMC验证平台的启动方法、启动装置及存储介质 |
CN116795741A (zh) * | 2023-08-28 | 2023-09-22 | 凡澈科技(武汉)有限公司 | 存储器数据防删除篡改方法及系统 |
CN116795741B (zh) * | 2023-08-28 | 2023-11-10 | 凡澈科技(武汉)有限公司 | 存储器数据防删除篡改方法及系统 |
CN117648701A (zh) * | 2024-01-29 | 2024-03-05 | 威胜信息技术股份有限公司 | 一种嵌入式操作系统安全启动机制实现方法及电子终端 |
CN117648701B (zh) * | 2024-01-29 | 2024-04-09 | 威胜信息技术股份有限公司 | 一种嵌入式操作系统安全启动机制实现方法及电子终端 |
Also Published As
Publication number | Publication date |
---|---|
CN101751273B (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101751273B (zh) | 用于嵌入式系统的安全引导装置及方法 | |
EP2549380B1 (en) | Information processing device, virtual machine generation method, and application software distribution system | |
US6892304B1 (en) | System and method for securely utilizing basic input and output system (BIOS) services | |
US20060064576A1 (en) | Boot systems and methods | |
CN101310472B (zh) | 用以支持获信任环境的计算机可读组件的自动更新 | |
EP2568408B1 (en) | Information processing device, information processing method, and program distribution system | |
US20050085222A1 (en) | Software updating process for mobile devices | |
US8762967B2 (en) | Program compiler, program installer, and program install method | |
CN112558980A (zh) | 多软件包管理方法及装置 | |
US7856637B1 (en) | Runtime emulating static thread local storage of portable executable software code | |
CN102449599A (zh) | 将java应用程序转换成用于云部署的虚拟服务器镜像的系统和方法 | |
CN105760201A (zh) | 一种嵌入式装置的启动方法和装置 | |
CN102141923B (zh) | 内存文件系统加载方法及装置 | |
CN110716845B (zh) | 一种Android系统的日志信息读取的方法 | |
US11281454B2 (en) | Microcode update system | |
CN112667246B (zh) | 应用功能扩展的方法、装置及电子设备 | |
CN101785239B (zh) | 基于密钥的隐藏分区系统 | |
CN116028267A (zh) | 双系统安全手机重置方法、装置、服务器及存储介质 | |
US11928214B2 (en) | Enabling SPI firmware updates at runtime | |
CN113032045B (zh) | 应用程序的启动方法以及相关装置、设备 | |
CN114443582B (zh) | 一种操作系统上文件系统挂载方法、装置、设备及介质 | |
CN112114824A (zh) | 一种基于Linux的软件部署方法及设备 | |
US7305660B2 (en) | Method to generate a formatted trace for an embedded device | |
CN118092989B (zh) | 一种存储器的固件升级方法、系统、设备及介质 | |
CN106970809A (zh) | 一种安全升级文件系统的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130424 Termination date: 20201215 |