Loading services/core/java/com/android/server/pm/PackageSetting.java +5 −4 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.VisibleForTesting; import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.permission.AppIdPermissionState; import com.android.server.pm.permission.LegacyPermissionState; import com.android.server.pm.pkg.PackageStateUnserialized; import java.io.File; Loading Loading @@ -214,11 +214,12 @@ public class PackageSetting extends PackageSettingBase { mimeGroups = updatedMimeGroups; } @Deprecated @Override public AppIdPermissionState getPermissionsState() { public LegacyPermissionState getLegacyPermissionState() { return (sharedUser != null) ? sharedUser.getPermissionsState() : super.getPermissionsState(); ? sharedUser.getLegacyPermissionState() : super.getLegacyPermissionState(); } public int getAppId() { Loading services/core/java/com/android/server/pm/SettingBase.java +14 −7 Original line number Diff line number Diff line Loading @@ -19,23 +19,29 @@ package com.android.server.pm; import android.content.pm.ApplicationInfo; import com.android.internal.annotations.VisibleForTesting; import com.android.server.pm.permission.AppIdPermissionState; import com.android.server.pm.permission.LegacyPermissionState; @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public abstract class SettingBase { int pkgFlags; int pkgPrivateFlags; protected final AppIdPermissionState mPermissionsState; /** * The legacy permission state that is read from package settings persistence for migration. * This state here can not reflect the current permission state and should not be used for * purposes other than migration. */ @Deprecated protected final LegacyPermissionState mLegacyPermissionsState; SettingBase(int pkgFlags, int pkgPrivateFlags) { setFlags(pkgFlags); setPrivateFlags(pkgPrivateFlags); mPermissionsState = new AppIdPermissionState(); mLegacyPermissionsState = new LegacyPermissionState(); } SettingBase(SettingBase orig) { mPermissionsState = new AppIdPermissionState(); mLegacyPermissionsState = new LegacyPermissionState(); doCopy(orig); } Loading @@ -46,11 +52,12 @@ public abstract class SettingBase { private void doCopy(SettingBase orig) { pkgFlags = orig.pkgFlags; pkgPrivateFlags = orig.pkgPrivateFlags; mPermissionsState.copyFrom(orig.mPermissionsState); mLegacyPermissionsState.copyFrom(orig.mLegacyPermissionsState); } public AppIdPermissionState getPermissionsState() { return mPermissionsState; @Deprecated public LegacyPermissionState getLegacyPermissionState() { return mLegacyPermissionsState; } void setFlags(int pkgFlags) { Loading services/core/java/com/android/server/pm/Settings.java +32 −30 Original line number Diff line number Diff line Loading @@ -107,10 +107,10 @@ import com.android.server.pm.Installer.InstallerException; import com.android.server.pm.parsing.PackageInfoUtils; import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.parsing.pkg.AndroidPackageUtils; import com.android.server.pm.permission.AppIdPermissionState; import com.android.server.pm.permission.AppIdPermissionState.PermissionState; import com.android.server.pm.permission.BasePermission; import com.android.server.pm.permission.LegacyPermissionDataProvider; import com.android.server.pm.permission.LegacyPermissionState; import com.android.server.pm.permission.LegacyPermissionState.PermissionState; import com.android.server.pm.permission.PermissionSettings; import com.android.server.utils.TimingsTraceAndSlog; Loading Loading @@ -733,7 +733,8 @@ public final class Settings { pkgSetting.signatures = new PackageSignatures(disabledPkg.signatures); pkgSetting.appId = disabledPkg.appId; // Clone permissions pkgSetting.getPermissionsState().copyFrom(disabledPkg.getPermissionsState()); pkgSetting.getLegacyPermissionState() .copyFrom(disabledPkg.getLegacyPermissionState()); // Clone component info List<UserInfo> users = getAllUsers(userManager); if (users != null) { Loading Loading @@ -2114,7 +2115,7 @@ public final class Settings { } void readInstallPermissionsLPr(XmlPullParser parser, AppIdPermissionState permissionsState) throws IOException, XmlPullParserException { LegacyPermissionState permissionsState) throws IOException, XmlPullParserException { int outerDepth = parser.getDepth(); int type; while ((type=parser.next()) != XmlPullParser.END_DOCUMENT Loading Loading @@ -2406,7 +2407,7 @@ public final class Settings { serializer.attribute(null, "userId", Integer.toString(usr.userId)); usr.signatures.writeXml(serializer, "sigs", mPastSignatures); writePermissionsLPr(serializer, usr.getPermissionsState() writePermissionsLPr(serializer, usr.getLegacyPermissionState() .getInstallPermissionStates()); serializer.endTag(null, "shared-user"); } Loading Loading @@ -2734,7 +2735,7 @@ public final class Settings { // If this is a shared user, the permissions will be written there. if (pkg.sharedUser == null) { writePermissionsLPr(serializer, pkg.getPermissionsState() writePermissionsLPr(serializer, pkg.getLegacyPermissionState() .getInstallPermissionStates()); } Loading Loading @@ -2825,7 +2826,8 @@ public final class Settings { serializer, "install-initiator-sigs", mPastSignatures); } writePermissionsLPr(serializer, pkg.getPermissionsState().getInstallPermissionStates()); writePermissionsLPr(serializer, pkg.getLegacyPermissionState().getInstallPermissionStates()); writeSigningKeySetLPr(serializer, pkg.keySetData); writeUpgradeKeySetsLPr(serializer, pkg.keySetData); Loading Loading @@ -3551,7 +3553,7 @@ public final class Settings { } if (parser.getName().equals(TAG_PERMISSIONS)) { readInstallPermissionsLPr(parser, ps.getPermissionsState()); readInstallPermissionsLPr(parser, ps.getLegacyPermissionState()); } else if (parser.getName().equals(TAG_USES_STATIC_LIB)) { readUsesStaticLibLPw(parser, ps); } else { Loading Loading @@ -3848,7 +3850,7 @@ public final class Settings { packageSetting.signatures.readXml(parser, mPastSignatures); } else if (tagName.equals(TAG_PERMISSIONS)) { readInstallPermissionsLPr(parser, packageSetting.getPermissionsState()); packageSetting.getLegacyPermissionState()); packageSetting.installPermissionsFixed = true; } else if (tagName.equals("proper-signing-keyset")) { long id = Long.parseLong(parser.getAttributeValue(null, "identifier")); Loading Loading @@ -4074,7 +4076,7 @@ public final class Settings { if (tagName.equals("sigs")) { su.signatures.readXml(parser, mPastSignatures); } else if (tagName.equals("perms")) { readInstallPermissionsLPr(parser, su.getPermissionsState()); readInstallPermissionsLPr(parser, su.getLegacyPermissionState()); } else { PackageManagerService.reportSettingsProblem(Log.WARN, "Unknown element under <shared-user>: " + parser.getName()); Loading Loading @@ -4494,7 +4496,7 @@ public final class Settings { void dumpPackageLPr(PrintWriter pw, String prefix, String checkinTag, ArraySet<String> permissionNames, PackageSetting ps, AppIdPermissionState permissionsState, SimpleDateFormat sdf, Date date, LegacyPermissionState permissionsState, SimpleDateFormat sdf, Date date, List<UserInfo> users, boolean dumpAll, boolean dumpAllComponents) { AndroidPackage pkg = ps.pkg; if (checkinTag != null) { Loading Loading @@ -4944,8 +4946,8 @@ public final class Settings { && !packageName.equals(ps.name)) { continue; } final AppIdPermissionState permissionsState = mPermissionDataProvider.getAppIdPermissionState(ps.appId); final LegacyPermissionState permissionsState = mPermissionDataProvider.getLegacyPermissionState(ps.appId); if (permissionNames != null && !permissionsState.hasPermissionState(permissionNames)) { continue; Loading Loading @@ -5002,8 +5004,8 @@ public final class Settings { pw.println("Hidden system packages:"); printedSomething = true; } final AppIdPermissionState permissionsState = mPermissionDataProvider.getAppIdPermissionState(ps.appId); final LegacyPermissionState permissionsState = mPermissionDataProvider.getLegacyPermissionState(ps.appId); dumpPackageLPr(pw, " ", checkin ? "dis" : null, permissionNames, ps, permissionsState, sdf, date, users, packageName != null, dumpAllComponents); } Loading Loading @@ -5033,8 +5035,8 @@ public final class Settings { if (packageName != null && su != dumpState.getSharedUser()) { continue; } final AppIdPermissionState permissionsState = mPermissionDataProvider.getAppIdPermissionState(su.userId); final LegacyPermissionState permissionsState = mPermissionDataProvider.getLegacyPermissionState(su.userId); if (permissionNames != null && !permissionsState.hasPermissionState(permissionNames)) { continue; Loading Loading @@ -5178,7 +5180,7 @@ public final class Settings { } void dumpInstallPermissionsLPr(PrintWriter pw, String prefix, ArraySet<String> permissionNames, AppIdPermissionState permissionsState) { LegacyPermissionState permissionsState) { Collection<PermissionState> permissionStates = permissionsState.getInstallPermissionStates(); if (!permissionStates.isEmpty()) { Loading Loading @@ -5424,7 +5426,7 @@ public final class Settings { if (packageSetting.sharedUser == null) { List<RuntimePermissionsState.PermissionState> permissions = getPermissionsFromPermissionsState( packageSetting.getPermissionsState(), userId); packageSetting.getLegacyPermissionState(), userId); packagePermissions.put(packageName, permissions); } } Loading @@ -5437,7 +5439,7 @@ public final class Settings { SharedUserSetting sharedUserSetting = mSharedUsers.valueAt(i); List<RuntimePermissionsState.PermissionState> permissions = getPermissionsFromPermissionsState( sharedUserSetting.getPermissionsState(), userId); sharedUserSetting.getLegacyPermissionState(), userId); sharedUserPermissions.put(sharedUserName, permissions); } Loading @@ -5449,7 +5451,7 @@ public final class Settings { @NonNull private List<RuntimePermissionsState.PermissionState> getPermissionsFromPermissionsState( @NonNull AppIdPermissionState permissionsState, @UserIdInt int userId) { @NonNull LegacyPermissionState permissionsState, @UserIdInt int userId) { Collection<PermissionState> permissionStates = permissionsState.getRuntimePermissionStates(userId); List<RuntimePermissionsState.PermissionState> permissions = new ArrayList<>(); Loading Loading @@ -5509,11 +5511,11 @@ public final class Settings { List<RuntimePermissionsState.PermissionState> permissions = packagePermissions.get(packageName); if (permissions != null) { readPermissionsStateLpr(permissions, packageSetting.getPermissionsState(), readPermissionsStateLpr(permissions, packageSetting.getLegacyPermissionState(), userId); } else if (packageSetting.sharedUser == null && !isUpgradeToR) { Slog.w(TAG, "Missing permission state for package: " + packageName); packageSetting.getPermissionsState().setMissing(true, userId); packageSetting.getLegacyPermissionState().setMissing(true, userId); } } Loading @@ -5527,18 +5529,18 @@ public final class Settings { List<RuntimePermissionsState.PermissionState> permissions = sharedUserPermissions.get(sharedUserName); if (permissions != null) { readPermissionsStateLpr(permissions, sharedUserSetting.getPermissionsState(), userId); readPermissionsStateLpr(permissions, sharedUserSetting.getLegacyPermissionState(), userId); } else if (!isUpgradeToR) { Slog.w(TAG, "Missing permission state for shared user: " + sharedUserName); sharedUserSetting.getPermissionsState().setMissing(true, userId); sharedUserSetting.getLegacyPermissionState().setMissing(true, userId); } } } private void readPermissionsStateLpr( @NonNull List<RuntimePermissionsState.PermissionState> permissions, @NonNull AppIdPermissionState permissionsState, @UserIdInt int userId) { @NonNull LegacyPermissionState permissionsState, @UserIdInt int userId) { int permissionsSize = permissions.size(); for (int i = 0; i < permissionsSize; i++) { RuntimePermissionsState.PermissionState permission = permissions.get(i); Loading Loading @@ -5617,7 +5619,7 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); continue; } parsePermissionsLPr(parser, ps.getPermissionsState(), userId); parsePermissionsLPr(parser, ps.getLegacyPermissionState(), userId); } break; case TAG_SHARED_USER: { Loading @@ -5628,14 +5630,14 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); continue; } parsePermissionsLPr(parser, sus.getPermissionsState(), userId); parsePermissionsLPr(parser, sus.getLegacyPermissionState(), userId); } break; } } } private void parsePermissionsLPr(XmlPullParser parser, AppIdPermissionState permissionsState, int userId) LegacyPermissionState permissionsState, int userId) throws IOException, XmlPullParserException { final int outerDepth = parser.getDepth(); int type; Loading services/core/java/com/android/server/pm/permission/LegacyPermissionDataProvider.java +2 −2 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ public interface LegacyPermissionDataProvider { * @return the legacy permission state */ @NonNull public abstract AppIdPermissionState getAppIdPermissionState(@AppIdInt int appId); LegacyPermissionState getLegacyPermissionState(@AppIdInt int appId); /** * Get the GIDs computed from the permission state of a UID, either a package or a shared user. Loading @@ -40,5 +40,5 @@ public interface LegacyPermissionDataProvider { * @return the GIDs for the UID */ @NonNull public abstract int[] getGidsForUid(int uid); int[] getGidsForUid(int uid); } services/core/java/com/android/server/pm/permission/AppIdPermissionState.java→services/core/java/com/android/server/pm/permission/LegacyPermissionState.java +3 −3 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ import java.util.Objects; * Legacy permission state that was associated with packages or shared users. */ //@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) public final class AppIdPermissionState { public final class LegacyPermissionState { // Maps from user IDs to user states. @NonNull private final SparseArray<UserState> mUserStates = new SparseArray<>(); Loading @@ -48,7 +48,7 @@ public final class AppIdPermissionState { * * @hide */ public void copyFrom(@NonNull AppIdPermissionState other) { public void copyFrom(@NonNull LegacyPermissionState other) { if (other == this) { return; } Loading Loading @@ -88,7 +88,7 @@ public final class AppIdPermissionState { if (getClass() != object.getClass()) { return false; } final AppIdPermissionState other = (AppIdPermissionState) object; final LegacyPermissionState other = (LegacyPermissionState) object; return Objects.equals(mUserStates, other.mUserStates) && Objects.equals(mMissing, other.mMissing); } Loading Loading
services/core/java/com/android/server/pm/PackageSetting.java +5 −4 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.VisibleForTesting; import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.permission.AppIdPermissionState; import com.android.server.pm.permission.LegacyPermissionState; import com.android.server.pm.pkg.PackageStateUnserialized; import java.io.File; Loading Loading @@ -214,11 +214,12 @@ public class PackageSetting extends PackageSettingBase { mimeGroups = updatedMimeGroups; } @Deprecated @Override public AppIdPermissionState getPermissionsState() { public LegacyPermissionState getLegacyPermissionState() { return (sharedUser != null) ? sharedUser.getPermissionsState() : super.getPermissionsState(); ? sharedUser.getLegacyPermissionState() : super.getLegacyPermissionState(); } public int getAppId() { Loading
services/core/java/com/android/server/pm/SettingBase.java +14 −7 Original line number Diff line number Diff line Loading @@ -19,23 +19,29 @@ package com.android.server.pm; import android.content.pm.ApplicationInfo; import com.android.internal.annotations.VisibleForTesting; import com.android.server.pm.permission.AppIdPermissionState; import com.android.server.pm.permission.LegacyPermissionState; @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE) public abstract class SettingBase { int pkgFlags; int pkgPrivateFlags; protected final AppIdPermissionState mPermissionsState; /** * The legacy permission state that is read from package settings persistence for migration. * This state here can not reflect the current permission state and should not be used for * purposes other than migration. */ @Deprecated protected final LegacyPermissionState mLegacyPermissionsState; SettingBase(int pkgFlags, int pkgPrivateFlags) { setFlags(pkgFlags); setPrivateFlags(pkgPrivateFlags); mPermissionsState = new AppIdPermissionState(); mLegacyPermissionsState = new LegacyPermissionState(); } SettingBase(SettingBase orig) { mPermissionsState = new AppIdPermissionState(); mLegacyPermissionsState = new LegacyPermissionState(); doCopy(orig); } Loading @@ -46,11 +52,12 @@ public abstract class SettingBase { private void doCopy(SettingBase orig) { pkgFlags = orig.pkgFlags; pkgPrivateFlags = orig.pkgPrivateFlags; mPermissionsState.copyFrom(orig.mPermissionsState); mLegacyPermissionsState.copyFrom(orig.mLegacyPermissionsState); } public AppIdPermissionState getPermissionsState() { return mPermissionsState; @Deprecated public LegacyPermissionState getLegacyPermissionState() { return mLegacyPermissionsState; } void setFlags(int pkgFlags) { Loading
services/core/java/com/android/server/pm/Settings.java +32 −30 Original line number Diff line number Diff line Loading @@ -107,10 +107,10 @@ import com.android.server.pm.Installer.InstallerException; import com.android.server.pm.parsing.PackageInfoUtils; import com.android.server.pm.parsing.pkg.AndroidPackage; import com.android.server.pm.parsing.pkg.AndroidPackageUtils; import com.android.server.pm.permission.AppIdPermissionState; import com.android.server.pm.permission.AppIdPermissionState.PermissionState; import com.android.server.pm.permission.BasePermission; import com.android.server.pm.permission.LegacyPermissionDataProvider; import com.android.server.pm.permission.LegacyPermissionState; import com.android.server.pm.permission.LegacyPermissionState.PermissionState; import com.android.server.pm.permission.PermissionSettings; import com.android.server.utils.TimingsTraceAndSlog; Loading Loading @@ -733,7 +733,8 @@ public final class Settings { pkgSetting.signatures = new PackageSignatures(disabledPkg.signatures); pkgSetting.appId = disabledPkg.appId; // Clone permissions pkgSetting.getPermissionsState().copyFrom(disabledPkg.getPermissionsState()); pkgSetting.getLegacyPermissionState() .copyFrom(disabledPkg.getLegacyPermissionState()); // Clone component info List<UserInfo> users = getAllUsers(userManager); if (users != null) { Loading Loading @@ -2114,7 +2115,7 @@ public final class Settings { } void readInstallPermissionsLPr(XmlPullParser parser, AppIdPermissionState permissionsState) throws IOException, XmlPullParserException { LegacyPermissionState permissionsState) throws IOException, XmlPullParserException { int outerDepth = parser.getDepth(); int type; while ((type=parser.next()) != XmlPullParser.END_DOCUMENT Loading Loading @@ -2406,7 +2407,7 @@ public final class Settings { serializer.attribute(null, "userId", Integer.toString(usr.userId)); usr.signatures.writeXml(serializer, "sigs", mPastSignatures); writePermissionsLPr(serializer, usr.getPermissionsState() writePermissionsLPr(serializer, usr.getLegacyPermissionState() .getInstallPermissionStates()); serializer.endTag(null, "shared-user"); } Loading Loading @@ -2734,7 +2735,7 @@ public final class Settings { // If this is a shared user, the permissions will be written there. if (pkg.sharedUser == null) { writePermissionsLPr(serializer, pkg.getPermissionsState() writePermissionsLPr(serializer, pkg.getLegacyPermissionState() .getInstallPermissionStates()); } Loading Loading @@ -2825,7 +2826,8 @@ public final class Settings { serializer, "install-initiator-sigs", mPastSignatures); } writePermissionsLPr(serializer, pkg.getPermissionsState().getInstallPermissionStates()); writePermissionsLPr(serializer, pkg.getLegacyPermissionState().getInstallPermissionStates()); writeSigningKeySetLPr(serializer, pkg.keySetData); writeUpgradeKeySetsLPr(serializer, pkg.keySetData); Loading Loading @@ -3551,7 +3553,7 @@ public final class Settings { } if (parser.getName().equals(TAG_PERMISSIONS)) { readInstallPermissionsLPr(parser, ps.getPermissionsState()); readInstallPermissionsLPr(parser, ps.getLegacyPermissionState()); } else if (parser.getName().equals(TAG_USES_STATIC_LIB)) { readUsesStaticLibLPw(parser, ps); } else { Loading Loading @@ -3848,7 +3850,7 @@ public final class Settings { packageSetting.signatures.readXml(parser, mPastSignatures); } else if (tagName.equals(TAG_PERMISSIONS)) { readInstallPermissionsLPr(parser, packageSetting.getPermissionsState()); packageSetting.getLegacyPermissionState()); packageSetting.installPermissionsFixed = true; } else if (tagName.equals("proper-signing-keyset")) { long id = Long.parseLong(parser.getAttributeValue(null, "identifier")); Loading Loading @@ -4074,7 +4076,7 @@ public final class Settings { if (tagName.equals("sigs")) { su.signatures.readXml(parser, mPastSignatures); } else if (tagName.equals("perms")) { readInstallPermissionsLPr(parser, su.getPermissionsState()); readInstallPermissionsLPr(parser, su.getLegacyPermissionState()); } else { PackageManagerService.reportSettingsProblem(Log.WARN, "Unknown element under <shared-user>: " + parser.getName()); Loading Loading @@ -4494,7 +4496,7 @@ public final class Settings { void dumpPackageLPr(PrintWriter pw, String prefix, String checkinTag, ArraySet<String> permissionNames, PackageSetting ps, AppIdPermissionState permissionsState, SimpleDateFormat sdf, Date date, LegacyPermissionState permissionsState, SimpleDateFormat sdf, Date date, List<UserInfo> users, boolean dumpAll, boolean dumpAllComponents) { AndroidPackage pkg = ps.pkg; if (checkinTag != null) { Loading Loading @@ -4944,8 +4946,8 @@ public final class Settings { && !packageName.equals(ps.name)) { continue; } final AppIdPermissionState permissionsState = mPermissionDataProvider.getAppIdPermissionState(ps.appId); final LegacyPermissionState permissionsState = mPermissionDataProvider.getLegacyPermissionState(ps.appId); if (permissionNames != null && !permissionsState.hasPermissionState(permissionNames)) { continue; Loading Loading @@ -5002,8 +5004,8 @@ public final class Settings { pw.println("Hidden system packages:"); printedSomething = true; } final AppIdPermissionState permissionsState = mPermissionDataProvider.getAppIdPermissionState(ps.appId); final LegacyPermissionState permissionsState = mPermissionDataProvider.getLegacyPermissionState(ps.appId); dumpPackageLPr(pw, " ", checkin ? "dis" : null, permissionNames, ps, permissionsState, sdf, date, users, packageName != null, dumpAllComponents); } Loading Loading @@ -5033,8 +5035,8 @@ public final class Settings { if (packageName != null && su != dumpState.getSharedUser()) { continue; } final AppIdPermissionState permissionsState = mPermissionDataProvider.getAppIdPermissionState(su.userId); final LegacyPermissionState permissionsState = mPermissionDataProvider.getLegacyPermissionState(su.userId); if (permissionNames != null && !permissionsState.hasPermissionState(permissionNames)) { continue; Loading Loading @@ -5178,7 +5180,7 @@ public final class Settings { } void dumpInstallPermissionsLPr(PrintWriter pw, String prefix, ArraySet<String> permissionNames, AppIdPermissionState permissionsState) { LegacyPermissionState permissionsState) { Collection<PermissionState> permissionStates = permissionsState.getInstallPermissionStates(); if (!permissionStates.isEmpty()) { Loading Loading @@ -5424,7 +5426,7 @@ public final class Settings { if (packageSetting.sharedUser == null) { List<RuntimePermissionsState.PermissionState> permissions = getPermissionsFromPermissionsState( packageSetting.getPermissionsState(), userId); packageSetting.getLegacyPermissionState(), userId); packagePermissions.put(packageName, permissions); } } Loading @@ -5437,7 +5439,7 @@ public final class Settings { SharedUserSetting sharedUserSetting = mSharedUsers.valueAt(i); List<RuntimePermissionsState.PermissionState> permissions = getPermissionsFromPermissionsState( sharedUserSetting.getPermissionsState(), userId); sharedUserSetting.getLegacyPermissionState(), userId); sharedUserPermissions.put(sharedUserName, permissions); } Loading @@ -5449,7 +5451,7 @@ public final class Settings { @NonNull private List<RuntimePermissionsState.PermissionState> getPermissionsFromPermissionsState( @NonNull AppIdPermissionState permissionsState, @UserIdInt int userId) { @NonNull LegacyPermissionState permissionsState, @UserIdInt int userId) { Collection<PermissionState> permissionStates = permissionsState.getRuntimePermissionStates(userId); List<RuntimePermissionsState.PermissionState> permissions = new ArrayList<>(); Loading Loading @@ -5509,11 +5511,11 @@ public final class Settings { List<RuntimePermissionsState.PermissionState> permissions = packagePermissions.get(packageName); if (permissions != null) { readPermissionsStateLpr(permissions, packageSetting.getPermissionsState(), readPermissionsStateLpr(permissions, packageSetting.getLegacyPermissionState(), userId); } else if (packageSetting.sharedUser == null && !isUpgradeToR) { Slog.w(TAG, "Missing permission state for package: " + packageName); packageSetting.getPermissionsState().setMissing(true, userId); packageSetting.getLegacyPermissionState().setMissing(true, userId); } } Loading @@ -5527,18 +5529,18 @@ public final class Settings { List<RuntimePermissionsState.PermissionState> permissions = sharedUserPermissions.get(sharedUserName); if (permissions != null) { readPermissionsStateLpr(permissions, sharedUserSetting.getPermissionsState(), userId); readPermissionsStateLpr(permissions, sharedUserSetting.getLegacyPermissionState(), userId); } else if (!isUpgradeToR) { Slog.w(TAG, "Missing permission state for shared user: " + sharedUserName); sharedUserSetting.getPermissionsState().setMissing(true, userId); sharedUserSetting.getLegacyPermissionState().setMissing(true, userId); } } } private void readPermissionsStateLpr( @NonNull List<RuntimePermissionsState.PermissionState> permissions, @NonNull AppIdPermissionState permissionsState, @UserIdInt int userId) { @NonNull LegacyPermissionState permissionsState, @UserIdInt int userId) { int permissionsSize = permissions.size(); for (int i = 0; i < permissionsSize; i++) { RuntimePermissionsState.PermissionState permission = permissions.get(i); Loading Loading @@ -5617,7 +5619,7 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); continue; } parsePermissionsLPr(parser, ps.getPermissionsState(), userId); parsePermissionsLPr(parser, ps.getLegacyPermissionState(), userId); } break; case TAG_SHARED_USER: { Loading @@ -5628,14 +5630,14 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); continue; } parsePermissionsLPr(parser, sus.getPermissionsState(), userId); parsePermissionsLPr(parser, sus.getLegacyPermissionState(), userId); } break; } } } private void parsePermissionsLPr(XmlPullParser parser, AppIdPermissionState permissionsState, int userId) LegacyPermissionState permissionsState, int userId) throws IOException, XmlPullParserException { final int outerDepth = parser.getDepth(); int type; Loading
services/core/java/com/android/server/pm/permission/LegacyPermissionDataProvider.java +2 −2 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ public interface LegacyPermissionDataProvider { * @return the legacy permission state */ @NonNull public abstract AppIdPermissionState getAppIdPermissionState(@AppIdInt int appId); LegacyPermissionState getLegacyPermissionState(@AppIdInt int appId); /** * Get the GIDs computed from the permission state of a UID, either a package or a shared user. Loading @@ -40,5 +40,5 @@ public interface LegacyPermissionDataProvider { * @return the GIDs for the UID */ @NonNull public abstract int[] getGidsForUid(int uid); int[] getGidsForUid(int uid); }
services/core/java/com/android/server/pm/permission/AppIdPermissionState.java→services/core/java/com/android/server/pm/permission/LegacyPermissionState.java +3 −3 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ import java.util.Objects; * Legacy permission state that was associated with packages or shared users. */ //@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) public final class AppIdPermissionState { public final class LegacyPermissionState { // Maps from user IDs to user states. @NonNull private final SparseArray<UserState> mUserStates = new SparseArray<>(); Loading @@ -48,7 +48,7 @@ public final class AppIdPermissionState { * * @hide */ public void copyFrom(@NonNull AppIdPermissionState other) { public void copyFrom(@NonNull LegacyPermissionState other) { if (other == this) { return; } Loading Loading @@ -88,7 +88,7 @@ public final class AppIdPermissionState { if (getClass() != object.getClass()) { return false; } final AppIdPermissionState other = (AppIdPermissionState) object; final LegacyPermissionState other = (LegacyPermissionState) object; return Objects.equals(mUserStates, other.mUserStates) && Objects.equals(mMissing, other.mMissing); } Loading