系统启动校验方法、系统启动校验装置和终端的利记博彩app
【专利摘要】本发明提供了一种系统启动校验方法、一种系统启动校验装置和一种终端,其中所述系统启动校验方法包括:在终端的系统启动时,获取需加载的系统文件;从所述系统文件中解析出第一校验信息;将所述第一校验信息与预存在所述终端中的第二校验信息进行比较;在比较结果为不相同时,提示所述系统文件存在安全错误。通过本发明的技术方案,在系统启动时,对系统软硬件信息进行校验,可以提示用户系统文件是否被修改或错误,提高系统的安全性。
【专利说明】系统启动校验方法、系统启动校验装置和终端
【技术领域】
[0001]本发明涉及通信【技术领域】,具体而言,涉及一种系统启动校验方法、一种系统启动校验装置和一种终端。
【背景技术】
[0002]目前,Android终端对系统软件的安全保护主要有以下两种方式。
[0003]其一,通过Android系统提供的root权限对软件修改权限进行控制,防止系统软件被修改,实现保护系统软件的目的。但由于现在Android系统存在很多的漏洞,网络上存在很多破解root权限的工具,一旦用户掌握了破解root权限的方法,就可以随意修改系统软件,系统软件被修改就有可能会破坏系统的软件安全,导致系统出现各种问题,比如:无法开机、开机开到一半死机或某种功能异常等。
[0004]其二,通过某种技术实现防刷机,即只能通过厂家提供的特定工具才能进行更新软件。厂家的防刷机功能也不是很有效的方法,如果厂家特定的工具流失到用户手里,用户使用这个工具就可以对系统软件恶意修改;或者用户破解root权限后,可以使用Android系统自带的一些方法来修改软件,比如dd命令等,从而绕开厂家的特定工具修改系统软件,导致手机出现各种问题。
[0005]现有的两种方式对root权限都有一定的依赖性,用户破解root权限后就可以随意的修改系统软件,从而导致系统由于系统软件问题出现异常。
[0006]因此,以上两种方式均不能很好的保证系统的安全性,如何提高系统的安全性成为目前亟待解决的技术问题。
【发明内容】
[0007]本发明正是基于上述技术问题,提出了一种新的系统启动校验技术,在系统启动时,对系统软硬件信息进行校验,可以提示用户系统软件是否被修改或是否安全,以提高系统的安全性。
[0008]有鉴于此,根据本发明的一个方面,提供了一种系统启动校验方法,其特征在于,包括:在终端的系统启动时,获取需加载的系统文件;从所述系统文件中解析出第一校验信息;将所述第一校验信息与预存在所述终端中的第二校验信息进行比较;在比较结果为不相同时,提示所述系统文件存在安全错误。
[0009]在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的)中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的系统文件不予加载,以提高系统的安全性。
[0010]其中,第一校验信息是在制作系统软件时生成的。将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个软件校验信息,并把生成的校验信息作为一个文件头一起打包到系统软件中,下载系统软件时把这个校验头信息一起下载到终端中。
[0011]作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏的、私密的存储空间中的校验信息,可以在终端出厂时进行设置,将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个校验信息作为软件版本唯一性校验信息存储在终端内。
[0012]在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。
[0013]在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈文件均包括所述第一校验信息;在加载每一类型的系统文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系统文件。
[0014]通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不合法文件而导致系统异常。
[0015]在上述技术方案中,优选的,在加载所述弓I导加载文件之前,从所述弓I导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通过验证时,加载所述引导加载文件;在加载完所述引导加载文件之后且在加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议栈文件;在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统内核文件通过验证时,加载所述系统内核文件;在加载完所述系统内核文件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统数据文件。
[0016]通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法,则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全错误,使用户能够清楚终端不能正常开机的原因。
[0017]在上述技术方案中,优选的,在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前还包括:读取所述终端中的指定硬件模块的第一设备信息;判断所述第一设备信息与预存的第二设备信息是否相同;在判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所述系统内核文件。[0018]除了系统软件可被修改而弓I起系统安全问题之外,终端中的外设也可被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则终端在启动时,会提示用户硬件模块错误。
[0019]在上述技术方案中,优选的,在确定所述系统文件存在安全错误时,读取初始备份文件,使用所述初始备份文件完成系统启动过程;所述第一校验信息和所述第二校验信息均包括以下至少一种:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。
[0020]通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot loader (引导加载程序)、kernel (系统内核)、modem (通信)进行备份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成系统的正常启动过程,不影响终端的正常使用。
[0021]其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高系统文件的安全性。
[0022]根据本发明的另一方面,还提供了一种系统启动校验装置,包括:获取单元,用于在终端的系统启动时,获取需加载的系统文件;解析单元,用于从所述系统文件中解析出第一校验信息;验证单元,用于将所述第一校验信息与预存在所述终端中的第二校验信息进行比较;第一提示单元,连接至所述验证单元,用于在比较结果为不相同时,提示所述系统文件存在安全错误。
[0023]在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的)中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的系统文件不予加载,以提高系统的安全性。
[0024]其中,第一校验信息是在制作系统软件时生成的。将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个软件校验信息,并把生成的校验信息作为一个文件头一起打包到系统软件中,下载系统软件时把这个校验头信息一起下载到终端中。
[0025]作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏的、私密的存储空间中的校验信息,可以在终端出厂时进行设置,将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个校验信息作为软件版本唯一性校验信息存储在终端内。
[0026]在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。
[0027]在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈文件均包括所述第一校验信息;所述验证单元用于在加载每一类型的系统文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系统文件。
[0028]通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不合法文件而导致系统异常。
[0029]在上述技术方案中,优选的,所述验证单元包括:第一校验单元,用于在加载所述引导加载文件之前,从所述引导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通过验证时,加载所述弓I导加载文件;第二校验单元,用于在加载完所述弓I导加载文件之后且在加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议栈文件;第三校验单元,用于在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统内核文件通过验证时,加载所述系统内核文件;第四校验单元,用于在加载完所述系统内核文件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统数据文件。
[0030]通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法,则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全错误,使用户能够清楚终端不能正常开机的原因。
[0031]在上述技术方案中,优选的,还包括:读取单元,用于在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,读取所述终端中的指定硬件模块的第一设备信息;判断单元,用于判断所述第一设备信息与预存的第二设备信息是否相同;第二提示单元,用于在判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所述系统内核文件。
[0032]除了系统软件可被修改而弓I起系统安全问题之外,终端中的外设也可被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则终端在启动时,会提示用户硬件模块错误。
[0033]在上述技术方案中,优选的,所述第一校验信息和所述第二校验信息均包括以下至少一种:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识:所述系统启动校验装置还包括:系统恢复单元,用于在确定所述系统文件存在安全错误时,读取初始备份文件,使用所述初始备份文件完成系统启动过程。
[0034]通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot loader (引导加载程序)、kernel (系统内核)、modem (通信)进行备份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成系统的正常启动过程,不影响终端的正常使用。
[0035]其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高系统文件的安全性。
[0036]根据本发明的又一方面,还提供了一种终端,包括上述任一项技术方案中所述的系统启动校验装置。
[0037]通过上述技术方案,在终端内安装系统启动校验装直,在终端系统启动时,对系统软硬件信息进行校验,可以提示用户系统文件是否被修改或错误,提高系统的安全性。
【专利附图】
【附图说明】
[0038]图1示出了根据本发明的一个实施例的系统启动校验方法的流程图;
[0039]图2示出了根据本发明的一个实施例的系统文件的数据结构示意图;
[0040]图3示出了根据本发明的一个实施例的存储空间的结构示意图;
[0041]图4示出了根据本发明的一个实施例的系统开机安全启动的流程图;
[0042]图5示出了根据本发明的一个实施例的硬件信息校验的流程图;
[0043]图6示出了根据本发明的一个实施例的软件信息校验的流程图;
[0044]图7示出了根据本发明的一个实施例的系统启动校验装置的框图。
【具体实施方式】
[0045]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0046]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0047]图1示出了根据本发明的一个实施例的系统启动校验方法的流程图;[0048]如题I所示,根据本发明的一个实施例的系统启动校验方法,包括:步骤102,在终端的系统启动时,获取需加载的系统文件;步骤104,从所述系统文件中解析出第一校验信息;步骤106,将所述第一校验信息与预存在所述终端中的第二校验信息进行比较;步骤108,在比较结果为不相同时,提示所述系统文件存在安全错误。
[0049]在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的)中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的系统文件不予加载,以提高系统的安全性。
[0050]下面结合图2说明系统文件中第一校验信息的生成及系统文件的数据结构。
[0051]图2示出了根据本发明的一个实施例的系统文件的数据结构示意图。
[0052]如图2所示,终端以手机为例,手机系统文件主要包括Bootloader、Kernel、Modem、Systemdata,这四个文件每个文件中都包含软件校验信息202。其中,软件校验信息即为第一校验信息,第一校验信息是在制作系统软件版本时生成的。将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个软件校验信息,并把生成的校验信息作为一个文件头一起打包到手机系统软件中,下载系统软件时把这个校验头信息一起下载到终端中。例如:图2中所示的Bootloader文件,软件校验信息202为文件头,只有校验正确才执行Bootloader文件的执行代码204。
[0053]下面结合图3说明系统存储区中第二校验信息的存储位置。
[0054]图3示出了根据本发明的一个实施例的存储空间的结构示意图。
[0055]作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏的、私密的存储空间中的校验信息,即第二校验信息存储在图3中所示的隐藏分区302,可以在终端出厂时进行设置,将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个校验信息作为软件版本唯一性校验信息存储在终端内。
[0056]在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。
[0057]在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈文件均包括所述第一校验信息;在加载每一类型的系统文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系统文件。
[0058]通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不合法文件而导致系统异常。[0059]在上述技术方案中,优选的,在加载所述弓I导加载文件之前,从所述弓I导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通过验证时,加载所述引导加载文件;在加载完所述引导加载文件之后且在加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议栈文件;在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统内核文件通过验证时,加载所述系统内核文件;在加载完所述系统内核文件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统数据文件。
[0060]通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法,则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全错误,使用户能够清楚终端不能正常开机的原因。
[0061]在上述技术方案中,优选的,在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前还包括:读取所述终端中的指定硬件模块的第一设备信息;判断所述第一设备信息与预存的第二设备信息是否相同;在判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所述系统内核文件。
[0062]除了系统软件可被修改而弓I起系统安全问题之外,终端中的外设也可被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则终端在启动时,会提示用户硬件模块错误。
[0063]在上述技术方案中,优选的,在确定所述系统文件存在安全错误时,读取初始备份文件,使用所述初始备份文件完成系统启动过程;所述第一校验信息和所述第二校验信息均包括以下至少一种:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。
[0064]通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot loader (引导加载程序)、kernel (系统内核)、modem (通信)进行备份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成系统的正常启动过程,不影响终端的正常使用。
[0065]其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高系统文件的安全性。
[0066]以上结合图1至图3详细说明了本发明的一个实施例的系统启动校验方法,下面结合图4详细说明本发明的一个实施例的系统开机安全启动的流程。
[0067]图4示出了根据本发明的一个实施例的系统开机安全启动的流程图。
[0068]如图4所示,根据本发明的一个实施例的系统开机安全启动的步骤为:
[0069]步骤402:加载不可修改的主引导程序PBL (芯片内部的引导程序)文件。
[0070]步骤404:校验和加载引导程序QC_BootLoader(芯片厂商提供的引导程序)。解析引导程序QC_BootLoader的第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载引导程序QC_BootLoader并执行步骤406和步骤408 ;如果不相同,则不加载引导程序QC_BootLoader并执行步骤420。
[0071]步骤406:校验和加载引导程序0EM_BootLoader (终端生产商提供的)。解析加载引导程序0EM_BOOtLOader的第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载弓I导程序0EM_BootLoader并执行步骤410 ;如果不相同,则不加载弓I导程序0ΕΜ_BootLoader并执行步骤420。
[0072]步骤408:检验和加载通信协议栈Modem。解析通信协议栈Modem的第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载通信协议栈Modem ;如果不相同,则不加载通信协议栈Modem并执行步骤420。
[0073]步骤410:硬件信息检验。通过终端的处理器查询指定硬件模块的硬件信息作为第一设备信息与系统存储区内存储的第二设备信息比对,如果相同则执行步骤412,如果不相同则执行步骤418并停止加载系统内核文件。
[0074]步骤412:校验和加载操作系统内核主程序Kernel。解析操作系统内核主程序Kernel的第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载操作系统内核主程序Kernel并执行步骤414和步骤416 ;如果不相同,则不加载操作系统内核主程序Kernel并执行步骤420。
[0075]步骤414:校验和加载用户数据Userdate。解析用户数据Userdate的第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载用户数据Userdate ;如果不相同,则不加载用户数据Userdate并执行步骤420。
[0076]步骤416:校验和加载系统数据Systemdate。解析系统数据Systemdate的第一校验信息与系统存储区的第二校验信息比对,如果相同,则加载系统数据Systemdate ;如果不相同,则不加载系统数据Systemdate并执行步骤420。步骤416与步骤414同时进行。
[0077]步骤418:提示用户:硬件错误信息。当第一设备信息与第二设备信息不同时,硬件校验错误,提示用户硬件错误。
[0078]步骤420:提示用户:非授权软件。当第一校验信息和第二校验信息不同时,软件校验错误,提示用户软件未授权,软件错误。
[0079]下面结合图5和图6详细说明本发明的一个实施例的软硬件校验流程。
[0080]图5示出了根据本发明的一个实施例的硬件信息校验的流程图。
[0081]如图5所示,根据本发明的一个实施例的硬件信息校验的流程为:
[0082]步骤502:终端处理器给指定的主要硬件模块(例如显示屏、传感器、照相机)发送命令,查询器件厂商和型号,并将查询结果保存在数组A中(即将第一设备信息保存在数组A中)。
[0083]步骤504:读取系统的隐藏分区中硬件信息内容,并保存在数组B中(即将第二设备信息保存在数组B中)。
[0084]步骤506:比较数组A的内容和数组B中的内容,即比较第一设备信息和第二设备信息。
[0085]步骤508:判断数组A的内容和数组B的内容是否相等。如果相等则执行步骤510 ;如果不相等则执行步骤512。
[0086]步骤510:两个数组的内容相等,表明硬件设备全部校验正确,硬件信息正常。
[0087]步骤512:两个数组的内容不相等,表明硬件设备不是原厂硬件,提醒用户设备不是原厂设备。
[0088]图6示出了根据本发明的一个实施例的软件信息校验的流程图。
[0089]如图6所示,根据本发明的一个实施例的软件信息校验的流程为:
[0090]步骤602:根据约定的算法解析出软件包中的校验信息,并将解析出的校验信息保存在数组A中(即将第一校验信息保存在数组A中)。
[0091]步骤604:读取系统的隐藏分区中的软件校验信息,并将读取的校验信息保存在数组B中(即将第二校验信息保存在数组B中)。
[0092]步骤606:比较数组A的内容和数组B中的内容,即比较第一校验信息和第二校验信息。
[0093]步骤608:判断数组A的内容和数组B的内容是否相等。如果相等则执行步骤610 ;如果不相等则执行步骤612。
[0094]步骤610:两个数组的内容相等,表明系统文件未被修改,即软件是经过厂家授权的软件。
[0095]步骤610:两个数组的内容不相等,表明系统文件被修改,即软件未经过厂家授权,使用存在风险可能导致系统异常,此时执行步骤614。
[0096]步骤614:判断被修改的系统软件是否为Boot loader、kernel、modem。由于系统存储区中对 Boot loader、kernel、modem 进行了备份,因此如果是 Boot loader、kernel、modem,则执行步骤616,如果不是则执行步骤618。
[0097]步骤616:从备份分区中读取正确的Boot loader、kernel或modem系统文件并加载,系统恢复启动。
[0098]步骤618:如果被修改的系统软件不是Boot loader、kernel、modem模块,则提示错误,系统停止加载文件。
[0099]图7示出了根据本发明的一个实施例的系统启动校验装置的框图。
[0100]如图7所示,根据本发明的另一方面,还提供了一种系统启动校验装置700,包括:获取单元702,用于在终端的系统启动时,获取需加载的系统文件;解析单元704,用于从所述系统文件中解析出第一校验信息;验证单元706,用于将所述第一校验信息与预存在所述终端中的第二校验信息进行比较;第一提示单元708,连接至所述验证单元706,用于在比较结果为不相同时,提示所述系统文件存在安全错误。
[0101]在终端中预存符合本终端要求的系统文件的第二校验信息,在终端的系统被启动时,解析出需要加载的系统文件(该系统文件是用户下载的)中的第一校验信息与终端中预存的第二校验信息相比对,对需要加载的系统文件进行校验,可以校验系统文件是否被修改,对于被修改存在风险的系统文件不予加载,以提高系统的安全性。
[0102]其中,第一校验信息是在制作系统软件时生成的。将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个软件校验信息,并把生成的校验信息作为一个文件头一起打包到系统软件中,下载系统软件时把这个校验头信息一起下载到终端中。
[0103]作为一种较为优选的实施例,第二校验信息是预存在终端内一隐藏的、私密的存储空间中的校验信息,可以在终端出厂时进行设置,将编译服务器名称、编译服务器的IP地址、编译器的版本、终端的芯片名称、终端产品信息等信息按照约定的算法产生一个校验信息作为软件版本唯一性校验信息存储在终端内。
[0104]在系统启动时,对系统文件的合法性进行校验,解析出需要加载系统文件中的第一校验信息,与预存在终端内的第二校验信息相比对。如果系统文件未被修改,符合终端要求,则解析出的第一校验信息和第二校验信息相同,系统文件合法;如果系统文件被修改,且这个修改不是经过厂家授权的,则解析出的第一校验信息就会发生变化,因此第一校验信息和第二校验信息就会不同,此时,提示用户所加载的系统文件存在安全错误。
[0105]在上述技术方案中,优选的,所述系统文件包括以下至少一种:引导加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈文件均包括所述第一校验信息;所述验证单元706用于在加载每一类型的系统文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系统文件。
[0106]通过上述技术方案,在加载每个系统文件之前,需要先验证系统文件是否合法,对于合法的文件进行加载,对于不合法的文件不予加载,并提示用户所述文件存在安全错误。在加载文件之前对文件的合法性进行验证,且每个需要加载的系统文件中均包括所述第一校验信息,每个加载的系统文件都需要校验,可确保每个加载的文件都是合法文件,避免加载不合法文件而导致系统异常。
[0107]在上述技术方案中,优选的,所述验证单元706包括:第一校验单元7062,用于在加载所述引导加载文件之前,从所述引导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通过验证时,加载所述引导加载文件;第二校验单元7064,用于在加载完所述引导加载文件之后且在加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议栈文件;第三校验单元7066,用于在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统内核文件通过验证时,加载所述系统内核文件;第四校验单元7068,用于在加载完所述系统内核文件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统数据文件。
[0108]通过该技术方案,根据系统的启动顺序,对引导加载文件、通讯协议栈文件、系统内核文件、系统数据文件逐一进行验证和加载,加载系统文件之前需要解析文件的校验信息进行验证,如果前一个系统文件不合法,则后面的文件都不再进行加载。例如:在校验系统文件时,通讯协议栈文件的第一校验信息与第二校验信息不相同,则通讯协议栈文件、系统内核文件、系统数据文件都不再加载,直接提示用户通讯协议栈文件存在安全错误,使用户能够清楚终端不能正常开机的原因。
[0109]在上述技术方案中,优选的,还包括:读取单元710,用于在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,读取所述终端中的指定硬件模块的第一设备信息;判断单元712,用于判断所述第一设备信息与预存的第二设备信息是否相同;第二提示单元714,用于在判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所述系统内核文件。
[0110]除了系统软件可被修改而弓I起系统安全问题之外,终端中的外设也可被修改,导致与处理器芯片不匹配,从而出现不能正常工作或异常的问题。为了解决这个技术问题,终端在出厂时,将终端内指定硬件模块(外设,例如传感器、显示屏、照相机)的信息预存在终端中隐藏的、私密的存储空间中作为第二设备信息,在终端的系统启动时,系统查询终端内指定硬件模块的硬件信息作为第一设备信息,比对第一设备信息和第二设备信息,如果设备信息相同,则继续加载系统内核文件,如果设备信息不同,则说明硬件设备被替换,不是原厂家产品,提示硬件错误信息。另外,对终端硬件设备信息的校验还可帮助用户辨别终端的真伪。例如:在终端进行维修时,如果替换的指定硬件模块不是原厂家的硬件模块时,则终端在启动时,会提示用户硬件模块错误。
[0111]在上述技术方案中,优选的,所述第一校验信息和所述第二校验信息均包括以下至少一种:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识:所述系统启动校验装置还包括:系统恢复单元716,用于在确定所述系统文件存在安全错误时,读取初始备份文件,使用所述初始备份文件完成系统启动过程。
[0112]通过上述技术方案,在终端存储空间中划分备份区,对正确的Boot loader (引导加载程序)、kernel (系统内核)、modem (通信)进行备份,当系统启动时的校验结果显示系统文件存在安全错误,且存在安全错误的文件为Boot loader、kernel、modem时,可直接读取备份文件,完成系统的正常启动过程,不影响终端的正常使用。
[0113]其中,校验信息包含以下一种或其组合:编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。将校验信息与编译器及终端设备的信息相联系,使得校验信息具有唯一性,在系统启动时,对系统文件进行校验,比对校验信息是否一致,提高系统文件的安全性。
[0114]根据本发明的又一方面,还提供了一种终端,包括上述任一项技术方案中所述的系统启动校验装置。
[0115]通过上述技术方案,在终端内安装系统启动校验装直,在终端系统启动时,对系统软硬件信息进行校验,可以提示用户系统文件是否被修改或错误,提高系统的安全性。
[0116]以上结合附图详细说明了根据本发明的技术方案,在系统启动时,对系统软硬件信息进行校验,可以提示用户系统软硬件信息是否被修改,提高系统的安全性,减少因私自修改软件带来的系统异常。
[0117]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种系统启动校验方法,其特征在于,包括: 在终端的系统启动时,获取需加载的系统文件; 从所述系统文件中解析出第一校验信息; 将所述第一校验信息与预存在所述终端中的第二校验信息进行比较; 在比较结果为不相同时,提示所述系统文件存在安全错误。
2.根据权利要求1所述的系统启动校验方法,其特征在于,所述系统文件包括以下至少一种:引导加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述引导加载文件、所述系统内核文件、 所述系统数据文件和所述通信协议栈文件均包括所述第一校验信息; 在加载每一类型的系统文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系统文件。
3.根据权利要求2所述的系统启动校验方法,其特征在于,在加载所述引导加载文件之前,从所述引导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通过验证时,加载所述引导加载文件; 在加载完所述引导加载文件之后且在加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议栈文件; 在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统内核文件通过验证时,加载所述系统内核文件; 在加载完所述系统内核文件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统数据文件。
4.根据权利要求3所述的系统启动校验方法,其特征在于,在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前还包括: 读取所述终端中的指定硬件模块的第一设备信息; 判断所述第一设备信息与预存的第二设备信息是否相同; 在判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所述系统内核文件。
5.根据权利要求1至4中任一项所述的系统启动校验方法,其特征在于,在确定所述系统文件存在安全错误时,读取初始备份文件,使用所述初始备份文件完成系统启动过程; 所述第一校验信息和所述第二校验信息均包括以下至少一种: 编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识。
6.一种系统启动校验装置,其特征在于,包括: 获取单元,用于在终端的系统启动时,获取需加载的系统文件; 解析单元,用于从所述系统文件中解析出第一校验信息; 验证单元,用于将所述第一校验信息与预存在所述终端中的第二校验信息进行比较; 第一提示单元,连接至所述验证单元,用于在比较结果为不相同时,提示所述系统文件存在安全错误。
7.根据权利要求6所述的系统启动校验装置,其特征在于,所述系统文件包括以下至少一种:引导加载文件、系统内核文件、系统数据文件和通信协议栈文件,其中,所述引导加载文件、所述系统内核文件、所述系统数据文件和所述通信协议栈文件均包括所述第一校验信息; 所述验证单元用于在加载每一类型的系统文件之前,对相应类型的系统文件进行验证,根据验证结果确定是否加载所述相应类型的系统文件。
8.根据权利要求7所述的系统启动校验装置,其特征在于,所述验证单元包括: 第一校验单元,用于在加载所述引导加载文件之前,从所述引导加载文件中读取所述第一校验信息以供验证,在所述引导加载文件通过验证时,加载所述引导加载文件; 第二校验单元,用于在加载完所述引导加载文件之后且在加载所述通信协议栈文件之前,从所述通信协议栈文件中读取所述第一校验信息以供验证,在所述通信协议栈文件通过验证时,加载所述通信协议栈文件; 第三校验单元,用于在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,从所述系统内核文件中读取所述第一校验信息以供验证,在所述系统内核文件通过验证时,加载所述系统内核文件; 第四校验单元,用于在加载完所述系统内核文件之后且在加载所述系统数据文件之前,从所述系统数据文件中读取所述第一校验信息以供验证,在所述系统数据文件通过验证时,加载所述系统数据文件。`
9.根据权利要求8所述的系统启动校验装置,其特征在于,还包括: 读取单元,用于在加载完所述通信协议栈文件之后且在加载所述系统内核文件之前,读取所述终端中的指定硬件模块的第一设备信息; 判断单元,用于判断所述第一设备信息与预存的第二设备信息是否相同; 第二提示单元,用于在判断结果为不相同时,提示硬件错误信息,在判断结果为相同时,加载所述系统内核文件。
10.根据权利要求6至9中任一项所述的系统启动校验装置,其特征在于,所述第一校验信息和所述第二校验信息均包括以下至少一种: 编译服务器名称、编译服务器IP地址、编译器的版本、所述终端的处理器标识、所述终端的标识: 所述系统启动校验装置还包括:系统恢复单元,用于在确定所述系统文件存在安全错误时,读取初始备份文件,使用所述初始备份文件完成系统启动过程。
11.一种终端,其特征在于,包括如权利要求书6至10中任一项所述的系统启动校验装置。
【文档编号】G06F21/57GK103729597SQ201410019049
【公开日】2014年4月16日 申请日期:2014年1月16日 优先权日:2014年1月16日
【发明者】黄捷峰, 梅苏文, 朱宗伟 申请人:宇龙计算机通信科技(深圳)有限公司