summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Stanislav Zholnin <zholnin@google.com> 2019-11-28 13:11:54 +0000
committer Stanislav Zholnin <zholnin@google.com> 2019-11-28 13:11:54 +0000
commit42d710ef7301c11c39086e37ecaf479e7bc923e7 (patch)
treef636b32b16258ea1ced05fe86754b3984329699a
parent0715e47f92a8c3bb398a06dda127d11733b141fa (diff)
Add is_runtime_permission field to AppOps atom to enable filtering.
Test: make statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive 10060 Change-Id: Iab8e2671907953fd91bda5f8dd1a71997df08522
-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 f2de2001bcbe..df885ec76e51 100644
--- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
+++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java
@@ -2177,6 +2177,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 49cc3c4c059e..f12ab94d7fd9 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -6716,6 +6716,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;
}
/**