Files
rr3-apk/decompiled-community/sources/androidx/core/content/PermissionChecker.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

69 lines
2.7 KiB
Java

package androidx.core.content;
import android.content.Context;
import android.os.Binder;
import android.os.Process;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.core.app.AppOpsManagerCompat;
import androidx.core.util.ObjectsCompat;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/* loaded from: classes.dex */
public final class PermissionChecker {
public static final int PERMISSION_DENIED = -1;
public static final int PERMISSION_DENIED_APP_OP = -2;
public static final int PERMISSION_GRANTED = 0;
@Retention(RetentionPolicy.SOURCE)
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
public @interface PermissionResult {
}
private PermissionChecker() {
}
public static int checkPermission(@NonNull Context context, @NonNull String str, int i, int i2, @Nullable String str2) {
int noteProxyOpNoThrow;
if (context.checkPermission(str, i, i2) == -1) {
return -1;
}
String permissionToOp = AppOpsManagerCompat.permissionToOp(str);
if (permissionToOp == null) {
return 0;
}
if (str2 == null) {
String[] packagesForUid = context.getPackageManager().getPackagesForUid(i2);
if (packagesForUid == null || packagesForUid.length <= 0) {
return -1;
}
str2 = packagesForUid[0];
}
int myUid = Process.myUid();
String packageName = context.getPackageName();
if (myUid == i2 && ObjectsCompat.equals(packageName, str2)) {
noteProxyOpNoThrow = AppOpsManagerCompat.checkOrNoteProxyOp(context, i2, permissionToOp, str2);
} else {
noteProxyOpNoThrow = AppOpsManagerCompat.noteProxyOpNoThrow(context, permissionToOp, str2);
}
return noteProxyOpNoThrow == 0 ? 0 : -2;
}
public static int checkSelfPermission(@NonNull Context context, @NonNull String str) {
return checkPermission(context, str, Process.myPid(), Process.myUid(), context.getPackageName());
}
public static int checkCallingPermission(@NonNull Context context, @NonNull String str, @Nullable String str2) {
if (Binder.getCallingPid() == Process.myPid()) {
return -1;
}
return checkPermission(context, str, Binder.getCallingPid(), Binder.getCallingUid(), str2);
}
public static int checkCallingOrSelfPermission(@NonNull Context context, @NonNull String str) {
return checkPermission(context, str, Binder.getCallingPid(), Binder.getCallingUid(), Binder.getCallingPid() == Process.myPid() ? context.getPackageName() : null);
}
}