Loading src/com/android/packageinstaller/permission/model/AppPermissionUsage.java +14 −7 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.packageinstaller.permission.model; import android.app.AppOpsManager; import android.app.AppOpsManager.HistoricalOp; import android.app.AppOpsManager.HistoricalPackageOps; import android.app.AppOpsManager.OpEntry; Loading @@ -25,6 +26,8 @@ import android.app.AppOpsManager.PackageOps; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp; import com.android.packageinstaller.permission.utils.Utils; import java.util.ArrayList; import java.util.List; import java.util.function.Function; Loading Loading @@ -115,7 +118,8 @@ public final class AppPermissionUsage { for (int j = 0; j < opCount; j++) { final OpEntry op = ops.get(j); if (op.getOpStr().equals(opName)) { lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime()); lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } } } Loading @@ -127,14 +131,16 @@ public final class AppPermissionUsage { if (mHistoricalUsage == null) { return 0; } return extractAggregate(HistoricalOp::getForegroundAccessCount); return extractAggregate((HistoricalOp op) -> op.getForegroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } public long getBackgroundAccessCount() { if (mHistoricalUsage == null) { return 0; } return extractAggregate(HistoricalOp::getBackgroundAccessCount); return extractAggregate((HistoricalOp op) -> op.getBackgroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } public long getAccessCount() { Loading @@ -142,7 +148,8 @@ public final class AppPermissionUsage { return 0; } return extractAggregate((HistoricalOp op) -> op.getForegroundAccessCount() + op.getBackgroundAccessCount() op.getForegroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED) + op.getBackgroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED) ); } Loading @@ -151,7 +158,8 @@ public final class AppPermissionUsage { return 0; } return extractAggregate((HistoricalOp op) -> op.getForegroundAccessDuration() + op.getBackgroundAccessDuration() op.getForegroundAccessDuration(AppOpsManager.OP_FLAGS_ALL_TRUSTED) + op.getBackgroundAccessDuration(AppOpsManager.OP_FLAGS_ALL_TRUSTED) ); } Loading Loading @@ -200,8 +208,7 @@ public final class AppPermissionUsage { return this; } public @NonNull AppPermissionUsage build() { public @NonNull AppPermissionUsage build() { if (mGroups.isEmpty()) { throw new IllegalStateException("mGroups cannot be empty."); } Loading src/com/android/packageinstaller/permission/model/PermissionUsages.java +1 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,7 @@ public final class PermissionUsages implements LoaderCallbacks<List<AppPermissio .setUid(mFilterUid) .setPackageName(mFilterPackageName) .setOpNames(new ArrayList<>(opNames)) .setFlags(AppOpsManager.OP_FLAGS_ALL_TRUSTED) .build(); appOpsManager.getHistoricalOps(request, Runnable::run, (HistoricalOps ops) -> { Loading src/com/android/packageinstaller/permission/service/LocationAccessCheck.java +2 −1 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ import androidx.core.util.Preconditions; import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.ui.AppPermissionActivity; import com.android.packageinstaller.permission.utils.CollectionUtils; import com.android.packageinstaller.permission.utils.Utils; import com.android.permissioncontroller.R; import java.io.BufferedReader; Loading Loading @@ -509,7 +510,7 @@ public class LocationAccessCheck { for (int opNum = 0; opNum < numOps; opNum++) { AppOpsManager.HistoricalOp op = ops.getOpAt(opNum); if (op.getBackgroundAccessCount() > 0) { if (op.getBackgroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED) > 0) { pkgsWithLocationAccess.add(userPkg); break; Loading src/com/android/packageinstaller/permission/ui/ReviewAccessibilityServicesActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -148,7 +148,8 @@ public final class ReviewAccessibilityServicesActivity extends FragmentActivity int numOps = pkgOp.getOps().size(); for (int opNum = 0; opNum < numOps; opNum++) { AppOpsManager.OpEntry op = pkgOp.getOps().get(opNum); lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime()); lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } } return lastAccessTime; Loading src/com/android/packageinstaller/permission/utils/Utils.java +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.Manifest.permission_group.SMS; import static android.Manifest.permission_group.STORAGE; import android.Manifest; import android.app.AppOpsManager; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; Loading Loading
src/com/android/packageinstaller/permission/model/AppPermissionUsage.java +14 −7 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.packageinstaller.permission.model; import android.app.AppOpsManager; import android.app.AppOpsManager.HistoricalOp; import android.app.AppOpsManager.HistoricalPackageOps; import android.app.AppOpsManager.OpEntry; Loading @@ -25,6 +26,8 @@ import android.app.AppOpsManager.PackageOps; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp; import com.android.packageinstaller.permission.utils.Utils; import java.util.ArrayList; import java.util.List; import java.util.function.Function; Loading Loading @@ -115,7 +118,8 @@ public final class AppPermissionUsage { for (int j = 0; j < opCount; j++) { final OpEntry op = ops.get(j); if (op.getOpStr().equals(opName)) { lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime()); lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } } } Loading @@ -127,14 +131,16 @@ public final class AppPermissionUsage { if (mHistoricalUsage == null) { return 0; } return extractAggregate(HistoricalOp::getForegroundAccessCount); return extractAggregate((HistoricalOp op) -> op.getForegroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } public long getBackgroundAccessCount() { if (mHistoricalUsage == null) { return 0; } return extractAggregate(HistoricalOp::getBackgroundAccessCount); return extractAggregate((HistoricalOp op) -> op.getBackgroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } public long getAccessCount() { Loading @@ -142,7 +148,8 @@ public final class AppPermissionUsage { return 0; } return extractAggregate((HistoricalOp op) -> op.getForegroundAccessCount() + op.getBackgroundAccessCount() op.getForegroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED) + op.getBackgroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED) ); } Loading @@ -151,7 +158,8 @@ public final class AppPermissionUsage { return 0; } return extractAggregate((HistoricalOp op) -> op.getForegroundAccessDuration() + op.getBackgroundAccessDuration() op.getForegroundAccessDuration(AppOpsManager.OP_FLAGS_ALL_TRUSTED) + op.getBackgroundAccessDuration(AppOpsManager.OP_FLAGS_ALL_TRUSTED) ); } Loading Loading @@ -200,8 +208,7 @@ public final class AppPermissionUsage { return this; } public @NonNull AppPermissionUsage build() { public @NonNull AppPermissionUsage build() { if (mGroups.isEmpty()) { throw new IllegalStateException("mGroups cannot be empty."); } Loading
src/com/android/packageinstaller/permission/model/PermissionUsages.java +1 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,7 @@ public final class PermissionUsages implements LoaderCallbacks<List<AppPermissio .setUid(mFilterUid) .setPackageName(mFilterPackageName) .setOpNames(new ArrayList<>(opNames)) .setFlags(AppOpsManager.OP_FLAGS_ALL_TRUSTED) .build(); appOpsManager.getHistoricalOps(request, Runnable::run, (HistoricalOps ops) -> { Loading
src/com/android/packageinstaller/permission/service/LocationAccessCheck.java +2 −1 Original line number Diff line number Diff line Loading @@ -96,6 +96,7 @@ import androidx.core.util.Preconditions; import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.ui.AppPermissionActivity; import com.android.packageinstaller.permission.utils.CollectionUtils; import com.android.packageinstaller.permission.utils.Utils; import com.android.permissioncontroller.R; import java.io.BufferedReader; Loading Loading @@ -509,7 +510,7 @@ public class LocationAccessCheck { for (int opNum = 0; opNum < numOps; opNum++) { AppOpsManager.HistoricalOp op = ops.getOpAt(opNum); if (op.getBackgroundAccessCount() > 0) { if (op.getBackgroundAccessCount(AppOpsManager.OP_FLAGS_ALL_TRUSTED) > 0) { pkgsWithLocationAccess.add(userPkg); break; Loading
src/com/android/packageinstaller/permission/ui/ReviewAccessibilityServicesActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -148,7 +148,8 @@ public final class ReviewAccessibilityServicesActivity extends FragmentActivity int numOps = pkgOp.getOps().size(); for (int opNum = 0; opNum < numOps; opNum++) { AppOpsManager.OpEntry op = pkgOp.getOps().get(opNum); lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime()); lastAccessTime = Math.max(lastAccessTime, op.getLastAccessTime(AppOpsManager.OP_FLAGS_ALL_TRUSTED)); } } return lastAccessTime; Loading
src/com/android/packageinstaller/permission/utils/Utils.java +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import static android.Manifest.permission_group.SMS; import static android.Manifest.permission_group.STORAGE; import android.Manifest; import android.app.AppOpsManager; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; Loading