diff options
| author | 2019-11-28 13:11:54 +0000 | |
|---|---|---|
| committer | 2019-11-28 13:11:54 +0000 | |
| commit | 42d710ef7301c11c39086e37ecaf479e7bc923e7 (patch) | |
| tree | f636b32b16258ea1ced05fe86754b3984329699a | |
| parent | 0715e47f92a8c3bb398a06dda127d11733b141fa (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.java | 14 | ||||
| -rw-r--r-- | cmds/statsd/src/atoms.proto | 3 |
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; } /** |