我只是很想知道,我们是否在我们的应用程序中使用了白名单许可。白名单许可由OEM授予。我们举一个系统app中的位置权限的例子,默认情况下是启用的。假设用户要转到“设置”并禁用权限。
它真的会对应用程序产生影响吗?拒绝定位权限后,系统app会停止采集定位数据吗?或者它不会影响到系统应用程序,因为已经被OEM列入白名单?
这里是官方文档:https://source.android.com/devices/tech/config/perms-whitelist
上面写着:
历史上,设备制造商几乎无法控制哪些signatureprivileged权限可以授予特权应用。
从Android 8.0开始,制造商必须在/etc/permissions目录下的系统配置XML文件中显式授予特权权限。
从Android9开始,实现者必须显式地授予或拒绝所有特权权限,否则设备将无法启动。
还有:
只有核心平台(“Android”包)定义的权限必须被列入白名单。设备制造商定义的特权权限仍将自动授予。
因此,可以禁用标准android权限(例如:android.permission.access_fine_location
),但自动授予自定义供应商权限(例如:com.samsung.android.nox.permission.nox_location
)。
PS:我强烈建议在一个真实的设备上自己检查所有的东西。Android文档并不总是正确的。而且我个人从未使用过白名单权限,所以除了引用文档之外,我什么也不能说。