summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Stanislav Zholnin <zholnin@google.com> 2019-12-03 14:02:57 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-12-03 14:02:57 +0000
commit80e491b3f453cdb9e68c1e487a4900b5db9c7bef (patch)
tree35a0397de3c43e0d5f30d64d36b68e779817e616
parent0b975928115ca80f4dfb33c9f0418b593d1472c0 (diff)
parent42d710ef7301c11c39086e37ecaf479e7bc923e7 (diff)
Merge "Add is_runtime_permission field to AppOps atom to enable filtering."
-rw-r--r--apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java14
-rw-r--r--cmds/statsd/src/atoms.proto3
2 files changed, 17 insertions, 0 deletions
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
index 252f961563ff..f11d4f8782d0 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
@@ -2183,6 +2183,20 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
e.writeLong(op.getBackgroundRejectCount(OP_FLAGS_ALL_TRUSTED));
e.writeLong(op.getForegroundAccessDuration(OP_FLAGS_ALL_TRUSTED));
e.writeLong(op.getBackgroundAccessDuration(OP_FLAGS_ALL_TRUSTED));
+
+ String perm = AppOpsManager.opToPermission(op.getOpCode());
+ if (perm == null) {
+ e.writeBoolean(false);
+ } else {
+ PermissionInfo permInfo;
+ try {
+ permInfo = mContext.getPackageManager().getPermissionInfo(perm, 0);
+ e.writeBoolean(permInfo.getProtection() == PROTECTION_DANGEROUS);
+ } catch (PackageManager.NameNotFoundException exception) {
+ e.writeBoolean(false);
+ }
+ }
+
pulledData.add(e);
}
}
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 2f22b4949410..b9051daab6ae 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -6717,6 +6717,9 @@ message AppOps {
// For long-running operations, total duration of the operation
// while the app was in the background (only for trusted requests)
optional int64 trusted_background_duration_millis = 9;
+
+ // Whether AppOps is guarded by Runtime permission
+ optional bool is_runtime_permission = 10;
}
/**