我有一个适用于Android N的应用程序。它是(通过root)安装到/ system / priv-app / *并获得授权的权限,仅适用于特权应用程序。
现在在Android O Preview上,该应用程序无法获得授予的权限:
08-12 20:30:01.178 687 814 W PackageManager: Privileged permission android.permission.CAPTURE_AUDIO_OUTPUT for package eu.asd.service - not in privapp-permissions whitelist
08-12 20:30:01.178 687 814 W PackageManager: Privileged permission android.permission.UPDATE_APP_OPS_STATS for package eu.asd.service - not in privapp-permissions whitelist
08-12 20:30:01.178 687 814 W PackageManager: Privileged permission android.permission.WRITE_SECURE_SETTINGS for package eu.asd.service - not in privapp-permissions whitelist
任何人都知道这个“privapp-permissions白名单”来自哪里,以及如何做到这一点,在一个有根的Android上进入这个列表?
应该有一个xml文件,其中列出了应用程序的priv-app权限。请检查/ system / etc / permissions
您必须将权限添加到其中一个文件中。
例:
<privapp-permissions package="[your package name]">
<permission name="android.permission.PERMISSION_YOU_WANT"/>
....
</privapp-permissions>
添加到@ pedrop的正确答案 - 如果您正在开发自己的AOSP,您可以在编译之前编辑这些XML并将它们插入到构建中。这些文件可以在源代码中找到。平台有一个文件(所有设备和供应商),每个供应商一个,每个设备一个。
您可以在以下位置找到它们:
1.平台 -
AOSP/frameworks/base/data/etc/privapp-permissions-platform.xml
2.供应商 -
AOSP/vendor/VENDOR_NAME/proprietary/system/etc/permissions/privapp-permissions-VENDOR.xml
3.设备 -
AOSP/vendor/VENDOR_DEVICES/DEVICE_NAME/proprietary/etc/permissions/privapp-permissions-DEVICE_NAME.xml