CN111381857A - 一种固件升级方法、装置、电子设备及存储介质 - Google Patents

一种固件升级方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111381857A
CN111381857A CN201811614685.3A CN201811614685A CN111381857A CN 111381857 A CN111381857 A CN 111381857A CN 201811614685 A CN201811614685 A CN 201811614685A CN 111381857 A CN111381857 A CN 111381857A
Authority
CN
China
Prior art keywords
firmware
identity information
information
equipment
local
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
Application number
CN201811614685.3A
Other languages
English (en)
Inventor
唐佳旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qisheng Technology Co Ltd
Original Assignee
Beijing Qisheng Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qisheng Technology Co Ltd filed Critical Beijing Qisheng Technology Co Ltd
Priority to CN201811614685.3A priority Critical patent/CN111381857A/zh
Publication of CN111381857A publication Critical patent/CN111381857A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本申请提供了一种固件升级方法、装置、电子设备及存储介质,其中,该方法包括:获取由同类设备发送的设备身份信息;依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端;若确定存在所述固件提供端,则从所述固件提供端获取固件升级数据。本申请实施例通过从同类设备中选择固件提供端,实现同类设备之间的固件升级数据的传播,借助上述相互传播的方式,使固件升级更加的灵活,提高固件升级的升级效率及自动化程度。

Description

一种固件升级方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机应用技术领域,具体而言,涉及一种固件升级方法、装置、电子设备及存储介质。
背景技术
随着技术的不断发展,电子设备也不断更新换代。电子设备的更新换代不仅体现在新设备的不断推出,也体现在对旧设备进行不断的设备升级。其中,固件升级为设备升级的重要环节。
当前电子设备进行固件升级依赖于从固定的升级终端获取的固件升级数据。即需要到指定的位置,从指定的终端获取固件升级数据,例如,常见的做法为回收返厂,由固定的升级服务器配合实现固件升级。上述获取方式极不灵活,固定的升级终端对大批量的电子设备一一进行升级,效率也十分低,难度大。
发明内容
有鉴于此,本申请实施例的目的在于提供一种固件升级方法、装置以及计算机可读存储介质,通过可以从同类设备中获取固件升级数据,从而实现灵活互传固件升级数据、提高固件升级效率的效果。
根据本申请的一个方面,一种固件升级方法可以包括以下操作中的一个或多个:
获取由同类设备发送的设备身份信息;
依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端;
若确定存在所述固件提供端,则从所述固件提供端获取固件升级数据。
在一些实施例中,为了便于投放于开放环境下运行、采用广域网通信的设备查找到同类设备,上述获取由同类设备发送的设备身份信息的方式可以是:
侦听预选网段传播的广播协议数据;
识别所述广播协议数据中携带的设备身份信息是否由所述同类设备发出;
若所述广播协议数据中携带的设备身份信息由所述同类设备发出,从所述广播协议数据中获取所述设备身份信息。
在一些实施例中,为了便于投放于开放环境下运行、采用广域网通信的设备查找到同类设备,上述获取由同类设备发送的设备身份信息的方式可以是:
利用预设的匹配协议扫描周边设备;
若周边设备存在所述同类设备,建立与所述同类设备之间的通信;
接收所述同类设备发送的所述设备身份信息。
在一些实施例中,为了使本端设备可以选择出适于提供固件升级数据的固件提供终端,上述依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端可以是:
将获取到的所述设备身份信息中携带的固件版本信息与本端固件版本信息进行比较;
若存在携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息,则从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息;
将筛选出的所述目标身份信息对应的所述同类设备作为所述固件提供端。
在一些实施例中,为了避免出现频繁的固件升级,造成对系统资源的浪费,上述从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息的步骤可以是:
依据所述本端固件版本信息,确定间隔版本阈值;
将携带的所述固件版本信息与所述本端固件版本信息之间的版本间隔不低于所述间隔版本阈值、且携带的所述固件版本信息最高的所述设备身份信息确定为所述目标身份信息。
在一些实施例中,上述依据所述本端固件版本信息,确定间隔版本阈值的方式可以是:
依据所述本端固件版本信息中的稳定性标记信息,匹配出对应的所述间隔版本阈值。
在一些实施例中,上述依据所述本端固件版本信息,确定间隔版本阈值的方式还可以是:
依据所述本端固件版本信息的发布时间,评估对应的所述间隔版本阈值。
在一些实施例中,为了避免出现频繁的固件升级,造成对系统资源的浪费,上述从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息的步骤还可以包括:
获取剩余电量信息;依据所述剩余电量信息,匹配对应的升级时间频率要求;根据相邻上一次固件升级对应的时间点,判断是否满足所述升级时间频率要求;
同时,上述将获取到的所述设备身份信息中携带的固件版本信息与本端固件版本信息进行比较的步骤包括:若满足所述升级时间频率要求,将所述固件版本信息与本端固件版本信息进行比较。
在一些实施例中,从固件提供端获取固件升级数据的步骤可以是:
依据本端设备身份信息生成固件获取请求;
向所述固件提供端发送所述固件获取请求;
接收所述固件提供端响应于所述固件获取请求反馈的所述固件升级数据。
在一些实施例中,本端设备也可能被其他的同类设备认定为固件提供端,在被其他的同类设备认定为固件提供端时,还可以包括:
在接收到固件获取请求时,依据所述固件获取请求判断对应的固件请求端是否属于所述同类设备;
若所述固件请求端属于所述同类设备,则对本端固件数据进行处理,生成响应所述固件获取请求的固件升级数据;
将生成的所述固件升级数据发送至所述固件请求端。
在一些实施例中,为了确保固件升级数据在传输过程中的安全,避免固件升级数据被恶意篡改,上述对本端固件数据进行处理的步骤可以包括:
依次对所述本端固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
在一些实施例中,为了缩减固件升级数据的大小,减少传输过程的网络损耗,上述对本端固件数据进行处理的步骤还可以是:
依据所述固件获取请求中携带的固件版本信息和本端固件版本信息的差异,从所述本端固件数据中拆分出待处理固件数据;
依次对所述待处理固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
在一些实施例中,上述同类设备包括具备相同硬件架构且遵循相同的协议标准的设备。
根据本申请的另一方面,提供一种固件升级装置可以包括获取模块、判断模块及固件拉取模块;其中,获取模块,用于获取由同类设备发送的设备身份信息;判断模块,用于依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端;固件拉取模块,用于若确定存在所述固件提供端,则从所述固件提供端获取固件升级数据。
在一些实施例中,上述获取模块具体用于:
侦听预选网段传播的广播协议数据;
识别所述广播协议数据中携带的设备身份信息是否由所述同类设备发出;
若所述广播协议数据中携带的设备身份信息由所述同类设备发出,从所述广播协议数据中获取所述设备身份信息。
在一些实施例中,上述获取模块具体用于:
利用预设的匹配协议扫描周边设备;
若周边设备存在所述同类设备,建立与所述同类设备之间的通信;
接收所述同类设备发送的所述设备身份信息。
在一些实施例中,上述判断模块包括:
比较子模块,用于将获取到的所述设备身份信息中携带的固件版本信息与本端固件版本信息进行比较;
筛选子模块,用于若存在携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息,则从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息;
确定子模块,用于将筛选出的所述目标身份信息对应的所述同类设备作为所述固件提供端。
在一些实施例中,上述筛选子模块具体用于:
依据所述本端固件版本信息,确定间隔版本阈值;
将携带的所述固件版本信息与所述本端固件版本信息之间的版本间隔不低于所述间隔版本阈值、且携带的所述固件版本信息最高的所述设备身份信息确定为所述目标身份信息。
在一些实施例中,上述筛选子模块具体还用于:
依据所述本端固件版本信息中的稳定性标记信息,匹配出对应的所述间隔版本阈值。
在一些实施例中,上述筛选子模块具体还用于:
依据所述本端固件版本信息的发布时间,评估对应的所述间隔版本阈值。
在一些实施例中,上述判断模块还包括:
获取子模块,用于获取剩余电量信息;
匹配子模块,用于依据所述剩余电量信息,匹配对应的升级时间频率要求;
判断子模块,用于根据相邻上一次固件升级对应的时间点,判断是否满足所述升级时间频率要求;
所述比较子模块,还用于若满足所述升级时间频率要求,将所述固件版本信息与本端固件版本信息进行比较。
在一些实施例中,上述固件拉取模块具体用于:
依据本端设备身份信息生成固件获取请求;
向所述固件提供端发送所述固件获取请求;
接收所述固件提供端响应于所述固件获取请求反馈的所述固件升级数据。
在一些实施例中,还包括:
所述判断模块,还用于在接收到固件获取请求时,依据所述固件获取请求判断对应的固件请求端是否属于所述同类设备;
处理模块,用于若所述固件请求端属于所述同类设备,则对本端固件数据进行处理,生成响应所述固件获取请求的固件升级数据;
发送模块,用于将生成的所述固件升级数据发送至所述固件请求端。
在一些实施例中,上述处理模块具体用于:
依次对所述本端固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
在一些实施例中,上述处理模块具体用于:
依据所述固件获取请求中携带的固件版本信息和本端固件版本信息的差异,从所述本端固件数据中拆分出待处理固件数据;
依次对所述待处理固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
在一些实施例中,上述同类设备包括具备相同硬件架构且遵循相同的协议标准的设备。
根据本申请的另一方面,还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行前述的固件升级方法的步骤。
根据本申请的另一方面,还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前述的固件升级方法的步骤。
基于上述任一方面,本发明实施例基于由同类设备发送的设备身份信息,从对应的同类设备中确定是否存在固件提供端。并在确定存在固件提供端后,从确定的固件提供端获取固件升级数据。该方式可以实现同类设备之间的固件升级数据的传播,使固件升级更加的灵活,借助同类设备间的感染传播方式,提高固件升级的升级效率及自动化程度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种固件升级的服务系统的示意图;
图2示出了图1中电子设备的结构示意图;
图3示出了本申请实施例所提供的一种固件升级方法的流程图;
图4示出了本申请实施例所提供的固件升级方法中步骤S101的一种具体实施方式的流程图;
图5示出了本申请实施例所提供的固件升级方法中步骤S101的另一种具体实施方式的流程图;
图6示出了本申请实施例所提供的固件升级方法中步骤S102的一种具体实施方式的流程图;
图7示出了本申请实施例所提供的固件升级方法中步骤S102的另一种具体实施方式的流程图;
图8示出了本申请实施例所提供的一种固件升级方法的另一部分流程图;
图9示出了本申请实施例所提供的一种固件升级方法的另一部分流程图;
图10示出了本申请实施例所提供的一种固件升级方法的一种信令交互示意图;
图11示出了本申请实施例所提供的一种固件升级装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“共享车辆车锁固件升级”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕共享车辆车锁固件升级进行描述,但是应该理解,这仅是一个示例性实施例。本申请可以应用于任何其他类型设备的固件升级。例如,本申请可以应用于各类电子设备的固件升级,包括手机固件升级、平板固件升级、便携式穿戴设备固件升级、智能家居设备固件升级、家电设备固件升级、共享设备固件升级等。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
任何电子设备均存在固件(Firmware),其为写入可擦写只读存储器或电可擦可编程只读存储器中的程序。固件包括设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。随着技术的进步,用户对身边的电子设备的功能要求也日益增加。为了使电子设备可以支持更多功能,改善此前存在的功能缺陷,另外一旦升级出错,还可能导致整个设备崩溃,因此,固件升级就显得十分重要了。
值得注意的是,在本申请提出之前,相关技术中,电子设备需要固件升级需要到固定的区域或者从固定的固件提供设备获取。例如,回收电子设备返厂升级,或者通过连接对应的固件升级提供服务器获取固件升级数据进行升级。上述方式极不灵活,且在大批量的电子设备均需要固件升级时,不仅升级效率低下,还费时费力。特别是对于投放于开放性环境运行且采用窄带宽通信的嵌入式共享电子设备(例如,共享车车锁、充电柜等)这一缺陷就十分明显。一方面,此类设备采用窄带宽通信从固定的固件提供设备获取到升级数据就十分困难。另一方面,需要大批量升级时,大批量回收返厂、逐一升级工作量也十分巨大且效率低下。
为了解决上述技术问题,本发明实施例提供一固件升级方法、装置、电子设备及存储介质。其核心改进点在于:由同类设备作为固件升级数据的提供端。既确保固件升级数据的可靠性,又可实现相互影响性升级。使得固件升级数据扩散快,自动化程度高,在大批量设备进行升级时更加高效。下面通过可能的实现方式对本发明的技术方案进行说明。
图1是本申请一些实施例的固件升级的服务系统100的框图。例如,固件升级的服务系统100可以是用于为诸如汽车、共享车辆、手机、电脑、PC设备、穿戴设备、闸机、售票机或充电柜之类的设备提供固件升级服务。固件升级的服务系统100服务可以包括一种或多种电子设备200、网络120。
网络120可以用于信息和/或数据的交换。在一些实施例中,固件升级的服务系统100中的一个或多个电子设备200可以向其他电子设备200发送信息和/或数据。在一些实施例中,网络120可以是任何类型的有线或者无线网络120,或者是他们的结合。仅作为示例,网络120可以包括有线网络120、无线网络120、光纤网络120、远程通信网络120、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络120、ZigBee网络120、或近场通信(Near Field Communication,NFC)网络120等,或其任意组合。在一些实施例中,网络120可以包括一个或多个网络120接入点。例如,网络120可以包括有线或无线网络120接入点,例如基站和/或网络120交换节点,固件升级的服务系统100的一个或多个电子设备200可以通过该接入点连接到网络120以交换数据和/或信息。
在一些实施例中,电子设备200之间可以通过网络120进行相互通信。每一电子设备200均可在固件升级的过程中,可以相对于其他设备扮演固件提供端和/或固件请求端的角色。可以理解的,对于同一设备而言,可以作为一个或多个其他设备的固件提供端、也可以相对于另外的其他设备作为固件请求端。例如,电子设备a向电子设备b请求固件升级数据时,对电子设备b而言,电子设备a为固件请求端;电子设备c向电子设备a请求固件升级数据时,对于电子设备c而言,电子设备a为固件提供端。
在一些实施例中,固件请求端和对应的固件提供端属于同类设备。可以理解的,同类设备可以是具备相同硬件架构且遵循相同的协议标准的设备。例如,共享单车的电子车锁和共享单车的电子车锁可以是同类设备、安卓手机和安卓手机可以是同类设备、地铁闸机和地铁闸机可以是同类设备、售票机和售票机可以是同类设备等。
在一些实施例中,上述多种电子设备200可以包括移动设备、平板计算机、膝上型计算机、或机动车辆中的内置设备等,或其任意组合。在一些实施例中,移动设备可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、或增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器设备的控制设备、智能监控设备、智能电视、智能摄像机、或对讲机等,或其任意组合。在一些实施例中,可穿戴设备可包括智能手环、智能鞋带、智能玻璃、智能头盔、智能手表、智能服装、智能背包、智能配件等、或其任何组合。在一些实施例中,智能移动设备可以包括智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏设备、导航设备、或销售点(point of sale,POS)设备等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实玻璃、虚拟现实贴片、增强现实头盔、增强现实玻璃、或增强现实贴片等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括各种虚拟现实产品等。在一些实施例中,机动车辆中的内置设备可以包括车载计算机、车载电视等。
图2示出根据本申请的一些实施例的可以实现本申请思想的电子设备200的示例性硬件和软件组件的示意图。例如,处理器220可以用于电子设备200上,并且用于执行本申请中的功能。电子设备200可以用于实现本申请的固件升级方法,以实现该电子设备200既可以在同类设备中寻找作为固件提供端的设备,也可以被其他的同类设备作为固件提供端的设备,通过同类设备间的互相感染式升级,加快升级效率,提高固件升级的自动化程度。
例如,电子设备200可以包括连接到网络120的网络120端口210、用于执行程序指令的一个或多个处理器220、通信总线230、和不同形式的存储介质240,例如,磁盘、ROM、或RAM,或其任意组合。示例性地,计算机平台还可以包括存储在ROM、RAM、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。根据这些程序指令可以实现本申请的方法。电子设备200还包括计算机与其他输入输出设备(例如键盘、显示屏)之间的输入/输出(Input/Output,I/O)接口250。
为了便于说明,在电子设备200中仅描述了一个处理器。然而,应当注意,本申请中的电子设备200还可以包括多个处理器,因此本申请中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。例如,若电子设备200的处理器执行步骤A和步骤B,则应该理解,步骤A和步骤B也可以由两个不同的处理器共同执行或者在一个处理器中单独执行。例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一处理器和第二处理器共同执行步骤A和B。关于处理器220具体执行存储介质240中的执行指令,实现本公开方案的过程详见后续实施例。
图3示出了本发明实施例提供的一种固件升级方法的步骤流程图,该方法可以应用于电子设备200。需要说明的是,固件升级方法可以应用于任意电子设备200时其对应的流程和原理均相同,为了方便描述,下面的实施例中将执行上述固件升级方法的电子设备200称为本端设备。可选地,上述固件升级方法可以包括以下步骤:
步骤S101:获取由同类设备发送的设备身份信息。
步骤S102:依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端。
步骤S103:若确定存在所述固件提供端,则从所述固件提供端获取固件升级数据。
上述同类设备可以是固件升级的服务系统100中与本端设备具备相同的硬件架构及遵循相同的协议标准的设备。例如,本端设备为电子车锁,则固件升级的服务系统100中的其他电子车锁可以是本端设备的同类设备。
上述设备身份信息可以是固件升级的服务系统100内的各电子设备200通过网络120向外界发送的信息。可选地,该设备身份信息可以包括设备对应的固有属性相关信息。例如,可以包括设备MAC、设备IP、设备类型、遵循的协议标准等。可选地,该设备身份信息还可以包括设备对应的可更新属性相关信息。例如,设备软件信息、设备固件种类、固件版本信息。可以理解的,上述设备固件种类、固件版本信息可以是该电子设备200已安装并使用的固件信息。可选地,该设备身份信息还可以包括涉及设备安全的信息,例如,可以包括安全等级、公钥等。可以理解的,上述设备身份信息可以是设备对应的固有属性相关信息、设备对应的可更新属性相关信息及涉及设备安全的信息等中的一种或多种之间的组合。
上述固件升级数据可以是实现将设备固件更新到另一版本的程序组件。上述固件提供端可以是被本端设备确定获取固件升级数据的其他设备。
通过上述步骤的配合,可以保障被确定为固件提供端的电子设备200属于本端设备的同类设备。如此,既可以确保得到的固件升级软件是可靠性,也可以实现同类设备之间固件升级数据的互传。可以理解的,固件涉及设备的驱动系统,错误的固件会导致设备罢工,成为白板,难以恢复。正确的固件才能确保设备的正常运行,才能正常执行相关的流程操作(例如,向外界发送对应的设备身份信息),因此,由同类设备利用设备身份信息向本端设备推荐的固件升级数据为可靠的。
因此,上述步骤S101、S102和步骤S103的目的为:使固件升级数据在同类设备之间实现一种可靠的传递,进而改善电子设备200的固件升级的灵活性和效率。相较于相关技术,由同类设备之间互传固件升级数据的效率更高。可以理解的,假如每一个电子设备200每次可以向另外两个电子设备200传递固件升级数据,那么很快就能将固件升级软件传播给大量同类设备。整个过程无需人工参与,且传播范围受限小,特别是对于共享类的电子设备200无需大批量的回收到指定区域进行升级。
为了方便理解,下面以共享单车的电子车锁作为被升级的电子设备200为例,进行固件升级场景的描述:
共享单车在城市中分布广泛且数量巨大。电子车锁作为共享单车中重要的组件,为了提高共享单车给用户的服务体验,对电子车锁进行固件升级不可避免。例如,从通过在车锁上输入密码开锁到可以实现直接扫码配对即可开锁,则需要进行固件升级。
采用本公开的固件升级方法对电子车锁进行升级,则仅需将一台安装了携带最新固件的电子车锁的共享单车投入运营的城市,利用共享单车的流动性,最新固件可以在同类的电子车锁间互相传递。每一个得到最新固件的电子车锁都可以成为别的同类电子车锁的固件提供端,在升级过程中,可作为提供固件升级软件的固件提供端越来越多,使最新固件可以在同类的电子车锁之间高效、广泛的传播。于共享单车运营商而言,可节省大量人力物力,且提高服务质量。
下面对本公开实现的具体过程和细节进行介绍。
为了适应广域网环境及开放环境下运行的电子设备200,固件升级的服务系统100中的各电子设备200均可以通过至少一种通信协议将自身对应的设备身份信息向外界发出。于本端设备而言,需要从其他电子设备200发出的设备身份信息中获取到同类设备发出的设备身份信息。
为了配合各电子设备200发送设备身份信息所采用的通信协议,本端设备在执行上述步骤S101时,可以对应多种可选的实现方式。下面依次针对配合广播协议或匹配协议时,步骤S101的实现方式进行例举:
第一种实施方式:适用于固件升级的服务系统100中各电子设备200采用广播协议发出对应的设备身份信息。可选地,如图4所示,步骤S101可以包括以下子步骤:
子步骤S1011,侦听预选网段传播的广播协议数据。
在一些实施例中,固件升级的服务系统100中的各电子设备200可以将自身对应的设备身份数据基于广播协议生成广播协议数据,通过预选的网段向外界广播。而本端设备则实时的侦听预选网段内传播的广播协议数据。
子步骤S1012,识别广播协议数据中携带的设备身份信息是否由同类设备发出。
在一些实施例中,本端设备依据侦听到的广播协议数据所携带的设备身份信息,判断发送该广播协议数据的电子设备200是否为本端设备的同类设备。例如,可以将广播协议数据携带的设备身份信息中的固有的属性相关信息与本端设备身份信息中的固有的属性相关信息进行比对,从而判定发出该广播协议数据的电子设备200是否具备与本端设备相同的硬件架构、是否遵循与本端设备同样的协议标准,进而判定该广播协议数据所携带的设备身份信息是否由本端设备的同类设备发出。
需要说明的是,上述本端设备身份信息为本端设备自身的设备身份信息。在本实现方式中,本端设备作为固件升级的服务系统100中的一电子设备200,也会依据本端设备身份信息生成广播协议数据向外发送,以便其他电子设备200接收。
子步骤S1013,若广播协议数据中携带的设备身份信息由同类设备发出,从该广播协议数据中获取所述设备身份信息。
在一些实施例中,从识别出携带的设备身份信息由同类设备的广播协议数据中获取其携带的设备身份信息。
第二种实施方式:适用于固件升级的服务系统100中各电子设备200采用匹配协议发出对应的设备身份信息。可选地,如图5所示,步骤S101可以包括以下子步骤:
子步骤S1014,利用预设的匹配协议扫描周边设备。
在一些实施例中,上述匹配协议可以是近场通信协议,例如,匹配协议可以是蓝牙协议、ZigBee协议等。本端设备可以实时的利用对应的匹配协议对所处环境进行扫描,以发现周边设备。可以理解的,上述周边设备可以是各类电子设备200,其中,发现的周边设备中可以包括本端设备的同类设备,也可以不包括本端设备的同类设备。
子步骤S1015,若周边设备存在同类设备,建立与同类设备之间的通信。
在一些实施例中,在采用匹配协议进行扫描时,可以同步利用匹配协议检验扫描到的每一周边设备是否为同类设备。并在确定为同类设备后,利用该匹配协议建立与该确定为同类设备之间的通信连接,以实现本端设备与同类设备之间的数据通信需求。
子步骤S1016,接收同类设备发送的设备身份信息。
在一些实施例中,本端设备从建立了通信连接的同类设备获取该同类设备发出的设备身份信息。
可以理解的,上述步骤S101的第一种实施方式和第二种实施除了可适应对应的通信协议外,还各具优点。第一种实施方式可以改善设备间距离导致的传播范围限制,第二种实施方式可以提供更稳定的数据传递链路,使设备之间互传数据的时效性更高。
可以理解的,本端设备可以采用至少一种实施方式执行步骤S101。也就是,本端设备还可以同时采用多种实施方式实现获取到由同类设备发送的设备身份信息。例如,本端设备可以先利用匹配协议扫描周边设备,若没有在周边设备中发现同类设备,则启动侦听预选网段传播的广播协议数据,以便获取到由同类设备发送的设备身份信息。
上述步骤S102可以是本端设备依据已得到的由同类设备的设备身份信息,筛选出可以被作为固件提供端的电子设备200。可以理解的,通过筛选,如果没有可以被作为固件提供端的电子设备200,则结束流程。
作为一种实施方式,如图6所示,上述步骤S102可以包括以下子步骤:
子步骤S1021,将获取到的设备身份信息中携带的固件版本信息与本端固件版本信息进行比较。
在一些实施例中,上述固件版本信息可以是电子设备200所采用的固件的介绍信息。例如,可以是,但不限于是,固件版本号、固件发布时间信息等。上述设备身份信息中携带的固件版本信息可以是发送该设备身份信息的电子设备200采用的固件所对应的固件版本信息。上述本端固件版本信息可以是本端设备当前采用的固件所对应的固件版本信息。
在一些实施例中,上述进行比较的方式可以是:通过将设备身份信息中携带的固件版本信息与本端固件版本信息进行比较,评估发送该设备身份信息的电子设备200与本端设备对应的固件版本之间的高低。可以理解的,高版本的固件版本可以体现在发布时间距当前的时间间隔更短和/或版本号更高。
在一些实施例中,上述进行比较的方式还可以包括:通过将设备身份信息中携带的固件版本信息与本端固件版本信息进行比较,得到固件版本之间的版本间隔版数。例如,依据版本号之间的差异确定版本间隔版数。
子步骤S1022,若存在携带的固件版本信息高于本端固件版本信息的设备身份信息,则从携带的固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息。
在一些实施例中,如果通过比较确定一设备身份信息携带的固件版本信息所对应的固件版本高于本端固件版本信息对应的固件版本,可以将携带固件版本信息高于本端固件版本信息的设备身份信息确定为目标身份信息。
可以理解的是,若同时获得多个携带固件版本信息高于本端固件版本信息的设备身份信息,则将携带的固件版本信息最高的设备身份信息作为目标身份信息。
此类方式,可以帮助高版本的固件被传播,且使本端设备的固件更新效率高。
在一些实施例中,为了改善本端设备可能在短时间内反复发现具有更高版本的同类设备,可能出现频繁升级的情况。上述从携带的固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息可以采用以下步骤实现:
需要说明的是,为了方便描述,对从携带的固件版本信息高于本端固件版本信息的设备身份信息中筛选目标身份信息进行说明时,在无特别说明的情况下,所提到的设备身份信息可以是指代携带的固件版本信息高于本端固件版本信息的设备身份信息。
(1)依据本端固件版本信息,确定间隔版本阈值。
可选地,上述间隔版本阈值可以是本端设备确定出的当前可以触发固件升级的一个条件。可以理解为,本端设备在识别出设备身份信息对应的固件版本与本端固件版本之间的版本间隔版数不低于该间隔版本阈值时,产生固件升级的需求。因此,可以将确定的固件版本与本端固件版本之间版本间隔不低于间隔版本阈值的同类设备作为待选设备,以便从待选设备中确定一固件提供端。
可以理解地,如果在间隔版本阈值的限制下,本端设备确定不存在满足条件的同类设备,则结束流程。
可选地,上述间隔版本阈值可以是依据本端固件版本信息对应的固件的稳定性确定,或者是依据本端固件版本信息对应的固件的发布时间等确定。
可选地,若以本端固件版本信息对应的固件的稳定性确定间隔版本阈值,则上述依据本端固件版本信息,确定间隔版本阈值可以是:依据本端固件版本信息中的稳定性标记信息,匹配出对应的所述间隔版本阈值。可以理解的,本端设备内可以预先设置多类稳定性标记信息及对应的间隔版本阈值之间的对应关系。在需要确定间隔版本阈值,依据本端固件对应的稳定性标记信息,查找与之对应的间隔版本阈值。例如,稳定性标记信息显示本端固件为beta版本(即公开测试版),则对应的间隔版本阈值可以设置为3;稳定性标记信息显示本端固件为stable版本(即稳定版),则对应的间隔版本阈值可以设置为10。
可选地,若以本端固件版本信息对应的固件的发布时间确定间隔版本阈值,则上述依据本端固件版本信息,确定间隔版本阈值可以是:依据本端固件版本信息的发布时间,评估对应的间隔版本阈值。可以理解的,可以是根据对应固件版本的发布时间与当前时间之间的时间间隔长度,利用预设的评估模型,获取对应的间隔版本阈值。上述评估模型可以是一可以实现自主学习的模型,可以利用历史获取到的各同类设备发送的设备身份信息中携带的固件版本信息之间的发布时间差和版本间隔版数作为训练样本,对评估模型进行训练,使评估模型可以评估出更准确的间隔版本阈值。
(2)将携带的固件版本信息与本端固件版本信息之间的版本间隔不低于间隔版本阈值、且携带的固件版本信息最高的所述设备身份信息确定为目标身份信息。
可选地,设备身份信息中携带的固件版本信息与本端固件版本信息之间的版本间隔与间隔版本阈值进行比较,将对应版本间隔不低于间隔版本阈值的设备身份信息作为待选身份信息,再将待选身份信息中携带的固件版本信息最高作为目标身份信息。
子步骤S1023,将筛选出的目标身份信息对应的同类设备作为固件提供端。
作为另一种实施方式,为了考虑固件升级的电能消耗,实现一种更可靠的固件升级方法。如图7所示,上述步骤S102可以包括以下子步骤:
子步骤S1024,获取剩余电量信息。
在一些实施例中,本端设备可以从供电单元获取剩余电量信息。
子步骤S1025,依据剩余电量信息,匹配对应的升级时间频率要求。
在一些实施例中,上述升级时间频率要求可以是当前与相邻上一次固件升级之间的时间间隔不低于升级间隔时长。例如,升级间隔时长可以是十天、一个月、两个月等。可选地,可以预先设置多个剩余电量值与升级间隔时长之间的对应关系。可以理解的,上述对应关系的设置原则可以是,剩余电量值越高对应的升级间隔时长也短。因此,通过得到的剩余电量信息即可匹配出对应的升级时间频率要求。
子步骤S1026,根据相邻上一次固件升级对应的时间点,判断是否满足所述升级时间频率要求。
在一些实施例中,获取本端设备相邻上一次进行固件升级的时间点,计算该时间点与当前的时间点之间的时间间隔,将该时间间隔与升级时间频率要求对应的升级间隔时长进行比较。若该时间间隔不低于对应的升级间隔时长,则判定满足升级时间频率要求,流程进入步骤S1027。若该时间间隔低于对应的升级间隔时长,则判定不满足升级时间频率要求,结束流程。
子步骤S1027,若满足升级时间频率要求,将固件版本信息与本端固件版本信息进行比较。
可以理解的,上述将固件版本信息与本端固件版本信息进行比较的原理与子步骤S1021相同,再次不再赘述。
子步骤S1028若存在携带的固件版本信息高于本端固件版本信息的设备身份信息,则从携带的固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息。
可以理解的,上述子步骤S1028与子步骤S1022相同,再次不再赘述。
子步骤S1029,将筛选出的目标身份信息对应的同类设备作为固件提供端。
可以理解的,上述子步骤S1029与子步骤S1023相同,再次不再赘述。
为了避免出现固件升级数据的误传,导致对本端设备和被确定为固件提供端的各项能耗的浪费(比如,电量的浪费、网络资源的消耗),可选地,在本端设备确定了固件提供端后,如图8所示,上述固件升级方法还可以包括以下步骤:
步骤S201,依据本端设备身份信息生成固件获取请求。
在一些实施例中,上述本端设备身份信息可以包括本端设备的固有属性相关信息。例如,可以包括设备MAC、设备IP、设备类型、遵循的协议标准等。可选地,该本端设备身份信息还可以包括本端设备的可更新的属性相关信息。例如,设备软件信息、设备固件种类、固件版本信息。可以理解的,上述设备固件种类、固件版本信息可以是本端设备已安装并正使用的固件信息。可选地,该本端设备身份信息还可以包括涉及设备安全的信息,例如,可以包括安全等级、公钥等。可以理解的,上述本端设备身份信息可以是本端设备的固有属性相关信息、本端设备的可更新属性相关信息及涉及设备安全的信息等中的一种或多种之间的组合。进一地,本端设备可以依据本端设备身份信息生成固件获取请求。
可以理解,通过将本端设备身份信息发送至固件提供端,以便固件提供端可以对本端设备进行身份验证,例如,身份验证可以是由固件提供端验证本端设备是否为同类设备、由固件提供端验证自身是否具有本端设备所需的固件数据。
步骤S202,向固件提供端发送固件获取请求。
在一些实施例中,本端设备可以通过与固件提供端之间的通信连接,将固件获取请求发出,以等待固件提供端响应于该固件获取请求的反馈。
步骤S203,接收固件提供端响应于所述固件获取请求反馈的所述固件升级数据。
在一些实施例中,固件提供端在接收到固件获取请求且确定该固件获取请求对应的本端设备通过身份验证后,依据对应的固件数据生成固件升级数据。可以理解的,固件提供端为了确保固件升级数据在传输过程中的安全,可以在发出前利用自身的私钥进行加密,在加密完成后,反馈本端设备。进一步地,本端设备接收到固件升级数据后,利用已得到的固有提供端发送设备身份信息中的公钥对固件升级数据进行解密,再基于解密后的固件升级数据执行固件升级。
结合上述步骤S201、步骤S202和步骤S203,本公开提供的固件升级方法可以实现本端设备与固件提供端之间的双向认证。既避免固件提供端进行不必要的固件打包、传输造成的电量、网络资源的浪费,也避免固件提供端发出错误的固件升级数据导致本端设备升级出错,造成本端设备的故障。总体而言,提高本端设备的固件升级的安全性。
可以理解的,为了实现每一电子设备200均具有被作为固件提供端的资格。上述本端设备与固件升级的服务系统100中其他电子设备200一样,会实时的将本端设备身份信息向外界发送。因此,本端设备也可能被其他设备确认为固件提供端。在本端设备也被其他设备确认为固件提供端时,如图9所示,本公开的固件升级方法还可以包括以下步骤:
步骤S301,在接收到固件获取请求时,依据固件获取请求判断对应的固件请求端是否属于所述同类设备。
在一些实施例中,本端设备接收到的固件获取请求中携带了固件请求端对应的设备身份信息。上述步骤S301可以是将固件获取请求中携带的设备身份信息与本端设备身份信息进行比较,判断固件请求端是否与本端设备之间具有相同的硬件架构、遵循相同的协议标准,进而判定固件请求端是否为本端设备的同类设备。在确定固件获取请求对应的固件请求端为本端设备的同类设备后,流程进入步骤S302。
该步骤S301的目的在于,避免本端设备执行不必要的固件数据的打包、发送,造成电量及网络资源的浪费。
步骤S302,若固件请求端属于同类设备,则对本端固件数据进行处理,生成响应固件获取请求的固件升级数据。
在一些实施例中,上述本端固件数据可以是本端设备当前采用的固件。上述对本端固件数据进行处理的方式可以是依次对本端固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。可以理解的,上述固件加密处理可以是利用本端设备的私钥对固件数据进行加密。
进一步地,为了提高固件请求端得到固件升级数据后的升级速度,也为了减少大体积的固件升级数据的传输对网络资源的消耗。上述对本端固件数据进行处理的方式还可以是:依据所述固件获取请求中携带的固件版本信息和本端固件版本信息的差异,从本端固件数据中拆分出待处理固件数据。依次对所述待处理固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
步骤S303,将生成的固件升级数据发送至固件请求端。
通过前述步骤,可以实现高版本的固件升级数据在同类设备之间的高效传播,提高电子设备200的固件升级效率,也提高固件升级的自动化程度。
为了对本公开详细说明,图10示出本申请的一些实施例的信令交互的流程示意图,具体如下:
S1,电子设备a和电子设备c向外界发送的设备身份信息被电子设备b接收到。
在一些实施例中,电子设备a、电子设备c向外界发送的设备身份信息可以是通过匹配协议建立的通信连接发出的具有指向性的通信数据、也可以是通过广播协议向外界发送的无指向性的通信数据。可以理解的,除了电子设备b之外,固件升级的服务系统100中的其他电子设备200也可以接收到电子设备a或电子设备c发出的设备身份信息。
S2,电子设备b依据接收到的设备身份信息确定固件提供端。
在一些实施例中,电子设备b依据接收到的设备身份信息,验证电子设备a和电子设备c是否为同类设备。并在确定为同类设备中判断是否存在可以提供满足升级要求的固件的设备。以便将可以提供满足升级要求的固件的设备确定为固件提供端。假如,经过判断确定电子设备c为可以提供满足升级要求的固件的设备。
S3,将携带电子设备b的设备身份信息的固件获取请求向确定为固件提供端的电子设备c发送。
S4,电子设备c依据接收到的固件获取请求进行身份验证。
在一些实施例中,电子设备c可以依据固件获取请求验证电子设备b是否属于同类设备,验证自身是否能提供电子设备b所需的固件。假如,是同类设备且可以提供电子设备b所需的固件,则表示通过身份验证。
S5,若固件获取请求通过验证,则电子设备c依据固件获取请求生成对应的固件升级数据。
S6,电子设备c将固件升级数据向电子设备b发送。
S7,电子设备b基于固件升级数据进行固件升级。
图11是示出本申请的一些实施例的固件升级装置300的框图,该固件升级装置300实现的功能对应上述方法执行的步骤。该装置可以理解为上述电子设备200,或电子设备200的处理器220,也可以理解为独立于上述电子设备200或处理器220之外的在电子设备200控制下实现本申请功能的组件,如图所示,固件升级装置300可以包括获取模块301、判断模块302,固件拉取模块303、处理模块304和发送模块305。
获取模块301,用于获取由同类设备发送的设备身份信息。
在一实施方式中,上述获取模块301具体可以用于侦听预选网段传播的广播协议数据;识别所述广播协议数据中携带的设备身份信息是否由所述同类设备发出;若所述广播协议数据中携带的设备身份信息由所述同类设备发出,从所述广播协议数据中获取所述设备身份信息。
在一实施方式中,上述获取模块301具体还可以用于利用预设的匹配协议扫描周边设备;若周边设备存在所述同类设备,建立与所述同类设备之间的通信;接收所述同类设备发送的所述设备身份信息。
判断模块302,用于依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端。
在一些实施例中,上述判断模块302可以包括:
比较子模块,用于将获取到的所述设备身份信息中携带的固件版本信息与本端固件版本信息进行比较。
筛选子模块,用于若存在携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息,则从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息。
可选地,筛选子模块可以具体用于依据所述本端固件版本信息,确定间隔版本阈值;将携带的所述固件版本信息与所述本端固件版本信息之间的版本间隔不低于所述间隔版本阈值、且携带的所述固件版本信息最高的所述设备身份信息确定为所述目标身份信息。
可选地,上述筛选子模块具体还用于:依据所述本端固件版本信息中的稳定性标记信息,匹配出对应的所述间隔版本阈值。
可选地,上述筛选子模块具体还用于:依据所述本端固件版本信息的发布时间,评估对应的所述间隔版本阈值。
确定子模块,用于将筛选出的所述目标身份信息对应的所述同类设备作为所述固件提供端。
在一些实施例中,判断模块302还可以包括:
获取子模块,用于获取剩余电量信息。
匹配子模块,用于依据所述剩余电量信息,匹配对应的升级时间频率要求。
判断子模块,用于根据相邻上一次固件升级对应的时间点,判断是否满足所述升级时间频率要求。
所述比较子模块,还用于若满足所述升级时间频率要求,将所述固件版本信息与本端固件版本信息进行比较。
固件拉取模块303,用于若确定存在所述固件提供端,则从所述固件提供端获取固件升级数据。
在一些实施例中,固件拉取模块303具体用于依据本端设备身份信息生成固件获取请求;向所述固件提供端发送所述固件获取请求;接收所述固件提供端响应于所述固件获取请求反馈的所述固件升级数据。
在一些实施例中,上述判断模块302,还用于在接收到固件获取请求时,依据所述固件获取请求判断对应的固件请求端是否属于所述同类设备。
处理模块304,用于若所述固件请求端属于所述同类设备,则对本端固件数据进行处理,生成响应所述固件获取请求的固件升级数据。
在一些实施例中,所述处理模块304具体用于:依次对所述本端固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
在一些实施例中,上述处理模块304具体用于:
依据所述固件获取请求中携带的固件版本信息和本端固件版本信息的差异,从所述本端固件数据中拆分出待处理固件数据;
依次对所述待处理固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
发送模块305,用于将生成的所述固件升级数据发送至所述固件请求端。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。
根据本申请的另一方面,还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器220运行时执行前述的固件升级方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (28)

1.一种固件升级方法,其特征在于,包括:
获取由同类设备发送的设备身份信息;
依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端;
若确定存在所述固件提供端,则从所述固件提供端获取固件升级数据。
2.根据权利要求1所述的方法,其特征在于,所述获取由同类设备发送的设备身份信息的步骤包括:
侦听预选网段传播的广播协议数据;
识别所述广播协议数据中携带的设备身份信息是否由所述同类设备发出;
若所述广播协议数据中携带的设备身份信息由所述同类设备发出,从所述广播协议数据中获取所述设备身份信息。
3.根据权利要求1所述的方法,其特征在于,所述获取由同类设备发送的设备身份信息的步骤包括:
利用预设的匹配协议扫描周边设备;
若周边设备存在所述同类设备,建立与所述同类设备之间的通信;
接收所述同类设备发送的所述设备身份信息。
4.根据权利要求2或3所述的方法,其特征在于,所述依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端的步骤包括:
将获取到的所述设备身份信息中携带的固件版本信息与本端固件版本信息进行比较;
若存在携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息,则从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息;
将筛选出的所述目标身份信息对应的所述同类设备作为所述固件提供端。
5.根据权利要求4所述的方法,其特征在于,所述从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息的步骤包括:
依据所述本端固件版本信息,确定间隔版本阈值;
将携带的所述固件版本信息与所述本端固件版本信息之间的版本间隔不低于所述间隔版本阈值、且携带的所述固件版本信息最高的所述设备身份信息确定为所述目标身份信息。
6.根据权利要求5所述的方法,其特征在于,所述依据所述本端固件版本信息,确定间隔版本阈值的步骤包括:
依据所述本端固件版本信息中的稳定性标记信息,匹配出对应的所述间隔版本阈值。
7.根据权利要求5所述的方法,其特征在于,所述依据所述本端固件版本信息,确定间隔版本阈值的步骤包括:
依据所述本端固件版本信息的发布时间,评估对应的所述间隔版本阈值。
8.根据权利要求4所述的方法,其特征在于,所述从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息的步骤还包括:
获取剩余电量信息;
依据所述剩余电量信息,匹配对应的升级时间频率要求;
根据相邻上一次固件升级对应的时间点,判断是否满足所述升级时间频率要求;
所述将获取到的所述设备身份信息中携带的固件版本信息与本端固件版本信息进行比较的步骤包括:若满足所述升级时间频率要求,将所述固件版本信息与本端固件版本信息进行比较。
9.根据权利要求1所述的方法,其特征在于,所述从所述固件提供端获取固件升级数据的步骤包括:
依据本端设备身份信息生成固件获取请求;
向所述固件提供端发送所述固件获取请求;
接收所述固件提供端响应于所述固件获取请求反馈的所述固件升级数据。
10.根据权利要求1所述的方法,其特征在于,还包括:
在接收到固件获取请求时,依据所述固件获取请求判断对应的固件请求端是否属于所述同类设备;
若所述固件请求端属于所述同类设备,则对本端固件数据进行处理,生成响应所述固件获取请求的固件升级数据;
将生成的所述固件升级数据发送至所述固件请求端。
11.根据权利要求10所述的方法,其特征在于,所述对本端固件数据进行处理的步骤包括:
依次对所述本端固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
12.根据权利要求10所述的方法,其特征在于,所述对本端固件数据进行处理的步骤包括:
依据所述固件获取请求中携带的固件版本信息和本端固件版本信息的差异,从所述本端固件数据中拆分出待处理固件数据;
依次对所述待处理固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
13.根据权利要求1所述的方法,其特征在于,所述同类设备包括具备相同硬件架构且遵循相同的协议标准的设备。
14.一种固件升级装置,其特征在于,包括:
获取模块,用于获取由同类设备发送的设备身份信息;
判断模块,用于依据所述设备身份信息从对应的所述同类设备中确定是否存在固件提供端;
固件拉取模块,用于若确定存在所述固件提供端,则从所述固件提供端获取固件升级数据。
15.根据权利要求14所述的装置,其特征在于,所述获取模块具体用于:
侦听预选网段传播的广播协议数据;
识别所述广播协议数据中携带的设备身份信息是否由所述同类设备发出;
若所述广播协议数据中携带的设备身份信息由所述同类设备发出,从所述广播协议数据中获取所述设备身份信息。
16.根据权利要求14所述的装置,其特征在于,所述获取模块具体用于:
利用预设的匹配协议扫描周边设备;
若周边设备存在所述同类设备,建立与所述同类设备之间的通信;
接收所述同类设备发送的所述设备身份信息。
17.根据权利要求15或16所述的装置,其特征在于,所述判断模块包括:
比较子模块,用于将获取到的所述设备身份信息中携带的固件版本信息与本端固件版本信息进行比较;
筛选子模块,用于若存在携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息,则从携带的所述固件版本信息高于所述本端固件版本信息的所述设备身份信息中筛选目标身份信息;
确定子模块,用于将筛选出的所述目标身份信息对应的所述同类设备作为所述固件提供端。
18.根据权利要求17所述的装置,其特征在于,所述筛选子模块具体用于:
依据所述本端固件版本信息,确定间隔版本阈值;
将携带的所述固件版本信息与所述本端固件版本信息之间的版本间隔不低于所述间隔版本阈值、且携带的所述固件版本信息最高的所述设备身份信息确定为所述目标身份信息。
19.根据权利要求18所述的装置,其特征在于,所述筛选子模块具体还用于:
依据所述本端固件版本信息中的稳定性标记信息,匹配出对应的所述间隔版本阈值。
20.根据权利要求18所述的装置,其特征在于,所述筛选子模块具体还用于:
依据所述本端固件版本信息的发布时间,评估对应的所述间隔版本阈值。
21.根据权利要求17所述的装置,其特征在于,所述判断模块还包括:
获取子模块,用于获取剩余电量信息;
匹配子模块,用于依据所述剩余电量信息,匹配对应的升级时间频率要求;
判断子模块,用于根据相邻上一次固件升级对应的时间点,判断是否满足所述升级时间频率要求;
所述比较子模块,还用于若满足所述升级时间频率要求,将所述固件版本信息与本端固件版本信息进行比较。
22.根据权利要求14所述的装置,其特征在于,所述固件拉取模块具体用于:
依据本端设备身份信息生成固件获取请求;
向所述固件提供端发送所述固件获取请求;
接收所述固件提供端响应于所述固件获取请求反馈的所述固件升级数据。
23.根据权利要求14所述的装置,其特征在于,还包括:
所述判断模块,还用于在接收到固件获取请求时,依据所述固件获取请求判断对应的固件请求端是否属于所述同类设备;
处理模块,用于若所述固件请求端属于所述同类设备,则对本端固件数据进行处理,生成响应所述固件获取请求的固件升级数据;
发送模块,用于将生成的所述固件升级数据发送至所述固件请求端。
24.根据权利要求23所述的装置,其特征在于,所述处理模块具体用于:
依次对所述本端固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
25.根据权利要求23所述的装置,其特征在于,所述处理模块具体用于:
依据所述固件获取请求中携带的固件版本信息和本端固件版本信息的差异,从所述本端固件数据中拆分出待处理固件数据;
依次对所述待处理固件数据进行固件加密处理、固件签名处理及固件打包处理,以生成所述固件升级数据。
26.根据权利要求14所述的装置,其特征在于,所述同类设备包括具备相同硬件架构且遵循相同的协议标准的设备。
27.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1至13任一所述的固件升级方法的步骤。
28.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至13任一所述的固件升级方法的步骤。
CN201811614685.3A 2018-12-27 2018-12-27 一种固件升级方法、装置、电子设备及存储介质 Pending CN111381857A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811614685.3A CN111381857A (zh) 2018-12-27 2018-12-27 一种固件升级方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811614685.3A CN111381857A (zh) 2018-12-27 2018-12-27 一种固件升级方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN111381857A true CN111381857A (zh) 2020-07-07

Family

ID=71217124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811614685.3A Pending CN111381857A (zh) 2018-12-27 2018-12-27 一种固件升级方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111381857A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035145A (zh) * 2020-09-08 2020-12-04 Oppo广东移动通信有限公司 设备升级方法及相关装置
CN112099828A (zh) * 2020-09-21 2020-12-18 Oppo广东移动通信有限公司 电子设备升级的方法、装置、存储介质、电子设备及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10354909A1 (de) * 2003-11-24 2005-06-30 Giga-Byte Technology Co., Ltd., Hsin-Tien Verfahren zum Steuern des Upgrades von Firmware
CN101686145A (zh) * 2008-09-26 2010-03-31 深圳华为通信技术有限公司 一种具有升级功能的设备、升级方法及系统
CN105577449A (zh) * 2016-01-19 2016-05-11 江苏小牛电动科技有限公司 一种基于电动车中控系统的自动升级方法和装置
CN106406946A (zh) * 2016-09-12 2017-02-15 雷蕾 一种多主从装置系统软件自动升级方法
CN107104814A (zh) * 2012-02-17 2017-08-29 阿里巴巴集团控股有限公司 软件升级方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10354909A1 (de) * 2003-11-24 2005-06-30 Giga-Byte Technology Co., Ltd., Hsin-Tien Verfahren zum Steuern des Upgrades von Firmware
CN101686145A (zh) * 2008-09-26 2010-03-31 深圳华为通信技术有限公司 一种具有升级功能的设备、升级方法及系统
CN107104814A (zh) * 2012-02-17 2017-08-29 阿里巴巴集团控股有限公司 软件升级方法和系统
CN105577449A (zh) * 2016-01-19 2016-05-11 江苏小牛电动科技有限公司 一种基于电动车中控系统的自动升级方法和装置
CN106406946A (zh) * 2016-09-12 2017-02-15 雷蕾 一种多主从装置系统软件自动升级方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035145A (zh) * 2020-09-08 2020-12-04 Oppo广东移动通信有限公司 设备升级方法及相关装置
CN112099828A (zh) * 2020-09-21 2020-12-18 Oppo广东移动通信有限公司 电子设备升级的方法、装置、存储介质、电子设备及系统

Similar Documents

Publication Publication Date Title
US9066226B2 (en) Initialization of embedded secure elements
CN107046736B (zh) 用于无线传屏设备的连接方法、无线传屏设备及显示设备
US9774642B2 (en) Method and device for pushing multimedia resource and display terminal
CN107006049A (zh) 一种智能设备及其建立设备间蓝牙连接的方法、装置
CN104125558B (zh) 一种基于客户端的业务处理方法、设备及系统
CN103701640A (zh) 使用智能管理终端升级odn设备的方法及系统
CN112615753B (zh) 一种链路异常追踪方法、第一节点、第二节点以及链路
CN105516246A (zh) 一种防应用程序下载劫持的方法及服务器
CN104683407A (zh) 一种页面数据和应用数据的传输方法和设备
CN105072398B (zh) 一种设备升级方法和装置
CN111381857A (zh) 一种固件升级方法、装置、电子设备及存储介质
CN110851170A (zh) 软件多渠道发布方法及相关设备
CN102984046A (zh) 一种即时通讯业务的处理方法及相应的网络设备
CN111182515A (zh) 一种配网方法、装置、终端及计算机存储介质
CN114286416A (zh) 通信控制方法及装置、电子设备、存储介质
CN111402456B (zh) 一种开锁方法及装置
CN112632585B (zh) 一种网页数据传输系统、方法、装置、介质和设备
CN106452828A (zh) 一种基于provision协议传输的终端配置方法及系统
WO2019095388A1 (zh) 一种远程协助处理方法及设备
CN102118737A (zh) 一种远程获取锁网信息的方法及终端
CN104301419A (zh) 非本机远程下载控制系统及方法
CN111787514A (zh) 设备控制数据的获取方法及装置、存储介质、电子装置
CN109195139B (zh) M2M管理平台与eSIM卡的数据传输方法、装置、平台及介质
CN104125593A (zh) 一种信息处理方法及电子设备
CN111258625A (zh) 软件刷机检测方法、装置、存储介质及电子设备

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