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

Commit 9eca4db1 authored by Daniel Norman's avatar Daniel Norman Committed by Automerger Merge Worker
Browse files

Merge "Revert "Revert "Use PM#isSameApp instead of getPackageUidAsUser."""...

Merge "Revert "Revert "Use PM#isSameApp instead of getPackageUidAsUser.""" into udc-dev am: 2ab33f72 am: 3def977f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22897479



Change-Id: If8ac007c9dfc611a128e5769fdb360836566a6b7
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c7114848 3def977f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -764,6 +764,7 @@ public abstract class PackageManager {
            MATCH_DISABLED_UNTIL_USED_COMPONENTS,
            MATCH_SYSTEM_ONLY,
            MATCH_FACTORY_ONLY,
            MATCH_ANY_USER,
            MATCH_DEBUG_TRIAGED_MISSING,
            MATCH_INSTANT,
            MATCH_APEX,
+1 −1
Original line number Diff line number Diff line
@@ -490,7 +490,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
                mMainHandler, context,
                new PolicyWarningUIController.NotificationController(context));
        mSecurityPolicy = new AccessibilitySecurityPolicy(policyWarningUIController, mContext,
                this);
                this, LocalServices.getService(PackageManagerInternal.class));
        mA11yWindowManager = new AccessibilityWindowManager(mLock, mMainHandler,
                mWindowManagerService, this, mSecurityPolicy, this, mTraceManager);
        mA11yDisplayListener = new AccessibilityDisplayListener(mContext, mMainHandler);
+7 −5
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.appwidget.AppWidgetManagerInternal;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
@@ -99,6 +100,7 @@ public class AccessibilitySecurityPolicy {

    private final Context mContext;
    private final PackageManager mPackageManager;
    private final PackageManagerInternal mPackageManagerInternal;
    private final UserManager mUserManager;
    private final AppOpsManager mAppOpsManager;
    private final AccessibilityUserManager mAccessibilityUserManager;
@@ -116,10 +118,12 @@ public class AccessibilitySecurityPolicy {
     */
    public AccessibilitySecurityPolicy(PolicyWarningUIController policyWarningUIController,
            @NonNull Context context,
            @NonNull AccessibilityUserManager a11yUserManager) {
            @NonNull AccessibilityUserManager a11yUserManager,
            @NonNull PackageManagerInternal packageManagerInternal) {
        mContext = context;
        mAccessibilityUserManager = a11yUserManager;
        mPackageManager = mContext.getPackageManager();
        mPackageManagerInternal = packageManagerInternal;
        mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
        mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        mPolicyWarningUIController = policyWarningUIController;
@@ -515,10 +519,8 @@ public class AccessibilitySecurityPolicy {
        try {
            // Since we treat calls from a profile as if made by its parent, using
            // MATCH_ANY_USER to query the uid of the given package name.
            return uid == mPackageManager.getPackageUidAsUser(
                    packageName, PackageManager.MATCH_ANY_USER, UserHandle.getUserId(uid));
        } catch (PackageManager.NameNotFoundException e) {
            return false;
            return mPackageManagerInternal.isSameApp(packageName, PackageManager.MATCH_ANY_USER,
                    uid, UserHandle.getUserId(uid));
        } finally {
            Binder.restoreCallingIdentity(token);
        }
+9 −1
Original line number Diff line number Diff line
@@ -153,17 +153,25 @@ public abstract class PackageManagerInternal {
    public abstract boolean isPermissionsReviewRequired(String packageName, int userId);


    /**
     * Variant of {@link #isSameApp(String, long, int, int)} with no flags.
     * @see #isSameApp(String, long, int, int)
     */
    public abstract boolean isSameApp(String packageName, int callingUid, int userId);

    /**
     * Gets whether a given package name belongs to the calling uid. If the calling uid is an
     * {@link Process#isSdkSandboxUid(int) sdk sandbox uid}, checks whether the package name is
     * equal to {@link PackageManager#getSdkSandboxPackageName()}.
     *
     * @param packageName The package name to check.
     * @param flags The PackageInfoFlagsBits flags to use during uid lookup.
     * @param callingUid The calling uid.
     * @param userId The user under which to check.
     * @return True if the package name belongs to the calling uid.
     */
    public abstract boolean isSameApp(String packageName, int callingUid, int userId);
    public abstract boolean isSameApp(String packageName,
            @PackageManager.PackageInfoFlagsBits long flags, int callingUid, int userId);

    /**
     * Retrieve all of the information we know about a particular package/application.
+7 −1
Original line number Diff line number Diff line
@@ -6843,6 +6843,12 @@ public class PackageManagerService implements PackageSender, TestUtilityService

        @Override
        public boolean isSameApp(@Nullable String packageName, int callingUid, int userId) {
            return isSameApp(packageName, /*flags=*/0, callingUid, userId);
        }

        @Override
        public boolean isSameApp(@Nullable String packageName,
                @PackageManager.PackageInfoFlagsBits long flags, int callingUid, int userId) {
            if (packageName == null) {
                return false;
            }
@@ -6851,7 +6857,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
                return packageName.equals(mRequiredSdkSandboxPackage);
            }
            Computer snapshot = snapshot();
            int uid = snapshot.getPackageUid(packageName, 0, userId);
            int uid = snapshot.getPackageUid(packageName, flags, userId);
            return UserHandle.isSameApp(uid, callingUid);
        }

Loading