Loading services/core/java/com/android/server/pm/InstallParams.java +7 −9 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ import static android.content.pm.PackageManager.INSTALL_FAILED_INTERNAL_ERROR; import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_APK; import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION; import static android.content.pm.PackageManager.INSTALL_FAILED_SESSION_INVALID; import static android.content.pm.PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; import static android.content.pm.PackageManager.INSTALL_FAILED_TEST_ONLY; import static android.content.pm.PackageManager.INSTALL_FAILED_UID_CHANGED; import static android.content.pm.PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE; import static android.content.pm.PackageManager.INSTALL_REASON_DEVICE_RESTORE; import static android.content.pm.PackageManager.INSTALL_REASON_DEVICE_SETUP; Loading Loading @@ -1204,19 +1204,17 @@ final class InstallParams extends HandlerParams { } // Check for shared user id changes String invalidPackageName = null; if (!Objects.equals(oldPackage.getSharedUserId(), parsedPackage.getSharedUserId()) // Don't mark as invalid if the app is trying to // leave a sharedUserId && parsedPackage.getSharedUserId() != null) { invalidPackageName = parsedPackage.getPackageName(); } if (invalidPackageName != null) { throw new PrepareFailure(INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, "Package " + invalidPackageName + " tried to change user " + oldPackage.getSharedUserId()); throw new PrepareFailure(INSTALL_FAILED_UID_CHANGED, "Package " + parsedPackage.getPackageName() + " shared user changed from " + (oldPackage.getSharedUserId() != null ? oldPackage.getSharedUserId() : "<nothing>") + " to " + parsedPackage.getSharedUserId()); } // In case of rollback, remember per-user/profile install state Loading services/core/java/com/android/server/pm/Settings.java +5 −4 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED; import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED; import static android.content.pm.PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE; import static android.content.pm.PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; import static android.content.pm.PackageManager.INSTALL_FAILED_UID_CHANGED; import static android.content.pm.PackageManager.MATCH_DEFAULT_ONLY; import static android.content.pm.PackageManager.UNINSTALL_REASON_UNKNOWN; import static android.content.pm.PackageManager.UNINSTALL_REASON_USER_TYPE; Loading Loading @@ -1040,14 +1040,15 @@ public final class Settings implements Watchable, Snappable { @Nullable Set<String> mimeGroupNames, @NonNull UUID domainSetId) throws PackageManagerException { final String pkgName = pkgSetting.name; if (pkgSetting.sharedUser != sharedUser) { if (!Objects.equals(pkgSetting.sharedUser, sharedUser) && sharedUser != null) { PackageManagerService.reportSettingsProblem(Log.WARN, "Package " + pkgName + " shared user changed from " + (pkgSetting.sharedUser != null ? pkgSetting.sharedUser.name : "<nothing>") + " to " + (sharedUser != null ? sharedUser.name : "<nothing>")); throw new PackageManagerException(INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, + " to " + sharedUser.name); throw new PackageManagerException(INSTALL_FAILED_UID_CHANGED, "Updating application package " + pkgName + " failed"); } pkgSetting.sharedUser = sharedUser; if (!pkgSetting.getPath().equals(codePath)) { final boolean isSystem = pkgSetting.isSystem(); Loading Loading
services/core/java/com/android/server/pm/InstallParams.java +7 −9 Original line number Diff line number Diff line Loading @@ -28,8 +28,8 @@ import static android.content.pm.PackageManager.INSTALL_FAILED_INTERNAL_ERROR; import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_APK; import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION; import static android.content.pm.PackageManager.INSTALL_FAILED_SESSION_INVALID; import static android.content.pm.PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; import static android.content.pm.PackageManager.INSTALL_FAILED_TEST_ONLY; import static android.content.pm.PackageManager.INSTALL_FAILED_UID_CHANGED; import static android.content.pm.PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE; import static android.content.pm.PackageManager.INSTALL_REASON_DEVICE_RESTORE; import static android.content.pm.PackageManager.INSTALL_REASON_DEVICE_SETUP; Loading Loading @@ -1204,19 +1204,17 @@ final class InstallParams extends HandlerParams { } // Check for shared user id changes String invalidPackageName = null; if (!Objects.equals(oldPackage.getSharedUserId(), parsedPackage.getSharedUserId()) // Don't mark as invalid if the app is trying to // leave a sharedUserId && parsedPackage.getSharedUserId() != null) { invalidPackageName = parsedPackage.getPackageName(); } if (invalidPackageName != null) { throw new PrepareFailure(INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, "Package " + invalidPackageName + " tried to change user " + oldPackage.getSharedUserId()); throw new PrepareFailure(INSTALL_FAILED_UID_CHANGED, "Package " + parsedPackage.getPackageName() + " shared user changed from " + (oldPackage.getSharedUserId() != null ? oldPackage.getSharedUserId() : "<nothing>") + " to " + parsedPackage.getSharedUserId()); } // In case of rollback, remember per-user/profile install state Loading
services/core/java/com/android/server/pm/Settings.java +5 −4 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED; import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED; import static android.content.pm.PackageManager.INSTALL_FAILED_INSUFFICIENT_STORAGE; import static android.content.pm.PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; import static android.content.pm.PackageManager.INSTALL_FAILED_UID_CHANGED; import static android.content.pm.PackageManager.MATCH_DEFAULT_ONLY; import static android.content.pm.PackageManager.UNINSTALL_REASON_UNKNOWN; import static android.content.pm.PackageManager.UNINSTALL_REASON_USER_TYPE; Loading Loading @@ -1040,14 +1040,15 @@ public final class Settings implements Watchable, Snappable { @Nullable Set<String> mimeGroupNames, @NonNull UUID domainSetId) throws PackageManagerException { final String pkgName = pkgSetting.name; if (pkgSetting.sharedUser != sharedUser) { if (!Objects.equals(pkgSetting.sharedUser, sharedUser) && sharedUser != null) { PackageManagerService.reportSettingsProblem(Log.WARN, "Package " + pkgName + " shared user changed from " + (pkgSetting.sharedUser != null ? pkgSetting.sharedUser.name : "<nothing>") + " to " + (sharedUser != null ? sharedUser.name : "<nothing>")); throw new PackageManagerException(INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, + " to " + sharedUser.name); throw new PackageManagerException(INSTALL_FAILED_UID_CHANGED, "Updating application package " + pkgName + " failed"); } pkgSetting.sharedUser = sharedUser; if (!pkgSetting.getPath().equals(codePath)) { final boolean isSystem = pkgSetting.isSystem(); Loading