Android M CDD - 运行时权限要求

Android M CDD - runtime permissions requirements

谁能帮我理解以下 CDD 要求:

MUST NOT grant any runtime permissions to preinstalled apps unless:

  1. the user's consent can be obtained before the application uses it
  2. the runtime permissions are associated with an intent pattern for which the preinstalled application is set as the default handler

我有两个问题:

  1. 预安装的应用程序安装在 /system/app/system/priv-app 文件夹中.据我所知,属于这两个文件夹的 APK 会自动获得他们在清单中声明的​​所有权限。如果我错了,请纠正我。但是在M中,他们是不是想说,即使一个应用程序是预装的系统应用程序,在应用程序被授予此权限之前,应该在运行时提示用户。

  2. 什么是“意图模式”?是否与拨号器应用有权拨打 phone 电话一样?

答案可能有点晚了,但你的两个假设都是正确的。

Pre-installed 安装在 /system/app/system/priv-app 下的应用程序将被授予所有他们在 AndroidManifest.xml 文件中声明的权限。但是对于 Android 6.0 Marshmallow 的设备,Google 需要两件事:

  1. Pre-installed 应用应针对 Android 6.0(API 级别 23)。
  2. 他们应该请求 dangerous permissions 的运行时权限,就像 non-system 应用程序应该做的那样。

pre-installed 应用需要CDD/CTS 兼容

上述的唯一例外是用户将该应用程序设置为特定操作的默认应用程序(意图模式的默认处理程序):

the runtime permissions are associated with an intent pattern for which the preinstalled application is set as the default handler

例如,如果您将 Google 日历设置为日历事件的默认处理程序,则表示您授予它访问您的日历的权限。