收到的目标固件进行固件更新,这样能够不借助其它辅助软件和辅助设备即可完成移动终端固件的更新,另外可以在移动终端固件更新完成前,通过第一移动终端预先了解到待更新的目标固件的效果。采用本发明的技术方案,能够快速、方便地更新移动终端的固件,提高移动终端固件更新过程的便捷性,可有效加速固件在移动终端之间的传递和流通。
[0105]下面结合具体的实施例对本发明的移动终端固件更新方法及装置进行详细介绍:
[0106]现有固件更新方法必须依赖网络和计算机平台,需要先找到合适的目标固件之后才能更新,且更新前不能预知目标固件效果。针对这种情况,本发明提出了一种移动终端固件更新方法及装置,能够将一个移动终端中的固件复制到另一个移动终端中,该方法简化了寻找目标固件的过程,找到一个合适的移动终端就找到了目标固件,不需要网络等外部环境支持,不需要借助个人计算机平台、也不需要拷贝、转储,另外,该方法也不需要借助其它辅助软件和辅助设备,操作简便快捷。而且,可在固件更新前,通过提供目标固件的第一移动终端预先了解目标固件的效果。
[0107]本发明的技术方案中包括有提供目标固件的第一移动终端和接收目标固件的第二移动终端。其中,第一移动终端包括有数据通信模块、固件提取模块、硬件信息获取模块、兼容性检测模块和模式切换模块,第二移动终端包括有数据通信模块、固件接收模块、固件更新模块、硬件信息检测模块和模式切换模块。
[0108]其中,第一移动终端负责提供目标固件,控制第二移动终端,建立数据通道,并通过数据通道将自身内置的目标固件传输到第二移动终端。第二移动终端负责协助第一移动终端建立数据通道,接收第一移动终端发送的目标固件,并用接收到的目标固件替换自身原本内置的固件。数据通道是连接第一移动终端和第二移动终端的桥梁,负责在第一移动终端和第二移动终端之间传输数据。所述数据包括但不限于:第一移动终端发送给第二移动终端的指令数据、第二移动终端反馈给第一移动终端的指令响应信息、第一移动终端内嵌的目标固件数据和第二移动终端的硬件信息等。
[0109]另外,第一移动终端和第二移动终端的各模块可以共存在同一个移动终端中。这样,每一个移动终端都既可以作为第一移动终端又可以作为第二移动终端。
[0110]具体地,如图5所示,本发明的移动终端固件更新方法包括以下步骤:
[0111]步骤al:第一移动终端和第二移动终端的数据通信模块相互协作建立起第二数据通道。数据通道类型包括但不限于USB线缆、WIF1、蓝牙等。
[0112]优选地,第一移动终端、第二移动终端间可通过USB线缆连接。采用OTG (On TheGo,活动式)技术,使第二移动终端作为第一移动终端的USB外围设备,在第一移动终端、第二移动终端间建立USB数据传输通路。
[0113]另外,该步骤可附加第一移动终端、第二移动终端间的身份认证等保护机制,以便初步确认双方是支持固件复制的同族移动终端。
[0114]步骤a2:第一移动终端检测自身目标固件是否兼容第二移动终端的硬件。第一移动终端中的硬件信息获取模块通过第二移动终端中的硬件信息检测模块获取到第二移动终端的硬件配置信息,进而判断第二移动终端的硬件是否可以运行第一移动终端内置的目标固件。
[0115]优选地:第一移动终端中的兼容性检测模块,根据预先存储的、目标固件支持的硬件型号列表,查询从第二移动终端中获取到的硬件的型号是否在所支持的硬件型号列表内。如果第二移动终端的所有硬件均被支持,则表明目标固件可运行在第二移动终端上,即第一移动终端的目标固件与第二移动终端的硬件兼容;否则,表明二者不兼容。
[0116]步骤a3:第一移动终端通过第二数据通道向第二移动终端发送模式切换指令,第二移动终端的模式切换模块在接收到模式切换指令后将自身切换至受控升级模式,并将切换结果报给第一移动终端。
[0117]为了更新移动终端固件,必须在移动终端固件不被使用的情况下对移动终端固件所在分区进行写入。所以,需要一个用于移动终端固件更新的备用精简系统,以下称固件更新系统。该系统包含前述位于第二移动终端上的数据通信模块、固件接收模块、固件更新模块和模式切换模块等四个模块。在固件更新系统下,固件更新模块对移动终端正常工作时的固件所在的存储设备分区具有完全的写入权限,可以更新移动终端固件所在分区的全部内容。
[0118]第二移动终端切换至受控升级模式的流程如图6所示。第二移动终端在接收到模式切换指令时,设置进入“受控升级模式”的标识(一个存储在预先约定的路径下的固件文件名的空文件/flags/enter_upgrade_firmware_mode.fig)。然后,模式切换模块通知第二移动终端重新启动。在第二移动终端重新启动过程中,模式切换模块检查前述标识是否存在,如果存在,则进入到固件更新系统;否则,启动移动终端正常工作系统。
[0119]第二移动终端成功切入到受控升级模式后,向第一移动终端报告模式切换成功的信息,并向第一移动终端发出建立数据通道的请求。
[0120]步骤a4:第一移动终端在接收到第二移动终端模式切换成功的反馈后,通过模式切换模块将自身切换至固件提取与发送模式。
[0121]为了提取移动终端固件,需要在不运行正常工作的移动终端操作系统的前提下对移动终端固件所在存储分区进行读取。所以,需要一个专门的、用于固件提取和发送的精简系统,以下称为固件提取与发送系统。
[0122]固件提取与发送系统是仅提供数据通信、固件提取、固件发送和模式切换等必备功能的一个精简系统。具体包含前述位于第一移动终端上的数据通信模块、固件提取模块和模式切换模块等模块。
[0123]固件提取与发送系统是与移动终端正常使用时的操作系统完全分离的另一个备用系统。两个系统分别存储于完全分离的、两个不同的分区中。两个系统可以分别独立启动,但不能同时启动。固件提取与发送系统中的应用,对移动终端固件所在分区具有读取数据权限。
[0124]第一移动终端从正常工作模式切换至固件提取与发送模式的过程如图7所示。首先,第一移动终端在接收到模式切换指令时,通过模式切换模块设置进入“固件提取和发送模式”的标识(一个存储在预先约定的路径下的固件文件名的空文件/flags/enter_get_firmware_mode.fig)。然后,模式切换模块通知第一移动终端重新启动。最后,在第一移动终端重启过程中,模式切换模块检测前述标识是否存在,如果存在,则进入固件提取与发送系统;否则,启动移动终端正常工作系统。
[0125]步骤a5:固件提取与发送模式下的第一移动终端与受控升级模式下的第二移动终端,通过各自的数据通信模块重新建立数据通道,即为第一数据通道。
[0126]前述a3、a4两步骤完成后,分别切入新模式下的第一移动终端、第二移动终端会重新通过USB设备建立连接,第一移动终端仍为USB主设备,第二移动终端仍为USB从设备。
[0127]步骤a6:第一移动终端通过固件提取模块提取自身内置的目标固件,并将其发送给第二移动终端。
[0128]前面提到,第一移动终端的存储设备上有多个存储分区。固件提取模块持有一个描述存储设备中的各分区信息的分区信息文件。该文件在移动终端生产过程中写入,存储设备的分区信息发生变化时被升级工具更新。该文件存储在固件提取与发送系统所在分区的根目录下,固定名为:partit1n_table.1nf。固件提取模块根据该分区信息文件确定目标固件所在分区、目标固件大小、起止位置等信息。并根据这些信息,从存储设备中读取对应数据,发送给第二移动终端。
[0129]步骤a7:第一移动终端在目标固件发送完成后,通知第二移动终端进行固件升级。
[0130]步骤a8:第二移动终端的固件更新模块根据接收到的目标固件更新自身的固件,并在更新完成后通知弟一移动终端。
[0131]固件更新模块同样持有一个第二移动终端的分区信息文件,在接收到目标固件后,根据第二移动终端的分区信息,把接收到的目标固件写入到相应的、移动终端固件对应的分区中,完成第二移动终端