CN112711430A - 基于adb的非网络设备升级方法、系统及可读存储介质 - Google Patents
基于adb的非网络设备升级方法、系统及可读存储介质 Download PDFInfo
- Publication number
- CN112711430A CN112711430A CN202011586439.9A CN202011586439A CN112711430A CN 112711430 A CN112711430 A CN 112711430A CN 202011586439 A CN202011586439 A CN 202011586439A CN 112711430 A CN112711430 A CN 112711430A
- Authority
- CN
- China
- Prior art keywords
- adb
- android
- network
- file
- network equipment
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于ADB的非网络设备升级方法、固件升级系统及计算机可读存储介质,该方法包括:安卓设备基于USB线与待升级的非网络设备建立硬件线路连接,其中安卓设备作为ADB Server,非网络设备作为ADB Client;安卓设备基于APK从网络中下载待升级的非网络设备适配的固件升级包;安卓设备将固件升级包推送至作为ADB Client的非网络设备,若推送前后固件升级包的信息摘要相同,则安卓设备解压固件升级包获取解压文件,并将解压文件通过USB线全部推送至非网络设备;非网络设备将解压文件中本地目录存在同类型文件的第一文件替换对应本地同类文件,将解压文件中本地目录不存在同类型文件的第二文件在本地新建和存储。本申请降低了非网络设备固件升级的难度和成本。
Description
技术领域
本申请涉及固件升级技术领域,尤其涉及一种基于ADB的非网络设备升级方法、固件升级系统及计算机可读存储介质。
背景技术
随着电子产品更新换代越来越快,对于一些没有网络功能的电子产品(如非网络音响),自从出厂之后固件就写死了,进而无法享受新的功能,另外一方面固件升级的渠道非常有限,要不就是只有返厂,要不就是把购买新一代的产品,用户体验差。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请实施例的主要目的在于提供一种基于ADB的非网络设备升级方法、固件升级系统及计算机可读存储介质,旨在解决非网络设备固件升级复杂、代价大的技术问题。
为实现上述目的,本申请实施例提供一种基于ADB的非网络设备升级方法,所述基于安卓调试桥ADB的非网络设备升级方法包括:
安卓设备从升级平台下载用于固件升级的安卓应用程序包APK;
安卓设备基于USB线与待升级的非网络设备建立硬件线路连接,其中安卓设备作为ADB Server,非网络设备作为ADB Client;
安卓设备检测本地USB接口的已连接设备链表中是否存在ADB设备,若所述已连接设备链表中存在ADB设备,则安卓设备基于APK从网络中下载待升级的非网络设备适配的固件升级包;
安卓设备将固件升级包推送至作为ADB Client的非网络设备,判断推送前后固件升级包的信息摘要是否相同;
若推送前后固件升级包的信息摘要相同,则安卓设备解压固件升级包获取解压文件,并将解压文件通过USB线全部推送至非网络设备;
非网络设备将所述解压文件中本地目录存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地目录不存在同类型文件的第二文件在本地新建和存储。
可选地,在所述安卓设备解压固件升级包获取解压文件的步骤之前,还包括:
安卓设备向非网络设备发送固件升级请求;
非网络设备接收到固件升级请求时,判断本地ADB是否为授权ADB,并在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求。
可选地,所述判断本地ADB是否为授权ADB的步骤包括:
非网络设备对接收的固件升级请求进行解析,获取安卓设备发送的签名报文;
非网络设备通过预存的ADB公钥对所述签名报文进行解密,得到解密报文;
非网络设备比对所述解密报文与本地的令牌,若解密报文与非网络设备本地的令牌相同,则判定非网络设备本地ADB是授权ADB;若解密报文与非网络设备本地的令牌不相同,则判定非网络设备本地ADB不是授权ADB。
可选地,所述安卓设备基于USB线与待升级的非网络设备建立硬件线路连接的步骤之后包括:
非网络设备通过USB线向安卓设备发送第一送检测命令,若在预设时长内没有接收到安卓设备基于第一检测命令反馈的ADB服务可用响应,则非网络设备创建包含自己设备标识的缺省已连接设备链表,并将缺省已连接设备链表传输至安卓设备,以供安卓设备成为ADB Server。
可选地,所述安卓设备基于USB线与待升级的非网络设备建立硬件线路连接的步骤之后包括:
安卓设备通过USB线向非网络设备发送第二检测命令,若在预设时长内没有接收到非网络设备基于第二检测命令反馈的ADB服务可用响应,则安卓设备将预存的新恢复镜像覆盖刷新至非网络设备的恢复分区原恢复镜像,触发非网络设备载入新恢复镜像,以控制非网络设备进入新恢复模式、恢复ADB服务。
可选地,新恢复镜像相对原恢复镜像,新恢复镜像修改了init.cr文件和镜像initrd宇段中default.prop文件,其中,通过升级default.prop文件开启ADB服务,修改init.rc文件赋予su可执行性,再通过开启Shell,执行su未获得系统ROOT权限。
可选地,所述非网络设备将所述解压文件中本地存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地不存在同类型文件的第二文件在本地新建和存储的步骤之后,包括:
在检测到非网络设备基于解压文件进行固件升级完毕时,非网络设备删除接收的压固件升级包解压文件以及固件升级产生的相关文档;非网络设备退出升级脚本。
为实现上述目的,本发明还提供一种基于ADB的固件升级系统,所述固件升级系统包括安卓设备和待固件升级的非网络设备,
安装设备用于:
从升级平台下载用于固件升级的安卓应用程序包APK;
基于USB线与待升级的非网络设备建立硬件线路连接,其中安卓设备作为ADBServer,非网络设备作为ADB Client;
检测本地USB接口的已连接设备链表中是否存在ADB设备,若所述已连接设备链表中存在ADB设备,则基于APK从网络中下载待升级的非网络设备适配的固件升级包;
将固件升级包推送至作为ADB Client的非网络设备,判断推送前后固件升级包的信息摘要是否相同;
若推送前后固件升级包的信息摘要相同,则解压固件升级包获取解压文件,并将解压文件通过USB线全部推送至非网络设备;
所述非网络设备,用于将所述解压文件中本地目录存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地目录不存在同类型文件的第二文件在本地新建和存储。
可选地,在所述安卓设备解压固件升级包获取解压文件的步骤之前,安卓设备向非网络设备发送固件升级请求;
非网络设备接收到固件升级请求时,判断本地ADB是否为授权ADB,并在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求。
为实现上述目的,本发明还提供一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于ADB的非网络设备升级方法的步骤。
本申请实施例中,非网络设备通过USB线与安卓设备建立物理线路连接,安卓设备安卓有永雨固件升级的APK,安卓设备作为ADB Server与作为ADB Client的非网络设备基于USB先进行交互,然后安卓设备在已连接设备链表中存在ADB设备且向非网络设备推送固件升级包前后,安卓设备在估计升级包的信息摘要相同时,通过USB线向非网络设备推送固件升级包的解压文件,以供非网络设备基于解压文件自行进行固件升级,从而提供了一种仅需安卓设备USB线连接非网络设备,通过ADB即可完成非网络设备的固件升级,无需将非网络设备返厂升级,降低了非网络设备固件升级的难度和成本。
附图说明
图1为本申请基于ADB的非网络设备升级方法一实施例的流程示意图;
图2为本申请基于ADB的非网络设备升级方法另一实施例的流程示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
在本申请中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
另外,在本申请中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
固件(FirmWare)是一个电子设备系统最基础、最底层工作的软件,比如计算机主板上的基本输入/输出系统BIOS(Basic Input/output System),一般存储于电子设备中的电可擦除只读存储器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,可以通过特定的刷新程序进行升级的程序。
随着技术的发展日新月异,现在的软硬件的升级换代频率越来越快,对于像手机、平板电脑、电子阅读器等这类便携式电子系统上某些芯片在整机情况下,会时不时需要对其固件进行修改或升级,即所谓的刷机。但是,有些电子设备不具备连接互联网功能,即非网络设备(如音响)无法自行连接云平台下载安装包以进行固件升级,非网络设备的固件升级一般只能返厂,估计升级途径非常有限,升级成本高且不方便,严重影响用户对非网络设备新功能的享受。
基于以上行业痛点,本申请提出一种基于ADB的非网络设备升级方法,参照图1,所述基于ADB的非网络设备升级方法包括:
步骤S10,安卓设备从升级平台下载用于固件升级的安卓应用程序包APK;
ADB全称Android Debug Bridge,是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备。ADB是一个客户端-服务器端程序,其中客户端一般外联的电脑或其他设备端,服务器端是android(安卓)设备。
安卓设备一般作为ADB的服务端,非网络设备(如非智能音响)一般作为ADB的客户端。安卓设备可先从非网络设备生产厂商的产品升级平台下载引导非网络设备进行固件升级的安卓应用程序包APK,安卓设备下载固件升级的APK后,可检测与其连接的非网络设备的设备标识,确定非网络设备所适配的固件升级包。
步骤S20,安卓设备基于USB线与待升级的非网络设备建立硬件线路连接,其中安卓设备作为ADB Server,非网络设备作为ADB Client;
有非网络设备没有网络模块,但非网络设备一般会设置USB(Universal SerialBus,通用串行总线)接口,安卓设备可基于USB线与需要进行固件升级的非网络设备建立硬件线路连接,从而安卓设备与非网络设备之间可通过USB线进行硬件连接和通信,从而安卓设备和非网络设备可进行交互。
安卓设备可作为ADB Server,ADB Server具体为运行在安卓设备上的后台程序,可用于检测安卓设备的USB接口何时连接或者移除设备,ADB Server维护着一个“已连接设备链表”,并为每一个与安卓设备建立关联关系的设备标记一个设备状态,设备状态可包括offline(未连线状态)、bootloader(启动装载状态),recovery(恢复模式)、online(连接状态),ADB Server会在四个状态中进行循环和等待,以协调ADB Client和ADB Server之间的通信。
步骤S30,安卓设备检测本地USB接口的已连接设备链表中是否存在ADB设备,若所述已连接设备链表中存在ADB设备,则安卓设备基于APK从网络中下载待升级的非网络设备适配的固件升级包;
作为ADB Server的安卓设备为所有连接的ADB Client提供服务,当非网络设备通过USB接口连接到安卓设备上时,ADB Server为连接上的非网络设备对应设备状态标记为online,否则为offline,此时表明ADB Server发现了一个新设备,即判定已连接设备链表中存在ADB设备,安卓设备通过其用于固件升级的APK从网络中下载待升级的非网络设备适配的固件升级包。
步骤S40,安卓设备将固件升级包推送至作为ADB Client的非网络设备,判断推送前后固件升级包的信息摘要是否相同;
安卓设备在首次获取非网络设备的固件升级包时,通过信息摘要算法确定固件升级包的第一信息摘要;然后安卓设备将固件升级包推送中作为ADB Client的非网络设备后,再次信息摘要算法确定固件升级包的第二信息摘要,判断第一信息摘要和第二信息摘要是否相同,其中信息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
步骤S50,若推送前后固件升级包的信息摘要相同,则安卓设备解压固件升级包获取解压文件,并将解压文件通过USB线全部推送至非网络设备;
若第一信息摘要和第二信息摘要相同,则判定推送前后固件升级包的信息摘要相同,表明固件升级包传输过程中信息完整的,不存在篡改的问题,安装设备解压固件升级包获取解压形成的解压文件,此时没有文件传输丢失或被篡改的风险,此时将解压文件通过USB线全部推送至非网络设备。
步骤S60,非网络设备将所述解压文件中本地目录存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地目录不存在同类型文件的第二文件在本地新建和存储。
非网络设备接收到安卓设备传输的解压文件,基于解压文件对非网络设备本地的固件进行升级,将解压文件中各子文件与非网络设备本地目录文件进行类型比对,确定所述解压文件中本地目录存在同类型文件的第一文件和所述解压文件中本地目录不存在同类型文件的第二文件,将非网络设备中与第一文件类型相同的本地目录文件更新替换为第一文件,在非网络设备的本地目录中新建和存储第二文件。
在本实施例中,非网络设备通过USB线与安卓设备建立物理线路连接,安卓设备安卓有永雨固件升级的APK,安卓设备作为ADB Server与作为ADB Client的非网络设备基于USB先进行交互,然后安卓设备在已连接设备链表中存在ADB设备且向非网络设备推送固件升级包前后,安卓设备在估计升级包的信息摘要相同时,通过USB线向非网络设备推送固件升级包的解压文件,以供非网络设备基于解压文件自行进行固件升级,从而提供了一种仅需安卓设备USB线连接非网络设备,通过ADB即可完成非网络设备的固件升级,无需将非网络设备返厂升级,降低了非网络设备固件升级的难度和成本。
进一步地,在本发明基于ADB的非网络设备升级方法另一实施例中,在步骤S50中安卓设备解压固件升级包获取解压文件的步骤之前,还包括:
步骤A1,安卓设备向非网络设备发送固件升级请求;
步骤A2,非网络设备接收到固件升级请求时,判断本地ADB是否为授权ADB,并在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求。
Android是Google公司和开放手持联盟领导及开发的基于Linux平台的一套操作系统。该平台包括操作系统、中间件、用户界面和应用程序。由于源码开放,Android可以被移植到不同的硬件平台上。安卓应用程序在安装时可以通过ABD的形式绕开安卓系统本身的防护机制,因此需要对安卓系统的本地ABD进行判断,判断本地ABD是否为经过授权的ABD。
在安卓设备安装完固件升级的APK之后,安卓设备需要帮非网络设备进行固件升级之前,先向非网络设备发送固件升级请求。非网络设备接收到固件升级请求时,判断本地ADB是否为授权ADB,并在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求。
具体地,参照图2,判断本地ADB是否为授权ADB的步骤包括:
步骤A201,非网络设备对接收的固件升级请求进行解析,获取安卓设备发送的签名报文;非网络设备通过预存的ADB公钥对所述签名报文进行解密,得到解密报文;
步骤A202,非网络设备比对所述解密报文与本地的令牌,若解密报文与非网络设备本地的令牌相同,则判定非网络设备本地ADB是授权ADB;若解密报文与非网络设备本地的令牌不相同,则判定非网络设备本地ADB不是授权ADB。
在本发明实施例中,在非网络设备进行固件升级授权判断时,安卓设备会向非网络设备发送一随机令牌,该随机令牌被签名报文进行了加密,形成安卓设备发送至非网络设备的固件升级请求。非网络设备中预先保存有授权权限的安卓设备发送的ADB公钥,通过该ADB公钥可以对解析固件升级请求所得的签名报文进行解密,将解密后获取的随机令牌与预先存储在非网络设备中本地的令牌进行比对,即可判断非网络设备本地ADB是否为授权ADB,如果相同,则为授权ADB,可以进行后续的固件升级流程,如果不同,则为未授权ADB,断开非网络设备与当前连接的安卓设备基于USB线的ADB连接。
本发明实施例,当非网络设备接收到安装设备的固件升级APK发送的固件升级请求时,非网络设备对接收的固件升级请求进行解析,获取安卓设备发送的签名报文;非网络设备通过预存的ADB公钥对所述签名报文进行解密,得到解密报文,非网络设备比对所述解密报文与本地的令牌,若解密报文与非网络设备本地的令牌相同,则判定非网络设备本地ADB是授权ADB;若解密报文与非网络设备本地的令牌不相同,则判定非网络设备本地ADB不是授权ADB;在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求,经过非网络设备ADB验证,可以保证非网络设备固件升级的安全性。
进一步地,在本发明基于ADB的非网络设备升级方法又一实施例中,步骤S20安卓设备基于USB线与待升级的非网络设备建立硬件线路连接的步骤之后包括:
步骤B1,非网络设备通过USB线向安卓设备发送第一送检测命令,若在预设时长内没有接收到安卓设备基于第一检测命令反馈的ADB服务可用响应,则非网络设备创建包含自己设备标识的缺省已连接设备链表,并将缺省已连接设备链表传输至安卓设备,以供安卓设备成为ADB Server。
步骤B2,安卓设备通过USB线向非网络设备发送第二检测命令,若在预设时长内没有接收到非网络设备基于第二检测命令反馈的ADB服务可用响应,则安卓设备将预存的新恢复镜像覆盖刷新至非网络设备的恢复分区原恢复镜像,触发非网络设备载入新恢复镜像,以控制非网络设备进入新恢复模式、恢复ADB服务。
在安卓设备与非网络设备基于USB线建立连接之后,为确保安卓设备顺利成为ADBServer,非网络设备会通过USB线向安卓设备定期发送第一送检测命令,若在预设时长内没有接收到安卓设备基于第一检测命令反馈的ADB服务可用响应,表明安卓设备中已连接设备链表中未添加该非网络设备,则非网络设备作为ADB Client主动创建包含自己设备标识的缺省已连接设备链表,并将缺省已连接设备链表传输至安卓设备,以供安卓设备成为ADBServer。
对应的,在安卓设备与非网络设备基于USB线建立连接之后,为确保非网络设备顺利成为ADB Client,安卓设备通过USB线向非网络设备发送第二检测命令,若在预设时长内没有接收到非网络设备基于第二检测命令反馈的ADB服务可用响应,表明非网络设备的ADB服务不可用,则安卓设备将预存的新恢复镜像覆盖刷新至非网络设备的恢复分区原恢复镜像,触发非网络设备载入新恢复镜像,以控制非网络设备进入新恢复模式、恢复ADB服务
具体地,关于非网络设备恢复ADB服务,新恢复镜像相对原恢复镜像,新恢复镜像修改了init.cr文件和镜像initrd宇段中default.prop文件,其中,通过升级default.prop文件开启ADB服务,修改init.rc文件赋予su可执行性,再通过开启Shell,执行su未获得系统ROOT权限。
恢复模式(Recovery Mode)是Android系统的一个特殊工作模式,系统可以在未开机的状态下通过加载恢复镜像实现系统更新、还原出厂设置、清除设备缓存等功能。在非网络设备锁定、设置密码且调试模式关闭情况下,不能通过ADB命令获取ROOT权限,但可以通过替换恢复镜像方式获取权限后间接开启调试模式,获取ROOT权限,从而将非网络设备转换到常规调试模式,从而控制非网络设备恢复ADB服务。
利用非网络设备的恢复模式备份需要制作一个用于获取ROOT权项的恢复镜像,新镜像在原恢复镜像的基础上主要修改init.cr文件和镜像initrd宇段中default.prop文件。其中通过升级default.prop文件可以开启ADB服务,修改init.rc可以赋予su可执行性,再通过开启Shell,执行su来最终获得非网络设备系统ROOT权限,从而ADB服务可用,从而非网络设备可顺利完成非网络状态的固件升级。
可选地,步骤S60非网络设备将所述解压文件中本地存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地不存在同类型文件的第二文件在本地新建和存储的步骤之后,包括:
在检测到非网络设备基于解压文件进行固件升级完毕时,非网络设备删除接收的压固件升级包解压文件以及固件升级产生的相关文档;非网络设备退出升级脚本。
例如安卓设备为TV(television,电视),非网络设备为音响,TV先验证固件升级包,TV解压固件升级包并得到的解压文件通过USB线发送给音响。音响检测进程后,删除掉自身的老版本文件,并且向TV反馈结果;固件升级成功进行下一步,固件升级失败TV则删除升级包。
音响在升级过程中,遇到存在的文件,就进行将解压文件替换音响原来存在的文件,遇到不存在的文件,则对不存在的解压文件进行新建;同时音响将升级结果反馈给TV,升级结果反馈成功进行下一步,升级结果反馈失败TV则删除升级包。音响替换掉原来的所有文档(bin,so,xml,pic等)并且反馈结果给TV,成功进行下一步,失败TV则删除升级包。
也就是说,音响在估计升级过程中,会不断向TV反馈升级进度,音响固件升级遇到问题则停止升级并告知TV,TV删除此次升级的升级包,并重新获取新的升级包以引导音响重新开始固件升级。音响在固件升级完后重新启动。
为实现上述发明目的,本申请还提供一种基于ADB的固件升级系统,所述固件升级系统包括安卓设备和待固件升级的非网络设备,
安装设备用于:
从升级平台下载用于固件升级的安卓应用程序包APK;
基于USB线与待升级的非网络设备建立硬件线路连接,其中安卓设备作为ADBServer,非网络设备作为ADB Client;
检测本地USB接口的已连接设备链表中是否存在ADB设备,若所述已连接设备链表中存在ADB设备,则基于APK从网络中下载待升级的非网络设备适配的固件升级包;
将固件升级包推送至作为ADB Client的非网络设备,判断推送前后固件升级包的信息摘要是否相同;
若推送前后固件升级包的信息摘要相同,则解压固件升级包获取解压文件,并将解压文件通过USB线全部推送至非网络设备;
所述非网络设备,用于将所述解压文件中本地目录存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地目录不存在同类型文件的第二文件在本地新建和存储。
可选地,在所述安卓设备解压固件升级包获取解压文件的步骤之前,安卓设备向非网络设备发送固件升级请求;
非网络设备接收到固件升级请求时,判断本地ADB是否为授权ADB,并在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求。
可选地,非网络设备还具有以下功能:
非网络设备对接收的固件升级请求进行解析,获取安卓设备发送的签名报文;
非网络设备通过预存的ADB公钥对所述签名报文进行解密,得到解密报文;
非网络设备比对所述解密报文与本地的令牌,若解密报文与非网络设备本地的令牌相同,则判定非网络设备本地ADB是授权ADB;若解密报文与非网络设备本地的令牌不相同,则判定非网络设备本地ADB不是授权ADB。
可选地,在安卓设备基于USB线与待升级的非网络设备建立硬件线路连接之后,非网络设备通过USB线向安卓设备发送第一送检测命令,若在预设时长内没有接收到安卓设备基于第一检测命令反馈的ADB服务可用响应,则非网络设备创建包含自己设备标识的缺省已连接设备链表,并将缺省已连接设备链表传输至安卓设备,以供安卓设备成为ADBServer。
可选地,在安卓设备基于USB线与待升级的非网络设备建立硬件线路连接之后:安卓设备通过USB线向非网络设备发送第二检测命令,若在预设时长内没有接收到非网络设备基于第二检测命令反馈的ADB服务可用响应,则安卓设备将预存的新恢复镜像覆盖刷新至非网络设备的恢复分区原恢复镜像,触发非网络设备载入新恢复镜像,以控制非网络设备进入新恢复模式、恢复ADB服务。
可选地,新恢复镜像相对原恢复镜像,新恢复镜像修改了init.cr文件和镜像initrd宇段中default.prop文件,其中,通过升级default.prop文件开启ADB服务,修改init.rc文件赋予su可执行性,再通过开启Shell,执行su未获得系统ROOT权限。
可选地,在非网络设备将所述解压文件中本地存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地不存在同类型文件的第二文件在本地新建和存储之后,在检测到非网络设备基于解压文件进行固件升级完毕时,非网络设备删除接收的压固件升级包解压文件以及固件升级产生的相关文档;非网络设备退出升级脚本。
为实现上述发明目的,本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于ADB的非网络设备升级方法的步骤
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当……时"或"响应于确定"。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本文中,采用了诸如S10、S20等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S20后执行S10等,但这些均应在本申请的保护范围之内。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本申请的保护之内。
Claims (10)
1.一种基于ADB的非网络设备升级方法,其特征在于,所述基于安卓调试桥ADB的非网络设备升级方法包括:
安卓设备从升级平台下载用于固件升级的安卓应用程序包APK;
安卓设备基于USB线与待升级的非网络设备建立硬件线路连接,其中安卓设备作为ADBServer,非网络设备作为ADB Client;
安卓设备检测本地USB接口的已连接设备链表中是否存在ADB设备,若所述已连接设备链表中存在ADB设备,则安卓设备基于APK从网络中下载待升级的非网络设备适配的固件升级包;
安卓设备将固件升级包推送至作为ADB Client的非网络设备,判断推送前后固件升级包的信息摘要是否相同;
若推送前后固件升级包的信息摘要相同,则安卓设备解压固件升级包获取解压文件,并将解压文件通过USB线全部推送至非网络设备;
非网络设备将所述解压文件中本地目录存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地目录不存在同类型文件的第二文件在本地新建和存储。
2.如权利要求1所述的基于ADB的非网络设备升级方法,其特征在于,在所述安卓设备解压固件升级包获取解压文件的步骤之前,还包括:
安卓设备向非网络设备发送固件升级请求;
非网络设备接收到固件升级请求时,判断本地ADB是否为授权ADB,并在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求。
3.如权利要求2所述的基于ADB的非网络设备升级方法,其特征在于,所述判断本地ADB是否为授权ADB的步骤包括:
非网络设备对接收的固件升级请求进行解析,获取安卓设备发送的签名报文;
非网络设备通过预存的ADB公钥对所述签名报文进行解密,得到解密报文;
非网络设备比对所述解密报文与本地的令牌,若解密报文与非网络设备本地的令牌相同,则判定非网络设备本地ADB是授权ADB;若解密报文与非网络设备本地的令牌不相同,则判定非网络设备本地ADB不是授权ADB。
4.如权利要求3所述的基于ADB的非网络设备升级方法,其特征在于,所述安卓设备基于USB线与待升级的非网络设备建立硬件线路连接的步骤之后包括:
非网络设备通过USB线向安卓设备发送第一送检测命令,若在预设时长内没有接收到安卓设备基于第一检测命令反馈的ADB服务可用响应,则非网络设备创建包含自己设备标识的缺省已连接设备链表,并将缺省已连接设备链表传输至安卓设备,以供安卓设备成为ADB Server。
5.如权利要求4所述的基于ADB的非网络设备升级方法,其特征在于,所述安卓设备基于USB线与待升级的非网络设备建立硬件线路连接的步骤之后包括:
安卓设备通过USB线向非网络设备发送第二检测命令,若在预设时长内没有接收到非网络设备基于第二检测命令反馈的ADB服务可用响应,则安卓设备将预存的新恢复镜像覆盖刷新至非网络设备的恢复分区原恢复镜像,触发非网络设备载入新恢复镜像,以控制非网络设备进入新恢复模式、恢复ADB服务。
6.如权利要求5所述的基于ADB的非网络设备升级方法,其特征在于,新恢复镜像相对原恢复镜像,新恢复镜像修改了init.cr文件和镜像initrd宇段中default.prop文件,其中,通过升级default.prop文件开启ADB服务,修改init.rc文件赋予su可执行性,再通过开启Shell,执行su未获得系统ROOT权限。
7.如权利要求1至6任一项所述的基于ADB的非网络设备升级方法,其特征在于,所述非网络设备将所述解压文件中本地存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地不存在同类型文件的第二文件在本地新建和存储的步骤之后,包括:
在检测到非网络设备基于解压文件进行固件升级完毕时,非网络设备删除接收的压固件升级包解压文件以及固件升级产生的相关文档;非网络设备退出升级脚本。
8.一种基于ADB的固件升级系统,其特征在于,所述固件升级系统包括安卓设备和待固件升级的非网络设备,
安装设备用于:
从升级平台下载用于固件升级的安卓应用程序包APK;
基于USB线与待升级的非网络设备建立硬件线路连接,其中安卓设备作为ADB Server,非网络设备作为ADB Client;
检测本地USB接口的已连接设备链表中是否存在ADB设备,若所述已连接设备链表中存在ADB设备,则基于APK从网络中下载待升级的非网络设备适配的固件升级包;
将固件升级包推送至作为ADB Client的非网络设备,判断推送前后固件升级包的信息摘要是否相同;
若推送前后固件升级包的信息摘要相同,则解压固件升级包获取解压文件,并将解压文件通过USB线全部推送至非网络设备;
所述非网络设备,用于将所述解压文件中本地目录存在同类型文件的第一文件替换对应本地同类文件,将所述解压文件中本地目录不存在同类型文件的第二文件在本地新建和存储。
9.如权利要求8所述的基于ADB的固件升级系统,其特征在于,
在所述安卓设备解压固件升级包获取解压文件的步骤之前,安卓设备向非网络设备发送固件升级请求;
非网络设备接收到固件升级请求时,判断本地ADB是否为授权ADB,并在非网络设备本地ADB为授权ADB时,同意安卓设备的固件升级请求。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的基于ADB的非网络设备升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011586439.9A CN112711430B (zh) | 2020-12-29 | 2020-12-29 | 基于adb的非网络设备升级方法、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011586439.9A CN112711430B (zh) | 2020-12-29 | 2020-12-29 | 基于adb的非网络设备升级方法、系统及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112711430A true CN112711430A (zh) | 2021-04-27 |
CN112711430B CN112711430B (zh) | 2023-10-17 |
Family
ID=75545944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011586439.9A Active CN112711430B (zh) | 2020-12-29 | 2020-12-29 | 基于adb的非网络设备升级方法、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112711430B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562696A (zh) * | 2022-02-24 | 2023-01-03 | 荣耀终端有限公司 | 软件升级方法、控制设备及智慧屏 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09212398A (ja) * | 1996-02-05 | 1997-08-15 | Fuji Electric Co Ltd | データベース更新参照方法 |
US20040073902A1 (en) * | 2002-10-11 | 2004-04-15 | Ambit Microsystems Corporation | Firmware upgrade method for network device through digital subscriber line |
JP2008252172A (ja) * | 2007-03-29 | 2008-10-16 | Brother Ind Ltd | 接続態様制御装置及び接続態様制御方法並びに接続態様制御用プログラム |
CN103077058A (zh) * | 2013-01-06 | 2013-05-01 | 邓海勤 | 一种安装应用程序的方法及装置 |
US20130227694A1 (en) * | 2012-02-29 | 2013-08-29 | The Mitre Corporation | Hygienic charging station for mobile device security |
CN103559126A (zh) * | 2013-10-25 | 2014-02-05 | 深圳市欧珀通信软件有限公司 | 一种测验软件版本的方法、装置及电脑终端 |
CN104135520A (zh) * | 2014-07-29 | 2014-11-05 | 广州金山网络科技有限公司 | 一种识别安卓终端的方法以及装置 |
CN107122202A (zh) * | 2017-03-17 | 2017-09-01 | 广州视源电子科技股份有限公司 | 智能终端及其升级方法 |
CN107729032A (zh) * | 2017-09-08 | 2018-02-23 | 广州视源电子科技股份有限公司 | 开机动画更新方法、智能终端及可存储介质 |
CN107766061A (zh) * | 2017-11-20 | 2018-03-06 | 烽火通信科技股份有限公司 | 一种安卓应用程序的安装方法和安装系统 |
US20190278583A1 (en) * | 2017-03-30 | 2019-09-12 | Pax Computer Technology (Shenzhen) Co., Ltd | Method for updating firmware, terminal and computer readable non-volatile storage medium |
CN110362328A (zh) * | 2019-07-17 | 2019-10-22 | 腾讯科技(深圳)有限公司 | Ota升级的方法、装置和计算机设备 |
-
2020
- 2020-12-29 CN CN202011586439.9A patent/CN112711430B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09212398A (ja) * | 1996-02-05 | 1997-08-15 | Fuji Electric Co Ltd | データベース更新参照方法 |
US20040073902A1 (en) * | 2002-10-11 | 2004-04-15 | Ambit Microsystems Corporation | Firmware upgrade method for network device through digital subscriber line |
JP2008252172A (ja) * | 2007-03-29 | 2008-10-16 | Brother Ind Ltd | 接続態様制御装置及び接続態様制御方法並びに接続態様制御用プログラム |
US20130227694A1 (en) * | 2012-02-29 | 2013-08-29 | The Mitre Corporation | Hygienic charging station for mobile device security |
CN103077058A (zh) * | 2013-01-06 | 2013-05-01 | 邓海勤 | 一种安装应用程序的方法及装置 |
CN103559126A (zh) * | 2013-10-25 | 2014-02-05 | 深圳市欧珀通信软件有限公司 | 一种测验软件版本的方法、装置及电脑终端 |
CN104135520A (zh) * | 2014-07-29 | 2014-11-05 | 广州金山网络科技有限公司 | 一种识别安卓终端的方法以及装置 |
CN107122202A (zh) * | 2017-03-17 | 2017-09-01 | 广州视源电子科技股份有限公司 | 智能终端及其升级方法 |
US20190278583A1 (en) * | 2017-03-30 | 2019-09-12 | Pax Computer Technology (Shenzhen) Co., Ltd | Method for updating firmware, terminal and computer readable non-volatile storage medium |
CN107729032A (zh) * | 2017-09-08 | 2018-02-23 | 广州视源电子科技股份有限公司 | 开机动画更新方法、智能终端及可存储介质 |
CN107766061A (zh) * | 2017-11-20 | 2018-03-06 | 烽火通信科技股份有限公司 | 一种安卓应用程序的安装方法和安装系统 |
CN110362328A (zh) * | 2019-07-17 | 2019-10-22 | 腾讯科技(深圳)有限公司 | Ota升级的方法、装置和计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115562696A (zh) * | 2022-02-24 | 2023-01-03 | 荣耀终端有限公司 | 软件升级方法、控制设备及智慧屏 |
CN115562696B (zh) * | 2022-02-24 | 2023-09-08 | 荣耀终端有限公司 | 软件升级方法、控制设备及智慧屏 |
Also Published As
Publication number | Publication date |
---|---|
CN112711430B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108181B (zh) | 应用程序的功能更新方法、装置及计算机可读存储介质 | |
US10127057B2 (en) | Method and apparatus for dynamically implementing application function | |
US9244758B2 (en) | Systems and methods for repairing system files with remotely determined repair strategy | |
US20170068531A1 (en) | Method of deploying a set of software application(s) | |
CN111158719A (zh) | 应用软件升级方法及装置 | |
CN111538523A (zh) | 差分升级方法、设备及存储介质 | |
CN111796853A (zh) | 固件升级方法、系统、设备及计算机存储介质 | |
CN112162825A (zh) | 设备配置方法、装置、设备及存储介质 | |
CN112202920A (zh) | 车机系统升级方法及装置 | |
CN111966422A (zh) | 一种本地化插件服务方法、装置、电子设备及存储介质 | |
CN112711430B (zh) | 基于adb的非网络设备升级方法、系统及可读存储介质 | |
US20140351220A1 (en) | Configuration of one or more computer devices | |
CN113094064A (zh) | 网关软件模块升级方法、装置、设备及存储介质 | |
CN106569851B (zh) | 应用程序处理方法及装置 | |
CN110597520A (zh) | 服务器及其部署方法、计算机可读存储介质 | |
EP2137651A1 (en) | Binary verification service | |
CN111131861A (zh) | 恢复分区的升级方法、终端和存储介质 | |
CN114143197B (zh) | 物联网设备ota升级方法、装置、设备及可读存储介质 | |
CN115543429A (zh) | 项目环境的搭建方法、电子设备及计算机可读存储介质 | |
CN114722363A (zh) | 远程锁定方法、系统、装置、设备及计算机可读存储介质 | |
CN110825406A (zh) | 一种软件升级的方法及相关设备 | |
CN105512544A (zh) | 一种获取移动终端超级用户权限的方法及装置 | |
CN112464225A (zh) | 一种请求处理方法、请求处理装置及计算机可读存储介质 | |
CN112491813A (zh) | 指令的传输控制方法、装置及计算机可读存储介质 | |
CN109428936B (zh) | App的升级方法、装置、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |