操作系统升级方法和装置的制造方法_2

文档序号:9708124阅读:来源:国知局
、所述第一参数和所述第二升级文件对系统主程序进行升级的具体方式可以是:调用升级后的BOOT程序中的第一参数,并检测系统对应的备份分区中是否包含所述升级命令,若包含,可根据所述第一参数和所述第二升级文件执行系统主程序的升级流程。
[0038]如图3所示,在一个实施例中,可根据如下方式执行系统主程序的升级流程:
[0039]S31,读取所述第二升级文件和第一参数;
[0040]S32,对所述第二升级文件和第一参数进行校验;
[0041]S33,若所述第二升级文件是完整且正确的,擦除系统主程序的存储区域,将所述第二升级文件和第一参数写入所述系统主程序对应的存储区域,并重启系统。
[0042]仍以Android系统为例,可读取第二升级文件update.zip,并进行解压。然后,可对解压后的第二升级文件进行校验。可检验SF文件与RSA文件是否匹配,MANIFEST.MF与签名文件中是否一致,以及解压后的第二升级文件与MANIFEST中所描述的是否一致。若所述第二升级文件是完整且正确的,可将boot, img写入BOOT分区,将recovery.img写入recovery分区,更新system分区,并升级所有固件。
[0043]在完成系统主程序的升级流程之后,可擦除所述第二标志,设置升级MCU的第三标志,并将升级MCU所需的第三参数传输至MCU。
[0044]S4,响应所述第三标志解析所述第三升级文件,并根据所述升级命令、所述第二参数、第三参数和所述第三升级文件对MCU进行升级。具体地,可以调用升级后的BOOT程序中的第二参数和升级后的系统主程序中的第三参数,并检测系统对应的备份分区中是否包含所述升级命令;若包含,则根据所述第二参数、第三参数和所述第三升级文件执行MCU升级流程。
[0045]如图4所示,在一个实施例中,可根据如下方式执行MCU的升级流程:
[0046]S41,读取所述第三升级文件、第二参数和第三参数;
[0047]S42,对所述第三升级文件、第二参数和第三参数进行校验;
[0048]S43,若所述第三升级文件、第二参数和第三参数是完整且正确的,擦除MCU的存储区域,将所述第三升级文件、第二参数和第三参数写入所述MCU对应的存储区域,并重新上电。
[0049]上述操作系统升级方法,可在获取一次升级文件之后,对Β00Τ、系统主程序和Μ⑶进行三合一升级,提高了升级效率。并且,升级文件既可以通过下载方式获取,又可以通过插入移动存储设备的方式获取,方便了用户使用和操作,提高了用户体验。
[0050]下面结合附图对本发明的操作系统升级装置的实施例进行描述。
[0051]图5为一个实施例的操作系统升级装置的结构示意图。如图5所示,本发明的操作系统升级装置可包括:
[0052]写入模块10,用于在获取到BOOT对应的第一升级文件、系统主程序对应的第二升级文件和MCU对应的第三升级文件之后,将升级命令写入系统对应的备份分区,并设置升级BOOT的第一标志;
[0053]所述写入模块10可先获取BOOT对应的第一升级文件、系统主程序对应的第二升级文件和MCU对应的第三升级文件。可通过两种方式获取所述第一升级文件、第二升级文件和第三升级文件。方法一是直接下载所述第一升级文件、第二升级文件和第三升级文件,并将下载的升级文件保存到内部存储设备中。方法二是接入移动存储设备,并读取所述移动存储设备中的所述第一升级文件、第二升级文件和第三升级文件。
[0054]以Android系统为例,可获取BOOT对应的第一升级文件、Android系统主程序对应的第二升级文件和MCU对应的第三升级文件。可持续监听0TA( Over —the —AirTechnology,空中下载技术)推送消息,并在接收到OTA推送消息之后,从服务器下载升级文件。或者,可持续监听移动存储设备的接入,并在检测到有移动存储设备接入之后,扫描所述移动存储设备中的升级文件。
[0055]然后,可将对MCU,B00T和Android主程序的升级命令写入Android系统的cache分区的recovery目录中。例如,可定义卯8作(16_311命令为对]\1(1],13001'和411(11'0丨(1主程序的三合一升级命令,并将所述upgrade_all命令写入Android系统的cache分区的recovery目录中。所述upgrade_all命令用于记录升级系统的标志。
[0056]可将boot环境变量upgrade_boot设为1,并重启Andro id系统,进入引导程序bootloader,检测环境变量upgrade_boot。所述boot环境变量upgrade_boot为升级BOOT的第一标志。
[0057]第一升级模块20,用于根据所述第一标志、升级命令和所述第一升级文件对BOOT进行升级,然后设置升级系统主程序的第二标志,并将升级系统主程序所需的第一参数和升级MCU所需的第二参数分别传输至系统主程序和MCU;
[0058]所述第一升级模块20可包括:
[0059]第一读取单元,用于在读取到所述升级命令之后,读取所述第一升级文件;
[0060]第一校验单元,用于对所述第一升级文件进行校验;
[0061]第一写入单元,用于若所述第一升级文件是完整和正确的,可擦除BOOT存储区域,将所述第一升级文件写入BOOT对应的存储区域,并重启系统。
[0062]仍以Android系统为例,第一读取单元可读取第一升级文件boot.bin,第一校验单元可对boot.bin进行校验,若boot.bin是完整和正确的,第一写入单元可通过SPI Flash擦除相应的存储区域,并将boot, bin写入BOOT对应的存储区域。待写入完毕之后,可重启系统。
[0063]在完成BOOT升级流程之后,第一升级模块20可设置升级系统主程序的第二标志,并将升级系统主程序所需的第一参数和升级MCU所需的第二参数分别传输至系统主程序和MCU。系统在检测到所述第二标志之后,可自动执行主程序的升级流程。
[0064]第二升级模块30,用于响应所述第二标志解析所述第二升级文件,根据所述升级命令、所述第一参数和所述第二升级文件对系统主程序进行升级,然后设置升级MCU的第三标志,并将升级MCU所需的第三参数传输至MCU;
[0065]第二升级模块30可检测是否存在所述第二标志,若检测到,可响应所述第二标志解析所述第二升级文件。然后,可检测是否存在所述升级命令,若存在,可根据所述升级命令、所述第一参数和所述第二升级文件对系统主程序进行升级,然后设置升级MCU的第三标志,并将升级MCU所需的第三参数传输至MCU。其中,所述第二升级模块30可包括第一调用单元,用于调用升级后的BOOT程序中的第一参数,第一检测单元,用于检测系统对应的备份分区中是否包含所述升级命令,第一升级单元,用于若包含,可根据所述第一参数和所述第二升级文件执行系统主程序的升级流程。
[0066]在一个实施例中,第一升级单元可包括:
[0067]第二读取单元,用于读取所述第二升级文件和第一参数;
[0068]第二校验单元,用于对所述第二升级文件和第一参数进行校验;
[0069]第二写入单元,用于若所述第二升级文件是完整且正确的,可擦除系统主程序的存储区域,将所述第二升级文件和第一参数写入所述系统主程序对应的存储区域,并重启系统。
[°07°] 仍以Android系统为例,第二读取单元可读取第二升级文件update.zip,并进行解压。然后,第二校验单元可对解压后的第二升级文件进行校验。可检验SF文件与RSA文件是否匹配,MANIFEST.MF与签名文件中是否一致,以及解压后的第二升级文件与MANIFEST中所描述的是否一致。若所述第二升级文件是完整且正确的,第二写入单元可将boot, img写入BOOT分区,将recovery.img写入recovery分区,更新system分区,并升级所有固件。
[0071]在完成系统主程序的升级流程之后,第二升
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1