一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

动态创建的打包应用的注册的制作方法

2022-05-18 19:24:36 来源:中国专利 TAG:

动态创建的打包应用的注册


背景技术:

1.渐进式网络应用是通过互联网递送的一种类型的应用。渐进式网络应用的一个目标是帮助开发者,可能比利用本机应用,更容易地构建跨平台应用。渐进式网络应用可以使用与网站相关联的语言而被构建。这样的语言可以包括超文本标记语言(html)、层叠样式(css)和javascript。渐进式网络应用可以在使用符合标准的浏览器的任何平台或操作系统上运行。
2.渐进式网络应用可以具有功能——诸如离线访问、推送通知、主屏幕安装和设备硬件访问——它们使得用户能够类似于用户体验本机应用那样体验应用。渐进式网络应用可以适用于任何形式的设备(无论是台式机、移动设备还是平板电脑),并且一经初始加载便可以不需要重新下载内容。渐进式网络应用可以被认为是一种类型的网页。因此,开发者可以不需要通过特定于平台的商店或受控的分发渠道来分发渐进式网络应用。


技术实现要素:

3.根据本公开的一个方面,公开了一种计算机可读介质。该计算机可读介质包括指令,该指令由一个或多个处理器可执行以使计算系统接收注册客户端包的请求。客户端包是未签名的并且指定对主机包的从属性。主机包是签名的并且包括可执行档。主机包向操作系统中注册。主机包具有对操作系统的功能的访问权。计算机可读介质还包括指令,该指令由一个或多个处理器可执行以由操作系统注册客户端包。该计算机可读介质还包括指令,该指令由一个或多个处理器可执行,以接收激活被包括在客户端包中的应用的请求,以及,在接收该请求后,引起该可执行档的执行。计算机可读介质还包括指令,该指令由一个或多个处理器可执行以准许应用对操作系统的功能的访问。
4.应用可以具有应用标识,并且可执行档的执行可以是使用该应用标识而被完成的。
5.应用标识可以不与主机包的主机标识冲突。
6.计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统,在执行可执行档的执行后,使用应用标识来追踪应用和可执行档的活动。
7.客户端包可以包括未签名标记,并且该未签名标记被需要以用于操作系统注册未签名包。
8.计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统从应用接收访问操作系统的第二功能的第二请求。主机包可以不具有对第二功能的访问权。计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以拒绝应用对第二功能的访问。
9.计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统由操作系统卸载主机包。计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统,在卸载主机包后,卸载客户端包。
10.客户端包可以由被包括在主机包中的第二应用创建。
11.主机包可以包括主机能力,并且该主机能力被需要以用于操作系统注册客户端包。
12.客户端包可以是由开发者或系统管理员在主机包签名之后创建的。
13.计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统确定主机包满足标准。该标准可以被包括在客户端包中指定的从属性中。
14.客户端包可以不包含可执行文件或对主机包以外的二进制文件或类的引用。
15.根据本公开的另一个方面,公开了一种计算机可读介质。该计算机可读介质可以包括指令,该指令由一个或多个处理器可执行,以使计算系统,在应用的激活后,就请求对具有该应用的应用标识的可执行档的执行。可执行档被包括在主机包中,而应用被包括在客户端包中。主机包是签名的,并且包括主机标识。主机包向操作系统注册,并且包括允许对操作系统的功能的访问的能力。客户端包是未签名的,并声明对主机包的从属性。应用标识不同于主机标识。计算机可读介质还可以包括指令,该指令由一个或多个处理器可执行,以使计算系统在应用的运行时期间接收对操作系统的功能的访问。
16.计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统请求向操作系统注册客户端包。主机包可以包括主机能力。该主机能力被需要以用于向操作系统注册客户端包。
17.客户端包可以包括未签名标记。该未签名标记被需要以用于向操作系统注册客户端包。
18.计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统无法接收对操作系统的第二功能的访问。主机包可以不具有对操作系统的第二功能的访问权。
19.主机包可以引起客户端包的卸载。
20.根据本公开的另一个方面,公开了一种计算机可读介质。该计算机可读介质包括指令,该指令由一个或多个处理器可执行,以使计算系统接收激活客户端应用的请求。客户端应用不包括用于操作系统验证客户端应用的真实性的签名。客户端应用具有客户端标识。客户端应用声明对主机应用的从属性。主机应用包括用于操作系统验证主机应用的真实性的签名,并且主机应用具有不同于客户端标识的主机标识。该计算机可读介质还包括指令,该指令由一个或多个处理器可执行,以使计算系统,在接收该请求后,在客户端标识下引起主机应用的激活。计算机可读介质还包括指令,该指令由一个或多个处理器可执行,以使计算系统准许客户端应用对操作系统的功能的访问。主机应用可以具有对该功能的访问权。
21.计算机可读介质还可以包括附加指令,该附加指令由一个或多个处理器可执行,以使计算系统拒绝客户端应用对操作系统的第二功能的访问。主机应用可以不具有对第二功能的访问权。
22.客户端应用可以在主机应用被签名之后,已经由主应用生成。
23.提供本发明内容是为了以简化形式介绍一组概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用作确定所要求保护的主题的范围的辅助。
24.其他特征和优点将在下面的描述中阐述。本发明的特征和优点可以通过在所附权
利要求中特别指出的系统和方法来实现和获得。本公开的特征将从以下描述和所附权利要求书中变得更加明显,或者可以通过下文所述的公开主题的实践来了解。
附图说明
25.为了描述可以获得本公开的上述特征和其他特征的方式,将通过参考附图中所示的其具体实施例来进行更具体的描述。为了更好地理解,在各个附图中用相同的附图标记表示相同的元件。需要理解,附图描绘了一些示例实施例,将通过使用附图,利用附加的具体性和细节来描述和解释实施例,其中:
26.图1示出了根据本公开的用于注册未签名客户端包的示例系统。
27.图2示出了根据本公开的示例客户端包。
28.图3示出了根据本公开的示例主机包。
29.图4示出了根据本公开的用于生成和注册客户端包的示例系统。
30.图5示出了根据本公开的用于向操作系统注册客户端包的示例方法。
31.图6示出了根据本公开的用于处理注册未签名包的请求的示例方法。
32.图7示出了根据本公开的用于处理访问功能的请求的示例方法。
33.图8示出了根据本公开的用于访问操作系统的功能的示例方法。
34.图9示出了根据本公开的用于生成客户端包的示例方法。
35.图10示出了可以被包括在计算系统中的某些组件。
具体实施方式
36.操作系统可以控制向操作系统注册什么包(其可以包含零个或更多个应用)以及允许什么应用在系统上运行。向操作系统注册包可以包括记录关于包的信息,并且可以是操作系统追踪系统上有什么程序和可执行档以及它们在做什么的一种方式。可以不允许未与已注册包相关联的应用在系统上运行。一旦向系统注册了包,操作系统就可以准许包中被包括的应用对某些系统功能的访问。系统功能可以包括向用户提供通知、访问系统应用(诸如照片库)或访问设备的硬件元件(诸如相机)。准许应用对操作系统的功能的访问可以丰富应用的功能并且改善用户对应用及其运行于其上的操作系统或平台的体验。然而,与此同时,允许应用在系统上运行并准许它们对操作系统功能的访问可以产生安全问题。给予应用对系统的访问可以产生应用损害系统潜在性。
37.系统试图保护自己免受恶意程序和文件攻击的一种方式是通过签名。签名是一种用于验证包是真实的(如它声称的那样或来自信任的源)并且具有完整性(未被更改)的方法。签名可以涉及使用两个密钥或证书。证书可以由操作系统或平台开发者创建。第一证书可以是不公共共享的私有证书。操作系统开发者可以从第三方开发者接收包,并且在评估该包之后,使用私有证书对该包进行签名。备选地,操作系统开发者可以与信任的第三方开发者共享私有证书,并且第三方开发者可以使用私有证书来对其包进行签名。第二证书可以是公共可用的,并且可以在运行操作系统开发者的操作系统的机器上分发。在安装包之前,操作系统可以使用公共证书来验证包的真实性。如果包在使用私有证书签名后已经被修改,则公钥将不会验证其真实性。签名提供了一种机制,用于在将包安装到系统上并准许其对操作系统功能的访问之前,验证包的真实性和完整性。
38.尽管签名提高了安全性,但在使用动态创建的内容(诸如系统运行的同时生成的内容)时会遇到困难。如上所述,签名需要一个必须保持私有且不能出现在运行时机器上的证书。但请考虑这样一种情况,在机器上运行的签名应用在运行期间生成新的应用包。例如,考虑在机器上运行的互联网浏览器基于通过互联网可访问的网站生成应用包的情况。互联网浏览器可以生成应用包以允许用户在不必使用互联网浏览器和不必连接到互联网的情况下体验网站。然而,要获得新应用包的签名,需要与拥有已签名应用的私有证书的人共享该应用包。这将大大延迟用户对新应用的访问。
39.向动态创建的打包应用提供对系统和操作系统功能的访问而不需要签名(但同时仍然保护系统)的一种方式是通过对主机包的使用。主机包可以是充当网关的信任包,通过该网关可以向操作系统注册客户端包(其可以是动态创建的包)并获得对操作系统功能的访问。主机包和客户端包可以具有某些特性,这些特性便于使用动态创建的打包应用,同时仍然保护系统。
40.因为客户端包可以是动态创建的,所以客户端包可以不包括签名。缺少签名可以意味着操作系统缺少对客户端包进行标识验证的方式。因此,操作系统可以要求客户端包声明对主机包的从属性。该从属性可以用于将客户端包链接到主机包。从属性还可以包括标准。标准可以包括主机包的名称和主机包的最低版本。标准可以包括其他定义特性。例如,主机包可以通过名称、版本、出版商/作者、资源(语言、地区等)、位元、或架构或中央处理单元支持而被标识。标准可以要求主机包的内容被加密、压缩或物理地存在于特定卷或设备上。标准可以要求主机包具有某些声明的能力、具有特定的功能、或包括特定的密钥、标签或标识符。如果从属性中标识的主机包不包含经认证的签名、未向操作系统注册、或不满足从属性中包括的标准,则操作系统可以拒绝安装客户端包或允许其任何应用在系统上运行。这样,操作系统至少知道客户端包将通过其访问系统的网关是真实的。
41.操作系统可以允许客户端包包括内容文件,但可以不允许那些内容文件包括任何可执行文件。在备选中,客户端包可以不被允许引用或执行包含在客户端包中的任何可执行文件。操作系统还可以要求客户端包不包含引用不同于主机包中所包含的那些二进制文件或类的扩展。这些限制可以缓解与允许系统上的未签名包有关的一些安全问题。操作系统可以要求客户端包中的应用引用包含在主机包中的主机运行时。应用可以使用主机运行时的主机运行时标识来引用主机运行时。主机包的主机运行时可以包括激活信息。当应用调用主机运行时时,激活信息可以告诉操作系统要做什么。激活信息可以包括对被包括在主机包中的可执行档的引用。当客户端包中的应用被激活时,操作系统可以使用包含在主机运行时中的激活信息并调用主机运行时的可执行档。然后,可执行档可以使用客户端包的内容文件。以此方式,客户端包充当主机包的扩展。客户端包可以包括新内容,但仅限于使用被包括在主机包中的可执行档。
42.一旦向操作系统注册,主机包就可以接收对某些操作系统功能的访问。包括在主机包中的能力可以确定主机包可以访问什么功能。操作系统可以要求用户在被包括在主机包中的应用可以使用能力之前给予同意。例如,如果主机包包括访问设备的相机的能力,则当被包括在主机包中的应用试图访问相机时,操作系统可以要求用户同意给予该应用访问权。主机包还可以具有关于操作系统的特定信任级别。信任级别可以指示主机包对操作系统功能具有的访问级别。操作系统开发者可以控制第三方开发者可以在主机包中包括什么
能力。主机包的能力和信任级别可以应用并限制从属于主机包的任何客户端包。例如,操作系统可以拒绝给予客户端包对主机包不能访问的功能的访问。此外,客户端包可以不能够推翻由主机包施加的限制。
43.与系统上的其他实体和对象相比,客户端包及其任何应用每个都可以具有唯一的标识。此外,当客户端包中的应用被激活时,该应用可以使操作系统调用主机包中的可执行档,但是使用该应用的应用标识来这样做。因此,即使包括在客户端包中的应用使用包括在主机包中的可执行档,操作系统也可以与主机包及其应用分开地追踪包括在客户端包中的应用的活动。
44.主机包可以包括给予主机包许可,以具有从属于主机包的客户端包的主机能力。操作系统可以拒绝注册从属于不包括主机能力的包的客户端包。在备选中,只要包具有与操作系统的特定信任级别,操作系统就可以注册从属于不包括主机能力的包的客户端包。操作系统开发者可以控制什么开发者接收对允许主机包具有从属客户端包的主机能力和信任级别的访问。因此,定制能力和信任级别提供了一种机制,以保护操作系统,同时向动态创建的内容打开大门以用于获得对系统的访问。
45.客户端包可以包括未签名的标记。未签名标记可以指示客户端包不包括签名。操作系统可以拒绝安装不包括未签名标记的未签名包。操作系统开发者可以控制对未签名标记的访问。以此方式,操作系统开发者可以限制谁以及什么可以创建未签名包,该未签名包可以获得对系统的访问。
46.操作系统可以要求主机包能够卸载从属于该主机包的所有客户端包。操作系统还可以要求在卸载主机包时,卸载从属于该主机包的所有客户端包。操作系统还可以要求在卸载客户端包时,主机包清理客户端包的人工产物。
47.本文描述的主机包和客户端包的使用促进以一种仍然保护系统免受有害包和文件的伤害的方式,来使用动态创建的应用。操作系统将保护系统的某些度量的权力和责任委派给主机包。但是,只有当主机包和客户端包满足某些标准时,它才可以这样做。主机包还可以处理对行为不良的客户端包的补救。即使客户端包不需要被签名,它仍然必须从属于经认证的主机包,并且可以仅限于主机包的功能。
48.图1示出了其中可以利用本文公开的技术的系统100的示例。根据本公开,系统100可以包括设备102,设备102包括客户端包110和主机包140。设备102可以是任何类型的计算设备或系统。例如,设备102可以是台式计算机、移动电话或由多个节点组成的分布式计算系统。该设备可以具有一个或多个用户。设备102可以由系统管理员管理。设备102还可以包括操作系统170。
49.客户端包110可以是针对在诸如设备102的计算设备上的安装而创建的文件和数据的集合。客户端包110可以已经在设备102的操作期间被生成。客户端包110可以已经由主机包140或操作系统170生成。备选地,客户端包110可以由开发者(其可以与主机包140的开发者相同或不同)生成。开发者可以在生成主机包140之后已经生成客户端包110。在备选中,客户端包110可以由系统管理员生成。系统管理员可以是对设备102具有某种级别的管理控制或管理访问的人。在备选中,客户端包可以由设备102的用户已经生成。系统管理员或用户可以在主机包140被生成之后并且在主机包140被安装在设备102上之后已经生成客户端包110。
50.客户端包110可以包括客户端清单112、内容文件128和应用120。客户端包110可以不包括将允许操作系统170认证客户端包110的签名或任何其他对象。客户端包110可以不包括任何可执行文件。尽管图1中所示的客户端包110仅包括应用120,但其他客户端包可以包括多个应用。
51.尽管客户端包110可以不包括签名,但可以存在动态创建的客户端包包括签名或认证对象的情况。例如,被包括在主机包中的应用可以动态地创建客户端包,寻求对私有证书的临时访问以用于签名客户端包,然后可以将客户端包作为签名包来安装。应用可以要求用户插入包含私有证书的usb闪存密钥。应用可以要求用户提供证书以访问包括私有证书的远程机器。用户可以授权用户的电话或移动设备提供私有证书。
52.客户端清单112可以包括关于客户端包110的元数据和包含在客户端包110中的信息。客户端清单112可以描述应用120。操作系统170或操作系统170的开发者可以规定应该或可以包括在客户端清单112中的信息的类型。操作系统170或操作系统170的开发者可以规定包括在客户端清单112中的信息的格式。操作系统170可以使用客户端清单112和包含在客户端清单112中的信息来确定是否安装客户端包110,以及在安装客户端包110的过程中使用客户端清单112和包含在客户端清单112中的信息。当应用120被激活时,操作系统170可以使用客户端清单112或包含在客户端清单112中的信息。
53.客户端清单112可以包括从属性116。从属性116可以指示客户端清单112所从属的分隔的包(诸如主机包140)。从属性116可以包括关于主机包140的足够信息,使得操作系统170可以确定包是否是从属性116中指示的主机包140。客户端包110可以出于向操作系统170注册的目的而从属于主机包140。客户端包110还可以从属于主机包140,以用于访问一个或多个可执行档。从属性116可以标识主机包140。
54.尽管客户端清单112仅包括从属性116,但在其他设计中,客户端清单可以包括多个从属性。在涉及多个从属性的情况下,操作系统170可以首先确定是否存在向操作系统170注册的满足第一列出的从属性的包。如果不是,则操作系统170可以继续到第二列出的从属性。操作系统170可以继续,直到满足从属性或者操作系统170用尽了被包括在客户端清单中的所有从属性。
55.在一些设计中,客户端包的客户端清单可以不包括从属性。在这些情况下,客户端包可以不具有对主机包的功能和能力的访问权。
56.应用120可以描述、引用或包括为特定目的或执行某些功能、任务或活动而一起工作的文件和信息的集合。应用120可以包括唯一标识应用120的应用标识。应用120可以不包括或引用被包括在客户端包110中的可执行档。相反,应用120可以包括对被包括在主机包140中的主机运行时154的引用。当应用120被激活时,可以使用对主机运行时154的引用。该引用可以指示当应用120被激活时,操作系统170应该调用主机运行时154。应用120可以指示当应用120被激活时,操作系统170应该使用应用标识来调用主机运行时154。
57.应用120可以引用内容文件128。内容文件128可以在应用120的运行时期间使用。因此,主机运行时154和在主机运行时154中引用的任何可执行档可以使用包含在应用120中的内容文件128。例如,主机运行时154可以使用内容文件128来创建用户界面。这样的用户界面可以不同于包含在主机包140中的应用将使用包含在主机包140中的内容创建的应用。
58.主机包140可以是针对分发到诸如设备102的计算设备并在其上安装而创建的文件和数据的集合。主机包140可以由开发者(其可以与操作系统170的开发者相同或不同)已经生成。主机包140可以包括零个或更多个应用。应用可以是针对特定目的或执行某些功能、任务或活动而协同工作的文件和信息的集合。
59.主机包140可以包括元数据文件和内容文件。元数据文件可以包括关于主机包140及其标识、内容和功能性的信息。元数据文件可以包括簿记文件。操作系统170可以使用元数据文件来了解主机包140中包括什么以及当主机包140被安装并且包含在主机包140中的应用被激活时对主机包140做什么。主机包140中的内容文件可以在主机包140中包含的应用的运行时期间使用。
60.主机包140可以包括主机清单146。主机包140可以仅包括单个清单,诸如主机清单146。主机清单146可以包括关于主机包140以及包含在主机包140中的信息和文件的元数据。主机清单146可以描述零个或多个应用。主机清单146可以包括主机运行时154。主机运行时154可以由除了主机包140之外的包和除了包括在主机包140中的应用之外的应用来访问。
61.主机运行时154可以包括激活信息。激活信息可以引用可执行档。当调用主机运行时154时,操作系统170可以使用激活信息。因此,当调用主机运行时154时,操作系统170可以运行可执行档。主机运行时154可以包括唯一标识主机运行时154的主机运行时标识。包括在客户端包110中的应用120可以引用主机运行时标识,以便使操作系统170在应用120被激活时调用主机运行时154。
62.主机清单146可以指示主机包140或主机运行时154具有某些能力。这些能力可以包括对操作系统170的某些功能(诸如功能174a和功能174b)的访问。
63.主机包140可以包括签名142。主机包140的开发者可以在创建主机包140之后但在将主机包140分发给设备102之前已经生成签名142(这也可以被称为对主机包140签名)。签名142可以是使用密钥或证书而已经被创建的。被用以创建签名142的密钥或证书可以是私钥或证书。操作系统开发者可以已经生成私钥。操作系统开发者可以仅与可信开发者共享用于对主机包140签名的密钥或证书。此外,用于对主机包签名的密钥或证书可以不驻留在设备102上。签名142可以通过向签名算法提供主机包140和私钥而被创建。操作系统170可以使用签名142来验证主机包140的真实性和完整性。操作系统170可以具有公钥,该公钥验证签名142是使用私钥生成的并且主机包140自签名以来未被修改。
64.操作系统170可以是管理诸如设备102的计算设备上的硬件(诸如硬件元件104)和软件的程序或平台。操作系统170可以包括注册表172。操作系统170可以使用注册表来追踪和管理设备102上的包、应用和过程。当操作系统170在设备102上安装包或应用时,操作系统170可以将关于包或应用的信息放置在注册表172上。操作系统170不能调用或执行尚未向操作系统170注册或其相关联的包尚未向操作系统170注册的应用。
65.操作系统170可以包括验证模块176。验证模块176可以允许操作系统170验证包的真实性声明。验证模块176可以使用包括在包中的签名(诸如签名142)来确定包是真实的。验证模块176可以包括公钥或证书。验证模块176可以包括签名验证算法,该签名验证算法接收包(诸如主机包140)、公钥和签名(诸如签名142),并确定包是否是真实的。
66.操作系统170可以接收安装包的请求。安装包可以包括索引、阶段和注册。索引可
以包括操作系统170分析包的清单并记录关于包的信息。阶段可以包括操作系统170为包的内容创建目录、将包的内容放置在该目录中、以及记录该目录的位置。注册可以包括操作系统170将包连接到特定用户。注册包还可以更广泛地指操作系统170了解包的属性并记录这些属性的过程。注册包还可以指操作系统170确认包并允许包中包括的包和应用在系统上存在和运行。操作系统170可以从客户端包110接收注册客户端包110的请求。备选地,操作系统170可以从主机包140接收注册客户端包110的请求。操作系统170可以拒绝调用或运行与注册包不相关联的应用和文件。
67.操作系统170可以拒绝注册不包括可验证签名的包,除非操作系统170可以注册指示对包括可验证签名的已注册包的从属性的未签名包。例如,假设客户端包110的从属性116指示客户端包110从属于主机包140。进一步假设主机包140尚未向操作系统170注册。在该情况下,操作系统170可以拒绝向操作系统170注册客户端包110的请求。在备选中,假设主机包140向操作系统170注册,并且操作系统170验证了签名142(其可以是注册主机包140的过程的一部分)。在该情况下,操作系统170可以注册客户端包110。操作系统170还可以要求客户端包110的标识不与主机包140的标识冲突,以便注册客户端包110。操作系统170还可以要求应用120的应用标识和主机运行时154的标识不冲突,以便注册客户端包110。
68.如果用户确认用户想要安装未签名包,则操作系统170还可以注册未签名包。用户可以响应于当用户要求安装未签名包时创建的提示来指示用户想要安装未签名包。用户还可以通过改变允许安装未签名包的系统设置来指示用户想要安装未签名包。在安装未签名包之前,操作系统170可以需要用户的认证。例如,操作系统170可以要求用户输入密码或满足双因素认证。
69.操作系统170可以卸载包。卸载包可以包括注销包的清单。例如,卸载客户端包110可以包括从注册表172注销客户端包110。卸载主机包140可以导致操作系统170也卸载客户端包110。当操作系统170仅卸载客户端包110时,可以通知主机包140清除客户端包110的任何人工产物。
70.操作系统170可以包括功能174。调用一个或多个功能174可以允许应用访问设备102的某些能力或功能。例如,功能174可以允许应用访问设备102的硬件元件104a(可以是相机)或硬件元件104b(可以是麦克风)。调用功能174还可以允许应用访问或修改存在于该应用或该应用的相关联的包之外的文件。例如,功能174可以允许应用访问存储在设备102上的照片库,或者使图标被放置在设备102的主屏幕上。功能174还可以使应用访问设备102的存储器或其他应用。
71.操作系统170可以接收访问功能174中的一个功能(诸如功能174a)的请求。如果做出请求的应用不具有准许该应用对功能174a的访问的能力(或该应用的相关联的包不具有能力),则操作系统170可以拒绝该请求。相反,如果做出请求的应用(或其相关联的包)具有准许应用对功能174a的访问的能力,则操作系统170可以准许该请求。例如,假设主机包140包括准许主机包140对功能174a的访问的能力,但是主机包140不包括准许主机包140对功能174c的访问的能力。如果包括在主机包140中的应用请求对功能174a的访问,则操作系统170可以准许该应用对功能174a的访问。但是,如果包括在主机包140中的应用请求对功能174c的访问,则操作系统170可以拒绝应用对功能174c的访问。
72.操作系统170可以从客户端包110接收访问功能174a的请求。操作系统170可以使
用规则来确定客户端包110是否可以访问功能174a。一种可能的规则是,操作系统170可以要求客户端包110和主机包140中的每个都包括针对功能174a的能力,以便应用120访问功能174a(交集规则)。另一种可能的规则是,如果主机包140或客户端包110中的任一个包括针对功能174a的能力(联合规则),则操作系统170可以准许客户端包110或应用120对功能174a的访问。另一种可能的规则是,操作系统170可以允许主机包140确定客户端包110或应用120是否可以访问功能174a(主机受限规则)。另一种可能的规则是,只要客户端包110包括针对功能174a的能力,操作系统170就可以准许客户端包110对功能174a的访问,而不管主机包140是否包括该能力(客户端声明规则)。这些规则可以不是相互排斥的。例如,主机包140可以包括多个能力集合。主机包140可以包括当包括在主机包140中的应用正在以包括在主机包140中的标识运行时使用的第一能力集合、当包括在主机包140中的应用正在使用包括在客户端包110中的标识运行时客户端包110所需的第二能力集合、以及当包括在主机包140中的应用正在使用包括在客户端包110中的标识运行时可选地可用于客户端包110的第三能力集合。第三能力集合可以包括快速能力,或者可以准许客户端包110能够声明未在主机包140中声明的能力。
73.系统100可以包括远程设备180。远程设备180可以在物理上与设备102分开。远程设备180可以包括文件182。文件182可以包括可执行文件和内容文件。远程设备180可以连接到网络184。设备102可以连接到网络184,并且可以通过网络184访问远程设备180上的文件182。主机运行时154或由主机运行时154引用的可执行档可以包括用于在运行时期间访问文件182的指令。以此方式,被包括在客户端包110中的应用120可以调用存储在远程设备180上的程序。例如,远程设备180可以包括文字处理程序,并且主机运行时154或由主机运行时154引用的可执行档可以包括调用存储在远程设备180上的文字处理程序的指令。激活被包括在客户端包110中的应用120可以调用包括在远程设备180上的文字处理程序。
74.图2示出了根据本公开的客户端包210的示例。
75.客户端包210可以是旨在安装在计算设备(诸如蜂窝电话、台式计算机或接入终端)上的文件和数据的集合。客户端包210可以不包括引用除了包含在客户端包所从属的主机包中的那些之外的二进制或类的可执行文件或扩展。客户端包210可以在计算设备运行时生成,诸如由计算设备上的应用生成。以此方式,可以动态地生成客户端包210。客户端包210还可以由开发者、系统管理员、用户或操作系统生成。
76.客户端包210可以包括内容文件228。内容文件228可以是计算设备可以处理的除可执行文件之外的任何类型的文件。可执行文件可以包括动态链接库文件。内容文件228可以包括图像(诸如jpg和tiff)、声音文件(诸如mp3文件)、视频文件、数据文件、文本文件、html文件、脚本和文档。内容文件228可以由应用或可执行档使用。例如,应用或可执行档可以使用内容文件228来创建用户界面。
77.客户端包210可以包括客户端清单212。客户端清单212可以是包含关于客户端包210和被包括在客户端包210中的文件的信息的元数据文件。包含在客户端清单212中的信息的类型和格式可以由操作系统或平台或操作系统或平台的开发者规定。
78.客户端清单212可以包括客户端标识214。客户端标识214可以是操作系统可以用以标识和追踪客户端包210的信息。客户端标识214可以包括名称、发布者和版本。客户端标识214可以包括对象标识符(oid)。对象标识符可以是客户端包210的唯一名称。与关联于客
户端包210位于或安装在其上的设备上的对象和实体的其他oid相比,客户端标识214可以是唯一的。操作系统可以使用客户端标识214来追踪和管理客户端包210以及与客户端包210相关联的任何应用。
79.客户端清单212可以包括从属性216。从属性216可以指定客户端包210所从属或依赖的包或应用。从属性216可以使用包的oid或关于包的其他信息来指定包。客户端包210所从属的包可以被称为主机包。从属性216可以包括标准232。标准232可以描述包或应用必须满足的要求,以便操作系统解析从属性216并将客户端包210安装在设备上。例如,从属性216可以将特定包指定为客户端包210的主机包。标准232可以指定客户端包210愿意接受的或与客户端包210兼容的主机包的最低版本。
80.客户端清单212可以包括未签名标记226。未签名标记226可以是字符串。未签名标记226可以指示客户端包210未签名。操作系统可以拒绝安装不包括未签名标记226的未签名包,诸如客户端包210。操作系统或操作系统的开发者可以定义未签名标记226的值。
81.客户端清单212可以定义应用220。尽管客户端清单212被示为仅定义应用220,但在其他设计中,客户端清单可以定义多个应用。应用220可以不包括在客户端包210中被包括的可执行档或对可执行档的引用。相反,应用220可以包括主机运行时引用224,该主机运行时引用224指定被包括在主机包中的主机运行时。主机运行时引用224可以使用主机运行时的主机运行时标识来指定主机运行时。主机运行时可以包括激活信息并引用被包括在主机包中的可执行档。激活应用220可以调用在应用220中指定的主机运行时,并且因此调用在主机运行时中引用的可执行档。应用220可以引用内容文件228。
82.应用220可以包括应用标识222。应用标识222可以是标识应用220的信息。应用标识222可以包括应用220的oid。应用标识222可以不同于应用220驻留在其上的设备上存在的对象和实体的所有其他oid。操作系统可以使用应用标识222来调用在应用220中标识的主机运行时。换言之,激活应用220可以调用主机运行时和在主机运行时中引用的任何可执行档,但是使用应用标识222来这样做。以此方式,操作系统能够追踪主机运行时的活动以及在主机运行时中作为应用220和客户端包210的活动引用的任何可执行档。
83.客户端包210可以请求向操作系统注册。操作系统可以不注册客户端包210,除非客户端包210和主机包满足某些标准(上面描述了其中的一些)。例如,如果作为未签名包的客户端包210不从属于主机包,则操作系统可以拒绝安装客户端包210。作为另一示例,如果客户端包210从属于不包括经验证的签名或尚未向操作系统注册的主机包,则操作系统可以拒绝安装客户端包210。作为另一示例,如果客户端包210包括任何可执行文件,则操作系统可以拒绝安装客户端包210。在备选中,在客户端包210包括可执行文件的情况下,操作系统可以仅基于包括可执行文件而拒绝安装客户端包210。相反,如果客户端清单212或应用220引用包括在客户端包210中的任何可执行文件,则操作系统可以拒绝安装客户端包210。备选地,操作系统仍然可以安装客户端包210,但拒绝执行被包括在客户端包210中的任何可执行文件。在备选中,应用220中引用的主机运行时可以拒绝运行或调用包括在客户端包210中的可执行文件。操作系统可以要求客户端包210或应用220中的任何可激活扩展引用主机包或主机运行时。
84.当用户卸载客户端包210时,操作系统可以注销客户端清单212。操作系统还可以通知主机包清理客户端包210的人工产物。
85.当对客户端包210做出改变时(诸如更新客户端包210、补救客户端包210、禁用客户端包210、启用客户端包210或卸载客户端包210),操作系统可以通知主机包。
86.图3示出了根据本公开的主机包340的示例。
87.主机包340可以是旨在分发到计算设备(诸如蜂窝电话、台式计算机或接入终端)并在其上安装的文件和数据的集合。主机包340可以由开发者生成。
88.主机包340可以包括签名342。签名342可以是使用私钥而被创建的。私钥可以不驻留在主机包340所在的设备上。签名342可以允许设备或操作系统确定主机包340是真实的并且没有被修改过。例如,主机包340所在的设备可以包括公钥。公钥可以允许设备验证签名342是使用私钥生成的并且主机包340是真实的并且自签名以来未被修改过。签名342是操作系统可以验证主机包340的真实性的一种方式。操作系统和主机包340可以使用其他方式来验证其他设计中的真实性。
89.主机包340可以包括可执行档344a、344b。可执行档344可以是能够在计算设备上执行的文件。可执行档344可以引用和使用被包括在主机包340中的内容文件328。可执行档344可以使用不被包括在主机包340中的文件。
90.主机包340可以包括主机清单346。主机清单可以是包含关于主机包340和被包括在主机包340中的文件的信息的元数据文件。包含在主机清单346中的信息的类型和格式可以由操作系统或平台或操作系统或平台的开发者规定。
91.主机清单346可以包括主机标识348。主机标识348可以是标识主机包340的信息。主机标识348可以包括名称、发布者和版本。主机标识348可以包括oid。主机标识348可以不同于从属于主机包340的客户端包的客户端标识。与标识主机包340所在的设备上的对象和实体的所有其他oid相比,主机标识348可以是唯一的。操作系统可以使用主机标识348来管理和追踪主机包340。
92.主机清单346可以指定主机包340的能力350。能力350可以指示主机包340具有对操作系统、平台或设备(诸如设备102)的某些功能的访问权。例如,假设可执行档344b试图访问操作系统的功能。仅当能力350指示主机包340具有对该功能的访问权时,操作系统才可以准许可执行档344b对该功能的访问。这些功能可以包括在主屏幕上放置图标、提供通知或访问相机。操作系统的开发者可以控制对能力350的访问。能力350可以是主机包340的开发者必须从操作系统的开发者获取并包括在主机清单346中的定制哈希。能力350的使用可以需要用户同意。
93.能力350可以包括主机能力352。主机能力352可以指示主机包340可以生成客户端包。主机能力352可以指示客户端包可以从属于主机包340。系统可能需要主机能力352来注册声明对主机包340的从属性的客户端包。主机能力352可以是主机包340的开发者必须从操作系统的开发者处获取以便将其包括在主机清单346中的定制哈希。操作系统开发者可以仅与信任开发者共享主机能力352。要求主机能力352可以是操作系统的开发者解决关于允许未签名客户端包通过主机包340访问操作系统功能的安全顾虑的一种方式。
94.能力350还可以包括安装和卸载(或使操作系统安装或卸载)从属于主机包340的所有包和应用的能力。当从属于主程序包340的客户端包或应用被卸载时,主程序包340可以负责清除客户端包或应用的人工产物。
95.主机清单346可以包括主机运行时354。主机运行时354可以是除包括在主机包340
中的应用之外的应用可以访问的信息和功能。主机运行时354可以是扩展。主机运行时354可以包括激活信息360。激活信息360可以描述当主机运行时354被调用时系统应该做什么。激活信息360可以引用可执行档,诸如可执行档344b。激活信息还可以引用多个可执行档。激活信息360可以指定在调用主机运行时354之后应该执行可执行档344b。尽管主机清单346仅包括主机运行时354,但在其他设计中,主机清单可以包括多个主机运行时。每个主机运行时可以具有唯一的标识。
96.主机运行时354可以具有主机运行时标识356。主机运行时标识356可以包括标识主机运行时354的信息。主机运行时标识356可以是引用主机运行时354的方式。主机运行时标识356可以包括主机运行时354的oid。主机运行时标识356可以不同于从属于主机包340的客户端包中包括的应用的应用标识。与标识主机包340驻留在其上的设备上的对象和实体的所有其他oid相比,主机运行时标识356可以是唯一的。客户端包可以使用主机运行时标识356来引用主机运行时354。
97.主机运行时354可以具有信任级别358。信任级别358可以指示操作系统相对于主机包340或主机运行时354具有的信任级别。如果主机包340的信任级别358不等于或大于预定义级别,则操作系统可以拒绝注册从属于主机包340的客户端包。
98.更新主机包340可以涉及终止从属于主机包340的所有应用。更新主机包340可以涉及在更新主机包340时防止从属于主机包340的所有应用执行。当主机包340被终生管理时,可以应用这些要求。
99.图4示出了根据本公开的系统400的示例。系统400可以包括操作系统开发者478、开发者462、系统管理员486、设备402、用户492、网络484和网站488。
100.设备402可以包括硬件和软件。设备402可以包括操作系统470、主机包440和客户端包410。操作系统开发者478可以已经生成操作系统470。操作系统470可以是管理设备402的硬件和软件的软件。操作系统开发者478可以是设备402的源。
101.主机包440可以是文件和数据的集合。主机包440可以向操作系统470注册。主机包440可以是签名的,并且操作系统470可以在注册主机包440之前已经认证主机包440。在用户492获取设备402之后,主机包440可以被下载到设备402。在备选中,主机包440可以在用户492获取设备402时驻留在设备402上。操作系统开发者478可以生成主机包440。在备选中,开发者462可以已经生成主机包440。在任一情况下,操作系统开发者478和开发者462可以在分发主机包440之前以及在主机包440驻留在设备402上之前对主机包440签名。
102.主机包440可以包括一个或多个应用。该一个或多个应用可以使设备402的用户492能够执行任务。主机包440可以在运行时期间与操作系统470交互以执行任务。主机包440可以包括未包括在主机包440中的应用可以访问和使用的主机运行时。主机运行时可以引用包含在主机包中的可执行档。
103.客户端包410可以是未签名的并且从属于主机包440。客户端包410可以不包括任何可执行文件。客户端包410可以包括客户端应用。当被激活时,客户端应用可以调用主机运行时。客户端应用可以限于主机运行时和主机包440的功能。然而,客户端包410可以包括主机包440中未包括的内容文件。客户端应用可以使用客户端应用的客户端应用标识来调用主机运行时。并且由主机运行时引用的可执行档可以在运行期间使用被包括在客户端包410中的内容文件。因此,客户端应用可以向用户提供对不同内容的访问,并允许用户执行
与用户可以使用被包括在主机包440中的一个或多个应用访问和执行的任务不同的任务。
104.系统管理员486可以已经生成客户端包410。在主机包440向设备402注册之后,系统管理员486可以已经生成客户端包410。系统管理员486可以基于设备402的用户492的特定需求已经生成客户端包410。客户端包410可以用来利用被包括在主机包440中或设备402中的一个或多个应用来定制用户492的体验。系统管理员486可以不具有对证书的访问权以对客户端包410签名。
105.在备选中,开发者462可以生成客户端包410。开发者462可以在主机包440被签名之后生成客户端包410。可能尚未开发主程序包440的开发者462可以不具有对证书的访问权以对客户端包410签名。
106.在备选中,被包括在主机包440中的主机应用可以已经生成客户端包410。主机应用可以在主机应用的运行时期间已经生成客户端包410。例如,主机应用可以是网络浏览器。在网络浏览器的运行时期间,用户可以使用网络浏览器来访问网站488。网站488可以包括内容490。当设备402不具有对网络484的访问权时,用户492可能想要具有对网站488的内容490的访问权。网络浏览器可以基于网站488和内容490生成客户端包410。
107.在备选中,用户492可以已经生成客户端包410。
108.图5示出了用于向操作系统注册未签名包的方法500。为了清楚起见,将结合前面描述的系统、设备、组件和数据来描述该方法。
109.方法500可以包括接收502注册主机包的第一请求。主机包可以向诸如操作系统170的操作系统做出第一请求。主机包可以是主机包140或主机包340。开发者可以已经生成主机包。注册主机包的第一请求可以是操作系统识别主机包、记录关于主机包的信息、并允许被包括在主机包中的应用在操作系统驻留的设备上运行的请求。注册主机包的第一请求可以是将主机包与特定用户链接的请求。
110.方法500可以包括验证504主机包的签名。签名可以是签名142或签名342。签名可以是使用私钥而已经被生成的,该私钥通常不可用且不被包括在主机包中。私钥可以已经由操作系统开发者生成。操作系统开发者可以仅与信任开发者共享私钥。操作系统可以使用公钥验证504主机包的签名。验证504主机包的签名可以指示主机包是真实的,并且自签名生成以来未被修改过。验证504主机包的签名可以提供主机包由信任开发者创建并且不是恶意的某种保证。
111.方法500可以包括向操作系统注册506主机包。操作系统可以是操作系统170。向操作系统注册506主机包可以包括记录关于主机包的信息。向操作系统注册506主机包可以包括准许主机包在设备上运行的许可。向操作系统注册506主机包可以包括将主机包与特定用户相关联。
112.方法500可以包括接收508注册客户端包的第二请求。客户端包可以是客户端包110或客户端包210。操作系统可以接收508第二请求。操作系统可以从主机包或从客户端包接收508第二请求。客户端包可以不包括签名。客户端包可以不提供认证客户端包的方式。注册客户端包的第二请求可以是操作系统识别客户端包、记录关于客户端包的信息以及允许被包括在客户端包中的应用在设备上运行的请求。注册客户端包的第二请求可以是将客户端包与特定用户链接的请求。
113.方法500可以包括确定510客户端包不包括可执行文件。确定510客户端包不包括
可执行文件还可以包括确定客户端包不包括引用除主机包或主机运行时之外的二进制或类的扩展。可执行文件可以包括动态链接库文件。
114.方法500可以包括确定512客户端包具有未签名标记。未签名标记可以是未签名标记226。确定512客户端包具有未签名标记可以包括确定客户端包包括具有由操作系统开发者设置的值的常数。
115.方法500可以包括标识514客户端包对主机包的从属性。从属性可以是从属性116或从属性216。从属性可以标识主机包。从属性可以包括诸如标准232的标准。
116.方法500可以包括解析516客户端包的从属性。解析516客户端包的从属性可以包括标识主机包。解析516客户端包的从属性可以包括确定主机包满足被包括在主机包中的标准。
117.方法500可以包括确定518主机包向操作系统注册518。向操作系统注册可以意味着记录有关主机包的信息。这也可以意味着主机包已经链接到特定用户。这也可以意味着主机包被允许在设备上运行。
118.方法500可以包括确定520主机包包括主机能力。主机能力可以是主机能力352。主机能力可以指示主机包具有来自操作系统的许可以充当客户端包的主机。操作系统开发者可以仅向可信开发者提供主机能力。在备选中,方法500可以包括确定主机包具有等于或大于预先确定的信任级别的信任级别。
119.方法500可以包括向操作系统注册522客户端包。向操作系统注册522客户端包可以包括记录关于客户端包的信息。向操作系统注册522客户端包可以包括准许客户端包在设备上运行的许可。向操作系统注册522客户端包可以包括将客户端包与特定用户相关联。
120.方法500可以包括接收524激活被包括在客户端包中的应用的激活请求。应用可以是应用120或应用220。激活请求可以由用户直接发起应用而产生。激活请求可以由用户诸如通过打开在没有应用的情况下不能查看的文件类型来间接地启动应用而产生。
121.方法500可以包括利用应用的应用标识来调用526主程序包的主机运行时。应用可以包括对主机运行时的引用。主机运行时可以是主机运行时154或主机运行时354。主机运行时可以包括激活信息。主机运行时可以引用被包括在主机包中的可执行档。调用526主机包的主机运行时可以包括执行主机运行时中引用的可执行档。
122.方法500可以包括使用应用标识追踪528应用的活动。操作系统可以使用应用标识来追踪528应用的活动。使用应用标识追踪528应用的活动可以包括追踪可执行档的活动。即使可执行档被包括在主机包(而不是客户端包)中,操作系统也可以能够将可执行档的活动与应用相关联,因为主机运行时是利用应用标识而被调用的。
123.方法500可以包括接收530访问操作系统的第一功能的第一功能请求。第一功能可以是功能174中的一个功能。操作系统可以接收530第一功能请求。操作系统可以从应用接收530第一功能请求。第一功能可以涉及访问操作系统所在的设备的硬件元件(诸如相机或麦克风)。第一功能可以涉及访问系统文件(诸如控制出现在设备的主屏幕上的图像的文件)或系统功能(诸如发送通知)。操作系统可以限制对第一功能的访问。
124.方法500可以包括确定532主机包具有访问第一功能的能力。该能力可以是能力350在的一个能力。操作系统可以确定532主机包具有访问第一功能的能力。
125.方法500可以包括准许534应用对第一功能的访问。操作系统可以准许534应用对
第一功能的访问。
126.方法500可以包括接收536访问操作系统的第二功能的第二功能请求。第二功能可以是功能174中的一个功能。操作系统可以接收536第二功能请求。第二功能请求可以来自应用。第二功能可以不同于第一功能。
127.方法500可以包括确定538主机包不具有访问第二功能的能力。
128.方法500可以包括拒绝540第二功能请求。
129.方法500可以包括卸载542主机包。卸载542主机包可以包括注销主机包。
130.方法500可以包括在卸载主机包之后卸载544客户端包。卸载544客户端包可以包括注销客户端包。卸载544可以包括卸载从属于主机包的所有客户端包。在其他设计中,客户端包在卸载主机包时可以不会卸载。相反,客户端包可以保留在系统上,但是客户端包的状态可以改变为损坏、禁用、不可运行或需要注意。
131.图6示出了用于注册未签名包的方法600。为了清楚起见,将结合前面描述的系统、设备、组件和数据来描述该方法。
132.方法600可以包括接收602注册未签名包的请求。操作系统(诸如操作系统170)可以接收602该请求。未签名包可以是客户端包110或客户端包210。未签名包可以请求注册该未签名包。在备选中,主机包(诸如主机包140或主机包340)可以做出该请求。
133.方法600可以包括确定604未签名包是否声明对主机包的从属性。从属性可以标识主机包。从属性可以是从属性116或从属性216。如果未签名包没有声明对主机包的从属性,则方法600可以包括拒绝622该请求。
134.方法600可以包括确定606主机包是否被注册。确定606主机包是否被注册可以包括确定606主机包是否向操作系统注册。如果主机包未注册,则方法600可以包括拒绝622该请求。
135.方法600可以包括确定608主机包是否满足包括在从属性中的标准。标准可以是标准232。如果主机包不满足标准,则方法600可以包括拒绝622该请求。
136.方法600可以包括确定610主机包是否包括签名。签名可以是签名142或签名342。如果主机包不包括签名,则方法600可以包括拒绝622该请求。
137.方法600可以包括确定612主机包的签名是否已经被验证。如果主机包的签名尚未或不能被验证,则方法600可以包括拒绝622该请求。
138.方法600可以包括确定614未签名包是否包括未签名标记。如果未签名包不包括未签名标记,则方法600可以包括拒绝622该请求。
139.方法600可以包括确定616主机包是否包括主机能力或具有等于或大于预定义级别的信任级别。如果主机包不包括主机能力或不具有等于或大于预定义级别的信任级别,则方法600可以包括拒绝622该请求。
140.方法600可以包括确定618未签名包是否包括任何可执行档。如果未签名包包括任何可执行档,则方法600可以包括拒绝622该请求。
141.方法600可以包括准许620该请求。操作系统可以准许620该请求。尽管准许620该请求被示为仅在满足所示的所有条件时才发生,但是方法600可以包括当满足少于所有所示的条件时准许620该请求。例如,在一些设计中,即使客户端包没有声明从属性或声明了无法解析的从属性,方法600也可以准许注册客户端包的请求。在这些情况下,客户端包可
以能够向操作系统注册,但可以无法使用主机包的功能和能力。在其他设计中,准许620请求还可能需要满足附加条件。例如,方法600可以要求在未签名包、在未签名包中描述的任何应用、主机包以及在主机包中描述的任何应用或主机运行时的标识之间不存在冲突。
142.方法600可以包括拒绝622该请求。操作系统可以拒绝622该请求。尽管拒绝622该请求被示为在不满足所示的任何条件时发生,但是拒绝622该请求可以需要不满足所示的两个或更多个条件。
143.图7示出了用于准许对功能的访问的方法700。为了清楚起见,将结合前面描述的系统、设备、组件和数据来描述该方法。
144.方法700可以包括接收702访问功能的请求。操作系统可以接收702访问该功能的请求。操作系统可以从未签名包或包含在未签名包中的应用接收702访问该功能的请求。操作系统可以从主机运行时或被包括在主机包中的可执行文档接收702该请求,该主机包以包含在未签名包中的应用的应用标识进行操作。该功能可以是功能174中的一个功能。该功能可以涉及访问操作系统所驻留的设备的硬件元件。
145.方法700可以包括确定704客户端包是否包括访问功能的能力。客户端包可以是诸如客户端包110或客户端包210的未签名包。如果客户端包不包括访问该功能的能力,则方法700可以包括拒绝710该请求。
146.方法700可以包括确定706主机包是否包括访问该功能的能力。主机包可以包括诸如签名142或签名342的签名。主机包可以是主机包140或主机包340。客户端包可以包括对主机包的从属性。如果主机包不包括访问该功能的能力,则方法700可以包括拒绝710该请求。
147.方法700可以包括准许708请求。操作系统可以准许708该请求。尽管准许708该请求被示为仅在满足所示的所有条件时才发生,但是方法700可以包括在少于全部或甚至当没有满足所示的所有条件时准许708该请求。在其他设计中,准许708该请求还可能需要满足附加条件。如前所述,操作系统可以使用各种规则来确定客户端包是否具有对该功能的能力的访问权。这些规则包括交集规则、联合规则、主机限制规则和客户端声明规则。如前所述,这些规则可以一起使用。准许访问功能的请求可以涉及使用那些规则或本领域公知的其他规则中的任何一个或多个。
148.方法700可以包括拒绝710请求。操作系统可以拒绝710请求。尽管拒绝710请求被示为在不满足所示的任何条件时发生,但拒绝710请求可能需要不满足所示的所有条件。
149.图8示出了用于请求访问操作系统的功能的方法800。为了清楚起见,将结合前面描述的系统、设备、组件和数据来描述该方法。
150.方法800可以包括声明802对主机包的从属性。从属性可以是从属性116或从属性216。主机包可以是主机包140或主机包340。
151.方法800可以包括利用应用标识和对主机运行时的引用来定义804应用。应用可以是应用120或应用220。应用标识可以是应用标识222。主机运行时可以是主机运行时154或主机运行时354。
152.方法800可以包括指定806未签名标记。未签名标记可以是未签名标记226。
153.方法800可以包括请求808在没有签名的情况下向操作系统注册。请求808可以由客户端包110或客户端包210来完成。请求808可以由主机包代表客户端包来完成。操作系统
可以是操作系统170。
154.方法800可以包括接收810向操作系统的注册。
155.方法800可以包括,在激活应用后,就请求812主机运行时的执行。请求812可以由应用来完成。主机运行时可以被包括在主机包中。
156.方法800可以包括请求814对操作系统或设备的功能的访问。请求814可以由包括在客户端包中的应用来完成。操作系统可以接收访问功能的请求。
157.方法800可以包括接收816对功能的访问。接收816可以由包括在客户端包中的应用来完成。
158.方法800可以包括请求818对操作系统或设备的第二功能的访问。请求818可以由包括在客户端包中的应用来完成。操作系统可以接收访问第二功能的请求。
159.方法800可以包括访问第二功能失败820。操作系统可以拒绝访问第二功能的请求。
160.图9示出了用于生成客户端包的方法900。为了清楚起见,将结合前面描述的系统、设备、组件和数据来描述该
161.方法900可以包括在主机包的运行时期间生成902客户端包。主机包可以是主机包140或主机包340。客户端包可以是客户端包110或客户端包210。主机包可以包括签名。客户端包可以不包括签名。主机包可以生成902客户端包。
162.方法900可以包括在客户端包中声明904对主机包的从属性。从属性可以是从属性116或从属性216。
163.方法900可以包括在客户端包中定义906具有应用标识和对主机运行时的引用的应用。应用可以是应用120或应用220。主机运行时可以是主机运行时154或主机运行时354。
164.方法900可以包括在客户端包中指定908未签名标记。未签名标记可以是未签名标记226。
165.方法900可以包括,在激活应用后,就在应用标识下提供910对主机运行时的访问。主机包可以提供对主机运行时的访问。
166.图10示出了可以被包括在计算机系统1000内的某些组件。一个或多个计算机系统1000可以被用以实现本文描述的各种设备、组件和系统。例如,设备102可以使用计算机系统1000来实现。
167.计算机系统1000包括处理器1001。处理器1001可以是通用单片或多片微处理器(例如,高级risc(精简指令集计算机)机器(arm))、专用微处理器(例如,数字信号处理器(dsp))、微控制器、可编程门阵列等。处理器1001可以被称为中央处理单元(cpu)。尽管在图10的计算机系统1000中仅示出了单个处理器1001,但在备选配置中,可以使用处理器(例如,arm和dsp)的组合。
168.计算机系统1000还包括与处理器1001进行电子通信的存储器1003。存储器1003可以是能够存储电子信息(诸如客户端包110、主机包140和操作系统170)的任何电子组件。例如,存储器1003可以实现为随机存取存储器(ram)、只读存储器(rom)、磁盘存储介质、光存储介质、ram中的闪存设备、包括处理器的板上存储器、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、寄存器等,包括其组合。
169.指令1005和数据1007可以存储在存储器1003中。指令1005可以由处理器1001执行
以实现本文公开的一些或全部功能。执行指令1005可以涉及使用存储在存储器1003中的数据1007。本文描述的模块、组件、包、应用和操作系统的各种示例中的任何一个可以部分或全部实现为存储在存储器1003中并由处理器1001执行的指令1005。本文描述的各种数据示例中的任何一个可以在存储在存储器1003中并在处理器1001执行指令1005期间使用的数据1007中。
170.计算机系统1000还可以包括用于与其他电子设备通信的一个或多个通信接口1009。(多个)通信接口1009可以基于有线通信技术、无线通信技术或两者。通信接口1009的一些示例包括通用串行总线(usb)、以太网适配器、根据电气和电子工程师协会(ieee)802.11无线通信协议操作的无线适配器、蓝牙无线通信适配器和红外(ir)通信端口。
171.计算机系统1000还可以包括一个或多个输入设备1011和一个或多个输出设备1013。输入设备1011的一些示例包括键盘、鼠标、麦克风、遥控器、按钮、操纵杆、轨迹球、触摸板和光笔。输出设备1013的一些示例包括扬声器和打印机。通常包括在计算机系统1000中的一种特定类型的输出设备是显示设备1015。与本文公开的实施例一起使用的显示设备1015可以利用任何适合的图像投影技术,诸如液晶显示器(lcd)、发光二极管(led)、气体等离子体、电致发光等。还可以提供显示控制器1017,用于将存储在存储器1003中的数据1007转换为显示设备1015上所示的文本、图形和/或运动图像(视情况而定)。
172.计算机系统1000的各种组件可以通过一条或多条总线耦合在一起,该一条或多条总线可以包括功率总线、控制信号总线、状态信号总线、数据总线等。为清楚起见,在图10中将各种总线示为总线系统1019。
173.本文描述的技术可以以硬件、软件、固件或其任何组合来实现,除非具体描述为以特定方式来实现。被描述为模块、组件等的任何特征也可以在集成逻辑设备中一起实现,或者单独实现为分立但可互操作的逻辑设备。如果以软件实现,则这些技术可以至少部分地通过存储于其上的计算机可执行指令的非瞬态计算机可读介质来实现,该指令在由至少一个处理器执行时执行本文公开的步骤、操作、动作或其他功能中的一些或全部。指令可以被组织为例程、程序、对象、组件、数据结构等,其可以执行特定任务和/或实现特定数据类型,并且可以根据需要在各种实施例中组合或分布。
174.本文描述的方法的步骤、操作和/或动作可以在不脱离权利要求的范围的情况下彼此互换。换言之,除非所描述的方法的正确运行需要特定顺序的步骤、操作和/或动作,否则可以在不脱离权利要求的范围的情况下修改特定步骤、操作和/或动作的顺序和/或使用。
175.在示例中,术语“确定”(及其语法变形)包括各种动作,因此,“确定”可包括运算、计算、处理、推导、调查、查找(例如,在表、数据库或另一数据结构中查找)、确认等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、挑选、建立等。
176.术语“包括”、“包含”和“具有”旨在是包含性的,并且意味着可能存在除所列元素之外的附加元素。此外,应当理解,对本公开的“一个实施例”或“实施例”的引用并不旨在解释为排除也结合了所记载特征的附加实施例的存在。例如,在兼容的情况下,本文相对于实施例描述的任何元素或特征可以与本文描述的任何其他实施例的任何元素或特征组合。
177.本公开可以在不脱离其精神或特性的情况下以其他具体形式实施。所描述的实施
例将被认为是说明性的而不是限制性的。因此,本公开的范围由所附权利要求指示,而不是由前述描述指示。权利要求的含义和等同范围内的改变应包含在其范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献