CN114579181A - 打补丁的方法、相关设备及系统 - Google Patents

打补丁的方法、相关设备及系统 Download PDF

Info

Publication number
CN114579181A
CN114579181A CN202011377442.XA CN202011377442A CN114579181A CN 114579181 A CN114579181 A CN 114579181A CN 202011377442 A CN202011377442 A CN 202011377442A CN 114579181 A CN114579181 A CN 114579181A
Authority
CN
China
Prior art keywords
electronic device
patch
program
file
version information
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
CN202011377442.XA
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011377442.XA priority Critical patent/CN114579181A/zh
Priority to PCT/CN2021/133755 priority patent/WO2022111664A1/zh
Publication of CN114579181A publication Critical patent/CN114579181A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/48Incremental compilation
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了打补丁的方法、相关设备及系统。该方法可包括:补丁池所挂载的第一电子设备可以获取到云服务器下发的第一补丁。第一电子设备可以基于本设备的第一版本信息将第一补丁编译为第一机器码。第一电子设备可以获取到同一个局域网中第二电子设备中第一程序的第二版本信息。第一电子设备可以根据第二版本信息对应的第二偏移量,快速合成第二机器码并生成第二补丁文件。第二电子设备可以获取第二补丁文件或第二补丁文件对应的指令并运行,补丁生效,第二电子设备的第一程序中的第一漏洞被修复。实施本申请技术方案可以避免云服务器重复多次下发补丁,减少了网络带宽的耗费,大大提升了补丁修复的效率,给用户带来更为良好的使用体验。

Description

打补丁的方法、相关设备及系统
技术领域
本申请涉及计算机技术领域,尤其涉及打补丁的方法、相关设备及系统。
背景技术
在用户使用电子设备的过程中,系统程序或应用程序可能会出现漏洞(bug)。现有技术针对该问题的解决方式,通常是云服务器向电子设备下发相应的补丁。在电子设备获取到该补丁后,安装该补丁,使得补丁生效,从而修复程序中相应的漏洞。
云服务器向电子设备下发补丁时,第一种方式是,云服务器可以向电子设备下发补丁的原始解释性代码,电子设备接收到补丁后,在电子设备侧进行机器码化,加载运行该补丁的机器码,补丁生效,程序bug被修复。使用第一种方式,云服务器可能会重复向不同电子设备下发补丁,耗费网络带宽,并且在电子设备侧进行补丁机器码化,补丁修复效率低。
第二种方式是,云服务器可以根据获取到的需要修复bug的程序的版本等信息,在云服务器侧对补丁进行机器码化,然后将该补丁的机器码下发至电子设备中,电子设备可以直接加载运行该补丁的机器码,补丁生效,程序bug被修复。在第二种方式中,电子设备直接运行机器码化的补丁文件,相对第一种方式,补丁的修复效率得到提高,但是该机器码化的补丁文件会与特定版本绑定。但是不同的电子设备上程序的版本可能并不相同,所以云服务器会根据不同版本的程序对应下发不同的补丁。使用第二种方式,会导致云服务器针对同一个bug的补丁重复进行机器码化,在下发补丁时会耗费大量的网络带宽,影响补丁的修复效率,影响用户体验。
发明内容
本申请的目的在于提供一种打补丁的方法、相关设备及系统,可以解决在不同的电子设备需要修复同一个程序漏洞的情况下,云服务器多次重复下发补丁的问题,减少了网络带宽的耗费,并且在终端侧可以快速合成适应于不同电子设备的补丁机器码,大大提升了补丁修复的效率,给用户带来更为良好的使用体验。
上述目标和其他目标将通过独立权利要求中的特征来达成。进一步的实现方式在从属权利要求、说明书和附图中体现。
第一方面,本申请提供了一种打补丁的方法,该方法可以包括:第一电子设备可以与第二电子设备建立第一连接,然后,第一电子设备可以获取第一补丁文件,该第一补丁文件可以用于第一程序中的第一漏洞,该第一漏洞存在于第二电子设备的第一程序中。该电子设备可以根据第一程序的第一版本信息,将该第一补丁编译为第一机器码,接下来,该第一电子设备可以将该第一机器码和第一偏移量合成为第二机器码,并且可以将该第二机器码烧录生成第二补丁文件。其中,该第一偏移量是根据第二版本信息所确定的,该第二版本信息是第二电子设备中第一程序中的版本信息,该第二版本信息是第一电子设备通过第一连接从第二电子设备处获取到的,该第二补丁文件可以用于修复版本信息是第二版本信息的第一程序中的第一漏洞。
在本申请中,第一电子设备可以是智能手机、平板电脑、笔记本电脑、台式电脑或者其他类型的电子设备。该第一电子设备可以具备较强的计算处理能力及较充足的内部存储空间。第一电子设备可以是补丁池的挂载设备,第一电子设备还可以是将补丁编译为机器码的设备。并且也具有蓝牙(bluetooth,BT)模块、和/或无线局域网络(wirelesslocalareanetworks,WLAN)模块。其中,蓝牙(BT)模块可以提供包括经典蓝牙(蓝牙2.1标准)或蓝牙低功耗(bluetooth low energy,BLE)中一项或多项蓝牙通信的解决方案。WLAN模块可以提供包括无线保真直连(wireless fidelity direct,Wi-Fi direct)、无线保真局域网(wirelessfidelity local area networks,Wi-Fi LAN)或无线保真软件接入点(wirelessfidelitysoftware access point,Wi-Fi softAP)中一项或多项WLAN通信的解决方案。
在本申请中,第二电子设备可以是智能手机、平板电脑、笔记本电脑等具备较强的计算处理能力及较充足的内部存储空间等类型的电子设备,第二电子设备还可以是智能手表、智能手环、智能音箱、智能耳机等具备较弱的计算处理能力或较小的内部存储空间等类型的电子设备。第二电子设备可以具有蓝牙(bluetooth,BT)模块、和/或无线局域网络(wirelesslocalareanetworks,WLAN)模块。其中,蓝牙(BT)模块可以提供包括经典蓝牙(蓝牙2.1标准)或蓝牙低功耗(bluetooth low energy,BLE)中一项或多项蓝牙通信的解决方案。WLAN模块可以提供包括无线保真直连(wireless fidelity direct,Wi-Fi direct)、无线保真局域网(wirelessfidelity local area networks,Wi-Fi LAN)或无线保真软件接入点(wirelessfidelitysoftware access point,Wi-Fi softAP)中一项或多项WLAN通信的解决方案。
实施第一方面的方法,可以避免在不同的电子设备需要修复同一个程序漏洞的情况下,云服务器多次重复下发补丁的问题,减少了网络带宽的耗费,并且在终端侧可以快速合成适应于不同电子设备的补丁机器码,大大提升了补丁修复的效率,给用户带来更为良好的使用体验。
结合第一方面,在一些实施例中,该第一偏移量可以是根据第一映射表中记录的第二版本信息与该第一偏移量的对应关系所确定。
结合第一方面,在一些实施例中,第一电子设备可以向第二电子设备发送第二补丁文件。该第二补丁文件可用于与第二电子设备中的第一程序文件合称为第二程序文件。该第一程序文件是第二电子设备中未修复的第一漏洞的第一程序的可执行文件,该第二程序文件是第二电子设备中已修复该第一漏洞的第一程序的可执行文件。
结合第一方面,在一些实施例中,当第二电子设备收到的对于第一程序文件的交互请求时,第一电子设备可以通过第一连接接收到对于第二程序文件的交互请求,其中,该第一程序文件可以是第二电子设备中未修复第一漏洞的第一程序的可执行文件,该第二程序文件可以是第一电子设备将该第一程序文件与该第二补丁文件合成得到的,该第二程序文件是已修复该第一漏洞的该第一程序的可执行文件,第二电子设备上的该第一程序文件可以关联与该第一电子设备上的该第二程序文件。第一电子设备可以读取所述第二程序文件,生成交互结果或可执行指令,并可以通过所述第一连接向第二电子设备发送交互结果或可执行指令。
结合第一方面,在一些实施例中,在第一电子设备生成第二补丁文件之后,第一电子设备可以发送广播信息,该广播信息可以包括:第一电子设备的身份标识号、第二电子设备的身份标识号、第二补丁文件所适用的第二版本信息。在接收到第二电子设备响应于该广播信息的应答信息,第一电子设备可以确定第二补丁文件为第二电子设备用于修复第一程序的第一漏洞的补丁文件,应答信息可以包括:第一电子设备的身份标识号、第二电子设备的身份标识号、第二电子设备中第一程序的第二版本信息。
第二方面,本申请提供了另一种打补丁的方法,该方法可以包括:第一电子设备可以与第二电子设备建立第一连接。该第一电子设备可以获取第一补丁文件,该第一补丁文件可以用于修复第一程序的第一漏洞,该第一漏洞存在于第二电子设备的第一程序中。然后,第一电子设备根据第一程序的第一版本信息,将该第一补丁编译为第一机器码。第一电子设备将该第一机器码与第一偏移量合成为第二机器码,并将该第二机器码烧录生成第二补丁文件。其中,该第一偏移量可以是根据第二版本信息所确定的,该第二版本信息可以是第二电子设备中第一程序的版本信息,该第二版本信息可以是第一电子设备通过第一连接从第二电子设备处获取到的,该第二补丁文件用于修复版本信息为第二版本信息的第一程序的第一漏洞。
实施第二方面的方法,可以避免在不同的电子设备需要修复同一个程序漏洞的情况下,云服务器多次重复下发补丁的问题,减少了网络带宽的耗费,并且在终端侧可以快速合成适应于不同电子设备的补丁机器码,大大提升了补丁修复的效率,给用户带来更为良好的使用体验。
结合第二方面,在一些实施例中,该第一偏移量可以是根据第一映射表中记录的第二版本信息与该第一偏移量的对应关系所确定。
结合第二方面,在一些实施例中,第二电子设备可以接收第一电子设备所生成的第二补丁文件。第二电子设备将第一程序文件与该第二补丁文件合成为第二程序文件,其中,该第一程序文件是该第二电子设备中未修复该第一漏洞的该第一程序的可执行文件,该第二程序文件是该第二电子设备中已修复该第一漏洞的该第一程序的可执行文件。
结合第二方面,在一些实施例中,在第二电子设备收到对于第一程序文件的交互请求后,该第二电子设备可以通过该第一连接将该交互请求转发给该第一电子设备的第二程序文件,其中,该第一程序文件是该第二电子设备中未修复该第一漏洞的该第一程序的可执行文件,该第二程序文件可以是该第一电子设备将该第一程序文件与该第二补丁文件合成得到的,该第二程序文件是已修复该第一漏洞的该第一程序的可执行文件,该第二电子设备上的该第一程序文件可以关联与该第一电子设备上的该第二程序文件。然后,该第一电子设备可以读取该第二程序文件,生成交互结果或可执行指令,并可以通过该第一连接向该第二电子设备发送该交互结果或可执行指令。响应于该交互结果或可执行指令,该第二电子设备可以运行该第一漏洞已被修复的该第一程序。
结合第二方面,在一些实施例中,在第一电子设备生成第二补丁文件之后,该第一电子设备可以发送广播信息,该广播信息可以包括:该第一电子设备的身份标识号、该第二电子设备的身份标识号、该第二补丁文件所适用的该第二版本信息。响应于该广播信息,该第二电子设备可以向该第一电子设备发送应答信息,该应答信息可以包括:该第一电子设备的身份标识号、该第二电子设备的身份标识号、该第二电子设备中该第一程序的该第二版本信息。该第一电子设备可以确定该第二补丁文件为该第二电子设备用于修复该第一程序的第一漏洞的补丁文件。
第三方面,本申请提供了一种电子设备,该电子设备可以包括:通信装置、存储器以及耦合于该存储器的处理器,多个应用程序,以及一个或多个程序。在该处理器在执行一个或多个该程序时,该电子设备可以实现第一方面和/或第二方面中电子设备所具备的任一功能,这里不再赘述。
第四方面,本申请提供可一种计算机可读介质,该存储介质中可以存储有指令。当该指令在电子设备上运行时,可以使得电子设备执行第一方面和/或第二方面中的任一项功能,这里不再赘述。
实施本申请的技术方案,可以避免在不同的电子设备需要修复同一个程序漏洞的情况下,云服务器多次重复下发补丁的问题,减少了网络带宽的耗费,并且在终端侧可以快速合成适应于不同电子设备的补丁机器码,大大提升了补丁修复的效率,给用户带来更为良好的使用体验。
附图说明
图1是本申请实施例所提供的一种通信系统的架构示意图;
图2是本申请实施例所提供的一种电子设备的硬件结构示意图;
图3是本申请实施例提供的一种电子设备的软件框架图;
图4是本申请实施例提供的一种补丁机器码化的示意图;
图5是本申请实施例提供的一种打补丁的方法的流程图;
图6是本申请实施例提供的一种打补丁的方法的场景示意图;
图7是本申请实施例提供的另一种打补丁的方法的流程图;
图8是本申请实施例提供的另一种打补丁的方法的场景示意图;
图9A是本申请实施例提供的一种用户界面示意图;
图9B是本申请实施例提供的一种用户界面示意图;
图10A是本申请实施例提供的一种用户界面示意图;
图10B是本申请实施例提供的一种用户界面示意图;
图10C是本申请实施例提供的一种用户界面示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请得到说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。在本申请实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供了通信系统,该系统可以包括多个电子设备,多个电子设备之间可以通过接入同一个局域网建立通信连接并通过该通信连接进行数据交互。其中,第一电子设备可以是智能手机、平板电脑、笔记本电脑、台式电脑或者其他类型的电子设备,本申请对此不作任何限制。该第一电子设备可以具备较强的计算处理能力及较充足的内部存储空间。第一电子设备可以是补丁池的挂载设备,第一电子设备还可以是将补丁编译为机器码的设备。第一电子设备可以为局域网中第二电子设备提供编译好的补丁机器码。第二电子设备可以是智能手机、平板电脑、笔记本电脑等具备较强的计算处理能力及较充足的内部存储空间等类型的电子设备,第二电子设备还可以是智能手表、智能手环、智能音箱、智能耳机等具备较弱的计算处理能力或较小的内部存储空间等类型的电子设备,本申请对此不作特殊限制。第二电子设备可以通过局域网连接从第一电子设备接收补丁,或者从第一电子设备接收指令,并执行相应功能,修复补丁所针对的漏洞。第一电子设备和第二电子设备可以搭载
Figure BDA0002808543990000051
Figure BDA0002808543990000052
或者其他类型的操作系统,本申请同样对此不作限制。
本申请实施例还提供了打补丁的方法,解决了云服务器对同一补丁重复多次下发至不同电子设备上的问题。该打补丁的方法可以应用于本申请实施例提供的通信系统及电子设备上。在本申请提供的打补丁的方法中,补丁池所挂载的第一电子设备可以获取到云服务器下发的第一补丁。第一补丁可以用于修复第一程序的第一漏洞,其中,第一补丁可以是解释性补丁代码,该解释性补丁代码是以计算机高级语言(如C语言、Python等)所编写的源程序,该解释性补丁代码与电子设备及版本信息无关,因此可以做到跨设备运行。第一电子设备可以基于本设备中第一程序的第一版本信息将该解释性补丁代码编译为第一机器码。在同一个局域网中,其他电子设备的第一程序的版本信息可能不尽相同,因此,补丁机器码也会有所不同。例如同一个函数接口,不同程序版本对应的偏移地址不同,因此对于同一个解释性补丁代码,针对不同的电子设备,其补丁的机器码可能具有一定的差异,该差异可以体现在某些绝对地址的偏移量不同中。补丁池中可以记录有第一映射表,该第一映射表中可以记录有第一程序的不同版本和偏移量之间的一一对应关系。
第一电子设备可以获取到同一个局域网中第二电子设备的ID、第二电子设备中第一程序的第二版本信息。第一电子设备可以根据第一映射表中查询得到的第二版本信息对应的第二偏移量,快速合成第二机器码并生成第二补丁文件,第二补丁文件是可以用于修复第二电子设备中第一程序的第一漏洞的补丁文件。第二电子设备可以获取第二补丁文件或第二补丁文件对应的指令并运行,补丁生效,第二电子设备的第一程序中的第一漏洞被修复。
实施本申请实施例的技术方案,在不同的电子设备需要修复同一个程序漏洞的情况下,云服务器只需要下发一次补丁至局域网中第一电子设备上,然后该补丁可以快速同步到同一局域网中的其他电子设备上。因此,实施本申请技术方案可以避免云服务器重复多次下发补丁,减少了网络带宽的耗费,并且在终端侧可以快速合成适应于不同电子设备的补丁机器码,大大提升了补丁修复的效率,给用户带来更为良好的使用体验。
下面,介绍一些与本申请相关的术语及概念。
补丁(patch)是指针对于大型软件系统或应用程序在使用过程中暴露的问题而发布的解决问题的小程序。补丁可用于修复一个或多个软件漏洞,例如,补丁可以修复包括但不限于应用程序、应用框架、内核、硬件驱动等一项或多项漏洞。补丁也可以用于增加新的产品特性或功能。
补丁池(patch pool)可以是存储有一个或多个补丁文件的一个或多个目录,比如该补丁池在终端设备中的存储位置可以是目录/data/hotpatch等,本申请对此不作限制。通常补丁池可以挂载在具备较充足内部存储空间的终端设备上。如果补丁池被设置了具有网络属性,则该补丁池对于同一局域网内的其他电子设备是可见的,而补丁池的存储位置对于非该局域网的电子设备来说不可见。该补丁池所在目录还可以设有相应的安全保护机制,除某些具有写权限、修改权限和/或其他相关权限的特定应用外,局域网内的其他电子设备或其他应用,对于该目录只有只读权限,而不能对该目录进行写入和/或修改等操作。
补丁生成与生效的相关设备,主要涉及到服务器和终端设备。服务器可包括补丁拍包工具、补丁包归档、补丁包发布等。其中,补丁拍包工具为服务器后台运行的脚本,把补丁文件打包到一个压缩文件中,这个压缩文件内部各个文件的整体布局为补丁包特有。补丁包归档用于在补丁拍包工具生成补丁包之后将补丁包放置到指定的归档地址,用于后续服务器获取补丁包。补丁包发布用于服务器将补丁文件下发给终端设备。终端设备可以包括补丁包下载、补丁引擎、补丁包升级及补丁分区等。其中,补丁包下载用于接收服务器下发的补丁包。补丁包升级指用户在手机上搜索到补丁包,并确认统一下载补丁包后,补丁引擎进行下载、校验、安装补丁包的操作。补丁引擎封装了各种类型的业务逻辑,包括补丁文件的校验,能使补丁生效、撤销异常补丁等功能。补丁分区为终端设备硬盘上的一块空间地址,补丁包中二进制补丁镜像可以被烧录到该分区中。
计算机语言(computer language)是指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。计算机系统最大特征是指令通过一种语言传达给机器。为了使电子计算机进行各种工作,就需要一套用以编写计算机程序的数字、字符和语法规则,由这些字符和语法规则组成计算机各种指令,即为计算机语言。计算机语言具有高级语言和低级语言之分。高级语言是比较接近自然语言和数学公式的编程,例如,C语言,python语言,java语言、PHP语言等。高级语言基本脱离了机器的硬件系统,用人们更容易理解的方式编写程序。编写的程序称之为源程序。低级语言分为机器语言和汇编语言,这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。即,机器语言是一种指令集的体系,这种指令集称机器码,是电脑的CPU可以直接解读的数据。汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式。
机器码化是指高级语言编译成机器语言的过程。由于计算机不能直接识别高级语言,它只能识别机器语言,因此,高级语言需要经过编译器编程汇编程序,然后通过汇编器变成机器代码,最后才能被计算机执行。
挂载(mounting)是指将文件或外部设备(通常是存储设备)挂接到设备中已存在的目录上,通过访问这个目录,来访问该外部设备或文件,同时,将外部设备或文件放在设备中的目录下,也可以让设备上的系统知道该如何管理该外部设备或文件,了解该外部设备或文件的可读写特性之类的过程。
镜像文件是指将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可以直接刻录到光盘上。通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息,比如系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。下文所述的补丁文件类型可以是镜像文件。
绝对地址是指,在数据传输和存储中,主存储器的存储单元以字节为单位,每个存储单元都有一个地址与其对应。假定主存储器的容量为n,则该存储器就有n个存储单元(取n个字节的存储空间),其地址编号为:0,1,2,……,n-1。把主存空间的地址编号称为主存储器的绝对地址。
相对地址是指相对于某个基准量(通常用0作为基准量)编址时所使用的地址。相对地址常用于程序编写和编译过程中,由于程序要放入主存中才能执行,因此指令和数据都要与某个主存绝对地址发生关系——放入主存单元。但由于多道程序系统中,主存将存放多道作业,因此程序员可能不会准确知道自己的程序放在主存中的何处运行,也就是程序员往往不会使用绝对地址来编写程序。因此,程序员通常使用相对地址,即相对于某个基准地址来编写程序并安排指令和数据的位置。
boot.art是一个类对象映像文件,可以包含所有framework/base/preloaded-classes文件列出的所有类。这些类会被一次性地载入到内存中,并可以被直接使用。
首先,介绍本申请实施例提供的一种通信系统10。
如图1示例性所示,该通信系统10可以包括云侧设备如云服务器101,以及终端侧设备如手机102、路由器103、平板电脑104、笔记本电脑105、智能电视106、智能音箱107、智能耳机108、智能手表109、智能手环110等。其中,路由器103可以组建无线网络并发射无线网络信号,手机102、平板电脑104、笔记本电脑105、智能电视106、智能音箱107、智能耳机108、智能手表109、智能手环110等可以通过接入路由器103的无线网络,从而处于同一个局域网内。
云服务器101可以生成电子设备所需要的一组或多组补丁包。云服务器101所生成的补丁包可以是用计算机高级语言编写的、与设备无关的原始解释性补丁代码,也可以是机器码形式的补丁代码。云服务器可以通过远场通信将所生成的补丁包下发给手机102,其生成的补丁包可以用于修复程序的一个或多个漏洞,或者可以用于增加一个或多个产品特性或功和/或功能,本申请对此不作限制。例如,电子设备可以通过安装某个补丁包,增加“语音助手”功能,该功能可以帮助用户不触碰电子设备的情景下发送信息、接打电话,也可以帮助用户在与他人面对面进行不同语言间的交谈时,帮助用户实时将对方的语言翻译为用户所能理解的语言。而电子设备在安装该补丁包前,不具有上述“语音助手”一系列的相关功能。另外,补丁可以有多种类型,比如以
Figure BDA0002808543990000071
系统为例,应用程序(application,APP)层、应用框架(application framework)层、内核(kernel)层或硬件驱动(hardwaredriver)层等都可能存在相应类型的补丁,本申请对此不作限制。
在一些实施例中,手机102可以具备较强的计算处理能力及较充足的内部存储空间,手机102可以作为补丁池,接收来自云服务器侧的一个或多个补丁包。该补丁池可以具有网络属性,即该补丁池所在存储位置/目录对局域网中所有设备可见。手机102可以通过补丁包广播将补丁池的信息同步到局域网中的其他设备上。手机102可以具有蓝牙(bluetooth,BT)模块和/或无线局域网络(wireless local area networks,WLAN)模块。其中,蓝牙模块可以提供包括经典蓝牙(蓝牙2.1)或蓝牙低功耗(bluetooth low energy,BLE)中一项或多项蓝牙通信的解决方案,WLAN模块可以提供包括无线保真直连(wirelessfidelity direct,Wi-Fi direct)、无线保真局域网(wireless fidelity local areanetworks,Wi-Fi LAN)或无线保真软件接入点(wireless fidelity software accesspoint,Wi-Fi softAP)中一项或多项WLAN通信的解决方案。手机102可以使用蓝牙或WLAN或其他类型的一种或多种无线通信技术与手机102附近其他电子设备建立无线通信连接,然后可以通过该无线通信连接共享补丁至与其他电子设备上。
在一些实施例中,手机102可以接收云服务器101通过网络主动推送的补丁包,该补丁包可以是解释性代码形式的补丁,手机102可以在接收到由云服务器下发的补丁包后,在安装该补丁时,基于本设备上需要打补丁的应用程序的版本信息,在设备侧将补丁程序代码进行机器码化。手机102还可以向云服务器101上报需要打补丁的应用程序的版本信息,然后云服务器101根据版本信息进行机器码化,再将机器码形式的补丁发送给手机102。手机102中可以存储有一张映射表,该映射表可以记录有版本信息与机器码偏移量的对应关系,手机102可以根据不同的版本信息生成不同的机器码补丁,然后局域网内的其他终端设备可以获取到对应的补丁并安装生效。
平板电脑104、笔记本电脑105可以是具备较强的计算处理能力及较充足的内部存储空间的终端设备,并且可以具备蓝牙模块、WLAN模块等无线通信模块。其中,关于蓝牙模块和WLAN模块的描述,可以参考上述手机102中的蓝牙模块和WLAN模块,在此不再赘述。平板电脑104、笔记本电脑105等具备较强的计算处理能力及较充足的内部存储空间的终端设备也可以作为补丁池,还可以作为将补丁程序编译为机器码的终端设备。补丁池所在终端设备与将补丁程序编译为机器码的终端设备可以为同一个终端设备,也可以不是同一个终端设备。比如手机102作为补丁池所挂载的终端设备,笔记本电脑105作为编译补丁机器码的终端设备,在手机102获取到云服务器101下发的补丁程序后,笔记本电脑105获取补丁池中的补丁,然后笔记本电脑105执行补丁程序的机器码化。
智能电视106、智能音箱107、智能耳机108、智能手表109、智能手环110可以是具备较弱的计算处理能力或较小的内部存储空间的终端设备,并且可以具有蓝牙模块、WLAN模块等无线通信模块。其中,关于蓝牙模块和WLAN模块的描述,可以参考上述手机102中的蓝牙模块和WLAN模块,在此不再赘述。在一些实施例中,这些计算处理能力较弱或内部存储空间较小的终端设备所运行的补丁文件可以挂载在同一个局域网中计算处理能力较强或内部存储空间较大的终端设备上。这种情况下,当这些计算处理能力较弱或内部存储空间较小的终端设备断开局域网连接时,补丁就会随之失效。重新接入局域网连接时,补丁会再次生效。
如图1所示,云服务器101可以生成手机102所处局域网内电子设备所需要的补丁包,并将补丁包下发给手机102。在一些实施例中,该云服务器生成的补丁包可以分组下发。分组方式可以是以功能进行分组,如漏洞修复、新增产品功能特性等,也可以是以补丁类型进行分组,如应用程序(application,APP)层类型补丁,硬件驱动(hardware driver)层类型补丁等,本申请对此不作限制。
在一些实施例中,共享补丁的各个终端设备,如手机102、平板电脑104、笔记本电脑105、智能电视106、智能音箱107、智能耳机108、智能手表109、智能手环110等可以装有相同的操作系统,如
Figure BDA0002808543990000081
系统,在路由器103的连接下,形成一个系统生态。在相同的操作系统下,不同版本信息对应的补丁程序的机器码差异较小,编译机器码的终端设备可以根据版本信息的不同快速合成对应的补丁机器码。
可以理解的是,本实施例示出的通信系统10并不构成对本申请实施例的具体限定。在本申请另外一些实施例中,通信系统10还可以包括比图示更多或更少的设备。例如,通信系统10中还可以包括台式电脑、智能台灯、智能冰箱等其它电子设备,本申请对此不作任何限制。
下面,介绍本申请实施例中提供的示例性电子设备100。
图2示出了电子设备100的结构示意图。
其中,电子设备100可以是通信系统10中示出的手机102、平板电脑104、笔记本电脑105、智能电视106、智能音箱107、智能耳机108、智能手表109、智能手环110等,也可以是其他电子设备,如桌面型计算机、膝上型计算机、手持计算机、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personaldigital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtualreality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备的具体类型不作特殊限制。可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
电子设备100可以包括处理器111,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器111可以包括一个或多个处理单元,例如:处理器111可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器111中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器111中的存储器为高速缓冲存储器。该存储器可以保存处理器111刚用过或循环使用的指令或数据。如果处理器111需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器111的等待时间,因而提高了系统的效率。
在一些实施例中,处理器111可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器111可以包含多组I2C总线。处理器111可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器111可以通过I2C接口耦合触摸传感器180K,使处理器111与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器111可以包含多组I2S总线。处理器111可以通过I2S总线与音频模块170耦合,实现处理器111与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器111与无线通信模块160。例如:处理器111通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器111与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器111和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器111和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器111与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器111。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器111,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器111中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器111中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器111的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器111,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器111。无线通信模块160还可以从处理器111接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100可以通过WLAN等无线通信技术发现处于同一局域网中的设备,并与该设备建立无线通信连接。电子设备100还可以通过蓝牙发现附近一定区域的设备并建立通信连接。其中,蓝牙(BT)模块可以提供包括经典蓝牙(蓝牙2.1)或蓝牙低功耗(Bluetooth low energy,BLE)中一项或多项蓝牙通信的解决方案。WLAN模块可以提供包括Wi-Fi direct、Wi-Fi LAN或Wi-Fi softAP中一项或多项WLAN通信的解决方案。
在一些实施例中,电子设备100可以通过移动网络(如2G/3G/4G/5G等网络)、无线网络(如Wi-Fi)、有线网络(如宽带)接入互联网,并通过网络与其他设备通信,无线通信模块160提供的WLAN无线通信的解决方案也可使得电子设备可以与网络中的设备(如服务器)通信,并可以通过网络中的该设备(如服务器)与云端设备通信。这样,电子设备便可以发现、传输数据至网络中的设备和云端设备。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器111可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universalflash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器111直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器111直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器111通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器111中,或将音频模块170的部分功能模块设置于处理器111中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的
Figure BDA0002808543990000141
系统为例,示例性说明电子设备100的软件架构。
图3是本发明实施例的电子设备100的软件结构框图。
如图3所示,该电子设备100的软件结构可以包括:应用程序层(applications,APP)、应用程序框架层(application framework,FWK)、安卓运行时(
Figure BDA0002808543990000142
runtime)和系统库(libraries)、内核层(kernel)。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,头戴式显示设备振动,指示灯闪烁等。
Figure BDA0002808543990000151
Runtime包括核心库和虚拟机。
Figure BDA0002808543990000152
runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动、以及WLAN蓝牙能力和基本通信协议。
可以理解的是,补丁可用于修复一个或多个软件程序漏洞,或者可用于增加一个或多个新的产品特性或功能。例如,在
Figure BDA0002808543990000153
操作系统中,电子设备100的补丁可以修复上述应用程序层、应用程序框架层、系统库和内核层等一项或多项程序漏洞,补丁还可以用于新增上述应用程序层、应用程序框架层、系统库和内核层等一项或多项产品特性或功能,本申请对此不作限制。
在一些实现方式中,一个补丁文件中可以包括:版本信息、校验信息、定位信息及待写入的新代码等片段。待写入的新代码可以是差分代码,也可以是替换代码。差量代码表示的是补丁代码是未修复漏洞的旧程序代码与已修复漏洞的新程序代码的差量部分代码。差分代码可以有效压缩补丁文件的体积,减少代码的重复,节省存储空间。替换代码表示的是该补丁代码可以直接替换bug处代码,例如在读取bug处所在函数时,可以跳转到补丁代码处读取补丁代码替换读取bug处代码,在补丁代码读取完毕后,再跳转返回原程序代码继续读取其他代码。
版本信息可以是指当前补丁文件适用的程序版本,版本信息包括版本号、版本名称,生成时间等。校验信息可以是循环冗余校验(cyclic redundancy check,CRC)码,一般用于区分补丁文件身份的信息以及校验补丁文件中数据的正确性,系统可通过版本信息和校验信息确定补丁文件是否与系统相匹配。定位信息中可以记录有bug,即待修改代码的地址,以及记录有跳转到对应的新写入代码的跳转地址。因此,通过定位信息片段中的数据可查找到原程序中bug代码处的位置信息,进而写入新补丁代码。在待写入的新代码的片段中,包含了新函数代码,这些新函数代码可在编程之后由编译器生成,在修复程序漏洞时,将该片段的数据写入原程序中,补丁生效,实现对漏洞的修复。
在一些实施例中,在对一个原程序进行漏洞修复时,终端设备会检测系统中该原程序的运行状态。当检测到该原程序运行时,终端设备则进一步检测系统中的补丁文件。若检测到系统中设置有补丁文件,则会对该补丁文件进行身份验证,从而确定该补丁文件是否与该原程序相匹配。具体地,在对补丁文件进行验证时,可读取该补丁文件中的版本信息和校验信息,并通过版本信息和校验信息对该补丁文件进行验证,即将该补丁文件中的验证数据,如版本号、生成时间、CRC校验码,与原程序中的验证数据进行对比,确保该补丁文件与系统中的原程序相匹配,避免使用错误的补丁文件。若验证成功,则表示该补丁文件与终端设备上该原程序相匹配;若验证失败,则表示该补丁文件与终端设备上该原程序不匹配。在验证成功的情况下,终端设备会获取补丁文件中的待修改代码的定位信息以及待写入的新代码,从而在bug处写入补丁新代码,实现漏洞的修复等功能。
图4为本申请实施例提供的补丁代码机器码化的示意图。
电子设备100可以在接收到云服务器下发的原始解释性补丁代码后,基于本设备的版本信息,将该原始解释性代码编译为计算机处理器可以直接执行的机器码。
结合图4,补丁可以由公共代码401、私有代码402组成,公共代码401和私有代码402都是非机器代码,即解释性代码。其中,公共代码401在机器码化的过程中会被编译为公共模块的机器码。私有代码402使用的接口或函数为更为底层的开发套件的代码。该私有代码402编译后的机器码以绝对地址和相对地址相结合组成。上述公共代码401和私有代码402皆为原始解释性代码,也即是说,上述公共代码401和私有代码402为非机器代码,可以依赖于某些具体的容器屏蔽差异,因此可以做到跨设备运行。
电子设备100在补丁非机器代码编译为机器码时,将私有代码402编译为私有代码的机器码403,将公共代码401编译为公共代码的机器码404。私有代码的机器码403是私有代码在机器码化的过程中被编译后生成的机器码。通常,该部分代码可以在不同的电子设备上通用,该部分代码中的所引用的各个平台中的私有资源是可共用的。公共代码的机器码404是公共代码在机器码化的过程中被编译后生成的机器码。该部分代码可以基于电子设备的中间层公共接口的代码生成。由于不同电子设备的资源、配置等不尽相同,因此不同设备的公共接口的公共地址也不尽相同,公共代码401可以根据不同设备的公共接口的公共地址等,结合生成和电子设备强相关的机器代码。例如,以该电子设备是手机400为例,公共代码401结合所获取到的手机400相关的偏移地址,生成与手机400强相关的公共代码的机器码404,并保存在boot.art文件中。
私有代码的机器码403和公共代码的机器码404结合,组成补丁机器码405。该补丁机器码405可以存储在电子设备的缓冲池中。
补丁池中的补丁代码,可以基于挂载补丁池的设备进行机器码化。但是因为在不同设备上,同一个补丁代码的主体代码相同,同一个函数偏移地址可能不同,因此补丁代码在不同设备上进行机器码化时对应的机器码不同。补丁池中可以存储有一张映射表,记录这些差异以及标记差异对应的相关设备。这样,在补丁池中机器码化后的补丁代码被迁移到第二设备时,可以结合第二设备对应的差异快速合成新的补丁机器码,合成的方式包含但是不限于二进制合成方式,磁盘块合成方式或者代码重定位方式等。
例如,补丁池中存储有手机400对应的补丁偏移量A 406和手表408对应的补丁偏移量B 407的相关信息。补丁偏移量A 406中可以包括:补丁机器码偏移量、该偏移量在局域网中所对应的手机400的标识以及补丁相关内容的匹配信息。补丁偏移量B 408中可以包括:补丁机器码偏移量、该偏移量在局域网中所对应的手表408的标识以及补丁相关内容的匹配信息。如果手机400和手表408的需要打补丁程序的版本信息不同,那么可能公共接口的偏移地址也不相同,则补丁偏移量A 406与补丁偏移量B 407也不相同。但是,在手机400的补丁机器码被迁移到手表408上时,手机400的补丁机器码可以结合手表408的补丁偏移量B快速合成新的补丁机器码,新的补丁机器码可以在手表408上生效。
示例性的,补丁池可以存储有一个映射表,该映射表中可以记录版本号、电子设备唯一识别号、偏移量等信息。其中,示例性的,映射表可以如下表1所示:
表1
Figure BDA0002808543990000171
如表1所示,本示例性映射表中记录的电子设备唯一识别号以电子设备的产品序列号(serial number,SN)为例。电子设备869672321140250所拥有的版本号为10.0.1,该电子设备所对应的偏移量为1F69H。电子设备869672321150369所拥有的版本号为10.0.2,该电子设备所对应的偏移量为0F60H。电子设备869672321120568所拥有的版本号为10.0.3,该电子设备所对应的偏移量为0060H。其中,偏移量中末尾H可以代表该偏移量是十六进制数。
在另一些实施例中,映射表中记录的电子设备唯一识别号可以是电子设备固定的物理地址(media access control,MAC),也可以是该电子设备区别于其他电子设备的唯一编号。本申请对此不作限制。
可以理解的是,上述示例表仅用于解释本申请,不应构成对本申请的限定。
可以理解的是,图4只是示例性说明机器码化原始解释性补丁代码的实现方式,不应对本申请构成具体限制。
下面,基于前述的通信系统10及电子设备100,详细说明本申请提供的打补丁的方法。
实施例一
在本实施例中,以手机和平板电脑之间的交互作为示例说明。手机可以作为挂载补丁池的设备及机器码化补丁的设备,平板电脑可以作为需要获取补丁修复程序漏洞或升级产品特性的设备。手机和平板电脑都是具备较强的计算处理能力及较充足的内部存储空间等的终端设备。手机和平板电脑处于同一个局域网中,手机可以根据平板电脑的版本信息在手机侧进行补丁的机器码化,生成机器码形式的补丁文件,然后发送给平板电脑,平板电脑读取该补丁文件,补丁生效。
在一些实施例中,挂载补丁池的设备与机器码化补丁的设备可以不为同一个设备,比如笔记本电脑为挂载补丁池的设备,笔记本电脑可以从云服务器获取各个补丁,存储在补丁池中,该补丁池对接入同一个局域网中的设备都可见。手机、平板电脑和笔记本电脑处于同一个局域网中,手机可以获取到补丁池中的某个补丁,并根据平板电脑的版本信息在手机侧进行补丁的机器码化,生成机器码形式的补丁文件,然后发送给平板电脑,平板电脑读取该补丁文件,补丁生效。
可以理解的是,手机和平板电脑的交互仅是为了一种示例性说明,并不对本申请实施例构成任何限制。
图5示出了本申请实施例提供的一种打补丁的方法流程。具体地,可以包括以下步骤:
S101、手机和平板电脑接入同一局域网中。
具体的,手机和平板电脑可以通过接入同一路由器所提供的同一Wi-Fi接入点而处于同一局域网内,手机和平板电脑可以通过该Wi-Fi接入点建立两者间的无线通信连接(也可以称为第一连接)。在该局域网中,手机中所挂载的补丁池及补丁池所在的位置等信息对于平板电脑而言可以是可见的。
S102、手机作为挂载补丁池的设备,可以获取云服务器下发的第一补丁(也可以称为第一补丁文件),第一补丁可以用于修复第一程序的第一漏洞。
具体的,补丁池可以指的是存储有一个或多个补丁的一个或多个目录,该目录可以设置为在局域网中对其他设备可见,而对于不在同一局域网中的其他设备,该目录则对其不可见。具体地,补丁池在所挂载的手机设备上可以为某个目录,如/data/hotpatch/,将该目录的属性设置为对局域网中其他设备可见,这样,补丁池的存储位置会暴露在整个局域网中。
第一补丁可以包括一个或多个补丁文件,该第一补丁的代码形式可以是解释性代码,也可以为机器码,本申请不作限制。如果是机器码形式的补丁文件,那云服务器需要在下发补丁前获取到需要打补丁的设备中程序的版本信息,然后根据版本信息在云端进行机器码化,再下发至设备侧,设备侧不需要进行编译,可以直接运行机器码。该第一补丁可以是云服务器生成后,主动推送至手机,也可以是根据手机的请求进行下发,本申请对此不作限制。
S103、根据手机中第一程序的版本号A,手机将第一补丁的代码编译成机器码A(也可以称为第一机器码)。
具体的,在同一局域网中,不同的电子设备上第一程序的版本信息可能不尽相同,版本信息可以包括版本名称、版本号等信息,在本实施例中,手机中第一程序的版本信息可以称为第一版本信息。手机的第一程序的版本号为版本号A。手机还存储有第一映射表,该第一映射表中可以记录有第一程序的不同版本号和相对于机器码A的偏移量之间的一一对应关系。第一程序的版本信息不同,其同一个函数接口的偏移地址可能会不尽相同,因此不同版本的程序会对应不同的偏移量。
当然,第一映射表中还可以记录有其他对应信息,比如说手机可以获取到局域网中其他电子设备目前使用的第一程序的某个版本,那么第一映射表中还可以记录该电子设备的唯一身份标识号(identity document,ID)与版本号的对应关系。电子设备的ID可以是其固定的物理地址(media access control,MAC),也可以是电子设备的产品序列号(serial number,SN),也可以是该电子设备区别于其它电子设备的其他唯一识别号,本申请对此不作限制。
S104、手机获取到平板电脑的ID、平板电脑中第一程序的版本号B等信息。
平板电脑的ID是平板电脑的唯一识别号。平板电脑的ID可以是MAC号,也可以是SN号,也可以是该平板电脑区别于其它电子设备的其他唯一识别号,本申请对此不作限制。
本实施例中,平板电脑中第一程序的版本信息可以称为第二版本信息。平板电脑的第一程序的版本号为版本号B,区别于手机中第一程序的版本号A。
S105、手机查询第一映射表,版本号B对应偏移量B(也可以称为第一偏移量)。手机将版本号B对应的偏移量B与机器码A合成为机器码B(也可以称为第二机器码),并生成补丁文件B(也可以称为第二补丁文件),补丁文件B是可以用于修复第一程序为版本号B的第一漏洞的补丁文件。
具体的,偏移量B与机器码A合成机器码B的方式可以包括但不限于二进制合成方式、磁盘块合成方式以及代码重定位方式。其中,二进制合成方式指的是将多个二进制文件合成一个,并且要指定数据段地址偏移量,在数据段之间的地址填充默认值。磁盘块合成方式指的是将多个物理硬块合成一个逻辑硬盘使用。代码重定位方式指的是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,重定位有两种方法,分别是动态重定位和静态重定位。静态重定位即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变。动态重定位不是在程序装入内存时完成的,而是中央处理器(central processingunit,CPU)每次访问内存时,有动态地址变换机构(硬件)自动把相对地址变换成为绝对地址。动态重定位需要软件和硬件的相互配合。
可以理解的是,补丁文件B可以包括一个或多个文件。
S106、手机在局域网中发送广播,该广播的消息中可以包括挂载补丁池的设备ID(如手机ID)、补丁文件B所支持的设备ID(如平板电脑ID)、补丁文件B所支持的第一程序版本号(如版本号B)等等。
S107、平板电脑应答手机的广播,应答消息中可以包括手机ID、平板电脑ID、版本号B等等。
S108、平板电脑获取手机侧生成的补丁文件B。
在平板电脑应答手机的广播,手机验证平板电脑的身份之后,手机可以将补丁文件B发送至平板电脑侧。
S109、当运行第一程序时,平板电脑加载补丁文件B,第一补丁生效,第一程序中的第一漏洞被修复。
在一些实施例中,补丁文件中的代码可以为差分代码,那么加载补丁文件B,补丁文件B会与原第一程序代码进行合成,生成新第一程序代码,新第一程序代码中修复了第一漏洞所在问题。
在另一些实施例中,补丁文件中的代码可能为替换代码,那么当平板电脑运行第一程序的第一漏洞处所对应的机器码时,可以跳转加载补丁文件B,补丁生效,第一程序中的第一漏洞被修复。在补丁文件B读取完毕后,再跳转返回原程序。具体的,平板电脑可以将补丁文件B制作成可加载的动态链接库的格式,该补丁文件B包含有第一程序中第一漏洞的代码信息,以及修复第一漏洞的代码信息,然后,通过加载程序将补丁文件加载到第一程序进程的地址空间的过程中,找到第一漏洞的地址,并将第一漏洞的入口指令改为可写,同时将第一漏洞的入口指令改变为跳转到补丁文件B中的修复第一漏洞的代码。当平板电脑运行第一程序时,运行至第一程序中的第一漏洞处所对应的机器码处,可以被重新定向到补丁文件B中修复第一漏洞的新代码的位置。修复第一漏洞的补丁代码被执行完毕后,返回原第一程序继续运行。
图6为方法实施例一所述的打补丁的方法的场景示意图。
如图6示例性所示,该实施场景可以包括:手机102、路由器103以及平板电脑104。手机102和平板电脑104可以通过接入路由器103提供的同一个Wi-Fi接入点而处于同一局域网中。其中,手机102中的第一程序为版本号A,平板电脑104的第一程序为版本号B。
在图6所示的实施场景中,手机102为补丁池的挂载设备,关于补丁池的说明,可以参考前述中有关于补丁池的描述,在此不再赘述。
参考步骤101至步骤109所述的打补丁的方法,手机102可以从云服务器侧接收到关于修复第一程序中第一漏洞的第一补丁代码。基于手机102自身的版本信息,如版本号A等设备相关信息,手机102将该第一补丁的解释性补丁代码机器码化,编译为补丁机器码A并存储。该手机102还可以存储有第一映射表。该第一映射表中可以记录有第一程序的不同版本号和相对于机器码A的偏移量之间的一一对应关系。第一程序的版本信息不同,其同一个函数接口的偏移地址可能会不尽相同,因此不同版本的程序会对应不同的偏移量。
手机可以获取到同一个局域网中平板电脑的ID、平板电脑中第一程序的版本号B等信息。手机查询第一映射表,版本号B对应偏移量B。手机将版本号B对应的偏移量B与补丁机器码A合成为补丁机器码B,并生成补丁文件B,补丁文件B是可以用于修复第一程序为版本号B的第一漏洞的补丁文件。
然后手机可以在局域网中发送广播,该广播的消息中可以包括挂载补丁池的手机ID、补丁文件B所支持的平板电脑ID、补丁文件B所支持的第一程序版本号B等等信息。在平板电脑应答手机的广播,手机验证平板电脑的身份之后,手机可以将补丁文件B发送至平板电脑侧。当运行第一程序时,平板电脑加载补丁文件B,补丁生效,第一程序中的第一漏洞被修复。
更多细节可以参考步骤101至步骤109中的描述,在这里不再赘述。可以理解的是,图6中的实施场景仅仅是为了示例性说明本申请实施例,并不对本申请构成任何限制。
实施例二
在本实施例中,以手机和智能音箱之间的交互作为示例说明。手机可以作为挂载补丁池的设备及机器码化补丁的设备,智能音箱可以作为需要获取补丁修复程序漏洞或升级产品特性的设备。手机是具备较强的计算处理能力及较充足的内部存储空间等的终端设备。智能音箱为具备较弱的计算处理能力及较小的内部存储空间等的终端设备。手机和智能音箱处于同一个局域网中,手机可以根据智能音箱的版本信息在手机侧进行补丁的机器码化,生成机器码形式的补丁文件并存储在手机侧。当智能音箱收到与该补丁所需修复漏洞相关文件的交互请求时,可以转发至手机侧,由手机读取已被补丁修复漏洞的文件,并由手机发送交互结果或执行指令至智能音箱,补丁生效。
在一些实施例中,挂载补丁池的设备与机器码化补丁的设备可以不为同一个设备,比如笔记本电脑为挂载补丁池的设备,笔记本电脑可以从云服务器获取各个补丁,存储在补丁池中,该补丁池对接入同一个局域网中的设备都可见。手机、智能音箱和笔记本电脑处于同一个局域网中,手机可以获取到补丁池中的某个补丁,并根据智能音箱的版本信息在手机侧进行补丁的机器码化,生成机器码形式的补丁文件。
可以理解的是,手机和智能音箱的交互仅是为了一种示例性说明,并不对本申请实施例构成任何限制。除了智能音箱,接收补丁的设备还可以是智能手表、智能手环、智能台灯、智能耳机等具备较弱的计算处理能力或较小的内部存储空间等类型的电子设备。
图7示出了本申请实施例提供的另一种打补丁的方法流程。具体地,可以包括以下步骤:
S201、手机和智能音箱接入同一局域网中。
具体的,手机和智能音箱可以通过接入同一路由器所提供的同一Wi-Fi接入点而处于同一局域网内,手机和智能音箱可以通过该Wi-Fi接入点建立两者间的无线通信连接(也可以称为第一连接)。在该局域网中,手机中所挂载的补丁池及补丁池所在的位置等信息对于智能音箱而言可以是可见的。
S202、手机作为挂载补丁池的设备,可以获取云服务器下发的第一补丁(也可以称为第一补丁文件),第一补丁可以用于修复第一程序的第一漏洞。
具体的,补丁池可以指的是存储有一个或多个补丁的一个或多个目录,该目录可以设置为在局域网中对其他设备可见,而对于不在同一局域网中的其他设备,该目录则对其不可见。具体地,补丁池在所挂载的手机设备上可以为某个目录,如/data/hotpatch/,将该目录的属性设置为对局域网中其他设备可见,这样,补丁池的存储位置会暴露在整个局域网中。
该第一补丁的代码形式可以是解释性代码,也可以为机器码,本申请不作限制。如果是机器码形式的补丁文件,那云服务器需要在下发补丁前获取到需要打补丁的设备中程序的版本信息,然后根据版本信息在云端进行机器码化,再下发至设备侧,设备侧不需要进行编译,可以直接运行机器码。该第一补丁可以是云服务器生成后,主动推送至手机,也可以是根据手机的请求进行下发,本申请对此不作限制。
S203、根据手机中第一程序的版本号A,手机将第一补丁的代码编译成机器码A(也可以称为第一机器码)。
具体的,在同一局域网中,不同的电子设备上第一程序的版本信息可能不尽相同,版本信息可以包括版本名称、版本号等信息,在本实施例中,手机中第一程序的版本信息可以称为第一版本信息。手机的第一程序的版本号为版本号A。手机还存储有第一映射表,该第一映射表中可以记录有第一程序的不同版本号和相对于机器码A的偏移量之间的一一对应关系。第一程序的版本信息不同,其同一个函数接口的偏移地址可能会不尽相同,因此不同版本的程序会对应不同的偏移量。
当然,第一映射表中还可以记录有其他对应信息,比如说手机可以获取到局域网中其他电子设备目前使用的第一程序的某个版本,那么第一映射表中还可以记录该电子设备的ID与版本号的对应关系。电子设备的ID可以是MAC号,也可以是电子设备的SN号,也可以是该电子设备区别于其它电子设备的其他唯一识别号,本申请对此不作限制。
S204、手机获取到智能音箱的ID、智能音箱中第一程序的版本号C等信息。
智能音箱的ID是智能音箱的唯一识别号。智能音箱的ID可以是MAC号,也可以是SN号,也可以是该智能音箱区别于其它电子设备的其他唯一识别号,本申请对此不作限制。
本实施例中,智能音箱中第一程序的版本信息可以称为第二版本信息。智能音箱的第一程序的版本号为版本号C,区别于手机中第一程序的版本号A。
S205、手机查询第一映射表,版本号C对应偏移量C(也可以称为第一偏移量)。手机将版本号C对应的偏移量C与机器码A合成为机器码C(也可以称为第二机器码),并生成补丁文件C(也可以称为第二补丁文件),补丁文件C是可以用于修复第一程序为版本号C的第一漏洞的补丁文件。
具体的,偏移量C与机器码A合成机器码C的方式可以包括但不限于二进制合成方式,磁盘块合成方式以及代码重定位方式。关于三种重定位方式的描述,可以参照前述S105步骤中的说明,在此不再赘述。
S206、手机在局域网中发送广播,该广播的消息中可以包括挂载补丁池的设备ID(如手机ID)、补丁文件C所支持的设备ID(如智能音箱ID)、补丁文件C所支持的第一程序版本号(如版本号C)等等。
S207、智能音箱应答手机的广播,应答消息中可以包括手机ID、智能音箱ID、版本号C等等。
S208、手机获取智能音箱中文件L,文件L是第一程序对应的文件。
由于智能音箱的计算处理能力较差或者内部存储空间较小,所以在本实施例中,补丁文件C在手机侧存储或读取,补丁文件C不需要存储在智能音箱侧。文件L可以包括一个或多个文件,文件L存储有第一程序的内容。
S209、手机生成文件M,文件M可以是文件L与补丁文件C所合成的文件,该手机中的文件M与智能音箱中的文件L进行关联。
手机可以获取智能音箱中第一程序对应的文件L,并在手机侧将补丁文件C与文件L合成为文件M,该文件M是已经修复第一漏洞的一个或多个的第一程序文件。该文件M可以存储在手机侧。文件M也可以包括一个或多个文件。
在智能音箱侧,可以设置将智能音箱中的文件L与局域网中的文件M进行路径关联,当文件L收到交互请求时,该交互请求会被转发至文件M。
S210、智能音箱中的文件L收到交互请求。
S211、智能音箱将该对于文件L的交互请求转发至手机中的文件M。
S212、手机读取文件M,生成交互结果或指令,并将交互结果或指令发送至智能音箱。
S213,智能音箱执行交互结果或指令,第一补丁生效,智能音箱的第一程序的第一漏洞被修复。
具体的,手机可以通过通信连接发送相关指令或交互结果至智能音箱。智能音箱接收到该指令或交互结果后,执行相关的功能,修复第一程序中的第一漏洞。
S214、智能音箱断开与局域网的连接。
在智能音箱断开与手机的通信连接时,手机中所缓存的用于解决第一漏洞的文件M可以继续被保存在手机中,待下次智能音箱接入局域网时继续生效使用;文件M也可以随着断网被删除,待下次智能音箱接入局域网时手机再重新生成文件M。
S215、智能音箱中的文件L收到交互请求。
S216、由于已断开与局域网的连接,智能音箱无法读取局域网中修复第一漏洞的文件M,因此文件L被读取,智能音箱中第一程序中的第一漏洞未被修复。
本实施例中,智能音箱侧的漏洞修复需要依赖局域网中手机提供的补丁文件,因此智能音箱需要在联网状态下才可以将漏洞修复。如果智能音箱断开与局域网的连接,就获取不到修复漏洞的补丁文件,对应漏洞问题无法得到修复。
图8为方法实施例二所述的打补丁的方法的场景示意图。
如图8示例性所示,该实施场景可以包括:手机102、路由器103以及智能音箱107。手机102和智能音箱107可以通过接入路由器103提供的同一个Wi-Fi接入点而处于同一局域网中。其中,手机102中的第一程序为版本号A,智能音箱107的第一程序为版本号C。
在图8所示的实施场景中,手机102为补丁池的挂载设备,关于补丁池的说明,可以参考前述中有关于补丁池的描述,在此不再赘述。
参考步骤201至步骤216所述的打补丁的方法,手机102可以从云服务器侧接收到关于修复第一程序中第一漏洞的第一补丁代码。基于手机102自身的版本信息,如版本号A等设备相关信息,手机102将该第一补丁的解释性补丁代码机器码化,编译为补丁机器码A并存储。该手机102还可以存储有第一映射表。该第一映射表中可以记录有第一程序的不同版本号和相对于机器码A的偏移量之间的一一对应关系。第一程序的版本信息不同,其同一个函数接口的偏移地址可能会不尽相同,因此不同版本的程序会对应不同的偏移量。
手机可以获取到同一个局域网中智能音箱的ID、智能音箱中第一程序的版本号C等信息。手机查询第一映射表,版本号C对应偏移量C。手机将版本号C对应的偏移量C与补丁机器码A合成为补丁机器码C,并生成补丁文件C,补丁文件C是可以用于修复第一程序为版本号C的第一漏洞的补丁文件。
然后手机可以在局域网中发送广播,该广播的消息中可以包括挂载补丁池的手机ID、补丁文件C所支持的智能音箱ID、补丁文件C所支持的第一程序版本号C等等信息。在智能音箱应答手机的广播,手机验证智能音箱的身份之后,手机可以获取智能音箱中第一程序对应的文件L,并且在手机侧将文件L与补丁文件C合成为文件M,该文件M是已经修复第一漏洞的文件,并存储在手机侧。在智能音箱侧,可以设置将智能音箱中的文件L与局域网中的文件M进行路径关联,当文件L收到交互请求时,该交互请求会被转发至文件M。
当智能音箱中的文件L收到交互请求时,智能音箱将该对于文件L的交互请求转发至手机中的文件M。手机读取文件M,生成交互结果或指令,并将交互结果或指令发送至智能音箱。智能音箱执行交互结果或指令,第一补丁生效,智能音箱的第一程序的第一漏洞被修复。当智能音箱断开与局域网的连接时,第一补丁失效,第一漏洞无法得到修复。
更多细节可以参考步骤101至步骤109中的描述,在这里不再赘述。可以理解的是,图8中的实施场景仅仅是为了示例性说明本申请实施例,并不对本申请构成任何限制。
下面介绍电子设备100上的用于应用程序菜单的示例性用户界面。
图9A示出了一种示例性用户界面901。
用户界面901可以包括:状态栏902、日历指示符903、其他应用程序图标904、页面指示符905以及具有常用应用程序图标的托盘906。
状态栏902可以包括:移动通信信号(又可以称为蜂窝信号)的一个或多个信号强度指示符、无线高保真(wireless fidelity,Wi-Fi)信号的一个或多个信号强度指示符、电池状态指示符等。
日历指示符903可以用于指示当前时间,例如日期、星期几、时分信息等。
其他应用程序图标904可以例如:音乐图标、计算器图标、浏览器图标、设置图标等。
页面指示符905可以用于指示用户当前浏览的哪一个页面中的应用程序。用户可以左右滑动其他应用程序图标的区域,来浏览其他页面中的应用程序图标。
具有常用应用程序图标的托盘906可以展示:相机图标、通讯录图标、电话图标、信息图标等。
在一些实施例中,图9A示例性所示的用户界面901可以为主界面(home screen)。
在其他一些实施例中,电子设备还可以包括主屏幕键。该主屏幕键可以是实体按键,也可以是虚拟按键。该主屏幕按键可以用于接收用户的指令,将当前显示的UI返回到主界面,这样可以方便用户随时查看主屏幕。上述指令具体可以是用户单次按下主屏幕键的操作指令,也可以是用户在短时间内连续两次按下主屏幕键的操作指令,还可以是用户在预定时间内长按主屏幕键的操作指令。在本申请其他一些实施例中,主屏幕键还可以集成指纹识别器,以便用户在按下主屏幕键的时候,随之进行指纹采集和识别。
可以理解的是,图9A仅仅示例性示出了电子设备100上的用户界面,不应构成对本申请实施例的限定。
下面分别描述本申请涉及的应用场景以及电子设备100上实现的用户界面的一些实施例。
图9A、图9B示出了手机102获取本局域网内电子设备100的相关权限时,电子设备100示例性示出的用户界面。
如图9A所示,当同一局域网内的手机102需要获取电子设备100的相关信息(例如第一程序的版本号、电子设备100的ID等)时,电子设备100可以在用户界面901中显示出提示框907,该提示框907可以用于提示用户是否给予手机102相应的权限。例如,该提示框907显示的提示信息可以是文本“是否允许网络中手机102获取您的设备信息?”。不限于文本信息,该提示信息还可以是电子设备100输出的语音或其他类型的提示信息等,本申请对此不作限制。该提示框907还可以显示相应的控件,以便用户选择是否给予手机102相应的权限。响应于用户在控件上的触摸操作(例如点击),电子设备100可以执行该控件对应的仅本次允许手机102获取电子设备100相关信息的选项、始终允许手机102获取电子设备100相关信息的选项或者拒绝手机102获取电子设备100相关信息的选项。例如,该提示框907可以显示“允许”控件、“始终允许”控件和“拒绝”控件,检测到用户作用在“始终允许”控件上的触摸操作(例如点击),电子设备100可以执行在联网状态下始终允许手机102获取电子设备100相关信息的指令。
如图9B所示,当同一局域网内的手机102向电子设备100发送修复电子设备100上第一漏洞的补丁文件时,电子设备100可以在用户界面901上显示出提示框908,该提示框908可以用于提示用户是否允许手机102向电子设备100更新补丁。例如,该提示框显示的信息可以是文本“是否允许网络中手机102为您更新补丁?”。不限于文本信息,该提示信息还可以是电子设备100输出的语音或其他类型的提示信息等,本申请对此不作限制。该提示框908还可以显示相应的控件,以便用户选择是否允许手机102向电子设备100更新补丁。响应于用户在控件上的触摸操作(例如点击),电子设备100可以执行该控件对应的仅本次允许手机102本次向电子设备100发送补丁的选项、始终允许手机102本次向电子设备100发送补丁的选项或者拒绝手机102向电子设备100发送补丁的选项。例如,该提示框908可以显示“允许”控件、“始终允许”控件和“拒绝”控件,检测到用户作用在“始终允许”控件上的触摸操作(例如点击),电子设备100可以执行在联网状态下始终允许手机102向电子设备100更新补丁的指令。
图10A、图10B、图10C示出了与实施本申请技术方案后所展现出的技术效果相关的用户界面。
图10A示例性示出了一种实施场景。该实施场景可以包括:手机102、智能手表109以及平板电脑104。手机102可以与智能手表109、平板电脑104通过接入同一个无线接入点而处于同一个局域网中,互相建立通信连接。
手机102的用户界面1001可以为手机102发现云侧服务器生成有所需补丁时所显示。用户界面1001可以包括标题栏1004、程序版本更新主界面1005等。
标题栏1004可以包括当前页面指示符,和返回导航控件。当前页面指示符可用于指示当前页面,例如文本信息“系统更新”可用于指示当前页面用于展示系统更新相关信息。不限于文本信息,当前页面指示符还可以是图标。返回导航控件可用于监听通过该控件的操作(如触摸操作)。响应于该操作,电子设备可由当前界面返回到上一级界面。
程序版本更新主界面1005可以展示一个或多个版本更新相关信息条目,该一个或多个版本更新相关信息条目可以包括:电子设备发现新补丁提示条目、补丁包大小信息条目、更新时间信息条目、更新日志信息条目等。
在程序版本更新主界面1005的每个版本更新相关信息的条目上,对应有相应的标题和文字说明。例如,电子设备发现新补丁提示条目对应的标题为“发现新补丁”,补丁包大小信息条目对应的标题为“补丁包”,文字说明为发现的新版本号“大小:2.32MB”,更新时间信息条目对应的标题为“更新时间”,文字说明为“日期:2020年9月20日”,更新日志信息条目对应的标题为“更新日志”,文字说明为“本次更新增加了系统安全修复补丁,修复系统漏洞”等。
程序版本更新主界面1005也可以包括“更新”操作控件1006、“取消”操作控件1007,可用于监听通过该控件的操作(如触摸操作)。响应于作用于“更新”或“取消”的操作,电子设备将进行更新补丁,或,取消更新补丁。
在其他一些实施例中,程序版本更新页面可以展示其他程序版本更新的相关信息,包括但不限于例如第三方应用程序。版本更新页面可以增加版本更新相关信息条目,也可以减少版本更新相关信息条目,本申请对此不作限制。
智能手表109的用户界面1002、平板电脑104的用户界面1003可以包括有与前述图9A中用户界面901部分或全部相同的界面元素(例如状态栏、日历指示符、应用程序图标、页面指示符以及常用应用程序图标的托盘等等),在此不再赘述。
图10B中示例性示出的手机102的用户界面1008,可以是在接收下载云侧服务器下发的补丁时,手机102上所显示的用户界面,该用户界面1008可以用于提示用户从云侧服务器下载补丁的进度。例如,可以显示出图标1009,该图标1009提示用户补丁正在下载,下载的进度为25%。该用户界面1008还可以显示出文本信息“正在下载补丁”,以提示用户补丁正在下载。不限于文本信息,该提示信息还可以是手机102输出的语音或其他类型的提示信息等,本申请对此不作限制。该用户界面1008还可以显示取消控件1010,用于监听作用于该控件上的触摸操作(例如点击)。响应于该“取消”操作,手机102可以取消从云侧服务器下载补丁。
图10C示例性示出了手机102的用户界面1011、智能手表109的用户界面1012、平板电脑104的用户界面1013。上述用户界面可以提示用户,在该实施场景中,手机102、智能手表109以及平板电脑104中不同版本的第一程序的第一漏洞均已被修复。例如,用户界面1011可以显示出文字提示信息“第一漏洞已修复”,并显示出手机102所拥有的第一程序的版本号信息“版本10.0”,用户界面1012可以显示出文字提示信息“第一漏洞已修复”,并显示出智能手表109所拥有的第一程序的版本号信息“版本8.0”,用户界面1013可以显示出文字提示信息“第一漏洞已修复”,并显示出平板电脑104所拥有的第一程序的版本号信息“版本9.0”。不限于文本信息,该提示信息还可以是电子设备输出的语音或其他类型的提示信息等,本申请对此不作限制。
在图10A、图10B、图10C所示的实施例中,仅有手机102从云服务器下载了修复第一漏洞的第一补丁,手机102可以在手机侧根据手机102的版本10.0将第一补丁进行机器码化。然后手机可以根据所获取到的智能手表109的版本8.0,平板电脑104的版本9.0所对应的机器码偏移量,生成新的补丁机器码。关于平板电脑104获取手机102中的补丁的具体方法可参考方法实施例一,关于智能手表109获取手机102中的补丁的具体方法可参考方法实施例二,在这里不再赘述。与手机102位于同一个局域网中的平板电脑104和智能手表109不需要再从云服务器重复下载同一补丁,因此在图10B中手机102在下载补丁,智能手表109和平板电脑104并没有下载补丁。但是在手机102下载完成补丁时,同一个局域网中不同程序版本的智能手表109和平板电脑104会自动修复该补丁针对的同一个漏洞。实施本实施例,可以避免重复下载同一个补丁,节省了带宽,提高了打补丁效率。
可以理解的是,图9A、图9B、图10A、图10B、图10C仅为一些用户界面的示例,不对本申请其他实施例构成任何限制。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (12)

1.一种打补丁的方法,其特征在于,所述方法包括:
第一电子设备与第二电子设备建立第一连接;
所述第一电子设备获取第一补丁文件,所述第一补丁文件用于修复第一程序的第一漏洞,所述第一漏洞存在于所述第二电子设备的所述第一程序中;
所述第一电子设备根据所述第一程序的第一版本信息,将所述第一补丁编译为第一机器码;
所述第一电子设备将所述第一机器码与第一偏移量合成为第二机器码,并将所述第二机器码烧录生成第二补丁文件,其中,所述第一偏移量是根据第二版本信息所确定,所述第二版本信息为第二电子设备中第一程序的版本信息,所述第二版本信息为所述第一电子设备通过所述第一连接从所述第二电子设备处获取到的,所述第二补丁文件用于修复版本信息为所述第二版本信息的第一程序的第一漏洞。
2.根据权利要求1所述的方法,其特征在于,所述第一偏移量是根据第二版本信息所确定,具体包括:
所述第一偏移量是根据第一映射表中记录的第二版本信息与所述第一偏移量的对应关系所确定。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
所述第一电子设备向所述第二电子设备发送所述第二补丁文件,所述第二补丁文件用于与所述第二电子设备中的第一程序文件合成为第二程序文件,其中,所述第一程序文件是所述第二电子设备中未修复所述第一漏洞的所述第一程序的可执行文件,所述第二程序文件是所述第二电子设备中已修复所述第一漏洞的所述第一程序的可执行文件。
4.根据权利要求1或2所述的方法,其特征在于,还包括:
当所述第二电子设备收到的对于第一程序文件的交互请求时,所述第一电子设备通过所述第一连接接收到对于所述第二程序文件的所述交互请求,其中,所述第一程序文件是所述第二电子设备中未修复所述第一漏洞的所述第一程序的可执行文件,所述第二程序文件是所述第一电子设备将所述第一程序文件与所述第二补丁文件合成得到的,所述第二程序文件是已修复所述第一漏洞的所述第一程序的可执行文件,所述第二电子设备上的所述第一程序文件关联与所述第一电子设备上的所述第二程序文件;
所述第一电子设备读取所述第二程序文件,生成交互结果或可执行指令,并通过所述第一连接向所述第二电子设备发送所述交互结果或可执行指令。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述第一电子设备生成第二补丁文件之后,还包括:
所述第一电子设备发送广播信息,所述广播信息包括:所述第一电子设备的身份标识号、所述第二电子设备的身份标识号、所述第二补丁文件所适用的所述第二版本信息;
在接收到所述第二电子设备响应于所述广播信息的应答信息,所述第一电子设备确定所述第二补丁文件为所述第二电子设备用于修复所述第一程序的第一漏洞的补丁文件,所述应答信息包括:所述第一电子设备的身份标识号、所述第二电子设备的身份标识号、所述第二电子设备中所述第一程序的所述第二版本信息。
6.一种打补丁的方法,其特征在于,所述包括:
第一电子设备与第二电子设备建立第一连接;
所述第一电子设备获取第一补丁文件,所述第一补丁文件用于修复第一程序的第一漏洞,所述第一漏洞存在于所述第二电子设备的所述第一程序中;
所述第一电子设备根据所述第一程序的第一版本信息,将所述第一补丁编译为第一机器码;
所述第一电子设备将所述第一机器码与第一偏移量合成为第二机器码,并将所述第二机器码烧录生成第二补丁文件,其中,所述第一偏移量是根据第二版本信息所确定,所述第二版本信息为第二电子设备中第一程序的版本信息,所述第二版本信息为所述第一电子设备通过所述第一连接从所述第二电子设备处获取到的,所述第二补丁文件用于修复版本信息为所述第二版本信息的第一程序的第一漏洞。
7.根据权利要求6所述的方法,其特征在于,所述第一偏移量是根据第二版本信息所确定,具体包括:
所述第一偏移量是根据第一映射表中记录的第二版本信息与所述第一偏移量的对应关系所确定。
8.根据权利要求6或7所述的方法,其特征在于,还包括:
所述第二电子设备接收所述第一电子设备所生成的所述第二补丁文件;
所述第二电子设备将第一程序文件与所述第二补丁文件合成为第二程序文件,其中,所述第一程序文件是所述第二电子设备中未修复所述第一漏洞的所述第一程序的可执行文件,所述第二程序文件是所述第二电子设备中已修复所述第一漏洞的所述第一程序的可执行文件。
9.根据权利要求6或7所述的方法,其特征在于,还包括:
所述第二电子设备收到的对于第一程序文件的交互请求;
所述第二电子设备通过所述第一连接将所述交互请求转发给所述第一电子设备的第二程序文件,其中,所述第一程序文件是所述第二电子设备中未修复所述第一漏洞的所述第一程序的可执行文件,所述第二程序文件是所述第一电子设备将所述第一程序文件与所述第二补丁文件合成得到的,所述第二程序文件是已修复所述第一漏洞的所述第一程序的可执行文件,所述第二电子设备上的所述第一程序文件关联与所述第一电子设备上的所述第二程序文件;
所述第一电子设备读取所述第二程序文件,生成交互结果或可执行指令,并通过所述第一连接向所述第二电子设备发送所述交互结果或可执行指令;
响应于所述交互结果或可执行指令,所述第二电子设备运行所述第一漏洞已被修复的所述第一程序。
10.根据权利要求6-9中任一项所述的方法,其特征在于,在所述第一电子设备生成第二补丁文件之后,还包括:
所述第一电子设备发送广播信息,所述广播信息包括:所述第一电子设备的身份标识号、所述第二电子设备的身份标识号、所述第二补丁文件所适用的所述第二版本信息;
响应于所述广播信息,所述第二电子设备向所述第一电子设备发送应答信息,所述应答信息包括:所述第一电子设备的身份标识号、所述第二电子设备的身份标识号、所述第二电子设备中所述第一程序的所述第二版本信息;
所述第一电子设备确定所述第二补丁文件为所述第二电子设备用于修复所述第一程序的第一漏洞的补丁文件。
11.一种电子设备,其特征在于,包括通信装置、存储器以及耦合于所述存储器的处理器,多个应用程序,以及一个或多个程序;所述处理器在执行所述一个或多个程序时,使得所述电子设备实现如权利要求1至5、权利要求6至10中任一项所述的方法。
12.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至5、权利要求6至10中任一项所述的方法。
CN202011377442.XA 2020-11-30 2020-11-30 打补丁的方法、相关设备及系统 Pending CN114579181A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011377442.XA CN114579181A (zh) 2020-11-30 2020-11-30 打补丁的方法、相关设备及系统
PCT/CN2021/133755 WO2022111664A1 (zh) 2020-11-30 2021-11-27 打补丁的方法、相关设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011377442.XA CN114579181A (zh) 2020-11-30 2020-11-30 打补丁的方法、相关设备及系统

Publications (1)

Publication Number Publication Date
CN114579181A true CN114579181A (zh) 2022-06-03

Family

ID=81753996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011377442.XA Pending CN114579181A (zh) 2020-11-30 2020-11-30 打补丁的方法、相关设备及系统

Country Status (2)

Country Link
CN (1) CN114579181A (zh)
WO (1) WO2022111664A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700738A (zh) * 2022-09-20 2023-09-05 荣耀终端有限公司 应用管理方法、电子设备及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8396325B1 (en) * 2009-04-27 2013-03-12 Google Inc. Image enhancement through discrete patch optimization
CN105786537A (zh) * 2014-12-24 2016-07-20 中兴通讯股份有限公司 一种热补丁的实现方法和装置
CN111666096B (zh) * 2020-07-02 2021-03-16 腾讯科技(深圳)有限公司 目标应用的热更新方法和装置、存储介质和电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700738A (zh) * 2022-09-20 2023-09-05 荣耀终端有限公司 应用管理方法、电子设备及系统
CN116700738B (zh) * 2022-09-20 2023-12-12 荣耀终端有限公司 应用管理方法、电子设备及系统

Also Published As

Publication number Publication date
WO2022111664A1 (zh) 2022-06-02

Similar Documents

Publication Publication Date Title
CN112783564B (zh) 一种加速应用程序启动的方法及电子设备
CN110633090B (zh) 补丁方法、相关装置及系统
CN113254409A (zh) 文件共享方法、系统及相关设备
WO2021073337A1 (zh) 安装插件的方法、装置和存储介质
WO2022111469A1 (zh) 一种文件共享方法、装置及电子设备
CN113741993B (zh) 编译插件dex文件的方法及装置
CN113495744A (zh) 一种版本升级方法及相关装置
CN112817634B (zh) Cota包下载方法及装置
CN113608753A (zh) 应用卸载方法、应用恢复方法、电子设备以及存储介质
CN116483734B (zh) 一种基于编译器的插桩方法、系统及相关电子设备
WO2022111664A1 (zh) 打补丁的方法、相关设备及系统
CN113885928B (zh) 程序更新方法和电子设备
CN113590346B (zh) 处理业务请求的方法和电子设备
CN113485709B (zh) 应用优化方法、装置以及电子设备
CN114443109B (zh) 补丁修复方法、电子设备及存储介质
CN113784331B (zh) 更新用户身份识别模块卡系统数据的方法及装置
CN116795435A (zh) 兼容性管控方法及相关设备
CN115203716A (zh) 权限同步方法、相关装置及系统
CN113467821A (zh) 应用程序的修复方法、装置、设备及可读存储介质
CN113741911A (zh) 功能包的加载方法、装置、服务器和电子设备
CN114546820A (zh) 一种应用程序的调试方法及电子设备
CN114168115B (zh) 通信系统、应用下载方法及设备
CN117009023B (zh) 显示通知信息的方法及相关装置
CN114996162B (zh) 测试方法及相关装置
CN117707563A (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