一种系统软件的更换方法、装置、终端设备及存储介质与流程

文档序号:15384711发布日期:2018-09-08 00:25阅读:157来源:国知局
本发明实施例涉及应用软件技术,尤其涉及一种系统软件的更换方法、装置、终端设备及存储介质。
背景技术
:随着科技的发展,智能终端的功能越来越多样化。智能终端是指具有独立的移动操作系统,可通过安装应用软件、游戏等程序来扩充终端功能。目前,android系统作为一个开源的操作系统,许多厂商都在此基础上进行二次开发,定制一些具有自己特色的功能,但为了满足一些特定的场景需求,需将厂商定制的系统软件更换为原始系统软件。在现有技术中,最常用的刷机方式,是进入终端的系统恢复模式,当用户根据提示选择恢复系统或升级系统时,通过ota(over-the-airtechnology,空间下载技术)或线刷(通过数据线把终端连接到电脑上,通过刷机软件进行刷机)的方式,将用户提供的刷机包中的系统软件写入智能终端内置存储器的系统分区,覆盖原有系统。但发明人在实现上述方案的过程中发现,采用目前的ota或线刷的刷机方式,需要对系统软件的整块镜像文件进行刷写,即需要重新恢复或升级系统软件。技术实现要素:本发明提供一种系统软件的更换方法、装置、终端设备及存储介质,以实现无需重新升级系统软件,就可以将用户定制的系统软件更换为原始系统软件。第一方面,本发明实施例提供了一种系统软件的更换方法,该方法包括:检测并获取系统软件的原始资源文件,并将所述原始资源文件保存到第一预设目录;将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,所述运行资源文件为根据用户对系统的需求而配置的资源文件;将所述运行资源文件更换为所述第一预设目录中的原始资源文件。第二方面,本发明实施例还提供了一种系统软件的更换装置,该装置包括:检测获取模块,用于检测并获取系统软件的原始资源文件,并将所述原始资源文件保存到第一预设目录;保存模块,用于将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,所述运行资源文件为根据用户对系统的需求而配置的资源文件;更换模块,用于将所述运行资源文件更换为所述第一预设目录中的原始资源文件。第三方面,本发明实施例还提供了一种终端设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一所述的系统软件的更换方法。第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一所述的系统软件的更换方法。本发明通过检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录;将系统软件的运行资源文件在第二预设目录保存为备份资源文件;将运行资源文件替换为第一预设目录中的原始资源文件,解决需对系统软件的整块镜像文件进行刷写的问题,实现了无需重新升级系统软件即可将用户定制的系统软件更换为原始系统软件的效果。附图说明图1是本发明实施例一中的一种系统软件的更换方法的流程图。图2是本发明实施例二中的一种系统软件的更换方法的流程图。图3是本发明实施例二中的一种系统软件的另一更换方法的流程图。图4是本发明实施例三中的一种系统软件的更换方法的流程图。图5是本发明实施例四中的一种系统软件的更换装置的结构示意图。图6是本发明实施例五中的一种终端设备的结构示意图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。在本发明各实施例中,由于终端设备整机会有mcu(microcontrollerunit,微控制单元,又称单片机)和主芯片进行搭配工作。其中,在终端设备待机的情况下,只有mcu工作,而主芯片在此刻处于关机状态,即所有整机处于低功耗阶段。在整机开机完成后,mcu会为主芯片分担一部分功能处理。示例性地,mcu处理的功能可包括:电源控制、按键板的组合键功能、红外遥控的编码格式、rs232的协议定制等。而其中按键板的组合键功能、红外遥控的编码格式、rs232的协议定制可根据用户需要进行重新升级或还原。实施例一图1为本发明实施例一提供的一种系统软件的更换方法的流程图,本实施例可适用于对移动终端的系统软件进行更换的情况,该方法可以由本发明实施例提供的系统软件的更换装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在终端设备中。该系统软件的更换方法具体包括如下步骤:s110、检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录。具体地,系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统。在本方案中,将系统软件应用到智能终端上,比如,笔记本、平板电脑以及手机等等。当然,本方案中并不对智能终端进行限定,可适用于对安装有android系统的智能终端设备进行系统软件的更换。当然,原始资源文件为用户最终要将智能终端设备的系统软件更换成系统软件的资源文件,可包括:apk文件和bin文件。其中,android应用程序包文件(apk)是一种android操作系统上的应用程序安装文件格式,其英文全称为“applicationpackagefile”。具体来说,在实际应用中,用户(可为智能终端设备的厂商,也可为自行对智能终端设备的系统软件进行更换的个人)在拿到第三方公司提供的应用程序apk后,先解压这个apk,接着再针对该apk编写android.mk文件,然后对编好的android.mk文件进行源码编译。在用户对apk文件进行编写之前,为了对智能终端系统的系统软件进行更换,会将系统软件的原始资源文件,比如apk文件和bin文件等保存到指定目录下,以作备份。当然,系统软件的原始资源文件可为系统软件的出厂设置的系统软件,也可为已经用户进行重新配置的系统软件的版本。在此对系统软件的原始资源文件并不进行限定,可根据用户的选择来进行备份。示例性地,为了对智能终端设备的系统软件进行升级或还原,在本方案中,以智能终端设备为平板电脑为例进行说明,可先将从移动存储设备或系统分区中获取到的系统软件的原始资源文件拷贝到/system/tmp目录下,以防止在升级过程中,由于移动存储设备的插拔或通信异常而导致系统软件的升级失败。其中,移动存储设备可以为u盘,也可以为移动硬盘,只要是终端设备的外接存储设备即可,并不对此进行限定。s120、将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,运行资源文件为根据用户对系统的需求而配置的资源文件。在本方案中,可根据用户对系统的需求而对应用程序apk进行重新配置,即所谓的二次开发。为了方便用户重新更换自身定制的系统软件时,将智能终端设备所正在采用的android系统软件的运行资源文件进行备份,并保存到指定目录下。举例来说,当用户所使用的平板电脑的系统为android系统,并且android系统所运行的系统软件为用户根据自身需求进行重新定制的。现用户为了投标使用,需对系统软件进行更换,则为了方便用户再次更换定制的系统软件,需要先将定制的apk文件和bin文件备份到/system/vendor/customer下。其中,本方案中涉及到的/system/vendor/customer目录的名称仅仅是基于当前普遍使用的名称,对此并不进行限定,只要文件本身实质和功能与本方案中的原始资源文件和运行资源文件一致,就都属于本发明保护的范围。s130、将运行资源文件更换为第一预设目录中的原始资源文件。在本方案中,在系统内存足够大时,可使用多用户程序独立分区的方法,或者通过配置初始化变量的方法。其中,采用多用户程序独立分区的方法时,假设系统资源由用户a、用户b、用户c和用户d,则将分为bootloader分区、用户a主程序分区、用户b主程序分区、用户c主程序分区以及用户d主程序分区,当在bootloader分区的启动阶段读取用户标识信息,将跳转到对应用户的分区运行主程序,以实现原始资源文件和运行资源文件之间的替换;在通过配置初始化变量的方法进行文件更换时,由于系统存储有所有用户需求的主程序分区,则在触发动态更换系统软件时,由android系统发送当前更换系统软件的用户信息,并由mcu加载对应用户运行条件的全局变量,终端设备的各个模块将根据运行条件,调用不同的运行机制,以实现系统软件的资源文件的更换。在此需要说明的是,在通过脚本对系统软件进行更换时,需将对原始资源文件和运行资源文件进行比对分析。具体来说,当原始资源文件和运行资源文件中的apk文件、bin文件以及其他文件有相同资源文件,将不对相同资源文件进行更新,只需对原始资源文件和运行资源文件不同的资源文件进行操作,比如,将原始资源文件中和运行资源文件中都包含有bin文件,但其目录下的资源文件不同,则将原始资源文件的bin文件替换运行资源文件的bin文件,而由于运行资源文件中是客户根据自身需求进行定制的,其包含有更多的文件夹,其在对系统软件进行更换时,需将多余的定制的资源文件进行删除,以实现系统软件的更换。其中,脚本可采用shell脚本、python脚本以及ruby脚本,对此并不进行限定,只要可实现系统软件的更换即可。具体地,在完成将智能终端设备中的系统软件的运行资源文件替换为原始资源文件后,根据原始资源文件的配置对权限进行重新管理,并清除历史应用相关文件。当然,清除历史应用相关文件,是可选的,因有的rom(readonlymemory,只读存储器)软件不需要清除就可以直接更换,但有的rom软件必须完全清除才可以进行刷机。本实施例的技术方案,通过检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录;将系统软件的运行资源文件在第二预设目录保存为备份资源文件;将运行资源文件替换为第一预设目录中的原始资源文件的技术手段,解决了需对系统软件的整块镜像文件进行刷写的问题,实现了无需重新升级系统软件即可将用户定制的系统软件更换为原始系统软件的效果。实施例二图2为本发明实施例二提供的一种系统软件的更换方法的流程图,本实施例可适用于对终端设备的系统软件进行更换的情况。本实施例是在实施例一的基础上,对检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录,以及将运行资源文件替换为第一预设目录中的原始资源文件,作进一步地优化,具体包括如下步骤:s210、将系统软件的原始apk文件和原始bin文件保存到android系统分区,并对原始apk文件和原始bin文件进行打包,以生成系统软件的原始资源文件。在本方案中,将系统软件的原始apk文件和原始bin文件保存到指定目录下,并对文件进行打包,生成系统软件的原始资源文件的镜像文件,以在后续对智能终端设备的系统软件进行更换。其中,镜像文件指的是跟光盘等载体原本的内容一模一样,即文件结构以及隐藏文件等,甚至包括光盘的加密信息等都可以完整地复制。示例性地,将原始的setting.apk打包到/system/vendor/general/apk/目录下,而将用户定制的setting.apk打包到/system/app/目录下。同样地,可将原始的logo.bin文件打包到/system/vendor/general/bin/目录下,而将用户定制的logo.bin文件打包到/system/app/目录下。具体来说,在对智能终端的系统软件进行更新之前,需先对系统软件的资源文件进行打包,示例性地,将用户定制的apk文件拷贝到/system/app/目录下,以及将用户定制的bin文件拷贝到/system/app/目录下。其中,用户定制的bin文件可以为开机音乐、开机动画等。其中,可通过re管理器将用户定制的apk文件拷贝到/system/app/目录下,具体操作:在操作前,将/system/app/目录挂载为可读写;并且,系统软件名不能有中文、空格及其它特殊字符等;如果无法移动,显示空间不足时,可先移动到data/app下,再移动到/system/app/目录下,也可通过删除当前运行的系统软件不需要的部分资源文件。s220、对与终端设备相关联的移动存储设备进行检测,并判断移动存储设备中是否复制有系统软件的原始资源文件。具体来说,若在与终端设备相关联的移动存储设备中检测到原始资源文件,执行步骤s230;若未检测到原始资源文件,执行步骤s240。在本方案中,在对智能终端设备相关联的移动存储设备进行检测之前,需先为更换系统软件做准备,比如,通过指令对权限进行管理和分区的读写进行挂载。示例性地,对操作权限的更改,可通过使用bashshell命令运行“chmod777file”;对分区的读写进行重新挂载,可使用bashshell命令运行“mount-o-remount,rw/system”。同时,为了在资源文件的更换过程中,防止移动存储设备插拔或通信异常导致更换或升级系统软件失败,会提前将原始资源文件拷贝到指定的目录下,而在判断移动存储设备中是否复制有系统软件的原始资源文件之前,会提前为将原始资源文件拷贝到指定的目录下创建文件夹,比如,使用bashshell命令运行“busyboxmkdir-p$temp_apk”。其中,优先对移动存储设备进行检测,判断是否保存有原始资源文件的镜像文件,是为了节省android系统本身emmc(embeddedmultimediacard)的空间。在系统分区中保存备份数据,明显是会占用一部分emmc空间,但既为了节省emmc空间,又能快速替换用户定制的系统软件,可以将系统软件的原始资源文件保存到移动存储设备中。示例性地,若需要加入a、b、c和d四个用户定制的系统软件,并且每个用户定制的系统软件的备份数据占用100m,则需要耗掉400m的emmc存储空间。但若将系统软件的备份数据放在移动存储设备中,则只需移动存储设备存储某个用户(例如a用户)的100m即可,而emmc节省的400m空间,可以留作用户自行使用。同时,将原始资源文件放在移动存储设备中,可便捷地更新对应的版本。例如,在系统分区中保存某个用户的系统软件(例如a用户)是旧版本,若按正常流程,则会整个系统升级(包括正常数据和对a、b、c和d用户的数据进行备份),才能确保a客户是新版本。若提供移动存储设备的方式,则优先使用移动存储设备的原始资源文件的备份数据(例如a用户的最新版本)用于更换,并且重启整机后,即可使用最新版本。移动存储设备更换后,判断当前a客户的软件为最新,则重新保存当前最新数据到系统分区中。同时,将系统软件的原始资源文件保存在移动存储设备和系统分区的资源文件是一样的,只是对于系统而言,存储的路径不一样而已。例如:移动存储设备在系统的路径:/mnt/sda1/...;而存储在系统分区:/system/...。s230、将原始资源文件保存到第一预设目录。在本方案中,为了防止在对系统软件进行升级过程中,由于移动存储设备插拔或通信系统导致升级过程失败,先将系统软件的原始资源文件拷贝到/system/tmp目录下,并在完成拷贝后对资源文件进行校验,即对比/system/tmp目录下的资源文件的校验值与移动存储设备中保存的资源文件的校验值是否一致,若校验失败,就默认该资源文件的数据为无效数据,将不对智能终端设备进行系统软件的升级或还原。s240、对android系统分区进行检测,以获取原始资源文件,并保存到第一预设目录。具体来说,当未在移动存储设备中检测到系统软件的原始资源文件,将对android系统分区中进行检测,并将检测到的原始资源文件保存到/system/tmp目录下。其中,/system/tmp目录本身就是内存的映射,与读移动存储设备或者读系统分区,本质一样,都是先把内容拷贝到ddr内存。其中,内存是指ddr(doubledatarate,双倍速率同步动态随机存储器),而并非emmc。其中,不管是在移动存储设备还是系统分区中检测到原始资源文件,均将保存在/system/tmp目录下,一方面,是为了给移动存储设备和系统分区的原始资源文件提供一个统一出口,即,替换系统软件的原始资源文件的入口,并无需关注s250-s280的处理过程;另一方面,防止移动存储设备通信不稳定,以及在通信过程中被意外拔出,从而导致系统软件的更换失败。s250、将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,运行资源文件为根据用户对系统的需求而配置的资源文件。s260、对运行资源文件与第一预设目录中的原始资源文件进行比较分析,并识别提取相同的资源文件。在本方案中,将/system/tmp目录下的原始资源文件与安装有android系统的智能终端设备所正在运行的系统软件的资源文件进行比对分析,并将两个资源文件中包含的相同文件识别提取出来,以在s280中替换时,将不再对此相同文件进行替换。示例性地,假设用户对智能手机的开机音乐以及开机动画进行自行定制,则在智能手机的运行资源文件中包含有bootsetting文件夹,并在此文件夹下包含有对智能手机的开机音乐和开机动画的相关指令等。但在需要将智能手机的运行资源文件更换为原始资源文件,而原始资源文件中并不需要bootsetting文件夹。同时,原始资源文件中设有智能手机的默认铃声的相关资源文件,即为ring文件夹,而运行资源文件中的铃声的文件夹命名为customring,则会将除bootsetting文件、ring文件夹和customring文件夹之外的资源文件提取出来,作为相同的资源文件。s270、从运行资源文件和原始资源文件中剔除相同的资源文件,以分别获取第一资源文件和第二资源文件。具体来说,将运行资源文件和原始资源文件中的相同资源文件去除后,将分别获取bootsetting文件、ring文件夹和customring文件夹,其中,bootsetting文件夹和customring文件夹作为第一资源文件;而ring文件夹作为第二资源文件。s280、将第一资源文件更换为第二资源文件。示例性地,将bootsetting文件夹以及其文件夹中的相关内容进行删除,同时用ring文件夹的相关内容替换customring文件夹中的相关内容,同时将文件夹的命名改为ring文件夹,从而实现了将智能手机的运行资源文件替换为原始资源文件。本实施例的技术方案,进一步地通过对与终端设备相关联的移动存储设备和系统分区进行检测,以获取系统软件的原始资源文件,并保存到第一预设目录中;将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,运行资源文件为根据用户对系统的需求而配置的资源文件;对运行资源文件与第一预设目录中的原始资源文件进行比较分析,并识别提取相同的资源文件;从运行资源文件和原始资源文件中剔除相同的资源文件,以分别获取第一资源文件和第二资源文件;将第一资源文件替换为第二资源文件的技术手段,解决了在系统软件更换过程中,由于移动存储设备插拔或通信异常导致更换失败的问题,从而达到了方便可靠地更换系统软件的目的。在上述实施例的基础上,将步骤s260、s270和s280分别用以下步骤s261、s271和s281进行替换,如图3所示,具体步骤如下:s261、对第一预设目录中的原始资源文件进行校验,并获取原始资源文件对应的第一校验值。其中,在对mcu系统软件进行升级之前,会先对mcu系统软件的资源文件进行打包处理,以及将打包文件保存到android系统,并对android系统进行更换。具体更换步骤可以包括:首先,在接收到触发动态切换用户系统软件的指令或信号时,开始替换或删除android系统的应用及资源文件,并重启进入到recovery模式,以及开始格式化/data/和/cache分区,最后重新启动android系统,用户配置加载完成已更换系统软件的资源文件。在完成用户配置加载系统软件的资源文件时,将对mcu系统软件进行资源文件的替换或删除,以实现mcu系统软件的更换。在本方案中,由于终端设备的mcu采用的是stm32芯片,即终端设备的硬件本身就支持crc32计算。因此,在本方案中,计算获取原始资源文件的校验值时,直接通过crc32的运算器就可以得到原始资源文件的crc32校验值,而不需通过软件实现校验值的计算。当然,也可以计算原始资源文件的crc16校验值,但为了使校验算法的复杂度和精度更好,以及运算效率更高,且本方案采用stm32芯片,将直接通过硬件对原始资源文件的校验值进行计算,以得到原始资源文件的crc32校验值。具体是,在本方案中,采用配置初始化变量的方法,对系统软件的资源文件进行更换,即根据android系统发送的当前用户信息,获取第一预设目录中的客户对应的原始资源文件,将待更换的原始资源文件的二进制文件,读到mcu系统内存里,再调用现成的java现成的crc32类,以得到原始资源文件的crc32校验值。其中,由于原始资源文件是由多个数据包组成的,因此,原始资源文件的crc32校验值可以为整个原始资源文件的检验值,也可为原始资源文件各个数据包的校验值,比如,用户a需要更换的原始资源文件包含4个数据包,则每个数据包均含有一个对应的crc32校验值,以便于更换数据包时,只需将检验值不同的对应地数据包进行更换即可,而不需将所有的数据包进行更换。s271、计算并获取运行资源文件对应的第二校验值。同样地,在对mcu系统当前运行的系统软件的资源文件进行校验计算时,直接通过与mcu进行通信,获取当前mcu运行主程序对应的校验值。同样地,运行资源文件对应的第二校验值也为crc32校验值。s281、对第一校验值和第二校验值进行比对,并在第一校验值和第二校验值不同时,通过升级协议将运行资源文件更换为原始资源文件。在此需要说明的是,当原始资源文件的第一校验值与运行资源文件的第二校验值不同时,说明终端设备的mcu当前运行的系统软件并非用户对应的版本,需对应进行更换。进一步地,将对原始资源文件的各个数据包进行校验,并和运行资源文件的各个数据包的校验值进行比对分析,将校验值不同的对应的数据包进行更换,而相同的,不需重新更换。示例性地,用户a的终端设备原始资源文件包含有a、b、c、d四个数据包,而运行资源文件包含有a1、b1、c1、d1和e1五个数据包。其中,a和a1对应,b和b1对应,c和c1对应,以及d和d1对应,对应表示的是其数据包要实现的功能、作用或者命名相同。并且,只有a和a1数据包对应的校验值相同,其它数据包的检验值都不对应相同,则将b、c、d三个数据包替换b1、c1、d1数据包,且由于原始资源文件中并没有e数据包,则相应地,将运行资源文件中的e1数据包进行删除,从而实现了无需重新更新系统软件,就可以实现系统软件的升级或还原。其中,在本方案中采用固定长度的升级协议,升级协议各个字节表示的含义如表1所示,表1升级协议各个字节的含义信息表包头包序号包标识校验和数据idnumcmdcrcdata[0…59]其中,包头id:当通信采用usb通信时,此id即为usb描述符里面的reportid,例如本协议id=0xfc;num为包序号,从0-255循环计数;cmd:传输命令,每个包的标识;crc:数据的校验和,即data[0]+data[1]+...+data[59]的总和;数据:为60字节,从0-59,记为data[0...59],表示的是数据内容。示例性地,升级流程具体可包括四个步骤:首先,主机(android主系统)向从机(待更换的mcu系统)发出一个cmd=update_start协议包作为升级流程开始的数据包,当从机接收到数据后,将返回一个cmd=update_ack协议包作为正常应答信号到主机;然后,主机根据应答信号,发送cmd=update_sol协议包作为升级文件总长度的数据包,从机将继续反馈cmd=update_ack协议包作为正常应答信号;然后,主机发送cmd=update_sod协议包作为升级文件的内容的数据包,从机同样反馈cmd=update_ack协议包作为正常应答信息,主机将传输升级文件内容;最后,主机发送cmd=update_eot协议包作为发送升级文件内容的数据包,当从机接收到数据包后,将反馈cmd=update_nak协议包作为从机已完成升级的信号。当在升级过程中,可通过容错机制进行处理。具体是,当原始资源文件的长度超过通过升级协议确认的长度,终止将原始资源文件更换为原始资源文件当原始资源文件传输超过通过升级协议确认的最大时长、传输错误、校验错误和/或缺少数据包时,重新传输原始资源文件的数据。示例性地,当在主机发送cmd=update_sol协议包作为升级文件总长度的数据包时,但文件长度出错,将终止升级,并从机将返回cmd=update_ca协议包作为终止升级的信号。同样地,在主机发送cmd=update_sod协议包作为升级文件的内容的数据包时,由于主机中保存的原始资源文件内容在传输过程中,其传输时长超过升级协议确认的最大时长时,从机将返回cmd=update_nak协议包作为超时返回的信号。同时,在原始资源文件的数据包传输错误、校验错误和/或缺少数据包时,从机将返回cmd=update_sod协议包作为反馈信号,主机接收到该协议包时,将重新传输该数据包,并且在cmd=update_sod协议包包含有传输错误、检验错误和/或缺少的数据包的序号。即,主机根据数据包的序号对对应序号的数据包进行重新传输,并非原始资源文件所有的数据包进行重新传输。当mcu系统软件的当前运行资源文件更换为原始资源文件时,将重新启动mcu系统,并在完成mcu系统的重新启动后,就可以完成mcu系统软件的更换。在本实施例的技术方案中,通过分别获取原始资源文件和运行资源文件各个数据包的校验值,并对其对应的校验值进行比对分析,当各个数据包的校验值不同时,将运行资源文件中校验值不同的数据包更换为原始资源文件对应的数据包,以实现无需将运行资源文件的所有数据包进行更换,就可以完成mcu系统软件版本的更新。实施例三图4为本发明实施例三提供的一种系统软件的更换方法的流程图,如图4所示,该系统软件的更换方法具体包括如下步骤:s310、初始化系统软件的原始资源文件以及环境。其中,可通过对操作权限的更改和分区的读写挂载来对系统软件的原始资源文件以及环境进行初始化。当然,在本方案中对操作权限的更改和分区的读写挂载可通过shell脚本来实现。示例性地,使用bashshell命令运行“chmod777file”,可实现对操作权限的更改;使用bashshell命令运行“mount-oremount,rw/system”,实现重新挂载分区。s320、检测u盘generalfile是否存在系统软件的原始资源文件,若存在有原始资源文件,将执行步骤s350;若不存在原始资源文件,将执行步骤s330。具体来说,在本方案中,假设移动存储设备为u盘,但对此并不进行限定。同时,u盘中的文件夹的命名也是假设为generalfile,并不仅仅限定与此,只有该文件夹中包含有系统软件的原始资源文件即可。s330、检测系统分区system/vendor是否存在系统软件的原始资源文件。若存在原始资源文件,将执行步骤s350;若不存在原始资源文件,将执行步骤s340。s340、终止一键更换系统软件。s350、将系统软件的原始资源文件复制到/system/tmp目录。s360、将/system/app.bin等资源进行备份,并保存到/system/vendor目录。s370、使用/system/tmp目录下的资源文件,把/system/app.bin等资源文件进行替换或删除。s380、对替换后的系统软件的资源文件进行权限管理,并清除/data/和/system/tmp/目录下的相关资源文件。s390、重新启动智能终端设备的系统。本实施例的技术方案,通过对u盘和系统分区进行检测,以获取系统软件的原始资源文件,并复制到/system/tmp目录;并将/system/tmp目录下的资源文件,把/system/app.bin等资源文件进行替换或删除,并重新对系统软件的资源文件进行权限管理和清除,实现了对安装有android系统的智能终端设备的系统软件的一键更换。实施例四图5为本发明实施例四提供的一种系统软件的更换装置的结构示意图,本实施例可适用于对系统软件进行更换的情况,该装置可采用软件和/或硬件的方式来实现,如图5所示,该系统软件的更换装置具体包括:检测获取模块410,保存模块420和替换模块430。其中,检测获取模块410,用于检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录;保存模块420,用于将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,运行资源文件为根据用户对系统的需求而配置的资源文件;更换模块430,用于将运行资源文件更换为第一预设目录中的原始资源文件。本实施例的技术方案,通过检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录;将系统软件的运行资源文件在第二预设目录保存为备份资源文件;将运行资源文件替换为第一预设目录中的原始资源文件的技术手段,需对系统软件的整块镜像文件进行刷写的问题,实现了无需重新升级系统软件即可将用户定制的系统软件更换为原始系统软件的效果。进一步地,该系统软件的更换装置还包括:原始资源文件生成模块440,用于将系统软件的原始apk文件和原始bin文件保存到android系统分区,并对原始apk文件和原始bin文件进行打包,以生成系统软件的原始资源文件。进一步地,检测获取模块410,包括:判断单元411,用于对与终端设备相关联的移动存储设备进行检测,并判断移动存储设备中是否复制有系统软件的原始资源文件;第一保存单元412,用于若检测到原始资源文件,将原始资源文件保存到第一预设目录;第二保存单元413,用于若未检测到原始资源文件,对android系统分区进行检测,以获取原始资源文件,并保存到第一预设目录。进一步地,更换模块430,包括:比较分析单元431,用于对运行资源文件与第一预设目录中的原始资源文件进行比较分析,并识别提取相同的资源文件;获取单元432,用于从运行资源文件和原始资源文件中剔除相同的资源文件,以分别获取第一资源文件和第二资源文件;更换单元433,用于将第一资源文件更换为第二资源文件。进一步地,更换模块中的比较分析单元、获取单元和更换单元可分别对应的用第一校验单元、第二校验单元和对比更换单元进行替换。其中,第一校验单元,用于对第一预设目录中的原始资源文件进行校验,并获取原始资源文件对应的第一校验值;第二校验单元,用于计算并获取运行资源文件对应的第二校验值;对比更换单元,用于对第一校验值和第二校验值进行比对,并在第一校验值和第二校验值不同时,通过升级协议将运行资源文件更换为原始资源文件。上述系统软件的更换装置可执行本发明任意实施例所提供的系统软件的更换方法,具备执行方法相应的功能模块和有益效果。实施例五图6为本发明实施例五提供的一种终端设备的结构示意图。图6示出了适于用来实现本发明实施方式的示例性计算机设备512的框图。图6显示的计算机设备512仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图6所示,计算机设备512以通用计算设备的形式表现。计算机设备512的组件可以包括但不限于:一个或者多个处理器或者处理单元516,系统存储器528,连接不同系统组件(包括系统存储器528和处理单元516)的总线518。总线518表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。计算机设备512典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备512访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。系统存储器528可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)530和/或高速缓存存储器532。计算机设备512可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统534可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线518相连。系统存储器528可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。具有一组(至少一个)程序模块542的程序/实用工具540,可以存储在例如系统存储器528中,这样的程序模块542包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块542通常执行本发明所描述的实施例中的功能和/或方法。计算机设备512也可以与一个或多个外部设备514(例如键盘、指向设备、显示器524等)通信,还可与一个或者多个使得用户能与该计算机设备512交互的设备通信,和/或与使得该计算机设备512能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口522进行。并且,计算机设备512还可以通过网络适配器520与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线518与计算机设备512的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备512使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。处理单元516通过运行存储在系统存储器528中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种系统软件的更换方法,包括:检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录;将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,运行资源文件为根据用户对系统的需求而配置的资源文件;将运行资源文件更换为第一预设目录中的原始资源文件。实施例六本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的一种系统软件的更换方法,包括:检测并获取系统软件的原始资源文件,并将原始资源文件保存到第一预设目录;将系统软件的运行资源文件在第二预设目录保存为备份资源文件;其中,运行资源文件为根据用户对系统的需求而配置的资源文件;将运行资源文件更换为第一预设目录中的原始资源文件。本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是--但不限于--电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1