CN114096946A - 用于管理应用的方法和装置 - Google Patents
用于管理应用的方法和装置 Download PDFInfo
- Publication number
- CN114096946A CN114096946A CN202080050231.7A CN202080050231A CN114096946A CN 114096946 A CN114096946 A CN 114096946A CN 202080050231 A CN202080050231 A CN 202080050231A CN 114096946 A CN114096946 A CN 114096946A
- Authority
- CN
- China
- Prior art keywords
- application
- uid
- electronic device
- sandbox
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 32
- 244000035744 Hura crepitans Species 0.000 claims abstract description 107
- 238000009434 installation Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000004891 communication Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000003860 storage Methods 0.000 description 13
- 238000012508 change request Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
公开了一种电子设备,该电子设备包括存储基于第一沙箱环境运行的第一应用的存储器和与存储器连接的处理器。存储器存储指令,所述指令在被执行时使处理器:响应于请求将第一应用更新为第二应用的应用安装请求,确定是否需要改变用于第一应用的第一用户标识符(UID);基于需要改变第一UID,使用UID映射驻留程序分配用于第二应用的第二UID;以及构建针对第二应用的第二沙箱环境,以具有第二UID和第一沙箱环境中包括的资源。
Description
技术领域
本公开涉及用于在电子设备中安装或更新应用的技术。
背景技术
诸如智能电话或平板的电子设备可以包括提供各种功能或服务的应用。应用可以以预加载的形式包括在电子设备中,并且可以通过应用市场(例如,Google Play商店、App商店等)下载到电子设备中。
这样的应用可以包括开发者签名,以防止应用被应用的恶意用户篡改或被另一个应用替换。例如,安装在电子设备中的应用可以使用应用开发者的密钥(例如,开发者密钥)进行签名。当安装或更新与先前安装的应用相同的应用时,电子设备可以将旧应用的签名信息与新应用的签名信息进行比较,并且仅当旧应用的签名信息与新应用的签名信息相同时可以允许安装新应用,从而确保应用的完整性和电子设备的安全性。
此外,电子设备可以向安装在电子设备中的应用分配应用的用户ID(UID)。此外,电子设备可以基于分配的UID为应用构建沙箱。沙箱可以构建资源空间。仅分配了UID的应用具有能够访问资源空间的资源的授权。因此,电子设备可以将不重复的UID分配给安装在电子设备中的应用以保护每个应用的资源。
电子设备可以更新安装在电子设备中的应用。当更新应用时,具有与旧应用相同UID的更新的应用可以使用旧应用所使用的沙箱环境的资源。换言之,当先前安装的应用和更新的应用的包名称、签名密钥和UID彼此相同时,更新的应用可以在保持旧应用的资源的状态下更新。这里,更新的应用可能无法保持旧应用所使用的UID。例如,由于安装在电子设备中的操作系统平台的策略改变,更新的应用不使用先前使用的UID。然而,不可以改变分配给应用的UID。因此,需要独立于旧应用来新安装要更新的应用。此外,由于新安装的应用具有与旧应用的UID不同的UID,更新的应用可能无法访问旧应用所使用的沙箱环境。因此,更新的应用可能无法使用利用旧应用生成的用户数据。
上述信息仅作为背景信息呈现,以协助理解本公开。关于上述的任何内容是否可能适用于关于本公开的现有技术,没有作出确定,也没有作出断言。
发明内容
技术问题
本公开的实施例至少解决上述问题和/或劣势并且至少提供下述优势。本公开的实施例提供了用于管理应用以在安装应用之后改变分配的UID的方法和装置。
附加实施例在随后的描述中将部分地阐述,并且部分地将从描述中是清晰的。
技术方案
根据本公开的示例实施例,提供了一种电子设备。该电子设备可以包括:存储基于第一沙箱环境运行的第一应用的存储器和与存储器连接的处理器。存储器存储指令,所述指令在被执行时使处理器:响应于请求将第一应用更新为第二应用的应用安装请求,确定是否需要改变用于第一应用的第一用户标识符(UID);基于需要改变第一UID,使用UID映射驻留程序分配用于第二应用的第二UID;以及构建针对第二应用的第二沙箱环境,以具有第二UID和第一沙箱环境中包括的资源。
根据本公开的另一示例实施例,提供了一种用于更新电子设备中的应用的方法。该方法可以包括:获得请求将基于第一沙箱环境运行的第一应用更新为第二应用的应用安装请求;响应于应用安装请求,确定是否需要改变用于第一应用的第一UID;基于需要改变第一UID,使用UID映射驻留程序分配用于第二应用的第二UID;以及构建针对第二应用的第二沙箱环境,以具有第二UID和第一沙箱环境中包括的资源。
根据本公开的另一示例实施例,提供了一种存储介质。该存储介质可以是非暂时性计算机可读存储介质,其可以存储程序,所述程序在被处理器执行时使电子设备执行过程,所述过程包括:获得请求将基于第一沙箱环境运行的第一应用更新为第二应用的应用安装请求;响应于应用安装请求,确定是否需要改变用于第一应用的第一UID;基于需要改变第一UID,使用UID映射驻留程序分配用于第二应用的第二UID;以及构建针对第二应用的第二沙箱环境,以具有第二UID和第一沙箱环境中包括的资源。
本公开的其他方面、优势和显著特征将从结合附图公开了本公开的各种实施例的以下详细描述中对本领域技术人员变得清晰。
本发明的有利效果
不可以在应用被安装之后改变用户ID(UID)。然而,根据本公开中所公开的实施例,电子设备可以更新具有另一个ID的应用。
当改变UID以更新应用时,现有应用连同更新之前生成的用户数据一起被删除,或者更新的应用不使用现有的用户数据。然而,根据本公开中所公开的实施例,更新的应用可以使用更新之前生成的用户数据。
此外,可以提供通过本公开直接或间接确定的各种效果。
虽然已经参考本公开的各种示例实施例示出和描述了本公开,但是将理解,各种示例实施例旨在是说明性的,而不是限制性的。本领域技术人员将进一步理解,在不脱离包括所附权利要求及其等同物的本公开的真实精神和全部范围的情况下,在其中可以在形式和细节上进行各种改变。
附图说明
本公开的某些实施例的上述和其他方面、特征和优势将从结合附图的以下详细描述中更加清晰,其中:
图1是示出了根据各种实施例的网络环境中的示例电子设备的框图;
图2是示出了根据各种实施例的示例程序的框图;
图3是示出了根据实施例的示例电子设备和与电子设备可通信的外部设备的示例配置的框图;
图4是示出了根据实施例的用于管理电子设备的应用的示例程序模块的示图;
图5是示出了根据实施例的电子设备的应用访问沙箱环境的示例方法的示图;
图6是示出了根据实施例的用于管理应用的用户ID(UID)的电子设备的示例配置的框图;
图7是示出了根据实施例的电子设备更新应用的示例过程的流程图;
图8是示出了根据实施例的电子设备构建更新的应用的沙箱的示例过程的流程图;
图9是示出了根据实施例的电子设备的组件更新应用的示例过程的信号流程图;以及
图10是示出了根据另一个实施例的电子设备的组件更新应用的示例过程的信号流程图。
关于附图的描述,相同或相似的符号可以用于相同或相似的组件。
具体实施方式
在下文中,可以参考附图描述本公开的各种示例实施例。然而,应当理解,这并非旨在将本公开限制为特定实现形式,而是包括本公开的实施例的各种修改、等同物和/或替代。
图1是示出了根据各种实施例的网络环境100中的示例电子设备101的框图。参照图1,在网络环境100中,电子设备101可以通过第一网络198(例如,短程无线通信网络)与电子设备102通信,或者可以通过第二网络199(例如,远程无线通信网络)与电子设备104或服务器108通信。根据实施例,电子设备101可以通过服务器108与电子设备104通信。根据实施例,电子设备101可以包括处理器120、存储器130、输入设备150、声音输出设备155、显示设备160、音频模块170、传感器模块176、接口177、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、订户识别模块196和天线模块197。根据一些实施例,可以省略电子设备101的组件当中的至少一个(例如,显示设备160或相机模块180),或者可以添加一个或多个其他组件到电子设备101。根据一些实施例,以上组件中的一些可以以一个集成电路实现。例如,传感器模块176(例如,指纹传感器、虹膜传感器或照度传感器)可以被嵌入在显示设备160(例如,显示器)中。
处理器120可以执行例如软件(例如,程序140)以控制连接到处理器120的电子设备101的至少一个其他组件(例如,硬件和/或软件组件),并且可以处理或计算各种数据。根据实施例,作为数据处理或操作的一部分,处理器120可以将从其他组件(例如,传感器模块176或通信模块190)接收的命令集或数据加载到易失性存储器132中,可以处理加载到易失性存储器132中的命令或数据,并可以将结果数据存储在非易失性存储器134中。根据实施例,处理器120可以包括主处理器121(例如,中央处理单元或应用处理器)和辅助处理器123(例如,图形处理设备、图像信号处理器、传感器集线器处理器或通信处理器),辅助处理器123独立于主处理器121操作或者与主处理器121一起操作。附加或可替代地,辅助处理器123可以使用比主处理器121更少的电力,或者被指定有指派的功能。辅助处理器123可以与主处理器121分开或作为主处理器121的一部分来实现。
辅助处理器123可以例如在主处理器121处于非活动(例如,睡眠)状态时代替主处理器121,或者在主处理器121处于活动(例如,应用执行)状态时连同主处理器121一起,控制与电子设备101的组件当中的至少一个组件(例如,显示设备160、传感器模块176或通信模块190)相关联的功能或状态中的至少一些。根据实施例,辅助处理器123(例如,图像信号处理器或通信处理器)可以被实现为在功能上与辅助处理器123相关的另一个组件(例如,相机模块180或通信模块190)的一部分。
存储器130可以存储由电子设备101的至少一个组件(例如,处理器120或传感器模块176)使用的各种数据。例如,数据可以包括软件(例如,程序140)以及关于与软件相关联的命令的输入数据或输出数据。存储器130可以包括易失性存储器132或非易失性存储器134。
程序140可以作为软件被存储在存储器130中,并且可以包括例如操作系统142、中间件144或应用146。
输入设备150可以从电子设备101的外部(例如,用户)接收用于电子设备101的组件(例如,处理器120)的命令或数据。输入设备150可以包括例如麦克风、鼠标、键盘或数字笔(例如,触控笔)。
声音输出设备155可以将声音信号输出到电子设备101的外部。声音输出设备155可以包括例如扬声器或接收器。扬声器可以用于诸如多媒体播放或录音播放的通用目的,并且接收器可以用于接收呼叫。根据实施例,接收器和扬声器可以集成地或分开地实现。
显示设备160可以在视觉上向电子设备101的外部(例如,用户)提供信息。例如,显示设备160可以包括显示器、全息设备、或投影仪以及用于控制对应的设备的控制电路。根据实施例,显示设备160可以包括被配置为感测触摸的触摸电路或者用于测量触摸上的压力的强度的传感器电路(例如,压力传感器)。
音频模块170可以双向转换声音和电信号。根据实施例,音频模块170可以通过输入设备150获得声音,或者可以通过声音输出设备155或通过直接或无线地连接到电子设备101的外部电子设备(例如,电子设备102(例如,扬声器或耳机))输出声音。
传感器模块176可以生成对应于电子设备101外部的环境状态(例如,用户状态)或内部的操作状态(例如,电力、温度)的电信号或数据值。根据实施例,传感器模块176可以包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁传感器、加速度传感器、抓握传感器、接近传感器、颜色传感器、红外传感器、生物特征传感器、温度传感器、湿度传感器或照度传感器。
接口177可以支持一个或多个指定协议,以允许电子设备101直接或无线地连接到外部电子设备(例如,电子设备102)。根据实施例,接口177可以包括例如HDMI(高清晰度多媒体接口)、USB(通用串行总线)接口、SD卡接口或音频接口。
连接端178可以包括连接器,该连接器将电子设备101物理地连接到外部电子设备(例如,电子设备102)。根据实施例,连接端178可以包括,例如,HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块179可以将电信号转换成用户通过触感或动感感知的机械刺激(例如,振动或移动)或电刺激。根据实施例,触觉模块179可以包括,例如,马达、压电元件或电模拟器等中的至少一个。
相机模块180可以拍摄静止图像或视频图像。根据实施例,相机模块180可以包括例如至少一个或多个镜头、图像传感器、图像信号处理器、或闪光灯。
电力管理模块188可以管理供应给电子设备101的电力。根据实施例,电力管理模块188可以实现为电力管理集成电路(PMIC)的至少一部分。
电池189可以向电子设备101的至少一个组件供应电力。根据实施例,电池189可以包括,例如,不可再充电(原)电池、可再充电(二次)电池或燃料电池。
通信模块190可以建立在电子设备101和外部电子设备(例如,电子设备102、电子设备104、或服务器108)之间的直接(例如,有线)或无线通信信道,并支持通过建立的通信信道的通信执行。通信模块190可以包括独立于处理器120(例如,应用处理器)操作并且支持直接(例如,有线)通信或无线通信的至少一个通信处理器。根据实施例,通信模块190可以包括无线通信模块192(例如,蜂窝通信模块、短程无线通信模块或GNSS(全球导航卫星系统)通信模块)或有线通信模块194(例如,LAN(局域网)通信模块或电力线通信模块)。以上通信模块当中的对应的通信模块可以通过第一网络198(例如,诸如蓝牙、Wi-Fi直连或IrDA(红外数据协会)的短程通信网络)或第二网络199(例如,诸如蜂窝网络、互联网或计算机网络(例如,LAN或WAN)的远距离无线通信网络)与外部电子设备104通信。上述各种通信模块可以实现为一个组件(例如,单个芯片),或者可以分别实现为分开的组件(例如,多个芯片)。无线通信模块192可以在诸如第一网络198或第二网络199的通信网络中使用存储在订户识别模块196中的用户信息(例如,国际移动订户身份(IMSI))来识别和认证电子设备101。
天线模块197可以向电子设备101的外部(例如,外部电子设备)发送信号或电力,或者从电子设备101的外部(例如,外部电子设备)接收信号或电力。根据实施例,天线模块197可以包括天线,天线包括辐射元件,辐射元件包括在基板(例如,PCB)中或上形成的导电图案或导电材料。根据实施例,天线模块197可以包括多个天线。在这样的情况下,可以例如通过通信模块190从多个天线选择合适于在诸如第一网络198或第二网络199的通信网络中使用的通信方案的至少一个天线。然后可以经由选择的至少一个天线在通信模块190和外部电子设备之间发送或接收信号或电力。根据实施例,除了辐射元件的另一个组件(例如,射频集成电路(RFIC))可以附加地形成作为天线模块197的部分。
组件当中的至少一些组件可以通过在外围设备之间使用的通信方法(例如,总线、GPIO(通用目的输入和输出)、SPI(串行外围接口)或MIPI(移动产业处理器接口))彼此连接,以彼此交换信号(例如,命令或数据)。
根据实施例,可以通过连接到第二网络199的服务器108在电子设备101和外部电子设备104之间发送或接收命令或数据。电子设备102和104中的每一个可以与电子设备101的类型相同或类型不同。根据实施例,由电子设备101执行的操作中的所有或一些可以由外部电子设备102、104或108当中的一个或多个外部电子设备执行。例如,当电子设备101自动地或通过来自用户或另一个设备的请求执行一些功能或服务时,除了自身执行功能或服务之外或者代替自身执行功能或服务,电子设备101可以请求一个或多个外部电子设备执行与功能或服务相关的功能中的至少一些。接收请求的一个或多个外部电子设备可以执行所请求的功能或服务或与该请求相关联的附加的功能或服务中的至少一部分,并向电子设备101发送执行结果。电子设备101可以按原样提供结果,或者在附加的处理之后提供结果,作为对请求的响应的至少一部分。为了这点,例如,可以使用云计算、分布式计算或者客户端-服务器计算技术。
图2是示出了根据各种实施例的示例程序的框图200。
根据实施例,程序140可以包括用于控制电子设备(例如,图1的电子设备101)的一个或多个资源的操作系统142、中间件144和操作系统142可执行的应用146。操作系统142可以包括,例如,AndroidTM、iOSTM、WindowsTM、SymbianTM、TizenTM或BadaTM。例如,程序140的至少一部分可以在制造电子设备101时预加载在电子设备101上,或者可以在由用户使用电子设备101时从外部电子设备(例如,图1的电子设备102或104或服务器108)下载和更新。
操作系统142可以控制以管理(例如,分配或收集)电子设备101的一个或多个系统资源(例如,进程、存储器或电源)。附加地或可替代地,操作系统142可以包括用于驱动电子设备101的另一个硬件设备(例如,图1的输入设备150、声音输出设备155、显示设备160、音频模块170、传感器模块176、接口177、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、订户识别模块196或天线模块197)的一个或多个驱动器程序。操作系统142可以包括用于管理电子设备101的一个或多个系统资源的内核290。内核290可以与位于操作系统142的最外面部分的外壳进行比较以处理用户命令。可以通过操作系统142的另一部分或被称为系统分页的一系列程序接口来请求内核290的服务。内核290可以包括例如系统资源管理器291或设备驱动器293。系统资源管理器291可以执行系统资源的控制、分派、检索等。根据实施例,系统资源管理器291可以包括进程管理单元、存储器管理单元、文件系统管理单元等。设备驱动器293可以包括例如显示器驱动器、相机驱动器、蓝牙驱动器、共享存储器驱动器、USB驱动器、小键盘驱动器、Wi-Fi驱动器、音频驱动器或进程间通信(IPC)驱动器。
中间件144可以经由应用编程接口(API)145为应用146提供各种功能,使得从电子设备101的一个或多个资源提供的功能或信息可以被应用146使用。中间件144可以包括,例如,应用管理器201、窗口管理器203、多媒体管理器205、资源管理器207、电力管理器209、数据库管理器211、包管理器213、连接性管理器215、通知管理器217、位置管理器219、图形管理器221、安全性管理器223、电话管理器225或语音识别管理器227。
应用管理器201可以管理例如应用146的生命周期。窗口管理器203可以管理例如在屏幕上使用的一个或多个图形用户界面(GUI)资源。多媒体管理器205可以识别例如播放媒体文件所需的一种或多种格式,并且可以使用适合于在一个或多个格式当中选择的格式的编解码器来编码或解码媒体文件当中的对应的媒体文件。资源管理器207可以管理例如图1的应用146的源代码或存储器130的存储空间。电力管理器209可以管理例如电池189的容量、温度或电力,并且可以使用电池189的容量、温度或电力当中的对应的信息来确定或提供与电子设备101的操作相关联的信息。根据实施例,电力管理器209可以与电子设备101的基本输入/输出系统(BIOS)(未示出)相互工作。
数据库管理器211可以生成、搜索或修改例如将由应用146使用的数据库。包管理器213可以管理安装或更新例如以包文件的形式分发的应用。连接性管理器215可以管理例如电子设备101和外部电子设备之间的无线连接或直接连接。通知管理器217可以提供例如用于通知用户发生指定事件(例如,呼入、消息或警报)的功能。位置管理器219可以管理例如电子设备101的位置信息。图形管理器221可以管理例如要提供给用户的一个或多个图形效果,或者可以管理与图形效果相关联的UI。
安全性管理器223可以提供例如系统安全性或用户认证。电话管理器225可以管理例如由电子设备101提供的语音或视频呼叫功能。语音识别管理器227可以例如向服务器108发送用户的语音数据,并且可以接收对应于要在电子设备101中至少部分地基于来自服务器108的语音数据或至少部分地基于该语音数据转换的文本数据而执行的功能的命令。根据实施例,中间件144可以动态地不包括一些现有组件或可以进一步包括新组件。根据实施例,中间件144的至少一部分可以被包括作为操作系统142的一部分或者可以被实现为与操作系统142不同的分开的软件。
根据实施例,中间件144可以包括运行时间库(未示出)。运行时间库可以包括例如由编译器使用以在应用146正被执行时通过编程语言添加新功能的库模块。运行时间库可以执行输入/输出管理、存储器管理、关于算术函数的能力等。
API 145可以是例如编程功能集并且可以根据操作系统配置。例如,在操作系统为AndroidorTM或iOSTM的情况下,它可以为每个平台提供一个API集。在操作系统为TizenTM的情况下,它可以为每个平台提供两个或更多API集。
应用146可以包括例如主页(home)应用251、拨号器应用253、SMS/MMS应用255、即时消息(IM)应用257、浏览器应用259、相机应用261、闹钟应用263、联系人应用265、语音识别应用267、电子邮件应用269、日历应用271、媒体播放器应用273、相册应用275、手表应用277、健康应用279(例如,用于测量诸如锻炼量或血糖的生物特征信息的应用)、或环境信息应用281(例如,用于测量关于大气压力、湿度或温度的信息的应用)。根据实施例,应用146还可以包括能够支持电子设备101和外部电子设备之间的信息交换的信息交换应用(未示出)。信息交换应用可以包括例如被配置为向外部电子设备发送指定信息(例如,呼叫、消息或警报)的通知中继应用或被配置为管理外部电子设备的设备管理应用。例如,通知中继应用可以向外部电子设备发送与在电子设备101的另一个应用(例如,电子邮件应用269)中发生的指定事件(例如,邮件接收)相对应的通知信息。附加地或可替代地,通知中继应用可以从外部电子设备接收通知信息并且可以为电子设备101的用户提供接收的通知信息。
例如,设备管理应用可以控制与电子设备101通信的外部电子设备的电力(例如,接通/关断电力)和电子设备101的一些组件(例如,显示设备160或相机模块180)中的每一个的电力,或可以控制电子设备101的一些组件(例如,显示设备160或相机模块180)中的每一个的功能(例如,亮度、分辨率或焦距)。附加地或可替代地,设备管理应用可以支持在外部电子设备上运行的应用的安装、删除或更新。
图3是示出了根据实施例的示例电子设备(例如,图1的电子设备101)和与电子设备可通信的示例外部设备310(例如,图1的电子设备102、电子设备104或服务器108)的示例配置的框图300。
根据实施例,电子设备可以包括处理器(例如,包括处理电路)120、存储器130和通信模块(例如,包括通信电路)190。电子设备可以经由通信模块190从外部设备310下载应用。例如,在第一应用301安装在电子设备的存储器130中的状态下,电子设备可以从外部设备310下载数据以将第一应用301更新为第二应用302。
根据实施例,外部设备310可以是通过网络与外部设备可连接的并分发应用的服务器。例如,外部设备310可以包括分发可用于电子设备的应用的应用市场服务器。
根据另一个实施例,外部设备310可以是通过网络与电子设备可连接的用户设备。例如,用户设备可以包括台式或膝上型PC。用户设备可以通过网络与应用分发服务器连接,并且可以从应用分发服务器获得应用。当电子设备与用户设备连接时,用户设备可以向电子设备发送获得的应用。
根据实施例,可以在制造电子设备时安装存储在存储器130中的第一应用301。电子设备可以从外部获得第一应用301以将第一应用301存储在存储器130中。第二应用302可以是从外部设备310下载并安装的新应用。电子设备可以将来自外部设备310的、存储在电子设备中的应用的列表和每个应用的版本信息与从外部设备310提供的应用的版本信息进行比较。当与具有相同识别信息(例如,诸如Facebook、Chrome或Google Maps的应用包名称)的应用的版本不同的另一版本的应用存在于外部设备310中时,电子设备可以从外部设备310下载另一版本的应用。在本文公开的各种示例实施例中,第一应用301可以描述为,或指的是,例如安装在电子设备中的旧版本的应用,并且第二应用302可以描述为具有与第一应用301相同的识别信息的新版本的应用。
根据实施例,第一应用301可以使用第一签名密钥或简单的第一密钥被电子签名以提供给电子设备。关于第一密钥的信息可以包括在第一应用301的安装包中所包括的文件中(例如,Android操作系统的应用包中所包括的CERT.RSA文件)。
第二应用302可以使用第二签名密钥或简单的第二密钥被电子签名以提供给电子设备。处理器120可以将关于第二应用302中包括的第二密钥的信息(或文件)与关于第一密钥的信息(或文件)进行比较。当第一密钥和第二密钥彼此相同时,处理器120可以将第一应用301更新为第二应用302。例如,处理器120可以删除第一应用301并且可以安装第二应用302。再例如,处理器120可以使用第二应用302的文件为第一应用301的一些文件打补丁(patch)。再例如,处理器120可以使用第二应用302的文件向第一应用301添加数据。换言之,处理器120可以用第二应用302的至少一部分替换第一应用301的至少一部分。例如,处理器120可以用新应用的包的配置替换应用包的一些或全部配置(文件和/或文件夹)。在下文中,简称为第一密钥或第二密钥的配置可以是用于认证应用的开发者的各种类型的签名信息。
此外,根据实施例,第一应用301可以具有根据安装在电子设备中的操作系统的策略分配的第一用户ID(UID)。电子设备可以基于第一UID构建第一应用301可访问的第一沙箱环境。当将第一应用301更新为第二应用302时,电子设备可以确定第二应用302是否能够具有第一UID。例如,当向第一应用301分配共享ID时并且当由于操作系统的策略改变而不可以分配共享UID时,电子设备可以确定需要将第一UID改变为作为正常UID的第二UID。
结合图3,可以添加或修改各种组件。例如,图1所示的各种模块、接口、传感器等可以添加到图3的配置中或者可以用图3的组件替换。结合图3和另一个实施例描述的内容适用于与图1或图2相关联的内容。类似地,结合图1或图2描述的内容适用于图3到图10的描述。
图4是示出了用于管理电子设备(例如,图1的电子设备101)的应用的示例程序模块400的示图。
根据实施例,程序模块400可以被配置为包括应用410、应用框架420、库430和内核层440。图4中所示的程序模块400示出了根据实施例的使用操作系统的示例程序模块,并且不限于特定的操作系统。与程序模块400相关联的操作可以由处理器(例如,图1的处理器120或图3的处理器120)执行。此外,本公开中所公开的关于电子设备的实施例可以被配置为适用于另一个操作系统(例如,TizenTM、iOSTM、WindowsTM等)。
根据实施例的包管理器421和UID管理器422可以在应用框架420中实现。包管理器421可以管理应用包和应用的安装。例如,包管理器421可以识别安装的应用包的包名称。此外,包管理器421可以识别具有相同包名称的要安装的应用是否安装在电子设备中。包名称可以包括在应用的识别信息中。包管理器421可以确定是否需要改变应用的UI。当确定请求UID的改变时,包管理器421可以向UID管理器422传递UID改变请求。
根据实施例的UID管理器422可以灵活地管理应用的UID。响应于包管理器421的UID改变请求,UID管理器422可以将UID分配给应用或改变分配给应用的UID。此外,当UID被分配给应用或当改变分配的UID时,UID管理器422可以请求内核440基于新分配的UID构建沙箱。
当改变分配给应用的UID时,根据实施例的UID管理器422可以获得关于基于改变之前的UID可访问的第一沙箱中所包括的一个或多个资源的资源信息。根据实施例,沙箱中所包括的资源可以指例如应用的应用包中所包括的资源。此外,UID管理器422可以基于获得的资源信息请求内核440构建具有第一沙箱中所包括的一个或多个资源的第二沙箱。内核440可以响应于UID管理器422的请求来构建使用改变后的UID可访问的并且具有第一沙箱中所包括的一个或多个资源的第二沙箱。
图5是示出了电子设备(例如,图1的电子设备101)的应用访问沙箱环境的示例方法的示图。例如,图5示出了A应用510、B应用520和C应用530安装在电子设备中的示例。
原则上,由电子设备分配给应用的UID是不重复的。这里,作为例外,当需要在应用之间共享资源时,可以使用共享的UID将相同的UI分配给两个或更多应用。作为AndroidTM操作系统的示例,可以使用相同的签名密钥电子签名和提供两个或更多应用,并且可以通过AndroidManifest.xml设置相同的共享UID以安装应用。
在本公开中,相同的签名密钥可以包括属于第一签名密钥和第二签名密钥所属的签名密钥组(用于管理签名密钥的组)以及当签名密钥本身完全相同时。
参照图5,使用相同的签名密钥电子签名和提供A应用510和B应用520,并且作为共享UID的2000被分配给A应用510和B应用520。因此,A应用510和B应用520可以共享相同沙箱511中包括的资源。
相比之下,向C应用530分配了作为正常UID的10001。C应用530可以访问基于作为正常UID的10001配置的沙箱531的资源,但可能不访问UID为2000的沙箱511的资源。
图6是示出了根据实施例的用于管理应用的UID的电子设备(例如,图1的电子设备101)的示例配置的框图600。
根据实施例的电子设备可以被配置为包括包管理器610、UID管理器620和内核630。包管理器610可以管理关于安装在电子设备中的应用的信息。当从电子设备安装或删除应用时,包管理器610可以注册或删除应用的信息。根据实施例,可以在电子设备的存储器(例如,图1的存储器130或图3的存储器130)中针对应用包的每个包名称分开地存储关于每个应用的信息。应用的信息可以包括例如app代码路径、UID、签名信息和可用授权信息中的至少一个。当包管理器610应该在更新安装在电子设备中的应用时改变UID时,它可以向UID管理器620传递UID改变请求。
根据实施例的UID管理器620可以包括UID映射驻留程序(例如,守护进程)、APK资源中心623和沙箱重建器625。当从包管理器610接收对更新的应用的UID改变请求时,UID管理器620可以向内核630传递沙箱重建请求,以向应用分配新的UID并基于分配的UID构建沙箱。
响应于从包管理器610接收的UID改变请求,UID映射驻留程序621可以将新的UID分配给应用。UID映射驻留程序621可以管理UID列表,使得分配给应用的UID之间不发生重复和干扰。
APK资源中心623可以获得关于先前安装的应用包的沙箱中包括的资源的资源信息。使用由APK资源中心623获得的资源信息,先前构建的沙箱中包括的资源可以移动到新构建的沙箱。
沙箱重建器625可以向内核630传递由UID映射驻留程序621新分配的UID和由APK资源中心623获得的资源信息。因此,内核630可以构建新的沙箱以将旧应用的沙箱中包括的资源移动到新构建的沙箱。
内核630可以是形成平台的最低级的软件。内核630可以应用安装的应用的位置、资源目录和沙箱策略。内核630可以响应于沙箱重建请求,基于分配给应用的UID来构建可访问的沙箱。此外,内核630可以响应于包管理器610或UID管理器620的请求将资源存储在沙箱中。
图7是示出了根据实施例的电子设备(例如,图1的电子设备101)更新应用的示例过程的流程图700。
在操作710中,根据实施例的电子设备可以获得与第一应用相关联的应用安装请求。与第一应用相关联的应用安装请求可以是请求将第一应用更新为第二应用。例如,电子设备可以将存储在电子设备中的至少一个应用与从外部设备(例如,图1的电子设备102、图1的电子设备104、图1的服务器108、或图3的外部设备310)分发的至少一个应用进行比较。当存在具有与第一应用相同的识别(例如,相同的应用包名称)并且具有与第一应用不同版本的第二应用时,电子设备可以生成应用安装请求以将第一应用更新为第二应用。又例如,电子设备可以从外部设备(例如,图1的电子设备102、图1的电子设备104、图1的服务器108或图3的外部设备310)接收应用安装请求。又例如,电子设备可以响应于经由电子设备的输出设备(例如,图1的显示设备160、声音输出设备155或触摸模块179)输出的信息,从用户接收用于生成应用安装请求的用户输入。根据实施例,可以使用分配给第一沙箱环境的资源来执行第一应用。在本公开中,生成应用安装请求的表达可以包括当电子设备自身生成应用安装请求时或者当电子设备从外部接收应用安装请求时。
在操作720中,电子设备可以确定是否需要改变第一应用的第一UID。根据实施例,电子设备可以识别第一应用的第一UID并且可以确定是否可以向新安装在电子设备中的应用分配第一UID。
当需要改变第一UID时(操作720中的“是”)(例如,当不可以向新安装在电子设备中的应用分配第一UID时),在操作730中,电子设备可以向要安装的应用分配第二UID。例如,在安装第一应用时,可以根据安装在电子设备中的平台的策略分配共享UID,但是取决于策略的改变不可以分配共享UID。在这种情况下,更新后的第二应用可能无法使用共享UID。因此,电子设备可以向第二应用分配正常UID。
在操作740中,电子设备可以构建具有第二UID的第二沙箱环境。换言之,电子设备可以构建由具有第二UID的第二应用可访问的第二沙箱环境。然而,当基于新构建的第二沙箱环境简单地运行第二应用时,可能无法使用第一应用使用的资源。例如,由于对于第二应用而言不可以使用在第一应用运行时通过用户输入生成的用户数据(例如,用户帐户、文档文件或应用的环境设置),因此可能出现用户应该使用第二应用再次生成用户数据的不便利。因此,电子设备可以构建第二沙箱环境,使得第二沙箱环境具有第一沙箱环境中包括的资源。
当在操作740中构建第二沙箱环境时,电子设备可以在操作750中基于第二UID和第二沙箱环境完成第二应用的安装。
当在操作720中确定不需要改变第一UID时(在操作720中为“否”),在操作750中,电子设备可以基于第一UID和第一沙箱环境完成第二应用的安装。
图8是示出了根据实施例的电子设备(例如,图1的电子设备101)构建更新后的应用的沙箱的示例过程(例如,图7的操作720、730和740)的流程图800。
在操作810中,根据实施例的电子设备可以确定在电子设备中是否安装了具有与发生了应用安装请求的第二应用相同的包名称的第一应用。这里,包名称可以描述实施例,但不限于此。换言之,电子设备可以搜索具有与要安装的第二应用的识别信息匹配的识别信息的第一应用。
当电子设备中没有安装与要安装的第二应用匹配的应用时,电子设备可以将第二应用安装为新的应用。
当发现具有与发生了应用安装请求的第二应用相同的包名称的第一应用时(操作810中的“是”),电子设备可以在操作820中确定第一应用和第二应用的签名密钥是否彼此相同。例如,电子设备可以获得第一应用中包括的签名信息以识别第一应用的签名密钥。电子设备可以识别第二应用中是否包括对应于签名密钥的信息。当第二应用没有基于第一应用的签名密钥而认证时,电子设备可能无法取代第一应用来安装第二应用。另一方面,当基于第一应用的签名密钥认证第二应用时,电子设备可以取代第一应用来安装第二应用。换言之,电子设备可以将第一应用更新为第二应用。
当期望取代第一应用来安装第二应用时,在操作830中,电子设备可以确定分配给第一应用的第一UID是否与要分配给第二应用的第二UID相同。
当第一UID与要分配给第二应用的第二UID不同时,在操作840中,电子设备可以构建第二沙箱环境以包括第一应用的第一沙箱环境中包括的资源。当第一UID和第二UID彼此相同时,由于电子设备向第二应用分配第一UID,使得第二应用可以访问第一沙箱环境中包括的资源,电子设备可能无法构建新的沙箱环境。
图9是示出了根据实施例的电子设备(例如,图1的电子设备101)的组件更新应用的示例过程的信号流程图900。
在操作901中,包管理器610可以接收请求安装第二应用的应用安装请求。在操作903中,包管理器610可以响应于应用安装请求将第二应用与安装在电子设备中的至少一个应用进行比较。包管理器610可以基于比较结果确定是否将安装在电子设备中的第一应用更新为第二应用,并且可以确定是否需要改变分配给第一应用的UID。
当确定需要改变UID时,在操作905中,包管理器610可以向UID管理器620的UID映射驻留程序621传递UID改变请求。响应于UID改变请求,在操作907中,UID映射驻留程序621可以重新分配UID。换言之,UID映射驻留程序621可以分配第二UID来替换分配给第一应用的第一UID。
在操作909中,UID映射驻留程序621可以传递UID重新分配通知以用于通知沙箱重建器625向沙箱重建器625重新分配了UID。在操作911中,沙箱重建器625可以响应于UID重新分配通知向内核630传递请求内核630构建新的沙箱的沙箱重建请求。
响应于沙箱重建请求,在操作913中,内核630可以构建新的沙箱。构建新的沙箱,内核630可以在操作915中向沙箱重建器625传递用于构建的新沙箱的沙箱构建完成通知。这里,先前包括在第一应用的沙箱中的资源可能无法包括在内核630生成的沙箱中。
在操作917中,沙箱重建器625可以向APK资源中心623传递请求用于第一应用的资源信息(例如,用于识别第一沙箱环境中包括的资源的信息)的应用资源请求。在操作919中,沙箱重建器625可以接收响应于应用资源请求的关于第一应用的资源信息。在操作921中,沙箱重建器625可以将获得的资源信息传递给内核630。在操作923中,内核630可以将从沙箱重建器625发送的资源信息存储在新沙箱中,使得能够访问新沙箱的应用可以使用资源信息中包括的资源。
将资源信息存储在沙箱中,在操作925中,内核630可以向沙箱重建器625传递沙箱构建完成通知。接收沙箱构建完成通知,在操作927中,沙箱重建器625可以向包管理器610传递应用安装完成通知。
图10是示出了根据另一个实施例的电子设备(例如,图1的电子设备101)更新应用的示例过程的信号流图1000。
在操作1001中,包管理器610可以接收请求安装第二应用的应用安装请求。在操作1003中,包管理器610可以响应于应用安装请求将第二应用与安装在电子设备中的至少一个应用进行比较。包管理器610可以基于比较的结果确定是否将安装在电子设备中的第一应用更新为第二应用,并且可以确定是否需要改变分配给第一应用的UID。
当确定需要改变UID时,包管理器610可以在操作1005中向UID管理器620的UID映射驻留程序621传递UID改变请求。响应于UID改变请求,在操作1007中,UID映射驻留程序621可以重新分配UID。换言之,UID映射驻留程序621可以分配第二UID来替换分配给第一应用的第一UID。在操作1009中,UID映射驻留程序621可以向沙箱重建器625传递用于通知沙箱重建器625重新分配了UID的UID重新分配通知。
在操作1011中,沙箱重建器625可以向APK资源中心623传递请求关于第一应用的资源信息的应用资源请求。在操作1013中,沙箱重建器625可以响应于应用资源请求从APK资源中心623接收关于第一应用的资源信息。
在操作1015中,沙箱重建器625可以向内核630传递包括关于第一应用的资源信息的沙箱重建请求。响应于沙箱重建请求,在操作1017中,内核630可以构建包括由第一应用使用的资源且基于第二UID可访问的新沙箱,并且存储资源信息。
构建新沙箱,在操作1019中,内核630可以向沙箱重建器625传递沙箱构建完成通知。接收沙箱构建完成通知,在操作1021中,沙箱重建器625可以向包管理器610传递应用安装完成通知。
根据本公开中所公开的各种示例实施例的电子设备可以是各种类型的设备。电子设备可以包括例如便携式通信设备(例如,智能电话)、计算机设备、便携式多媒体设备、移动医疗器械、相机、可穿戴设备、家用电器等。根据本公开的实施例的电子设备不应限于上述设备。
应当理解,本公开的各种实施例和实施例中使用的术语不旨在将本公开中公开的技术特征限制为本文中公开的特定实施例;反而,本公开应该理解为覆盖本公开的实施例的各种修改、等同物或替代物。关于附图的描述,相同或相关组件可以分配有相同附图标记。如本文中使用的,对应于项目的名词的单数形式可以包括一个或多个项目,除非上下文另有明确指示。在本文所公开的本公开中,本文使用的表达“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的一个或多个”或“A、B或C中的一个或多个”等中的每一个可以包括与相关联的列出的项目中的一个或多个的任何或所有可能组合。诸如“第一”、“第二”、“所述第一”和“所述第二”的表达可能仅用于将组件与其他组件进行区分的目的,而不在其他方面(例如、重要性或次序)限制对应的组件。将理解,如果元素(例如,第一元素)在具有或不具有术语“可操作地”或“通信地”的情况下被称为“与另一个元素(例如,第二元素)耦合”、“耦合到另一个元素(例如,第二元素)”、“与另一个元素(例如,第二元素)连接”或“连接到另一个元素(例如,第二元素)”,则该元素可以直接地(例如,有线地)、无线地或经由第三元素与其他元素耦合。
本公开中使用的术语“模块”可以包括以硬件、软件或固件实现的单元,并且可以与术语“逻辑”、“逻辑块”、“部件”或“电路”可互换地使用。“模块”可以是集成部件的最小单元,或可以是其一部分。“模块”可以是用于执行一个或多个功能或其一部分的最小单元。例如,根据实施例,“模块”可以包括专用集成电路(ASIC)。
本公开的各种实施例可以由软件(例如,程序140)实现,软件包括存储在由机器(例如,电子设备101)可读的机器可读存储介质(例如,内部存储器136或外部存储器138)中的指令。例如,机器(例如,电子设备101)的处理器(例如,处理器120)可以从机器可读存储介质调用指令,并执行这样调用的指令。机器可以基于调用的至少一个指令执行至少一个功能。一个或多个指令可以包括由编译器生成的代码或由解释器可执行的代码。可以以非暂时性存储介质的形式提供机器可读存储介质。这里,“非暂时性”存储介质是有形的,但可能不包括信号(例如,电磁波)。术语“非暂时性”不区分数据被永久地存储在存储介质中的情况和数据被临时地存储在存储介质中的情况。
根据实施例,可以将根据本公开中公开的各种实施例的方法提供为计算机程序产品的一部分。计算机程序产品可以作为产品而在卖方和买方之间交易。计算机程序产品可以以机器可读存储介质(例如,致密盘只读存储器(CD-ROM))的形式分发、或者可以通过应用商店(例如,Play StoreTM)或者在两个用户设备(例如,智能电话)之间直接在线分发(例如,下载或上传)。在在线分发的情况下,计算机程序产品的至少一部分可以临时存储或生成在机器可读存储介质中,诸如制造商服务器的存储器、应用商店的服务器或中继服务器。
根据各种实施例,上述组件中的每个组件(例如,模块或程序)可以包括一个或多个实体。根据各种实施例,可以省略上述组件或操作中的至少一个或多个组件,或者可以添加一个或多个组件或操作。可替代地或附加地,一些组件(例如,模块或程序)可以被集成到一个组件中。在这样的情况中,集成的组件可以执行在集成之前由每个对应的组件执行的相同或相似的功能。根据各种实施例,可以顺序地、并行地、重复地或以启发式方法执行由模块、编程或其他组件执行的操作,或者可以以不同的顺序执行或省略至少一些操作,或者可以添加其他操作。
在安装应用之后不可以改变用户ID(UID)。然而,根据本公开中公开的实施例,电子设备可以更新应用以具有另一个ID。
当改变UID以更新应用时,现有应用连同更新之前生成的用户数据一起被删除,或者更新后的应用不使用现有的用户数据。然而,根据本公开中公开的实施例,更新后的应用可以使用更新之前生成的用户数据。
此外,可以提供通过本公开直接或间接确定的各种效果。
虽然已经参考了本公开的各种示例实施例示出和描述了本公开,但是将理解,各种示例实施例旨在是说明性的,而不是限制性的。本领域技术人员将进一步理解,在不脱离包括所附权利要求及其等同物的本公开的真实精神和全部范围的情况下,在其中可以在形式和细节上进行各种改变。
Claims (15)
1.一种电子设备,包括:
存储器,存储基于第一沙箱环境运行的第一应用;以及
与存储器连接的处理器,
其中,所述存储器存储指令,所述指令在被执行时使处理器:
响应于请求将第一应用更新为第二应用的应用安装请求,确定是否需要改变用于第一应用的第一用户标识符(UID);
基于需要改变第一UID,使用UID映射驻留程序分配用于第二应用的第二UID;以及
构建针对第二应用的第二沙箱环境,以具有第二UID和第一沙箱环境中包括的资源。
2.如权利要求1所述的电子设备,其中,所述处理器被配置为基于将第一应用与第二应用进行比较以确定第二应用是否是替换第一应用的应用的结果,来确定是否需要改变第一UID。
3.如权利要求2所述的电子设备,其中,所述处理器被配置为基于第一应用的包名称是否与第二应用的包名称相同来确定第二应用是否是替换第一应用的应用。
4.如权利要求2所述的电子设备,其中,所述处理器被配置为基于将第一应用的签名密钥与第二应用的签名密钥进行比较的结果来确定第二应用是否是替换第一应用的应用。
5.如权利要求4所述的电子设备,其中,所述处理器被配置为基于第一应用的签名密钥和第二应用的签名密钥属于相同签名密钥组,确定第二应用是替换第一应用的应用。
6.如权利要求2所述的电子设备,其中,所述处理器被配置为基于第二应用是替换第一应用的应用并且基于第一UID不同于能够分配给第二应用的第二UID来确定需要改变第一UID。
7.如权利要求6所述的电子设备,其中,第一UID是共享UID,并且
其中,第二UID为正常UID。
8.如权利要求1所述的电子设备,其中,所述处理器被配置为分配第二UID以构建第二沙箱环境并将第一沙箱环境中包括的资源存储在构建的第二沙箱环境中。
9.如权利要求1所述的电子设备,其中,所述处理器被配置为基于确定需要改变第一UID收集关于第一沙箱环境中包括的资源的资源信息并且基于资源信息构建用以包括第一沙箱环境中包括的资源的第二沙箱环境。
10.如权利要求1所述的电子设备,其中,第一沙箱环境中包括的资源被包括在第一应用的应用包中。
11.一种用于在电子设备中更新应用的方法,所述方法包括:
获得请求将基于第一沙箱环境运行的第一应用更新为第二应用的应用安装请求;
响应于应用安装请求,确定是否需要改变用于第一应用的第一UID;
基于需要改变第一UID,使用UID映射驻留程序分配用于第二应用的第二UID;以及
构建针对第二应用的第二沙箱环境,以具有第二UID和第一沙箱环境中包括的资源。
12.如权利要求11所述的方法,其中,确定是否需要改变第一UID包括:
比较第一应用与第二应用;
基于所述比较来确定第二应用是否是替换第一应用的应用;以及
基于确定第二应用是否是替换第一应用的应用的结果,确定是否需要改变第一UID。
13.如权利要求11所述的方法,其中,构建第二沙箱环境包括:
分配第二UID以构建第二沙箱环境;以及
将第一沙箱环境中包括的资源存储在构建的第二沙箱环境中。
14.如权利要求11所述的方法,还包括:
基于确定需要改变第一UID,收集关于第一沙箱环境中包括的资源的资源信息,
其中,构建第二沙箱环境包括:
基于资源信息构建用以包括第一沙箱环境中包括的资源的第二沙箱环境。
15.如权利要求11所述的方法,其中,第一沙箱环境中包括的资源被包括在第一应用的应用包中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190083389A KR102713970B1 (ko) | 2019-07-10 | 2019-07-10 | 어플리케이션을 관리하는 방법 및 그 장치 |
KR10-2019-0083389 | 2019-07-10 | ||
PCT/KR2020/008778 WO2021006574A1 (en) | 2019-07-10 | 2020-07-06 | Method and apparatus for managing application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114096946A true CN114096946A (zh) | 2022-02-25 |
Family
ID=74103108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080050231.7A Pending CN114096946A (zh) | 2019-07-10 | 2020-07-06 | 用于管理应用的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11604656B2 (zh) |
EP (1) | EP3970006A4 (zh) |
KR (1) | KR102713970B1 (zh) |
CN (1) | CN114096946A (zh) |
WO (1) | WO2021006574A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11847417B2 (en) * | 2021-03-12 | 2023-12-19 | Accenture Global Solutions Limited | Data-driven social media analytics application synthesis |
US11886384B2 (en) * | 2022-04-01 | 2024-01-30 | Microsoft Technology Licensing, Llc | Destination-agnostic item-keeping UI for heterogenous digital items |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786551A (zh) * | 2014-12-26 | 2016-07-20 | 北京元心科技有限公司 | 一种应用程序运行访问控制方法和系统 |
US20160366541A1 (en) * | 2015-06-10 | 2016-12-15 | Samsung Electronics Co., Ltd. | Electronic device and method for providing function in electronic device |
US20190052732A1 (en) * | 2017-04-12 | 2019-02-14 | International Business Machines Corporation | Method and System for Mobile Applications Update in the Cloud |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273486A1 (en) | 2004-06-03 | 2005-12-08 | Keith Robert O Jr | Virtual distributed file system |
US9357031B2 (en) * | 2004-06-03 | 2016-05-31 | Microsoft Technology Licensing, Llc | Applications as a service |
US8812613B2 (en) | 2004-06-03 | 2014-08-19 | Maxsp Corporation | Virtual application manager |
US8204519B2 (en) | 2005-06-13 | 2012-06-19 | Dyna Llc | Methods and apparatus for updating a communications device using SMS messages |
EP1826982A1 (en) | 2006-02-28 | 2007-08-29 | Thomson Licensing | Building block for multimedia system, streaming system and server having the same |
US7970381B2 (en) | 2007-08-13 | 2011-06-28 | General Motors Llc | Method of authenticating a short message service (sms) message |
US10511630B1 (en) * | 2010-12-10 | 2019-12-17 | CellSec, Inc. | Dividing a data processing device into separate security domains |
CN102254120B (zh) * | 2011-08-09 | 2014-05-21 | 华为数字技术(成都)有限公司 | 恶意代码的检测方法、系统及相关装置 |
US8387141B1 (en) | 2011-09-27 | 2013-02-26 | Green Head LLC | Smartphone security system |
WO2013063791A1 (en) | 2011-11-04 | 2013-05-10 | Qualcomm Atheros, Inc. | Nat/firewall accelerator |
KR101424246B1 (ko) * | 2012-09-26 | 2014-08-14 | 주식회사 한국스마트카드 | 단말기간 무선통신을 이용한 단말기 펌웨어 및 운영데이터의 업데이트 방법 |
WO2015189931A1 (ja) * | 2014-06-11 | 2015-12-17 | 三菱電機株式会社 | プログラム編集装置、プログラム管理装置、プログラム編集プログラムおよびプログラム管理プログラム |
CN104267977B (zh) * | 2014-09-16 | 2017-12-29 | 小米科技有限责任公司 | 应用程序运行方法及装置 |
US9870239B2 (en) | 2014-09-16 | 2018-01-16 | Xiaomi Inc. | Method and device for running application program |
JP5904514B1 (ja) * | 2014-10-28 | 2016-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム |
KR102320149B1 (ko) * | 2015-02-16 | 2021-11-01 | 삼성전자주식회사 | 어플리케이션을 실행하는 전자 장치 및 그 제어 방법 |
US10623459B2 (en) * | 2016-03-09 | 2020-04-14 | Spotify Ab | System and method for use of cyclic play queues in a media content environment |
US20190196805A1 (en) * | 2017-12-21 | 2019-06-27 | Apple Inc. | Controlled rollout of updates for applications installed on client devices |
CN110543789B (zh) * | 2018-05-29 | 2023-05-16 | 腾讯科技(深圳)有限公司 | 手柄与第三方应用程序进行适配的方法、装置及存储介质 |
US11307839B2 (en) * | 2019-06-26 | 2022-04-19 | Hewlett Packard Enterprise Development Lp | Updating of container-based applications |
-
2019
- 2019-07-10 KR KR1020190083389A patent/KR102713970B1/ko active IP Right Grant
-
2020
- 2020-07-06 CN CN202080050231.7A patent/CN114096946A/zh active Pending
- 2020-07-06 WO PCT/KR2020/008778 patent/WO2021006574A1/en unknown
- 2020-07-06 EP EP20836148.5A patent/EP3970006A4/en active Pending
- 2020-07-07 US US16/922,151 patent/US11604656B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786551A (zh) * | 2014-12-26 | 2016-07-20 | 北京元心科技有限公司 | 一种应用程序运行访问控制方法和系统 |
US20160366541A1 (en) * | 2015-06-10 | 2016-12-15 | Samsung Electronics Co., Ltd. | Electronic device and method for providing function in electronic device |
US20190052732A1 (en) * | 2017-04-12 | 2019-02-14 | International Business Machines Corporation | Method and System for Mobile Applications Update in the Cloud |
Non-Patent Citations (3)
Title |
---|
360产品技术: "Android沙箱机制", Retrieved from the Internet <URL:https://juejin.cn/post/6844903680697712648> * |
DAVID BARRERA 等: ""Understanding and Improving App Installation Security Mechanisms through Empirical Analysis of Android"", "PROCEEDINGS OF THE SECOND ACM WORKSHOP ON SECURITY AND PRIVACY IN SMARTPHONES AND MOBILE DEVICES ", 19 October 2012 (2012-10-19), pages 81 - 92 * |
MICHAEL BACKES 等: ""Boxify: Full-fledged App Sandboxing for Stock Android"", "PROCEEDINGS OF THE 24TH USENIX SECURITY SYMPOSIUM", 14 August 2015 (2015-08-14) * |
Also Published As
Publication number | Publication date |
---|---|
KR20210007262A (ko) | 2021-01-20 |
EP3970006A1 (en) | 2022-03-23 |
KR102713970B1 (ko) | 2024-10-08 |
US20210011736A1 (en) | 2021-01-14 |
WO2021006574A1 (en) | 2021-01-14 |
US11604656B2 (en) | 2023-03-14 |
EP3970006A4 (en) | 2022-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112055424B (zh) | 电子装置以及切换电子装置的方法 | |
CN109429102B (zh) | 用于显示应用的电子装置及服务器 | |
KR102320151B1 (ko) | 어플리케이션을 설치하는 전자 장치 및 그 제어 방법 | |
CN111051152B (zh) | 提供智能密钥服务的方法及其电子设备 | |
US20170201378A1 (en) | Electronic device and method for authenticating identification information thereof | |
US10048828B2 (en) | Method of interface control and electronic device thereof | |
CN112119623B (zh) | 基于帐户组共享内容的方法和执行该方法的电子装置 | |
CN105447381B (zh) | 用于授予权限的基于令牌的方案 | |
US10558290B2 (en) | Electronic device and method for recognizing touch input therefor | |
US20170078269A1 (en) | Method for managing application and electronic device supporting the same | |
EP3128460A1 (en) | Electronic device and method for storing security information thereof | |
US20200201518A1 (en) | Method for starting application and electronic device for implementing same | |
US11604656B2 (en) | Method and apparatus for managing application | |
US11599321B2 (en) | Electronic device and operating method therefor | |
US11379458B2 (en) | Electronic device and data management method thereof | |
EP3983920B1 (en) | Electronic device for controlling access to device resource and operation method thereof | |
KR102320149B1 (ko) | 어플리케이션을 실행하는 전자 장치 및 그 제어 방법 | |
US20220417016A1 (en) | Method for signing key management by electronic device, and electronic device therefor | |
US20210026807A1 (en) | Method for managing data associated with application and electronic device therefor | |
EP3896592A1 (en) | Electronic device for selecting key to be used for encryption on basis of amount of information of data to be encrypted, and operation method of electronic device | |
CN112534409A (zh) | 电子设备及其操作方法 | |
US20240015156A1 (en) | Electronic device for controlling access to device resource and operation method thereof |
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 |