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);