什么是"appop"和"开发"保护标志用于?

Mik*_*ren 6 android android-manifest android-permissions

我正在编写一些测试代码来验证我们的应用程序请求的权限的类型和范围,我注意到最近在Android中添加了两个新的保护级别.

根据官方Android文档,<permission>AndroidManifest.xml中的元素接受以下四个值之一:

android:protectionLevel = ["normal"| "危险"| "签名"| "signatureOrSystem"]

但是我注意到这个PermissionInfo类(见这里)有总共六个保护级别的标志.似乎这两个级别分别在SDK 16和21中添加,但它们似乎没有记录:

int PROTECTION_FLAG_DEVELOPMENT = 0x20
int PROTECTION_FLAG_APPOP       = 0x40
Run Code Online (Sandbox Code Playgroud)

我想知道这些保护级别与清单中可以定义的级别以及是否/何时应该使用它们之间的差异.

Wil*_*lis 5

development标志(0x20):

来自基本权限类型的附加标志:此权限也可以(可选)授予开发应用程序。

appop标志(0x40):

来自基本权限类型的附加标志:此权限与用于控制访问权限的应用操作紧密相关。

这是参考:http : //developer.android.com/reference/android/R.attr.html

development权限或类似权限通常用于需要特定权限才能进行开发/调试但不用于发布目的的情况。例如,让我们假设您正在创建一个新的应用程序。首先,您将应用程序的候选发布版本部署到选定的人员/测试人员组。您可以使用development权限级别,以启用可能对初始测试和结果收集有用的功能,例如GPS以查看测试组的位置以及用于存储和发送日志以供分析的存储/网络功能。准备好发布一般版本后,您便会删除此权限,因为不再需要收集此类数据,或者对于更多的人来说(更可能是出于隐私考虑)实际上是不可能的。

appop许可而言,我不太确定...


小智 4

appop权限只不过是对 Google 在 Android 4.3 中引入的 App Ops 工具的回忆,此后该工具已被删除。理论上,appop用户可以在测试期间切换带有该标志的权限,以验证在启用或禁用某些软件或硬件功能时应用程序的行为方式。

这是Google工程师给出的App Ops的实际描述:

例如,它现在用于每个应用程序的通知控件、用于跟踪新位置 UI 中何时访问位置、用于新的当前 SMS 应用程序控件的某些方面等。

以下是完整帖子的链接: https: //plus.google.com/+DannyHolyoake/posts/FkfBxA5i3iG