Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42d710ef authored by Stanislav Zholnin's avatar Stanislav Zholnin
Browse files

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
parent 0715e47f
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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);
                    }
                }
+3 −0
Original line number Diff line number Diff line
@@ -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;
}

/**