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

Commit c248bbe7 authored by Manjeet Rulhania's avatar Manjeet Rulhania
Browse files

unified permission subsystem: permissions migration

Fix: 266163862
Test: manual

Change-Id: If7327bee58e038af60b46a39471b5d25dc2ec454
parent 5dbc7d49
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import com.android.server.pm.KnownPackages;
import com.android.server.pm.PackageList;
import com.android.server.pm.PackageSetting;
import com.android.server.pm.dex.DynamicCodeLogger;
import com.android.server.pm.permission.LegacyPermissionSettings;
import com.android.server.pm.pkg.AndroidPackage;
import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.pkg.SharedUserApi;
@@ -1074,6 +1075,11 @@ public abstract class PackageManagerInternal {
     */
    public abstract void writePermissionSettings(@NonNull @UserIdInt int[] userIds, boolean async);

    /**
     * Read legacy permission definitions for permissions migration to new permission subsystem.
     */
    public abstract LegacyPermissionSettings getLegacyPermissions();

    /**
     * Returns {@code true} if the caller is the installer of record for the given package.
     * Otherwise, {@code false}.
+3 −4
Original line number Diff line number Diff line
@@ -59,7 +59,6 @@ import com.android.server.utils.WatchedLongSparseArray;

import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.List;
import java.util.Set;

@@ -676,10 +675,10 @@ public interface Computer extends PackageDataSnapshot {
    @NonNull
    UserInfo[] getUserInfos();

    @NonNull
    Collection<SharedUserSetting> getAllSharedUsers();

    boolean isChangeEnabled(long changeId, int uid);

    boolean isChangeEnabled(long changeId, ApplicationInfo info);

    @NonNull
    ArrayMap<String, ? extends SharedUserApi> getSharedUsers();
}
+6 −6
Original line number Diff line number Diff line
@@ -302,8 +302,8 @@ public class ComputerEngine implements Computer {
        }

        @NonNull
        public Collection<SharedUserSetting> getAllSharedUsers() {
            return mSettings.getAllSharedUsersLPw();
        ArrayMap<String, ? extends SharedUserApi> getSharedUsers() {
            return mSettings.getSharedUsersLocked().untrackedStorage();
        }

        @Nullable
@@ -5485,8 +5485,8 @@ public class ComputerEngine implements Computer {
    @Override
    public SparseArray<String> getAppsWithSharedUserIds() {
        final SparseArray<String> sharedUserIds = new SparseArray<>();
        for (SharedUserSetting setting : mSettings.getAllSharedUsers()) {
            sharedUserIds.put(UserHandle.getAppId(setting.mAppId), setting.name);
        for (SharedUserApi sharedUser : mSettings.getSharedUsers().values()) {
            sharedUserIds.put(UserHandle.getAppId(sharedUser.getAppId()), sharedUser.getName());
        }
        return sharedUserIds;
    }
@@ -5786,8 +5786,8 @@ public class ComputerEngine implements Computer {

    @Override
    @NonNull
    public Collection<SharedUserSetting> getAllSharedUsers() {
        return mSettings.getAllSharedUsers();
    public ArrayMap<String, ? extends SharedUserApi> getSharedUsers() {
        return mSettings.getSharedUsers();
    }

    @Override
+11 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.os.Binder;
import android.os.UserHandle;

import com.android.server.pm.pkg.PackageState;
import com.android.server.pm.pkg.SharedUserApi;

import java.io.IOException;
import java.lang.annotation.Retention;
@@ -149,6 +150,16 @@ public interface PackageManagerLocal {
        @NonNull
        Map<String, PackageState> getPackageStates();

        /**
         * Returns a map of all {@link SharedUserApi SharedUsers} on the device.
         *
         * @return Mapping of shared user name to {@link SharedUserApi}.
         *
         * @hide Pending API
         */
        @NonNull
        Map<String, SharedUserApi> getSharedUsers();

        /**
         * Returns a map of all disabled system {@link PackageState PackageStates} on the device.
         *
+8 −0
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ import com.android.server.pm.parsing.pkg.AndroidPackageUtils;
import com.android.server.pm.parsing.pkg.ParsedPackage;
import com.android.server.pm.permission.LegacyPermissionManagerInternal;
import com.android.server.pm.permission.LegacyPermissionManagerService;
import com.android.server.pm.permission.LegacyPermissionSettings;
import com.android.server.pm.permission.PermissionManagerService;
import com.android.server.pm.permission.PermissionManagerServiceInternal;
import com.android.server.pm.pkg.AndroidPackage;
@@ -6753,6 +6754,13 @@ public class PackageManagerService implements PackageSender, TestUtilityService
            }
        }

        @Override
        public LegacyPermissionSettings getLegacyPermissions() {
            synchronized (mLock) {
                return mSettings.mPermissions;
            }
        }

        @Override
        @SuppressWarnings("GuardedBy")
        public boolean isPermissionUpgradeNeeded(int userId) {
Loading