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

Commit 6dbf6fda authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "resolve merge conflicts of 07c6628d to master."

parents b2d29563 df5f870d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -63,7 +63,9 @@ interface IPackageManager {
    boolean isPackageAvailable(String packageName, int userId);
    PackageInfo getPackageInfo(String packageName, int flags, int userId);
    int getPackageUid(String packageName, int userId);
    int getPackageUidEtc(String packageName, int flags, int userId);
    int[] getPackageGids(String packageName, int userId);
    int[] getPackageGidsEtc(String packageName, int flags, int userId);

    String[] currentToCanonicalPackageNames(in String[] names);
    String[] canonicalToCurrentPackageNames(in String[] names);
+4 −5
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.media.AudioAttributes;
import android.os.AsyncTask;
import android.os.Binder;
@@ -263,12 +262,12 @@ public class AppOpsService extends IAppOpsService.Stub {
                Iterator<Ops> it = pkgs.values().iterator();
                while (it.hasNext()) {
                    Ops ops = it.next();
                    int curUid;
                    int curUid = -1;
                    try {
                        curUid = mContext.getPackageManager().getPackageUid(ops.packageName,
                        curUid = AppGlobals.getPackageManager().getPackageUidEtc(ops.packageName,
                                PackageManager.GET_UNINSTALLED_PACKAGES,
                                UserHandle.getUserId(ops.uidState.uid));
                    } catch (NameNotFoundException e) {
                        curUid = -1;
                    } catch (RemoteException ignored) {
                    }
                    if (curUid != ops.uidState.uid) {
                        Slog.i(TAG, "Pruning old package " + ops.packageName
+27 −11
Original line number Diff line number Diff line
@@ -2782,25 +2782,38 @@ public class PackageManagerService extends IPackageManager.Stub {
    @Override
    public int getPackageUid(String packageName, int userId) {
        return getPackageUidEtc(packageName, 0, userId);
    }
    @Override
    public int getPackageUidEtc(String packageName, int flags, int userId) {
        if (!sUserManager.exists(userId)) return -1;
        enforceCrossUserPermission(Binder.getCallingUid(), userId, false, false, "get package uid");
        // reader
        synchronized (mPackages) {
            PackageParser.Package p = mPackages.get(packageName);
            final PackageParser.Package p = mPackages.get(packageName);
            if (p != null) {
                return UserHandle.getUid(userId, p.applicationInfo.uid);
            }
            PackageSetting ps = mSettings.mPackages.get(packageName);
            if((ps == null) || (ps.pkg == null) || (ps.pkg.applicationInfo == null)) {
                return -1;
            if ((flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0) {
                final PackageSetting ps = mSettings.mPackages.get(packageName);
                if (ps != null) {
                    return UserHandle.getUid(userId, ps.appId);
                }
            return UserHandle.getUid(userId, ps.pkg.applicationInfo.uid);
            }
        }
        return -1;
    }
    @Override
    public int[] getPackageGids(String packageName, int userId) throws RemoteException {
    public int[] getPackageGids(String packageName, int userId) {
        return getPackageGidsEtc(packageName, 0, userId);
    }
    @Override
    public int[] getPackageGidsEtc(String packageName, int flags, int userId) {
        if (!sUserManager.exists(userId)) {
            return null;
        }
@@ -2810,14 +2823,17 @@ public class PackageManagerService extends IPackageManager.Stub {
        // reader
        synchronized (mPackages) {
            PackageParser.Package p = mPackages.get(packageName);
            if (DEBUG_PACKAGE_INFO) {
                Log.v(TAG, "getPackageGids" + packageName + ": " + p);
            }
            final PackageParser.Package p = mPackages.get(packageName);
            if (p != null) {
                PackageSetting ps = (PackageSetting) p.mExtras;
                return ps.getPermissionsState().computeGids(userId);
            }
            if ((flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0) {
                final PackageSetting ps = mSettings.mPackages.get(packageName);
                if (ps != null) {
                    return ps.getPermissionsState().computeGids(userId);
                }
            }
        }
        return null;