Add PermissionFlags field to DangerousPermissionState atom.
Bug:133401502
Change-Id: I0072ab374b85609636c1f32e55154badf7bf9dc0
Test: make statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive 10050
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index f53ac1b..cda2891 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -6016,6 +6016,9 @@
// If the permission is granted to the uid
optional bool is_granted = 4;
+
+ // Permission flags as per android.content.pm.PermissionFlags
+ optional int32 permission_flags = 5;
}
/**
diff --git a/services/core/java/com/android/server/stats/StatsCompanionService.java b/services/core/java/com/android/server/stats/StatsCompanionService.java
index 1edb93a..9edcb2b 100644
--- a/services/core/java/com/android/server/stats/StatsCompanionService.java
+++ b/services/core/java/com/android/server/stats/StatsCompanionService.java
@@ -1910,8 +1910,12 @@
String permName = pkg.requestedPermissions[permNum];
PermissionInfo permissionInfo;
+ int permissionFlags = 0;
try {
permissionInfo = pm.getPermissionInfo(permName, 0);
+ permissionFlags =
+ pm.getPermissionFlags(permName, pkg.packageName, user);
+
} catch (PackageManager.NameNotFoundException ignored) {
continue;
}
@@ -1926,6 +1930,7 @@
e.writeString(permName);
e.writeInt(pkg.applicationInfo.uid);
e.writeString(pkg.packageName);
+ e.writeInt(permissionFlags);
e.writeBoolean((pkg.requestedPermissionsFlags[permNum]
& REQUESTED_PERMISSION_GRANTED) != 0);