专利名称:安卓系统下的固件升级方法及系统的制作方法
技术领域:
本发明涉及通信领域,具体而言,涉及一种安卓(Android)系统下的固件升级方法及系统。
背景技术:
目前,Android系统在越来越多的智能设备,例如消费类电子设备、车载电子设备中已经变得非常普及。但是,这些设备的优化和升级,尤其是嵌入其中的嵌入式模块的优化和升级,一直难以解决。相关技术中,对嵌入式模块进行固件升级通常是将其放入特殊的夹具设备上。通过该夹具设备的USB 口连接到PC机之后,再通过PC机上的升级软件,对该嵌入式模块进行 升级。但是,嵌入式模块属于中间件,不是最终的产品,只能算是半成品。作为一个功能部件,它是需要载体(例如客户机AP)的,只有安装到载体上,才能正常使用。同时,嵌入式模块一旦安装到客户机(AP)上,尤其是在该客户机已销售给最终用户的情况下,通常是难以随时取出的。因此,这将导致通过夹具设备对嵌入式模块进行固件升级更加难以实现。
发明内容
针对相关技术中通过夹具设备对嵌入式模块进行固件升级从而实现不便的问题而提出本发明,为此,本发明的主要目的在于提供一种安卓系统下的固件升级方法及系统,以解决上述问题。为了实现上述目的,根据本发明的一个方面,提供了一种安卓系统下的固件升级方法。根据本发明的安卓系统下的固件升级方法包括建立客户机与嵌入式模块的数据通道,其中数据通道用于对客户机中的嵌入式模块进行固件升级;通过数据通道,将升级数据写入嵌入式模块。优选地,通过数据通道,将升级数据写入嵌入式模块包括划分升级数据为第一升级数据包和第二升级数据包;通过数据通道,向嵌入式模块发送第一升级数据包;接收到来自嵌入式模块的第一升级数据应答包,其中第一升级数据应答包指示第一升级数据包发送成功;通过数据通道,向嵌入式模块发送第二升级数据包。优选地,在向嵌入式模块发送第一升级数据包之后,上述方法还包括如果在预先设定的时间内未接收到第一升级数据应答包,或者第一升级数据应答包指示第一升级数据包发送失败,则重复发送第一升级数据包,并在重复发送的次数大于预先设定的发送次数的情况下,设置嵌入式模块的固件升级失败。优选地,在通过数据通道,将升级数据写入嵌入式模块之前,上述方法还包括重启嵌入式模块;判断嵌入式模块是否进入下载模式;如果判断结果为否,则设置嵌入式模块的固件升级失败。
优选地,在通过数据通道,将升级数据写入嵌入式模块之后,上述方法还包括复位嵌入式模块;判断嵌入式模块是否正常工作;如果判断结果为否,则设置嵌入式模块的固件升级失败。优选地,在设置嵌入式模块的固件升级失败之后,上述方法还包括将预先备份的嵌入式模块的数据写入嵌入式模块。优选地,在通过数据通道,将升级数据写入嵌入式模块之前,上述方法还包括接收用户的升级命令;确定与升级命令对应的升级数据。为了实现上述目的,根据本发明的另一个方面,提供了一种安卓系统下的固件升级系统。根据本发明的安卓系统下的固件升级系统包括客户机和嵌入式模块,其中客户机包括第一建立模块,用于建立与嵌入式模块之间的数据通道,其中数据通道用于对客户机 中的嵌入式模块进行固件升级;写入模块,用于通过数据通道,将升级数据写入嵌入式模块。优选地,写入模块包括划分子模块,用于划分升级数据为第一升级数据包和第二升级数据包;第一发送子模块,用于通过数据通道,向嵌入式模块发送第一升级数据包;接收子模块,用于接收来自嵌入式模块的第一升级数据应答包,其中第一升级数据应答包指示第一升级数据包发送成功;第二发送子模块,用于通过数据通道,向嵌入式模块发送第二升级数据包。优选地,上述第一发送子模块还用于在预先设定的时间内未接收到第一升级数据应答包,或者第一升级数据应答包指示第一升级数据包发送失败的情况下,重复发送第一升级数据包;上述客户机还包括设置模块,用于在第一发送子模块重复发送的次数大于预先设定的发送次数的情况下,设置嵌入式模块的固件升级失败。通过本发明,采用软件方法实现在线升级,即通过客户机与嵌入式模块的数据通道直接对嵌入式模块进行固件升级,从而可以避免从客户机中取出嵌入式模块,并可以简便、可靠地实现固件升级,降低升级成本。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I是根据本发明实施例的安卓系统下的固件升级系统的示意图;图2是根据本发明实施例的安卓系统下的固件升级方法的流程图;图3是根据本发明优选实施例的创建升级数据通道的流程图;图4是根据本发明优选实施例的安卓系统下的固件升级方法的流程图;图5是根据本发明实施例的安卓系统下的固件升级系统的结构框图;图6是根据本发明优选实施例的安卓系统下的固件升级系统的结构框图一;图7是根据本发明优选实施例的安卓系统下的固件升级系统的结构框图二 ;图8是根据本发明优选实施例的安卓系统下的固件升级系统的示意图;图9是根据本发明优选实施例的实现应用程序界面层的流程图;图10是根据本发明优选实施例的应用程序界面的示意图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。图I是根据本发明实施例的安卓系统下的固件升级系统的示意图,如图I所示,嵌入式模块与客户机(AP)采用USB接口或者UART接口连接,AP与PC机可能通过USB接口或者以太网等任何现有的连接方式连接。其中,USB接口的优势在于传输速率高,升级过程快,间接的降低了升级风险;UART接口的优势在于硬件设计的成本低,应用开发比较简单,故有利于客户开发基于UART 口的应用。需要说明的是,本发明可以同时支持USB 口和UART口,优先选择USB 口 ;如果USB接口不存在,就采用UART接口。本发明提供了一种安卓系统下的固件升级方法,图2是根据本发明实施例的安卓系统下的固件升级方法的流程图,如图2所示,包括如下的步骤S202至步骤S204。
步骤S202,建立客户机与嵌入式模块之间的数据通道,其中数据通道用于对客户机中的嵌入式模块进行固件升级。步骤S204,通过数据通道,将升级数据写入嵌入式模块。相关技术中,对嵌入式模块进行固件升级通常是将其放入特殊的夹具设备上,通过该夹具设备的USB 口连接到PC机之后,再通过PC机上的升级软件,对该嵌入式模块进行升级。由于嵌入式模块难以从客户机中随时取出,因此该固件升级方法实现不便。本发明实施例中,采用软件方法实现在线升级,即通过客户机与嵌入式模块之间的数据通道直接对嵌入式模块进行固件升级,从而可以避免从客户机中取出嵌入式模块,并可以简便、可靠地实现固件升级,降低升级成本。优选地,通过数据通道,将升级数据写入嵌入式模块包括划分升级数据为第一升级数据包和第二升级数据包;通过数据通道,向嵌入式模块发送第一升级数据包;接收到来自嵌入式模块的第一升级数据应答包,其中第一升级数据应答包指示第一升级数据包发送成功;通过数据通道,向嵌入式模块发送第二升级数据包。优选地,在向嵌入式模块发送第一升级数据包之后,上述方法还包括如果在预先设定的时间内未接收到第一升级数据应答包,或者第一升级数据应答包指示第一升级数据包发送失败,则重复发送第一升级数据包,并在重复发送的次数大于预先设定的发送次数的情况下,设置嵌入式模块的固件升级失败。优选地,在通过数据通道,将升级数据写入嵌入式模块之前,上述方法还包括重启嵌入式模块;判断嵌入式模块是否进入下载模式;如果判断结果为否,则设置嵌入式模块的固件升级失败。优选地,在通过数据通道,将升级数据写入嵌入式模块之后,上述方法还包括复位嵌入式模块;判断嵌入式模块是否正常工作;如果判断结果为否,则设置嵌入式模块的固件升级失败。优选地,在设置嵌入式模块的固件升级失败之后,上述方法还包括将预先备份的嵌入式模块的数据写入嵌入式模块。优选地,在通过数据通道,将升级数据写入嵌入式模块之前,上述方法还包括接收用户的升级命令;确定与升级命令对应的升级数据。
下面将结合图3和图4对本发明实施例的实现过程进行详细描述。图3是根据本发明优选实施例的创建升级数据通道的流程图,如图3所示,包括如下的步骤S302至步骤S322。步骤S302,数据通道的创建过程是在模块设备驱动层实现的。步骤S304,模块上电。步骤S306,初始化模块设备的USB端口。步骤S308,判断客户机是否检测到新USB设备,如果是,则进行步骤S310,否则进行步骤S316。
步骤S310,客户机和模块间采用的是USB接口通道。客户机(Host侧)会发送一系列的请求(Resqusts)给模块(Device侧)所挂载到的hub,再由hub建立起一条连接客户机(Host侧)和模块(Device侧)之间的通信通道。然后客户机(Host侧)以控制传输(Control Transfer)的方式,通过端点O (Endpoint 0)对模块(Device侧)发送各种请求,模块(Device侧)收到客户机(Host侧)发来的请求后回复相应的信息,进行枚举(Enumerate)操作;步骤S312,Diag服务映射到USB 口上。步骤S314,数据通道建立成功,Diag 口用于控制端口、收发数据,并结束。 步骤S316,初始化UART端口。步骤S318,判断UART 口状态是否正常,如果是,则进行步骤S320,否则进行步骤S322。步骤S320,将Diag服务映射到UART 口上。步骤S322,数据通道创建失败,并结束。图4是根据本发明优选实施例的安卓系统下的固件升级方法的流程图,如图4所示,包括如下的步骤S402至步骤S432。步骤S402,传输及控制层通过Socket通信,接收升级启动指令。步骤S404,接收到升级启动指令后,传输及控制层调用驱动层提供Diag端口初始化函数,初始化Diag 口。步骤S406,判断Diag端口状态是否正常,如果是,则进行步骤S408,否则进行步骤S432。步骤S408,通过Diag指令使嵌入式模块设备进入Offline模式。步骤S410,重启嵌入式模块。步骤S412,通过Diag指令使嵌入式模块设备进入下载模式。步骤S414,判断是否进入下载模式,如果是,则进行步骤S416,否则进行步骤S432。步骤S416,通过Diag端口发送通过Diag指令备份NV数据,需要备份的NV项列可以指定。为了保证数据的安全,升级前需将NV数据备份到客户机(AP)的指定文件中。备份NV项列表和文件路径,在升级软件出厂时确定。步骤S418,分包读取应用界面层指定的升级数据文件,通过Diag端口写入模块设备指定的存储区域中。同时置升级标志为“正在升级中”。分包传输的次数与升级数据文件的大小有关。分包传输过程中,发送一个数据包后,必须等到收到模块侧反馈的“接收成功应答包”后,才能发送下一包数据。模块侧超时无应答,或者反馈“接收失败”,需要重发当前数据包。步骤S420,判断重发次数是否大于3,如果是,则进行步骤S422,否则进行步骤S432。步骤S422,判断升级数据是否全部写入模块设备,如果是,则进行步骤S424,否则返回步骤S418。
步骤S424,升级操作完成后,将升级标志置为“升级完成”,重新复位模块。步骤S426,判断嵌入式模块工作是否正常,如果是则进行步骤S428,否则进行步骤 S430。步骤S428,嵌入式模块固件升级成功,进入步骤S432。步骤S430,升级失败,恢复备份的NV数据。步骤S432,将模块升级结果上报给应用程序界面层,上层应用将升级结果显示在界面上。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明还提供了一种安卓系统下的固件升级系统,该安卓系统下的固件升级系统可以用于实现上述安卓系统下的固件升级方法。图5是根据本发明实施例的安卓系统下的固件升级系统的结构框图,如图5所示,包括客户机52和嵌入式模块54,其中客户机52包括第一建立模块522和写入模块524。下面对其结构进行详细描述。第一建立模块522,用于建立与嵌入式模块54之间的数据通道,其中数据通道用于对客户机中的嵌入式模块进行固件升级;写入模块524,连接至第一建立模块522,用于通过第一建立模块522建立的数据通道,将升级数据写入嵌入式模块。优选地,写入模块524包括划分子模块5242、第一发送子模块5244、接收子模块5246和第二发送子模块5248。图6是根据本发明优选实施例的安卓系统下的固件升级系统的结构框图一,下面结合图6对其结构进行详细描述。划分子模块5242,用于划分升级数据为第一升级数据包和第二升级数据包;第一发送子模块5244,连接至划分子模块5242,用于向嵌入式模块发送划分子模块5242划分的第一升级数据包;接收子模块5246,用于接收来自嵌入式模块的第一升级数据应答包,其中第一升级数据应答包指示第一升级数据包发送成功;第二发送子模块5248,连接至接收子模块5246和划分子模块5242,用于在接收子模块5246接收到指示第一升级数据包发送成功的第一升级数据应答包之后,向嵌入式模块发送划分子模块5242划分的第二升级数据包。优选地,上述第一发送子模块5244还用于在预先设定的时间内未接收到第一升级数据应答包,或者第一升级数据应答包指示第一升级数据包发送失败的情况下,重复发送第一升级数据包;上述客户机52还包括设置模块526,用于在第一发送子模块5244重复发送的次数大于预先设定的发送次数的情况下,设置嵌入式模块的固件升级失败。需要说明的是,装置实施例中描述的安卓系统下的固件升级系统对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
下面将结合实例对本发明实施例的实现过程进行详细描述。图8是根据本发明优选实施例的安卓系统下的固件升级系统的示意图,如图8所示,阴影部分是本发明的主要发明内容。本发明采用三层的软件体系结构,分别是数据通道层、数据传输控制层、应用程序界面层。数据通道层在整个软件构架中处于最底层,具体的实现嵌入模块的设备驱动软件,处于Android系统的Linux Kernel层。数据传输控制层是中间层,负责对数据的传输、控制及各种异常处理,该层与下面的“数据通道层”间通过函数调用进行通信。应用程序界面层是软件构架的最上层,采用java控件实现用户接口,采用socket通信将用户的事件传给下一层“数据传输控制层”。各层的主要任务如下数据通道层,要建立固件升级所需的底层数据通路。包括枚举USB设备、Android系统下USB 口 /UART 口的正确识别。本方法中嵌入式模块采用USB接口 /UART 口和客户机(AP)物理连接。如果物理接口采用USB 口,那么需要提供Android系统下模块产品口驱动软件,使系统能够正确识别USB 口,并枚举出模块产品的所有端口 -.AT 口、Modem 口和Diag 口。如果物理接口采用UART 口,那么需要提供将UART 口映射为Diag 口。由于UART是标准串口,可以直接访问,所以只要将UART 口直接映射为AT 口或者Diag 口即可,同一时刻UART口只能映射为一个端口,要么是AT 口要么是Diag 口,二者间可以通过命令进行切换;数据传输控制层,主要工作包括实时监测模块设备的工作状态、负责将升级数写入模块设备中、处理整个过程的各种异常处理,保证固件升级过程的安全可靠,及时无法正常升级,也要保证旧版本的安全。在升级不成功是,无论何种原因引起的,都要保证使用旧版本的模块设备仍可正常使用。升级过程中涉及到的操作是接收升级启动指令、升级状态上报、串口的读/写操作、异常控制处理、升级失败回退机制;应用程序界面层,该层实现是升级软件的用户界面。除了要为使用者提供友好、方便的升级界面外,用户界面还是升级软件启动入口、负责提供用户界面管理、定时刷新显示模块设备状态、发起启动升级指令、实时监测/显示升级过程状态、及时弹出异常信息提示框、固件升级软件安装及卸载。在客户机(AP)的Android系统上,安装模块产品的固件升级软件,运行此固件升级软件,可以对模块产品的固件版本进行升级;由于相关技术中的方法是将模块产品从AP中取出,再放入特殊的夹具设备上进行升级,因此可操作性不高。本发明采用软件在线升级的方法,客户机(AP)无需增加额外的硬件装置(升级通道控制电路、外部USB或UART接口器件),从而降低了客户机的硬件设计成本。同时,由于没有了额外的硬件装置,降低了客户机(AP)系统的复杂度,从而客户机(AP)可靠性也相对提高。下面结合对应用程序界面层和传输及控制层的具体实现作进一步的详细描述。应用程序界面层和传输及控制层的具体实现是2个进程实体。应用程序界面层用Java语言实现进程包含2个线程界面主线程和客户端数据接收线程。界面主线程的任务是提供用户使用界面、创建客户端Socket链路和客户端数据接收线程、提供升级启动功能、指定升级版本数据文件路径、实时显示升级过程的状态、正确显示升级结果。客户端数据接收线程的主要任务是实时监控socket链路,收到新的数据时,将数据转发给界面主线程进行处理;传输及控制层用C语言实现进程也包含2个线程升级主线程和服务器端数据接收线程。升级主线程的主要任务升级端口的控制管理、通过升级端口将升级数据写入模块设备、实时上报升级状态、升级结束后上报结果给应用程序界面层。服务器端数据接收线程的主要任务实时监控socket链路,收到新的数据时,将数据转发给升级主线程进行处理;本方案中,两个进程间的通信,采用本地Socket连接。两个进程间传递的数据包括用户的升级指令、升级数据、升级过程中的状态信息、以及升级结果信息。为了提高传输效率,Socket连接采用“长连接”方式,Socket连接创建成功后,就一直保持连接状态,直至程序运行结束。在此期间,随时可以通过Socket链接收发数据;Socket客户端的实现处于应用程序界面层,在确定了服务器端主机名和端口后,发送“连接请求”到服务器,并等待服务器的回馈信息。收到服务器端允许建链的“连接请求响应”后,建立与服务器端的Socket连接;Socket服务器端在放在传输及控制层实现,负责监听网络中的连接请求,当检测到来自客户端的“连接请求”时,向客户端发送“连接请求响应”,建立与客户端的Socket连 接;为了及时接收数据,创建2个线程,分别为Socket服务器端的接收线程(即服务器端数据接收线程)和Socket客户端的接收线程(即客户端数据接收线程)。这两个线程可以定时检测Socket链路上是否有新的数据。定时器的设置,可根据客户机(AP)的处理能力设置,通常应该在0. I秒-2秒范围内。这个值可以在应用程序出厂时进行设置,缺省设为I秒。下面结合图9和图10对升级应用程序界面的具体实现作进一步的详细描述。本方案为单路升级工具解决方案,升级工具和升级版本包是分开的,升级工具在客户机(AP)上安装成功后,就可以支持不同版本的升级包数据。应用程序界面的实现可参见附图10,具体实施时,用户界面应该具备示意图中显示的部件。图9是根据本发明优选实施例的实现应用程序界面层的流程图,如图9所示,包括如下的步骤S902至步骤S926。步骤S902,升级工具和升级版本包是分开的,应用程序界面的实现可参见附图10。步骤S904,升级工具作为Android系统的一个应用程序,预装在客户机(AP)上。步骤S906,将升级版本包拷贝到客户机Android系统的指定目录下。步骤S908,运行固件升级应用程序,“ Start ”按钮是禁灰态。步骤S910,调用驱动层提供的diag 口状态函数,获取Diag端口状态信息,在界面上显示端口状态。步骤S912,判断Diag 口状态是否正常,如果是,则进行步骤S914,否则进行步骤S924。步骤S914,点击“Software Version”按钮指定待升级的固件版本包文件。步骤S916,点击“Start”按钮,启动升级流程。“Start”及“Exit”按钮都被禁灰,应用程序界面层将“启动升级”指令,通过socket包下传给传输及控制层。同时传递的参数有固件升级版本包的文件路径。步骤S918,传输及控制层收到“启动升级”指令后,进行相应的升级操作,详细实现流程见步骤3-1-3-12 ;升级过程中,传输及控制层实时上报已成功写入模块的数据字节数,每10秒上报I次,直至升级结束。应用程序界面层也会接收来自传输及控制层的反馈信息,并实时显示升级过程状态。步骤S920,判断升级操作是否正常结束,如果是,则进行步骤S922,否则进行步骤S924。步骤S922,弹出信息框,提示用户升级操作成功,然后进行步骤S926。步骤S924,弹出告警框,提示用户升级操作失败,并给出失败原因。步骤S926,“Start”及“Exit”按钮恢复有效状态。综上所述,根据本发明的上述实施例,提供了一种安卓系统下的固件升级方法及系统。通过本发明,采用软件方法实现在线升级,即通过客户机与嵌入式模块之间的数据通道直接对嵌入式模块进行固件升级,从而可以避免从客户机中取出嵌入式模块,并可以简便、可靠地实现固件升级,降低升级成本。 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种安卓系统下的固件升级方法,其特征在于,包括 建立客户机与嵌入式模块之间的数据通道,其中所述数据通道用于对所述客户机中的嵌入式模块进行固件升级; 通过所述数据通道,将升级数据写入所述嵌入式模块。
2.根据权利要求I所述的方法,其特征在于,通过所述数据通道,将升级数据写入所述嵌入式模块包括 划分所述升级数据为第一升级数据包和第二升级数据包; 通过所述数据通道,向所述嵌入式模块发送所述第一升级数据包; 接收到来自所述嵌入式模块的第一升级数据应答包,其中所述第一升级数据应答包指示所述第一升级数据包发送成功; 通过所述数据通道,向所述嵌入式模块发送所述第二升级数据包。
3.根据权利要求2所述的方法,其特征在于,在向所述嵌入式模块发送所述第一升级数据包之后,所述方法还包括 如果在预先设定的时间内未接收到所述第一升级数据应答包,或者所述第一升级数据应答包指示所述第一升级数据包发送失败,则重复发送所述第一升级数据包,并在所述重复发送的次数大于预先设定的发送次数的情况下,设置所述嵌入式模块的固件升级失败。
4.根据权利要求I所述的方法,其特征在于,在通过所述数据通道,将升级数据写入所述嵌入式模块之前,所述方法还包括 重启所述嵌入式模块; 判断所述嵌入式模块是否进入下载模式; 如果判断结果为否,则设置所述嵌入式模块的固件升级失败。
5.根据权利要求I所述的方法,其特征在于,在通过所述数据通道,将升级数据写入所述嵌入式模块之后,所述方法还包括 复位所述嵌入式模块; 判断所述嵌入式模块是否正常工作; 如果判断结果为否,则设置所述嵌入式模块的固件升级失败。
6.根据权利要求3至5中任一项所述的方法,其特征在于,在设置所述嵌入式模块的固件升级失败之后,所述方法还包括将预先备份的所述嵌入式模块的数据写入所述嵌入式模块。
7.根据权利要求I所述的方法,其特征在于,在通过所述数据通道,将升级数据写入所述嵌入式模块之前,所述方法还包括 接收用户的升级命令; 确定与所述升级命令对应的所述升级数据。
8.一种安卓系统下的固件升级系统,其特征在于,包括客户机和嵌入式模块,其中所述客户机包括 第一建立模块,用于建立与嵌入式模块之间的数据通道,其中所述数据通道用于对所述客户机中的嵌入式模块进行固件升级; 写入模块,用于通过所述数据通道,将所述升级数据写入所述嵌入式模块。
9.根据权利要求8所述的系统,其特征在于,所述写入模块包括划分子模块,用于划分所述升级数据为第一升级数据包和第二升级数据包; 第一发送子模块,用于通过所述数据通道,向所述嵌入式模块发送所述第一升级数据包; 接收子模块,用于接收来自所述嵌入式模块的第一升级数据应答包,其中所述第一升级数据应答包指示所述第一升级数据包发送成功; 第二发送子模块,用于通过所述数据通道,向所述嵌入式模块发送所述第二升级数据包。
10.根据权利要求9所述的系统,其特征在于, 所述第一发送子模块还用于在预先设定的时间内未接收到所述第一升级数据应答包,或者所述第一升级数据应答包指示所述第一升级数据包发送失败的情况下,重复发送所述第一升级数据包; 所述客户机还包括设置模块,用于在所述第一发送子模块重复发送的次数大于预先设定的发送次数的情况下,设置所述嵌入式模块的固件升级失败。
全文摘要
本发明公开了一种安卓系统下的固件升级方法及系统,该方法包括建立客户机与嵌入式模块的数据通道,其中数据通道用于对客户机中的嵌入式模块进行固件升级;通过数据通道,将升级数据写入嵌入式模块。本发明可以避免从客户机中取出嵌入式模块,并可以简便、可靠地实现固件升级,降低升级成本。
文档编号G06F9/445GK102890636SQ20111020397
公开日2013年1月23日 申请日期2011年7月20日 优先权日2011年7月20日
发明者陈颖, 李晓锋, 康华, 胡景龙 申请人:中兴通讯股份有限公司