Android O(api 26):根应用程序不被识别为;“特权”;

Android O(api 26):根应用程序不被识别为;“特权”;,android,android-8.0-oreo,Android,Android 8.0 Oreo,我有一个在安卓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

我有一个在安卓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 whitelist”来自何处,以及如何在根安卓上进入这个列表吗?

应该有一个xml文件,其中列出了您应用程序的privapp权限。请检查/system/etc/权限

您必须向其中一个文件添加权限

例如:


....

添加到@pedrop的正确答案中-如果您正在开发自己的AOSP,您可以在编译之前编辑这些XML并将其插入到构建中。这些文件可以在源代码中找到。平台(所有设备和供应商)有一个文件,每个供应商有一个文件,每个设备有一个文件。
您可以在以下位置找到它们:
1.平台-

AOSP/frameworks/base/data/etc/privapp-permissions-platform.xml

2.供应商-

AOSP/vendor/vendor\u NAME/property/system/etc/permissions/privapp-permissions-vendor.xml

3.装置-


AOSP/vendor/vendor\u DEVICES/DEVICE\u NAME/property/etc/permissions/privapp-permissions-DEVICE\u NAME.xml

您使用了哪个Android O预览版?我正在PackageManagerService上查找该特定消息,但找不到它。看一看:谢谢你的评论。这是Nexus 5x上的最新预览版OPP4。我想我必须在源代码最终发布后再次检查源代码。没问题。是的,可能是他们在最终发布之前一直在做的一些非记录工作,特别是因为特权应用通常由制造商制造。非常感谢。您确定安装新应用后不会自动生成此文件吗?我记得有一个权限文件可能在早期的Android版本中被劫持。这是ROM附带的文件,所以通过remount/root进行的修改是持久的?好吧,似乎是正确的答案,这里也提到:@MartinL。在构建AOSP以生成xml时,可以运行一个python脚本—请参阅。这是建筑的一部分,不是安装,你必须运行它。它不是自动生成的。