diff options
| author | 2019-12-03 14:02:57 +0000 | |
|---|---|---|
| committer | 2019-12-03 14:02:57 +0000 | |
| commit | 80e491b3f453cdb9e68c1e487a4900b5db9c7bef (patch) | |
| tree | 35a0397de3c43e0d5f30d64d36b68e779817e616 | |
| parent | 0b975928115ca80f4dfb33c9f0418b593d1472c0 (diff) | |
| parent | 42d710ef7301c11c39086e37ecaf479e7bc923e7 (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.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 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; } /** |