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

Commit cd452abe authored by Yuting Fang's avatar Yuting Fang Committed by Android (Google) Code Review
Browse files

Merge changes from topic "persistent_device_id_in_api" into main

* changes:
  New permission system APIs with persistent device Id
  Create a system API to check permission by persistent device Id
parents d221d28b 7d7a26e1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -11300,6 +11300,7 @@ package android.permission {
  public final class PermissionManager {
    method public int checkDeviceIdentifierAccess(@Nullable String, @Nullable String, @Nullable String, int, int);
    method @FlaggedApi("android.permission.flags.device_aware_permission_apis_enabled") public static int checkPermission(@NonNull String, @NonNull String, @NonNull String, int);
    method @RequiresPermission(value=android.Manifest.permission.UPDATE_APP_OPS_STATS, conditional=true) public int checkPermissionForDataDelivery(@NonNull String, @NonNull android.content.AttributionSource, @Nullable String);
    method @RequiresPermission(value=android.Manifest.permission.UPDATE_APP_OPS_STATS, conditional=true) public int checkPermissionForDataDeliveryFromDataSource(@NonNull String, @NonNull android.content.AttributionSource, @Nullable String);
    method public int checkPermissionForPreflight(@NonNull String, @NonNull android.content.AttributionSource);
@@ -11307,12 +11308,16 @@ package android.permission {
    method public void finishDataDelivery(@NonNull String, @NonNull android.content.AttributionSource);
    method @NonNull @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public java.util.Set<java.lang.String> getAutoRevokeExemptionGrantedPackages();
    method @NonNull @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public java.util.Set<java.lang.String> getAutoRevokeExemptionRequestedPackages();
    method @FlaggedApi("android.permission.flags.device_aware_permission_apis_enabled") @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS, android.Manifest.permission.GET_RUNTIME_PERMISSIONS}) public int getPermissionFlags(@NonNull String, @NonNull String, @NonNull String);
    method @IntRange(from=0) @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public int getRuntimePermissionsVersion();
    method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions();
    method @FlaggedApi("android.permission.flags.device_aware_permission_apis_enabled") @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS) public void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull String);
    method @FlaggedApi("android.permission.flags.device_aware_permission_apis_enabled") @RequiresPermission(android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS) public void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull String, @Nullable String);
    method @RequiresPermission(anyOf={android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY, android.Manifest.permission.UPGRADE_RUNTIME_PERMISSIONS}) public void setRuntimePermissionsVersion(@IntRange(from=0) int);
    method @Deprecated @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void startOneTimePermissionSession(@NonNull String, long, int, int);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void startOneTimePermissionSession(@NonNull String, long, long, int, int);
    method @RequiresPermission(android.Manifest.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS) public void stopOneTimePermissionSession(@NonNull String);
    method @FlaggedApi("android.permission.flags.device_aware_permission_apis_enabled") @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public void updatePermissionFlags(@NonNull String, @NonNull String, @NonNull String, int, int);
    field @RequiresPermission(android.Manifest.permission.START_REVIEW_PERMISSION_DECISIONS) public static final String ACTION_REVIEW_PERMISSION_DECISIONS = "android.permission.action.REVIEW_PERMISSION_DECISIONS";
    field public static final String EXTRA_PERMISSION_USAGES = "android.permission.extra.PERMISSION_USAGES";
    field public static final int PERMISSION_GRANTED = 0; // 0x0
+1 −1
Original line number Diff line number Diff line
@@ -836,7 +836,7 @@ public class ApplicationPackageManager extends PackageManager {

    @Override
    public int checkPermission(String permName, String pkgName) {
        return PermissionManager.checkPackageNamePermission(permName, pkgName,
        return getPermissionManager().checkPackageNamePermission(permName, pkgName,
                mContext.getDeviceId(), getUserId());
    }

+3 −2
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.accessibilityservice.IAccessibilityServiceClient;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.companion.virtual.VirtualDeviceManager;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.graphics.Rect;
@@ -363,7 +364,7 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
        final long identity = Binder.clearCallingIdentity();
        try {
            mPermissionManager.grantRuntimePermission(packageName, permission,
                    Context.DEVICE_ID_DEFAULT, userId);
                    VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT, userId);
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
@@ -383,7 +384,7 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
        final long identity = Binder.clearCallingIdentity();
        try {
            mPermissionManager.revokeRuntimePermission(packageName, permission,
                    Context.DEVICE_ID_DEFAULT, userId, null);
                    VirtualDeviceManager.PERSISTENT_DEVICE_ID_DEFAULT, userId, null);
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
+10 −6
Original line number Diff line number Diff line
@@ -42,10 +42,12 @@ interface IPermissionManager {

    void removePermission(String permissionName);

    int getPermissionFlags(String packageName, String permissionName, int deviceId, int userId);
    int getPermissionFlags(String packageName, String permissionName, String persistentDeviceId,
            int userId);

    void updatePermissionFlags(String packageName, String permissionName, int flagMask,
            int flagValues, boolean checkAdjustPolicyFlagPermission, int deviceId, int userId);
            int flagValues, boolean checkAdjustPolicyFlagPermission, String persistentDeviceId,
            int userId);

    void updatePermissionFlagsForAllApps(int flagMask, int flagValues, int userId);

@@ -62,10 +64,11 @@ interface IPermissionManager {
    boolean removeAllowlistedRestrictedPermission(String packageName, String permissionName,
            int flags, int userId);

    void grantRuntimePermission(String packageName, String permissionName, int deviceId, int userId);
    void grantRuntimePermission(String packageName, String permissionName,
            String persistentDeviceId, int userId);

    void revokeRuntimePermission(String packageName, String permissionName, int deviceId,
            int userId, String reason);
    void revokeRuntimePermission(String packageName, String permissionName,
            String persistentDeviceId, int userId, String reason);

    void revokePostNotificationPermissionWithoutKillForTest(String packageName, int userId);

@@ -96,7 +99,8 @@ interface IPermissionManager {

    boolean isRegisteredAttributionSource(in AttributionSourceState source);

    int checkPermission(String packageName, String permissionName, int deviceId, int userId);
    int checkPermission(String packageName, String permissionName, String persistentDeviceId,
            int userId);

    int checkUidPermission(int uid, String permissionName, int deviceId);
}
+241 −27

File changed.

Preview size limit exceeded, changes collapsed.

Loading