CN103713927A - 一种刷机工具及通过刷机工具刷机的方法 - Google Patents
一种刷机工具及通过刷机工具刷机的方法 Download PDFInfo
- Publication number
- CN103713927A CN103713927A CN201310740715.6A CN201310740715A CN103713927A CN 103713927 A CN103713927 A CN 103713927A CN 201310740715 A CN201310740715 A CN 201310740715A CN 103713927 A CN103713927 A CN 103713927A
- Authority
- CN
- China
- Prior art keywords
- plug
- brush machine
- firmware
- lua
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Harvester Elements (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种刷机工具及通过刷机工具刷机的方法,刷机工具包括外壳部件和插件,所述外壳部件包括一lua解析器,并封装有系统接口;插件包括有固件包,所述固件包包括固件映射文件和刷机插件,所述刷机插件通过lua脚本语言实现;本发明使不同平台下所提供的不同外壳程序共用同一份插件源码,且插件源码只需要编译一次即可将固件映射文件中的内容刷至目标设备。所述方法通过所述刷机工具进行,由lua解析器依次调用不同的系统接口将固件映射文件中的内容刷至目标设备,刷机插件可以跨平台使用,提高兼容性,源码程序只需要一次编译即可多处运行,减少多次编译的繁琐,提升刷机的效率。
Description
技术领域
本发明涉及软件升级领域,特别是一种刷机工具及通过刷机工具刷机的方法。
背景技术
嵌入式产品比如手机、平板,在出厂之前,需要烧录一个原厂固件(此处的固件(Firmware)是指写入EROM或EPROM(可编程只读存储器)中的程序,通俗的理解就是“固化的软件”),或者在它们的使用过程中,为了更新某个功能,需要更换一个新的固件,这样就需要刷机工具的支持。而这些刷机工具的使用者可能使用了不同的操作系统(比如linux和windows),这样一来,就需要对刷机工具和固件包进行更新和维护。
目前针对不同操作平台,一般有以下两种方式来实现刷机软件:
1. 提供两套独立的刷机工具。
2. 刷机工具的实现使用外壳程序+插件的方式,其中,外壳程序封装操作系统相关部分并且能调用插件完成相关任务;插件程序封装刷机功能相关部分。
第一种方法需要维护两份源码,影响工作效率;第二种方法因为需要维护的源码较少,并且更新插件也比较方便,但是每次更新时,插件部分源码还是需要在不同的平台下编译两次,整个过程比较繁琐。
为此,需要一种跨操作平台刷机工具的实现方法,统一处理不同操作平台下刷机工具和固件包的维护和更新,简化不同平台的维护和更新流程。
发明内容
为解决上述问题,本发明的目的在于提供一种刷机工具及通过刷机工具刷机的方法,使不同平台下所提供的不同外壳程序共用同一份插件源码,且插件源码只需要编译一次,减少工作流程,提升刷机效率。
本发明解决其问题所采用的技术方案是:
一种刷机工具,包括外壳部件和插件,所述外壳部件包括一lua解析器,并封装有系统接口;所述插件包括固件包,所述固件包包括固件映射文件和刷机插件,所述刷机插件通过lua脚本语言实现。
所述lua解析器通过系统接口调用并执行刷机插件中的执行文件,将固件映射文件中的内容刷至目标设备。
所述将固件映射文件中的内容刷至目标设备时,刷机插件根据刷机需求的变化以更新固件包的方式进行更新。
所述lua解析器通过系统接口调用并执行刷机插件中的执行文件时,依次调用Init( para)、Do_Task(para)、Exit()此三个系统接口完成操作,其中,Init( para)接口用于初始化全局参数并申请调用资源;Do_Task(para)接口用于调用文件IO接口,从固件映射文件中取出分区数据,还用于调用USB IO接口,把分区数据刷写到目标设备;Exit()接口则用于释放申请的资源。
所述lua解析器被静态编译到外壳部件中。
一种通过刷机工具刷机的方法,所述刷机工具包括外壳部件和插件,所述外壳部件包括lua解析器,并封装有系统接口,所述方法包括:
所述外壳部件通过lua解析器获取执行环境;
lua解析器向插件提供调用的系统接口;
通过系统接口加载插件中的执行文件;
执行执行文件,将插件中的相关内容刷至目标设备。
所述方法还包括:
所述插件根据刷机需求的变化自动更新。
所述插件包括固件包,所述固件包包括固件映射文件和刷机插件,所述刷机插件包括所述执行文件,执行所述执行文件时,将固件映射文件中的分区文件刷至目标设备。
所述系统接口包括Init( para)、Do_Task(para)、Exit()接口,所述lua解析器通过依次调用Init( para)、Do_Task(para)、Exit()接口加载插件中的执行文件。
本发明的有益效果是:
本发明采用一种刷机工具及通过刷机工具刷机的方法,刷机工具可以跨平台使用,提高兼容性,源码程序只需要一次编译即可多处运行,减少多次编译的繁琐,提升刷机的效率。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明所述刷机工具的结构组成框图。
具体实施方式
本发明提供的刷机工具,参照图1所示,包括外壳部件和插件,所述外壳部件包括一lua解析器,并封装有系统接口;
所述插件包括有固件包,所述固件包包括固件映射文件和刷机插件,所述刷机插件通过lua脚本语言实现。
所述lua解析器通过系统接口调用并执行刷机插件中的执行文件,将固件映射文件中的内容刷至目标设备。
Lua源代码是开源的,下载lua源代码编译后得到一个lua库文件,也就是lua解释器,该库文件中提供了lua的所有接口,并且该库文件静态编译到了外壳部件中。
整个更新过程中,由于插件通过lua脚本语言实现,插件的编译只需要一次即可,省去多次编译的重复流程。
系统接口包括Init( para)、Do_Task(para)、Exit(),在执行刷机插件中的执行文件时,lua解析器通过系统接口调用并执行刷机插件中的执行文件时,依次调用Init( para)、Do_Task(para)、Exit()此三个系统接口完成操作,其中,Init( para)接口用于初始化全局参数并申请调用资源;Do_Task(para)接口用于调用文件IO接口,从固件映射文件中取出分区数据,还用于调用USB IO接口,把分区数据刷写到目标设备;Exit()接口则用于释放申请的资源。
固件映射文件包括不同的分区映射,只有把这些分区都正确的映射到目标设备上,才能完成刷机过程。以android刷机固件包为例,整个固件映射文件包括boot,system,data,misc,cache,recovery等分区映射,需要将这些分区正确映射到目标设备。
对于不同的操作系统,刷机工具的外壳部件一般不需要更新,但由于更新时不同的系统需要匹配不同的执行文件,因此,需要对固件包进行更新,而固件包在更新时,其中的刷机插件根据刷机需求的变化以更新固件包的形式进行更新,使用者不会感觉到更新,给用户带来方便。
本发明还提供了一种通过刷机工具刷机的方法,所述刷机工具包括外壳部件和插件,所述外壳部件包括lua解析器,并封装有系统接口,所述方法包括:
所述外壳部件通过lua解析器获取执行环境;
lua解析器向插件提供调用的系统接口;
通过系统接口加载插件中的执行文件;
执行执行文件,将插件中的相关内容刷至目标设备。
所述插件包括固件包,所述固件包包括固件映射文件和刷机插件,所述刷机插件包括所述执行文件,执行所述执行文件时,将固件映射文件中的分区文件刷至目标设备。
所述系统接口包括Init( para)、Do_Task(para)、Exit()接口,所述lua解析器通过依次调用Init( para)、Do_Task(para)、Exit()接口加载插件中的执行文件。
刷机工具在刷机的同时,对于不同的操作系统,插件会根据刷机需求的变化自动更新,主要是将插件中的固件包更新。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
Claims (8)
1.一种刷机工具,包括外壳部件和插件,其特征在于:
所述外壳部件包括一lua解析器,并封装有系统接口;
所述插件包括有固件包,所述固件包包括固件映射文件和刷机插件,所述刷机插件通过lua脚本语言实现;
所述lua解析器通过系统接口调用并执行刷机插件中的执行文件,将固件映射文件中的内容刷至目标设备。
2.根据权利要求1所述的刷机工具,其特征在于,所述将固件映射文件中的内容刷至目标设备时,刷机插件根据刷机需求的变化以更新固件包的方式进行更新。
3.根据权利要求1所述的刷机工具,其特征在于,所述lua解析器通过系统接口调用并执行刷机插件中的执行文件时,依次调用Init( para)、Do_Task(para)、Exit()此三个系统接口完成操作,其中,Init( para)接口用于初始化全局参数并申请调用资源;Do_Task(para)接口用于调用文件IO接口,从固件映射文件中取出分区数据,还用于调用USB IO接口,把分区数据刷写到目标设备;Exit()接口则用于释放申请的资源。
4.根据权利要求1至3任一所述的刷机工具,其特征在于:
所述lua解析器被静态编译到外壳部件中。
5.一种通过刷机工具刷机的方法,所述刷机工具包括外壳部件和插件,其特征在于,所述外壳部件包括lua解析器,并封装有系统接口,所述方法包括:
所述外壳部件通过lua解析器获取执行环境;
lua解析器向插件提供调用的系统接口;
通过系统接口加载插件中的执行文件;
执行执行文件,将插件中的相关内容刷至目标设备。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述插件根据刷机需求的变化自动更新。
7.根据权利要求5或6所述的方法,其特征在于,所述插件包括固件包,所述固件包包括固件映射文件和刷机插件,所述刷机插件包括所述执行文件,执行所述执行文件时,将固件映射文件中的分区文件刷至目标设备。
8.根据权利要求7所述的方法,其特征在于,所述系统接口包括Init( para)、Do_Task(para)、Exit()接口,所述lua解析器通过依次调用Init( para)、Do_Task(para)、Exit()接口加载插件中的执行文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740715.6A CN103713927A (zh) | 2013-12-27 | 2013-12-27 | 一种刷机工具及通过刷机工具刷机的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740715.6A CN103713927A (zh) | 2013-12-27 | 2013-12-27 | 一种刷机工具及通过刷机工具刷机的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103713927A true CN103713927A (zh) | 2014-04-09 |
Family
ID=50406930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310740715.6A Pending CN103713927A (zh) | 2013-12-27 | 2013-12-27 | 一种刷机工具及通过刷机工具刷机的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103713927A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846449A (zh) * | 2017-09-28 | 2018-03-27 | 武汉斗鱼网络科技有限公司 | 调用系统工具的方法、装置、可读存储介质及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622302B1 (en) * | 2000-06-30 | 2003-09-16 | Lsi Logic Corporation | Methods and apparatus for dynamic version transition of management applications and attached subsystems |
CN101477471A (zh) * | 2009-01-07 | 2009-07-08 | 杭州海康威视数字技术股份有限公司 | 一种嵌入式系统固件在线升级方法 |
CN103399761A (zh) * | 2013-07-22 | 2013-11-20 | 珠海全志科技股份有限公司 | 固件烧录方法及其装置 |
-
2013
- 2013-12-27 CN CN201310740715.6A patent/CN103713927A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622302B1 (en) * | 2000-06-30 | 2003-09-16 | Lsi Logic Corporation | Methods and apparatus for dynamic version transition of management applications and attached subsystems |
CN101477471A (zh) * | 2009-01-07 | 2009-07-08 | 杭州海康威视数字技术股份有限公司 | 一种嵌入式系统固件在线升级方法 |
CN103399761A (zh) * | 2013-07-22 | 2013-11-20 | 珠海全志科技股份有限公司 | 固件烧录方法及其装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846449A (zh) * | 2017-09-28 | 2018-03-27 | 武汉斗鱼网络科技有限公司 | 调用系统工具的方法、装置、可读存储介质及设备 |
CN107846449B (zh) * | 2017-09-28 | 2019-01-29 | 武汉斗鱼网络科技有限公司 | 调用系统工具的方法、装置、可读存储介质及设备 |
WO2019061636A1 (zh) * | 2017-09-28 | 2019-04-04 | 武汉斗鱼网络科技有限公司 | 调用系统工具的方法、装置、可读存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491695B (zh) | 一种集成安卓应用的增量更新方法 | |
CN108733988B (zh) | 安卓平台上可执行程序的保护方法 | |
CN107291480B (zh) | 一种函数调用方法及装置 | |
CN102289378B (zh) | 自动生成应用程序的方法 | |
US9047101B2 (en) | Method for compiling an intermediate code of an application | |
CN101668283A (zh) | 一种手机嵌入式系统中动态加载的方法 | |
CN109739508B (zh) | 源代码编译方法、装置、系统及存储介质 | |
CN101957766B (zh) | 一种字节码织入方法、装置及系统 | |
CN100492387C (zh) | 基于Keil C51的软件保护开发的方法和系统 | |
CN105975816A (zh) | 移动终端下基于虚拟技术的代码保护方法及系统 | |
CN103473097A (zh) | Android系统固件升级系统、装置及升级方法 | |
CN109598107A (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
CN108846264A (zh) | 代码加固方法、装置、智能终端和计算机可读存储介质 | |
CN103473168A (zh) | 一种热点程序的统计方法 | |
CN115390945A (zh) | 应用程序的运行方法、装置、电子设备及可读存储介质 | |
CN109960511B (zh) | 基于虚拟化技术的动态库下发方法、存储介质及智能终端 | |
US10452364B2 (en) | Method and system for preparing code to be executed by programmable control devices | |
CN103713927A (zh) | 一种刷机工具及通过刷机工具刷机的方法 | |
CN107092472B (zh) | 一种动态发布方法及设备 | |
CN110366038B (zh) | 多版本软件设备兼容多种技术状态的方法 | |
CN103631585A (zh) | 一种用于开发应用程序的方法及系统 | |
US10956138B1 (en) | Automatic configuration of an execution environment | |
CN111538506A (zh) | 精简可执行文件的方法及系统 | |
CN107463423B (zh) | 依赖包工具的验证方法、存储介质、电子设备及系统 | |
CN116243923A (zh) | 一种小程序处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140409 |