智能终端的修复方法、智能终端以及服务器
技术领域
本发明涉及移动终端技术领域,特别是涉及一种智能终端的修复方法、智能终端以及服务器。
背景技术
随着通信技术的飞速发展和智能电子产品的普及,越来越多的智能终端或移动终端成为人们生活中不可或缺的一部分,如智能手机、智能电视、平板电脑等。并且在智能终端普及的同时,用户对智能终端所具备的功能的种类和性能要求也越来越高,如音频、视频功能、拍照功能都已经成为智能终端的必备功能。
但是在伴随着功能的逐渐丰富,用户可能会存在自行修改智能终端的存储芯片内的系统软件,造成一些不可察觉的错误,或者由于智能终端在长期应用中,系统软件可能自动的出现了少许bit级别的错误,如少量的bit从0变成了1或者从1变成了0等。虽然这些错误很小,但是一旦发生以后,很有可能会使智能终端出现工作不正常的情况,例如,导致系统无法升级等情况,影响智能终端的正常使用。
发明内容
本发明主要解决的技术问题是提供一种智能终端的修复方法、智能终端以及服务器,能够有效及时的对智能终端出现的错误进行及时自动修复。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种智能终端的修复方法,包括:所述智能终端在第二存储分区中获取所述系统固件的修复程序的第二分块;计算所述第二分块的实际校验码,并向服务器发送获取所述第二分块的参考校验码的第三请求;接收所述服务器返回的所述第二分块的参考校验码,并判断所述第二分块的参考校验码是否与所述第二分块的实际校验码相匹配;如果所述第二分块的参考校验码与所述第二分块的实际校验码相匹配,所述智能终端在第一存储分区中获取系统固件的第一分块;计算所述第一分块的实际校验码,并向服务器发送获取所述第一分块的参考校验码的第一请求;接收所述服务器返回的所述第一分块的参考校验码,并判断所述第一分块的参考校验码是否与对应的所述第一分块的实际校验码相匹配,其中,所述智能终端生成所述第一分块的实际校验码与所述服务器生成所述第一分块的参考校验码的算法相同;如果所述第一分块的参考校验码与对应的所述实际校验码不匹配,向所述服务器发送获取所述第一分块的第二请求;接收所述服务器返回的所述第一分块,并将所述第一分块更新到所述存储分区的对应存储位置中。
其中,所述智能终端在第二存储分区中获取所述系统固件的修复程序的第二分块的步骤包括:智能终端从其系统文件中获取修复程序的存储地址列表,并根据所述存储地址列表从所述第二存储分区中获取所述修复程序的第二分块。其中,所述第一分块以及所述第二分块的大小与其存储的存储信息的长度相匹配。
其中,所述接收所述服务器返回的所述第一分块,并将所述第一分块更新到所述存储分区的对应存储位置中的步骤具体包括:通过所述系统固件的修复程序将所述第一分块更新到所述系统固件中。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种智能终端的修复方法,所述修复方法包括:服务器接收所述智能终端发送的获取第二分块的参考校验码的第三请求,其中,所述第二分块为系统固件的修复程序的分块,所述第三请求中包括所述第二分块在所述修复程序中的第二位置信息;
根据所述第二位置信息确定对应的预存第二分块,并获取所述预存第二分块的参考校验码,向所述智能终端发送所述预存第二分块的参考校验码,以使所述智能终端判断所述参考校验码是否与所述智能终端计算得到的所述第二分块的实际校验码相匹配,并在匹配时执行如下步骤:服务器接收所述智能终端发送的获取系统固件的第一分块的参考校验码的第一请求;其中,所述第一请求中包含所述第一分块在所述系统固件中的第一位置信息;根据所述第一位置信息确定对应的预存第一分块,并获取所述预存第一分块的参考校验码,向所述智能终端发送所述参考校验码;接收所述智能终端发送的获取所述第一分块的第二请求,其中,所述第二请求是所述智能终端确定本地存储的第一分块的实际校验码与所述参考校验码不匹配时向所述服务器发送的,所述第二请求包括第一分块在所述系统固件中的第一位置信息;向所述智能终端发送所述第一位置地址对应的所述预存第一分块。
其中,所述服务器接收所述智能终端发送的获取系统固件的第一分块的参考校验码的第一请求的步骤之前还包括如下步骤:所述服务器将所述系统固件及其修复程序分块,并计算每个所述分块的校验码;保存所述每个分块及其位置信息,并将每个分块的校验码保存作为对应分块的参考校验码。
为解决上述技术问题,本发明采用的再一个技术方案是:提供一种智能终端,所述智能终端包括第二分块确定模块、第三请求发送模块、第一分块获取模块,第一请求发送模块、判断模块、第二请求发送模块以及更新模块,所述第二分块确定模块用于在第二存储分区中获取系统固件的修复程序的第二分块;所述第二请求发送模块用于计算所述第二分块的实际校验码,并向服务器发送获取所述第二分块的参考验证码的第三请求;所述第一分块获取模块用于在第一存储分区中获取系统固件的第一分块;所述第一请求发送模块用于计算所述第一分块的实际校验码,并向服务器发送获取所述第一分块的参考校验码的第一请求;所述判断模块用于接收所述服务器返回的所述第一分块的参考校验码,并判断所述第一分块的参考校验码是否与对应的所述第一分块的实际校验码相匹配,其中,所述智能终端生成所述第一分块的实际校验码与所述服务器生成所述第一分块的参考校验码的算法相同;所述判断模块还用于接收所述服务器的所述第二分块的参考校验码,并判断所述第二分块的参考校验码是否与所述第二分块的实际校验码相匹配;第二请求发送模块用于在所述第一分块的参考校验码与对应的所述实际校验码不匹配时,向所述服务器发送获取所述第一分块的第二请求;所述更新模块用于接收所述服务器返回的所述第一分块,并将所述第一分块更新到所述存储分区的对应存储位置中。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种服务器,所述服务器包括接收模块以及发送模块,所述接收模块用于接收智能终端发送的获取系统固件的第一分块的参考校验码的第一请求;其中,所述第一请求中包含所述第一分块在所述系统固件中的第一位置信息,还用于接收所述服务器发送的获取所述第二分块的参考校验码的第三请求,所述第三请求中包括所述第二分块在所述系统固件的第二位置信息;所述发送模块用于根据所述第一位置信息确定对应的预存第一分块,并获取所述预存第一分块的参考校验码,向所述智能终端发送所述参考校验码,还用于根据所述第二位置信息确定对应的所述第二分块,并获取所述第二分块的参考校验码;所述接收模块还用于接收所述智能终端发送的获取所述第一分块的第二请求,其中,所述第二请求是所述智能终端确定本地存储的第一分块的实际校验码与所述参考校验码不匹配时向所述服务器发送的,其中,所述第二请求包括第一分块在所述系统固件中的第一位置信息,所述智能终端生成所述第一分块的实际校验码与所述服务器生成所述第一分块的参考校验码的算法相同;所述发送模块还用于向所述智能终端发送所述第一位置地址对应的所述预存第一分块。
本发明的有益效果是:区别于现有技术的情况,本发明的智能终端在出现错误时,首先在第一存储分区中获取系统固件的第一分块,计算第一分块的实际校验码,并向服务器发送获取所述第一分块的参考校验码的第一请求,并在接收到服务器返回的第一分块的参考校验码后,判断第一分块的参考校验码是否与对应的第一分块的实际校验码相匹配,在确定第一分块的参考校验码与对应的实际校验码不匹配,即该第一分块出现错误时,向服务器发送获取所述第一分块的第二请求,并从服务器接收其返回的第一分块后,将第一分块更新到第一存储分区的对应存储位置中,以起到修复第一分块错误的作用。通过上述方式,不仅能够实现智能终端在出现错误时的自动修复,而且,通过将系统固件进行划分,分别对每一个小分块进行检测修复的方式避免了对整个系统固件进行下载修复所带来的时间浪费和资源浪费,为用户带来方便。
附图说明
图1是本发明智能终端的修复系统一实施方式的结构示意图;
图2是本发明智能终端的修复方法一实施方式的流程示意图;
图3是本发明智能终端修复方法另一实施方式的流程示意图;
图4是本发明智能终端修复方法再一实施方式的流程示意图;
图5是本发明智能终端修复方法又一实施方式的流程示意图;
图6是本发明智能终端一实施方式的结构示意图;
图7是本发明智能终端另一实施方式的结构示意图;
图8是本发明服务器一实施方式的结构示意图;
图9是本发明智能终端另一实施方式的结构示意图;
图10是本发明服务器另一实施方式的结构示意图。
具体实施方式
参阅图1,图1是本发明智能终端的修复系统一实施方式的结构示意图。如图1所示,本实施方式的修复系统包括待检测修复的智能终端101以及服务器102。其中,该智能终端101与服务器102通过网络连接。该智能终端101包括智能手机、平板电脑以及其他智能终端设备,该服务器102为网络服务器。
在实际应用中,智能手机101的一些系统固件一般是从服务区器102的存储器中直接下载获取。为了使智能终端101的系统固件出现问题时,方便修复,本实施方式中,服务器102在发布系统固件之前,先将系统固件进行分块,且每一个分块的大小均与其存储的数据长度相匹配,在一个优选的实施方式中,每一个分块的大小均相等,如128kB,以方便统一管理。且为了实现智能终端的自动修复,该系统固件还包括修复该系统固件上述问题出现时的修复程序,由于修复程序的长度可能大于一个分块的大小,因此,服务器102在将系统固件进行分块时,也将该修复程序进行分块。
服务器102在为系统固件及其修复程序进行分块后,为了方便智能终端101尽快找出出现问题的分块,服务器102对包括存储修复程序的每一个分块进行逻辑编号即确定其位置信息,且计算每一块分块的校验码,服务器102进一步地保存每个分块及其位置信息,并将每个分块的校验码进行保存作为对应分块的参考校验码。需要说明的是,智能终端101在下载该系统固件时,每个分块的逻辑编号即位置信息不会发生变化,与服务器102所存储的位置信息一一对应。
服务器102在完成对系统固件的分块后,将其发布到互联网上,智能终端101从该服务器102下载需要的系统固件,并将该系统固件存储在其第一存储分区,将其修复程序存储在第二存储分区。
当智能终端101出现与该修复程序对应的故障时,智能终端101首先从其第一存储分区中获取系统固件的第一分块,其中,该第一分块为系统固件分块中的任一块。由于如果该第一分块的程序出现错误,其校验码将会发生改变,为了确定是否为该第一分块的程序出现错误,智能终端根据预定算法计算该第一分块的实际校验码,并向服务器102发送获取服务器102存储的发布该系统固件前该第一分块对应的参考校验码的第一请求,其中,该第一请求中包括该第一分块在系统固件的第一位置信息。
对应的,服务器102接收该第一请求,并根据该第一位置信息确定对应的预存第一分块,获取该预存第一分块的参考校验码后,将该参考校验码发送至智能终端101。
智能终端101接收服务器102返回的参考校验码,并将该参考校验码与计算的实际校验码进行比对,判断该第一分块的实际校验码与参考校验码是否匹配,如果匹配,则该第一分块所存储的程序并未出现错误,智能终端101进一步的对后续的分块进行判断。如果第一分块的参考校验码与实际校验码不相匹配,则智能终端101向服务器102发送获取所述第一分块的第二请求,具体的为下载该第一分块存储程序或数据的请求。
对应地,服务器102接收该第二请求,并向该智能终端101发送第一分块对应的数据或程序,智能终端101接收该第一分块对应的数据或程序,并将该对应的数据或程序更新到所述第一存储分区的对应存储位置中,并且通过该系统固定的修复程序对整体程序进行修复,使更新后的系统固件正常工作。
具体地,参阅图2,图2是本发明智能终端的修复方法一实施方式的流程示意图。其中,本实施方式的修复方法应用于图1所述的系统。本修复方法包括如下步骤:
201:智能终端在第一存储分区中获取系统固件的第一分块。
由于智能终端从服务器下载的系统固件虽然可能有很多分块,但是一般而言,这多个分块构成的是一个完整的系统固件,在出现修复程序能够修复的错误时,为了避免将整个程序整体进行检测带来的时间浪费和资源浪费,智能终端对每一个分块单独进行检测。
具体地,智能终端在出现与系统固件的修复程序对应的错误时,首先按照预定顺序,如从第一个分块开始对每一个分块进行判断,确定是否为该分块出现问题,本实施方式中将被检测的分块称为第一分块,因而,智能终端首先从其存储该系统固件的第一存储分区中获取第一分块。
202:计算所述第一分块的实际校验码,并向服务器发送获取所述第一分块的参考校验码的第一请求。
由于系统固件的每一个分块的在系统的位置信息在服务器进行划分时就已经确定,且每一个分块都有标志其原始数据或程序未被更改的校验码,且也是在生成该分块时已经形成。因此,在本实施方式中,判断该校验码是否被改变为智能终端判断该第一分块是否出现错误的依据。具体地,智能终端首先根据第一分块现有是数据信息计算第一分块的实际校验码,为了确保校验码的一致性,智能终端生成实际校验码与服务器生成该第一分块的参考校验码的算法相同。例如可通过md5算法生成,在此不做限定。并在计算得到该第一分块的实际校验码的同时或之后,向服务器发送获取该第一分块参考校验码的第一请求。其中,该第一请求中包括该第一分块位于该系统固件中的第一位置信息。
服务器在接收到第一请求后,根据该第一信息确定对应的预存第一分块,并获取预存第一分块的参考校验码后,向所述智能终端发送参考校验码。
203:接收所述服务器返回的所述第一分块的参考校验码,并判断所述第一分块的参考校验码是否与对应的所述第一分块的实际校验码相匹配。
智能终端接收服务器返回的该第一分块对应的数据或程序的参考校验码,并将该参考校验码与计算得到的实际校验码进行比对,确定该实际校验码与该参考校验码是否相匹配。
如果该实际校验码与该参考校验码相匹配,则当前检测的第一分块并没有出现错误,智能终端进一步地按照预定顺序对第一分块后续的分块按照上述方式继续进行检测判断。
204:如果所述第一分块的参考校验码与对应的所述实际校验码不匹配,向所述服务器发送获取所述第一分块的第二请求。
如果该第一分块的参考校验码与实际校验码不相匹配,则说明该第一分块存储的数据或程序出现了错误,为了修复该系统固件,智能终端向服务器发送获取该第一分块的第二请求,即向服务器发送获取该第一分块的数据或程序的第二请求。其中,该第二请求中包括上述第一分块在系统固件中的第一位置信息。
服务器在接收到该第二请求后,向所述智能终端发送所述第一位置地址对应的所述预存第一分块。
205:接收所述服务器返回的所述第一分块,并将所述第一分块更新到所述第一存储分区的对应存储位置中。
智能终端接收该第一分块,并将接收到的第一分块的数据或程序更新到第一分块在该第一存储分区对应的存储位置中,即与该第一位置信息对应的存储位置中,并通过修复程序对该系统固件进行修复,使更新后的第一分块与其他分块衔接,以使该系统固件能够正常工作。
在修复完成后,智能终端再次检测之前存在的错误是否已经修复,如果修复了,则停止对后续分块的检测,如果上述错误仍存在,则继续对后续的每一个分块进行检测,即对每一个参考校验码与实际校验码不相匹配的第一分块均进行修复,直至该错误完全被修复。
由于该修复程序也是以至少一个小分块的形式存储在智能终端的第二存储分区中,其中,该第一存储分区与第二存储分区是相对的概念,二者也可以合并在一起。因此,智能终端在对其每一个分块进行检测时,能够检测出修复程序是否出错。但是由于修复程序一旦出现错误,即使第一分块中出现一个细小的错误,系统固件也是不能完成修复的,因此,为了节省检测时间以及效率,智能终端在按照预定顺序对系统固件的每一个分块进行检测前,首先对存储修复程序的第二分块进行检测。如图3所示,图3是本发明智能终端的修复方法另一个实施方式的流程示意图。本实施方式的修复方法包括如下步骤:
301:智能终端在第二存储分区中获取所述系统固件的修复程序的第二分块。
为了方便智能终端对存储有修复程序的第二分块的快速查找,以减少检测时间,服务器在对修复程序进行分块完成后,将存储修复程序的第二分块的第二位置信息形成存储地址列表,并伴随该系统固定一起发布。智能终端可直接根据该存储地址列表对每一个第二分块按照预定顺序分别进行获取。
302:计算所述第二分块的实际校验码,并向服务器发送获取所述第二分块的参考校验码的第三请求。
与第一分块存储的程序或数据类似,智能终端通过与服务器生成第二分块参考校验码相同的算法如md5算法计算该第二分块对应的修复程序的实际校验码,并在生产该实际校验码的同时或之后向服务器发送获取该第二分块参考校验码的第三请求,其中,该第三请求中包括该第二分块在系统固件的第二位置信息,也可以理解为修复程序的第二位置信息。
对应地,服务器接收该第三请求,并根据该第二位置信息确定对应的预存第二分块,并在获取该预存第二分块的参考校验码后,向智能终端发送该第二分块的参考校验码。
303:接收所述服务器返回的所述第二分块的参考校验码,并判断所述第二分块的参考校验码是否与所述第二分块的实际校验码相匹配。
智能终端接收到该存储修复程序的第二分块的参考校验码后,为了确定该第二分块存储的修复程序是否出错,将该参考校验码与实际校验码进行比对,确定该第二分块的参考校验码是否与实际校验码相匹配。
如果参考校验码与实际校验码不相匹配,则说明该修复程序出现错误,即现有的修复程序已经不能完成对系统固件的修复,此时智能终端可以通过其显示屏向用户显示该系统固件出现错误,以提醒用户是否重新下载完整的系统固件。
304:如果所述第二分块的参考校验码与所述第二分块的实际校验码相匹配,在第一存储分区中获取系统固件的第一分块。
如果第二分块的参考校验码与实际校验码相匹配,则按照上述存储地址列表对每一个存储修复程序的第二分块继续进行检测,直至确定所有的第二分块的参考校验码与实际校验码相匹配,即修复程序本身没有出错为止。
如果所有的第二分块均未出错,则继续对存储系统固件数据或程序的第一分块进行检测,由于步骤305~308与步骤202~205相同,具体请参阅图2中的详细文字描述,在此不再赘述。
区别于现有技术,本实施方式的智能终端在出现错误时,首先在第一存储分区中获取系统固件的第一分块,计算第一分块的实际校验码,并向服务器发送获取所述第一分块的参考校验码的第一请求,并在接收到服务器返回的第一分块的参考校验码后,判断第一分块的参考校验码是否与对应的第一分块的实际校验码相匹配,在确定第一分块的参考校验码与对应的实际校验码不匹配,即该第一分块出现错误时,向服务器发送获取所述第一分块的第二请求,并从服务器接收其返回的第一分块后,将第一分块更新到第一存储分区的对应存储位置中,以起到修复第一分块错误的作用。通过上述方式,不仅能够实现智能终端在出现错误时的自动修复,而且,通过将系统固件进行划分,分别对每一个小分块进行检测修复的方式避免了对整个系统固件进行下载修复所带来的时间浪费和资源浪费,为用户带来方便。
参阅图4,图4是本发明智能终端的修复方法再一实施方式的结构示意图。其中,图4所述的方法也应用于图1所示的系统。本实施方式的修复方法包括如下步骤:
401:服务器接收所述智能终端发送的获取系统固件的第一分块的参考校验码的第一请求;其中,所述第一请求中包含所述第一分块在所述系统固件中的第一位置信息。
为了方便智能终端的系统固件出现问题时及时修复,服务器在发布系统固件之前,先将系统固件及其修复程序均进行分块,且每一个分块的大小均与其存储的数据长度相匹配,在一个优选的实施方式中,每一个分块的大小均相等,如128kB,以方便统一管理。
完成分块后,为了方便智能终端尽快找出出现问题的分块,服务器对包括存储修复程序的每一个分块进行逻辑编号即确定其位置信息,且计算并存储每一块分块的校验码,作为该分块的参考校验码。需要说明的是,智能终端在下载该系统固件时,每个分块的逻辑编号即位置信息不会发生变化,与服务器所存储的位置信息一一对应。
服务器在完成对系统固件的分块后,将其发布到互联网上,智能终端从该服务器下载需要的系统固件,并将该系统固件存储在其第一存储分区中,将其修复程序存储在第二存储分区。
当智能终端出现与该修复程序对应的故障时,智能终端首先从其第一存储分区中获取系统固件的第一分块,其中,该第一分块为系统固件分块中的任一块。由于如果该第一分块的程序出现错误,其校验码将会发生改变,为了确定是否为该第一分块的程序出现错误,智能终端根据预定算法计算该第一分块的实际校验码,并向服务器发送获取服务器存储的发布该系统固件前该第一分块对应的参考校验码的第一请求,其中,该第一请求中包括该第一分块在系统固件的第一位置信息。
其中,为了确保校验码的一致性,智能终端生成实际校验码与服务器生成该第一分块的参考校验码的算法相同。
对应的,服务器接收该第一请求。
402:根据所述第一位置信息确定对应的预存第一分块,并获取所述预存第一分块的参考校验码,向所述智能终端发送所述参考校验码。
对应地,智能终端接收服务器返回的该第一分块对应的数据或程序的参考校验码,并将该参考校验码与计算得到的实际校验码进行比对,确定该实际校验码与该参考校验码是否相匹配。
如果该实际校验码与该参考校验码相匹配,则当前检测的第一分块并没有出现错误,智能终端进一步地按照预定顺序对第一分块后续的分块按照上述方式继续进行检测判断。
如果该第一分块的参考校验码与实际校验码不相匹配,则说明该第一分块存储的数据或程序出现了错误,为了修复该系统固件,智能终端向服务器发送获取该第一分块的第二请求,即向服务器发送获取该第一分块的数据或程序的第二请求。
服务器接收所述智能终端发送的获取所述第一分块的第二请求,所述第二请求包括第一分块在所述系统固件中的第一位置信息。
403:向所述智能终端发送所述第一位置地址对应的所述预存第一分块。
对应地,智能终端接收该第一分块,并将接收到的第一分块的数据或程序更新到第一分块在该第一存储分区对应的存储位置中,即与该第一位置信息对应的存储位置中,并通过修复程序对该系统固件进行修复,使更新后的第一分块与其他分块衔接,以使该系统固件能够正常工作。
在修复完成后,智能终端再次检测之前存在的错误是否已经修复,如果修复了,则停止对后续分块的检测,如果上述错误仍存在,则继续对后续的每一个分块进行检测,即对每一个参考校验码与实际校验码不相匹配的第一分块均进行修复,直至该错误完全被修复。
由于该修复程序也是以至少一个小分块的形式存储在智能终端的第二存储分区中,其中,该第一存储分区与第二存储分区是相对的概念,二者也可以合并在一起。因此,智能终端在对其每一个分块进行检测时,能够检测出修复程序是否出错。但是由于修复程序一旦出现错误,即使第一分块中出现一个细小的错误,系统固件也是不能完成修复的,因此,为了节省检测时间以及效率,服务器在获取第一请求的步骤之前还包括如下步骤:
501:服务器接收所述智能终端发送的获取第二分块的参考校验码的第三请求,其中,所述第二分块为所述系统固件的修复程序的分块,所述第二请求中包括所述第二分块在所述修复程序中的第二位置信息。
具体地,服务器在对修复程序进行分块完成后,将存储修复程序的第二分块的第二位置信息形成存储地址列表,并伴随该系统固定一起发布。智能终端可直接根据该存储地址列表对每一个第二分块按照预定顺序分别进行获取,通过与服务器生成第二分块参考校验码相同的算法如md5算法计算该第二分块对应的修复程序的实际校验码,并在生成该第二分块实际校验码的同时或之后向服务器发送获取该第二分块参考校验码的第三请求。
对应地,服务器接收该第三请求。
502:根据所述第二位置信息确定对应的预存第二分块,并获取所述预存第二分块的参考校验码,向所述智能终端发送所述预存第二分块的参考校验码,以使所述智能终端判断所述参考校验码是否与所述智能终端计算得到的所述第二分块的实际校验码相匹配,并在匹配时发送所述第一请求。
具体地,智能终端对上述第二分块的参考校验码与实际校验码进行比对判断后,如果参考校验码与实际校验码不相匹配,则说明该修复程序出现错误,即现有的修复程序已经不能完成对系统固件的修复,此时智能终端可以通过其显示屏向用户显示该系统固件出现错误,以提醒用户是否重新下载完整的系统固件。
如果第二分块的参考校验码与实际校验码相匹配,则智能终端按照上述存储地址列表对每一个存储修复程序的第二分块继续进行检测,直至确定所有的第二分块的参考校验码与实际校验码相匹配,即修复程序本身没有出错为止。
如果所有的第二分块均未出错,则继续对存储系统固件数据或程序的第一分块进行检测,并向服务器发送获取该第一分块参考校验码的第一请求,继续步骤503~505的步骤,由于步骤503~505与步骤401~403相同,具体请参阅图4及其相关文字描述,再此不再赘述。
区别于现有技术,本实施方式的服务器接收所述智能终端发送的获取系统固件的第一分块的参考校验码的第一请求,根据所述第一位置信息确定对应的预存第一分块,并获取所述预存第一分块的参考校验码,向所述智能终端发送所述参考校验码,并在智能终端确定第一分块的参考校验码与实际校验码不相匹配时,向所述智能终端发送所述第一位置地址对应的所述预存第一分块。通过上述方式,不仅能够实现智能终端在出现错误时的自动修复,而且,通过将系统固件进行划分,分别对每一个小分块进行检测修复的方式避免了对整个系统固件进行下载修复所带来的时间浪费和资源浪费,为用户带来方便。
参阅图6,图6是本发明智能终端一实施方式的结构示意图。如图6所示,本实施方式的智能终端包括第一分块获取模块601,第一请求发送模块602、判断模块603、第二请求发送模块604以及更新模块605,
第一分块获取模块601用于在第一存储分区中获取系统固件的第一分块。
智能终端在系统固件出现错误时,为了避免将整个程序整体进行检测带来的时间浪费和资源浪费,智能终端对每一个分块单独进行检测。具体地,第一分块获取模块601按照预定顺序,如从第一个分块开始对每一个分块进行判断,首先从其存储该系统固件的第一存储分区中获取第一分块。
第一请求发送模块602用于计算所述第一分块的实际校验码,并向服务器发送获取所述第一分块的参考校验码的第一请求。
由于系统固件的每一个分块的在系统的位置信息在服务器进行划分时就已经确定,且每一个分块都有标志其原始数据或程序未被更改的校验码,且也是在生成该分块时已经形成。因此,在本实施方式中,判断该校验码是否被改变为智能终端判断该第一分块是否出现错误的依据。
具体地,第一请求发送模块602首先计算第一分块的实际校验码,为了确保校验码的一致性,生成实际校验码与服务器生成该第一分块的参考校验码的算法相同。并在计算得到该第一分块的实际校验码的同时或之后,向服务器发送获取该第一分块参考校验码的第一请求。其中,该第一请求中包括该第一分块位于该系统固件中的第一位置信息。
服务器在接收到第一请求后,根据该第一信息确定对应的预存第一分块,并获取预存第一分块的参考校验码后,向所述智能终端发送参考校验码。
判断模块603用于接收所述服务器返回的所述第一分块的参考校验码,并判断所述第一分块的参考校验码是否与对应的所述第一分块的实际校验码相匹配。
如果该实际校验码与该参考校验码相匹配,则当前检测的第一分块并没有出现错误,进一步地按照预定顺序对第一分块后续的分块按照上述方式继续进行检测判断。
第二请求发送模块604用于在所述第一分块的参考校验码与对应的所述实际校验码不匹配时,向所述服务器发送获取所述第一分块的第二请求。
如果该第一分块的参考校验码与实际校验码不相匹配,则说明该第一分块存储的数据或程序出现了错误,为了修复该系统固件,第二请求发送模块604向服务器发送获取该第一分块的第二请求,即向服务器发送获取该第一分块的数据或程序的第二请求。其中,该第二请求中包括上述第一分块在系统固件中的第一位置信息。
更新模块605用于接收所述服务器返回的所述第一分块,并将所述第一分块更新到所述存储分区的对应存储位置中。
服务器在接收到该第二请求后,向所述智能终端发送所述第一位置地址对应的所述预存第一分块。更新模块605接收该第一分块,并将接收到的第一分块的数据或程序更新到第一分块在该第一存储分区对应的存储位置中,即与该第一位置信息对应的存储位置中,并通过修复程序对该系统固件进行修复,使更新后的第一分块与其他分块衔接,以使该系统固件能够正常工作。
在修复完成后,智能终端再次检测之前存在的错误是否已经修复,如果修复了,则停止对后续分块的检测,如果上述错误仍存在,则继续对后续的每一个分块进行检测,即对每一个参考校验码与实际校验码不相匹配的第一分块均进行修复,直至该错误完全被修复。
在另一个实施方式中,为了节省检测时间以及效率,智能终端在按照预定顺序对系统固件的每一个分块进行检测前,首先对存储修复程序的第二分块进行检测。如图7所示,本实施方式的智能终端还包括第二分块确定模块706、第三请求发送模块707。
第二分块确定模块706用于在第二存储分区中获取所述系统固件的修复程序的第二分块。具体地,第二分块确定模块706可按照服务器预先形成的存储地址列表对每一个第二分块按照预定顺序分别进行获取。
第三请求发送模块707用于计算所述第二分块的实际校验码,并向服务器发送获取所述第二分块的参考校验码的第三请求。其中,该第三请求中包括该第二分块在系统固件的第二位置信息,也可以理解为修复程序的第二位置信息。
在服务器向智能终端返回第二分块的参考校验码后,判断模块703接收所述服务器返回的所述第二分块的参考校验码,并判断所述第二分块的参考校验码是否与所述第二分块的实际校验码相匹配。并在确定相匹配时,第一分块确定模块701再在第一存储分区中获取系统固件的第一分块。
如果经过判断模块703确认第二分块的参考校验码与实际校验码不相匹配,则说明该修复程序出现错误,即现有的修复程序已经不能完成对系统固件的修复,此时智能终端可以通过其显示屏向用户显示该系统固件出现错误,以提醒用户是否重新下载完整的系统固件。
区别于现有技术,本实施方式的智能终端不仅能够实现在出现错误时的自动修复,而且,通过将系统固件进行划分,分别对每一个小分块进行检测修复的方式避免了对整个系统固件进行下载修复所带来的时间浪费和资源浪费,为用户带来方便。
参阅图8,图8是本发明服务器一实施方式的结构示意图,本实施方式的服务器包括接收模块801以及发送模块802,
接收模块801用于收所述智能终端发送的获取系统固件的第一分块的参考校验码的第一请求;其中,所述第一请求中包含所述第一分块在所述系统固件中的第一位置信息.
当智能终端出现与修复程序对应的故障错误时,智能终端首先从其第一存储分区中获取系统固件的第一分块,其中,该第一分块为系统固件分块中的任一块。由于如果该第一分块的程序出现错误,其校验码将会发生改变,为了确定是否为该第一分块的程序出现错误,智能终端根据预定算法计算该第一分块的实际校验码,并向服务器发送获取服务器存储的发布该系统固件前该第一分块对应的参考校验码的第一请求,其中,该第一请求中包括该第一分块在系统固件的第一位置信息。
对应地,接收模块801接收该第一请求。
发送模块802用于根据所述第一位置信息确定对应的预存第一分块,并获取所述预存第一分块的参考校验码,向所述智能终端发送所述参考校验码。
对应地,智能终端接收服务器返回的该第一分块对应的数据或程序的参考校验码,并将该参考校验码与计算得到的实际校验码进行比对,确定该实际校验码与该参考校验码是否相匹配。如果该实际校验码与该参考校验码相匹配,则当前检测的第一分块并没有出现错误,智能终端进一步地按照预定顺序对第一分块后续的分块按照上述方式继续进行检测判断。如果该第一分块的参考校验码与实际校验码不相匹配,则说明该第一分块存储的数据或程序出现了错误,为了修复该系统固件,智能终端向服务器发送获取该第一分块的第二请求,即向服务器发送获取该第一分块的数据或程序的第二请求。
接收模块801还用于接收所述智能终端发送的获取所述第一分块的第二请求,所述第二请求包括第一分块在所述系统固件中的第一位置信息。
发送模块802还用于向所述智能终端发送所述第一位置地址对应的所述预存第一分块。
对应地,智能终端接收该第一分块,并将接收到的第一分块的数据或程序更新到第一分块在该第一存储分区对应的存储位置中,即与该第一位置信息对应的存储位置中,并通过修复程序对该系统固件进行修复,使更新后的第一分块与其他分块衔接,以使该系统固件能够正常工作。
在修复完成后,智能终端再次检测之前存在的错误是否已经修复,如果修复了,则停止对后续分块的检测,如果上述错误仍存在,则继续对后续的每一个分块进行检测,即对每一个参考校验码与实际校验码不相匹配的第一分块均进行修复,直至该错误完全被修复。
由于修复程序一旦出现错误,即使第一分块中出现一个细小的错误,系统固件也是不能完成修复的,因此,为了节省检测时间以及效率,服务器在对修复程序进行分块完成后,将存储修复程序的第二分块的第二位置信息形成存储地址列表,并伴随该系统固定一起发布。智能终端可直接根据该存储地址列表对每一个第二分块按照预定顺序分别进行获取,并在生成该第二分块实际校验码的同时或之后向服务器发送获取该第二分块参考校验码的第三请求。
对应地,接收模块801还用于接收该第三请求,发送模块802还用于根据所述第二位置信息确定对应的预存第二分块,并获取所述预存第二分块的参考校验码,向所述智能终端发送所述预存第二分块的参考校验码,以使所述智能终端判断所述参考校验码是否与所述智能终端计算得到的所述第二分块的实际校验码相匹配,并在匹配时发送所述第一请求。
如果智能终端对上述第二分块的参考校验码与实际校验码进行比对判断后,如果参考校验码与实际校验码不相匹配,则说明该修复程序出现错误,即现有的修复程序已经不能完成对系统固件的修复,此时智能终端可以通过其显示屏向用户显示该系统固件出现错误,以提醒用户是否重新下载完整的系统固件。
区别于现有技术,本实施方式的服务器不仅能够实现智能终端在出现错误时的自动修复,而且,通过将系统固件进行划分,分别对每一个小分块进行检测修复的方式避免了对整个系统固件进行下载修复所带来的时间浪费和资源浪费,为用户带来方便。
参阅图9,图9是本发明智能终端再一实施方式的结构示意图。本实施方式的智能终端包括处理器901以及存储器902,处理器901与存储器902通过总线903耦合在一起,其中总线903除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线903。
处理器301用于在第一存储分区中获取系统固件的第一分块。
智能终端在系统固件出现错误时,为了避免将整个程序整体进行检测带来的时间浪费和资源浪费,智能终端对每一个分块单独进行检测。具体地,处理器901按照预定顺序,如从第一个分块开始对每一个分块进行判断,首先从其存储该系统固件的第一存储分区中获取第一分块。
处理器901还用于计算所述第一分块的实际校验码,并向服务器发送获取所述第一分块的参考校验码的第一请求。
具体地,处理器901首先计算第一分块的实际校验码,为了确保校验码的一致性,生成实际校验码与服务器生成该第一分块的参考校验码的算法相同。并在计算得到该第一分块的实际校验码的同时或之后,向服务器发送获取该第一分块参考校验码的第一请求。其中,该第一请求中包括该第一分块位于该系统固件中的第一位置信息。
服务器在接收到第一请求后,根据该第一信息确定对应的预存第一分块,并获取预存第一分块的参考校验码后,向所述智能终端发送参考校验码。
处理器901还用于接收所述服务器返回的所述第一分块的参考校验码,并判断所述第一分块的参考校验码是否与对应的所述第一分块的实际校验码相匹配。
如果该实际校验码与该参考校验码相匹配,则当前检测的第一分块并没有出现错误,处理器901进一步地按照预定顺序对第一分块后续的分块按照上述方式继续进行检测判断。
处理器901还用于在所述第一分块的参考校验码与对应的所述实际校验码不匹配时,向所述服务器发送获取所述第一分块的第二请求。
如果该第一分块的参考校验码与实际校验码不相匹配,则说明该第一分块存储的数据或程序出现了错误,为了修复该系统固件,处理器901向服务器发送获取该第一分块的第二请求,即向服务器发送获取该第一分块的数据或程序的第二请求。其中,该第二请求中包括上述第一分块在系统固件中的第一位置信息。
处理器901还用于接收所述服务器返回的所述第一分块,并将所述第一分块更新到所述存储分区的对应存储位置中。
具体地,智能终端通过修复程序对该系统固件进行修复,使更新后的第一分块与其他分块衔接,以使该系统固件能够正常工作。
在修复完成后,处理器901再次检测之前存在的错误是否已经修复,如果修复了,则停止对后续分块的检测,如果上述错误仍存在,则继续对后续的每一个分块进行检测,即对每一个参考校验码与实际校验码不相匹配的第一分块均进行修复,直至该错误完全被修复。
在另一个实施方式中,为了节省检测时间以及效率,处理器901在按照预定顺序对系统固件的每一个分块进行检测前,首先对存储修复程序的第二分块进行检测。
具体地,处理器901在第二存储分区中获取所述系统固件的修复程序的第二分块,在优选的实施方式中,处理器901可按照服务器预先形成的存储地址列表对每一个第二分块按照预定顺序分别进行获取。而后,处理器901还用于计算所述第二分块的实际校验码,并向服务器发送获取所述第二分块的参考校验码的第三请求。其中,该第三请求中包括该第二分块在系统固件的第二位置信息,也可以理解为修复程序的第二位置信息。在服务器向智能终端返回第二分块的参考校验码后,处理器901接收服务器返回的第二分块的参考校验码,并判断第二分块的参考校验码是否与所述第二分块的实际校验码相匹配。并在确定相匹配时,再在第一存储分区中获取系统固件的第一分块。
如果确认第二分块的参考校验码与实际校验码不相匹配,则说明该修复程序出现错误,即现有的修复程序已经不能完成对系统固件的修复,此时智能终端可以通过其显示屏向用户显示该系统固件出现错误,以提醒用户是否重新下载完整的系统固件。
存储器902用于存储所述处理器中运行的程序、以及所述程序运行过程中产生的数据。可以包括只读存储器和随机存取存储器,并向处理器901提供指令和数据。存储器902的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器902存储了如下的元素,可执行单元或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器901通过调用存储器902存储的操作指令(该操作指令可存储在操作系统中),来执行上述操作。
处理器901还可以称为CPU(Central Processing Unit,中央处理单元)。存储器902可以包括只读存储器和随机存取存储器,并向处理器301提供指令和数据。存储器902的一部分还可以包括非易失性随机存取存储器(NVRAM)。
上述本发明实施例揭示的方法可以应用于处理器901中,或者由处理器901实现。处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器902,处理器901读取存储器902中的信息,结合其硬件完成上述方法的步骤。
区别于现有技术,本实施方式的智能终端不仅能够实现在出现错误时的自动修复,而且,通过将系统固件进行划分,分别对每一个小分块进行检测修复的方式避免了对整个系统固件进行下载修复所带来的时间浪费和资源浪费,为用户带来方便。
参阅图10,图10是本发明服务器另一实施方式的结构示意图。如图10所示,本实施方式的服务器包括处理器1001以及存储器1002,处理器1001与存储器1002通过总线1003耦合在一起,其中总线1003除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1003。
处理器1001用于在第一存储分区中获取系统固件的第一分块。
当智能终端出现与修复程序对应的故障错误时,智能终端首先从其第一存储分区中获取系统固件的第一分块,其中,该第一分块为系统固件分块中的任一块。再根据预定算法计算该第一分块的实际校验码,并向服务器发送获取服务器存储的发布该系统固件前该第一分块对应的参考校验码的第一请求,其中,该第一请求中包括该第一分块在系统固件的第一位置信息。对应地,处理器1001接收该第一请求。
处理器1002还用于根据所述第一位置信息确定对应的预存第一分块,并获取所述预存第一分块的参考校验码,向所述智能终端发送所述参考校验码。
智能终端接收服务器返回的该第一分块对应的数据或程序的参考校验码,确定该实际校验码与该参考校验码是否相匹配。如果该实际校验码与该参考校验码相匹配,则当前检测的第一分块并没有出现错误,智能终端进一步地按照预定顺序对第一分块后续的分块按照上述方式继续进行检测判断。如果该第一分块的参考校验码与实际校验码不相匹配,则向服务器发送获取该第一分块的第二请求,即向服务器发送获取该第一分块的数据或程序的第二请求。
处理器1001还用于接收所述智能终端发送的获取所述第一分块的第二请求,所述第二请求包括第一分块在所述系统固件中的第一位置信息。并向所述智能终端发送所述第一位置地址对应的所述预存第一分块。
对应地,智能终端接收该第一分块,并将接收到的第一分块的数据或程序更新到第一分块在该第一存储分区对应的存储位置中,即与该第一位置信息对应的存储位置中,并通过修复程序对该系统固件进行修复,使更新后的第一分块与其他分块衔接,以使该系统固件能够正常工作。
在其他实施方式中,为了节省检测时间以及效率,处理器1001在对修复程序进行分块完成后,将存储修复程序的第二分块的第二位置信息形成存储地址列表,并伴随该系统固定一起发布。智能终端可直接根据该存储地址列表对每一个第二分块按照预定顺序分别进行获取,并在生成该第二分块实际校验码的同时或之后向服务器发送获取该第二分块参考校验码的第三请求。
对应地,处理器1001还用于接收该第三请求,根据所述第二位置信息确定对应的预存第二分块,并获取所述预存第二分块的参考校验码,向所述智能终端发送所述预存第二分块的参考校验码,以使所述智能终端判断所述参考校验码是否与所述智能终端计算得到的所述第二分块的实际校验码相匹配,并在匹配时发送所述第一请求。
如果智能终端对上述第二分块的参考校验码与实际校验码进行比对判断后,如果参考校验码与实际校验码不相匹配,则说明该修复程序出现错误,即现有的修复程序已经不能完成对系统固件的修复,此时智能终端可以通过其显示屏向用户显示该系统固件出现错误,以提醒用户是否重新下载完整的系统固件。
存储器1002用于存储所述处理器中运行的程序、以及所述程序运行过程中产生的数据。可以包括只读存储器和随机存取存储器,并向处理器1001提供指令和数据。存储器1002的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器1002存储了如下的元素,可执行单元或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器1001通过调用存储器1002存储的操作指令(该操作指令可存储在操作系统中),来执行上述操作。
处理器1001还可以称为CPU(Central Processing Unit,中央处理单元)。存储器1002可以包括只读存储器和随机存取存储器,并向处理器301提供指令和数据。存储器1002的一部分还可以包括非易失性随机存取存储器(NVRAM)。
上述本发明实施例揭示的方法可以应用于处理器1001中,或者由处理器1001实现。处理器1001可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1001中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1002,处理器1001读取存储器1002中的信息,结合其硬件完成上述方法的步骤。
区别于现有技术,本实施方式的服务器不仅能够实现智能终端在出现错误时的自动修复,而且,通过将系统固件进行划分,分别对每一个小分块进行检测修复的方式避免了对整个系统固件进行下载修复所带来的时间浪费和资源浪费,为用户带来方便。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。