Loading core/java/android/content/pm/PackageInstaller.java +2 −3 Original line number Diff line number Diff line Loading @@ -1291,8 +1291,7 @@ public class PackageInstaller { * * @throws PackageManager.NameNotFoundException if the new owner could not be found. * @throws SecurityException if called after the session has been committed or abandoned. * @throws SecurityException if the session does not update the original installer * @throws SecurityException if streams opened through * @throws IllegalArgumentException if streams opened through * {@link #openWrite(String, long, long) are still open. */ public void transfer(@NonNull String packageName) Loading services/core/java/com/android/server/pm/PackageInstallerSession.java +14 −5 Original line number Diff line number Diff line Loading @@ -267,6 +267,9 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { /** Uid of the creator of this session. */ private final int mOriginalInstallerUid; /** Package name of the app that created the installation session. */ private final String mOriginalInstallerPackageName; /** Uid of the owner of the installer session */ @GuardedBy("mLock") private int mInstallerUid; Loading Loading @@ -556,6 +559,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { mOriginalInstallerUid = installerUid; mInstallerUid = installerUid; mInstallSource = Objects.requireNonNull(installSource); mOriginalInstallerPackageName = mInstallSource.installerPackageName; this.params = params; this.createdMillis = createdMillis; this.updatedMillis = createdMillis; Loading Loading @@ -1666,11 +1670,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { throw new IllegalArgumentException("Package is not valid", e); } if (!mPackageName.equals(mInstallSource.installerPackageName)) { throw new SecurityException("Can only transfer sessions that update the original " + "installer"); } mInstallerUid = newOwnerAppInfo.uid; mInstallSource = InstallSource.create(packageName, null, packageName); } Loading Loading @@ -2157,6 +2156,15 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } } if (mInstallerUid != mOriginalInstallerUid) { // Session has been transferred, check package name. if (TextUtils.isEmpty(mPackageName) || !mPackageName.equals( mOriginalInstallerPackageName)) { throw new PackageManagerException(PackageManager.INSTALL_FAILED_PACKAGE_CHANGED, "Can only transfer sessions that update the original installer"); } } if (params.mode == SessionParams.MODE_FULL_INSTALL) { // Full installs must include a base package if (!stagedSplits.contains(null)) { Loading Loading @@ -3182,6 +3190,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { pw.printPair("userId", userId); pw.printPair("mOriginalInstallerUid", mOriginalInstallerUid); pw.printPair("mOriginalInstallerPackageName", mOriginalInstallerPackageName); pw.printPair("installerPackageName", mInstallSource.installerPackageName); pw.printPair("installInitiatingPackageName", mInstallSource.initiatingPackageName); pw.printPair("installOriginatingPackageName", mInstallSource.originatingPackageName); Loading Loading
core/java/android/content/pm/PackageInstaller.java +2 −3 Original line number Diff line number Diff line Loading @@ -1291,8 +1291,7 @@ public class PackageInstaller { * * @throws PackageManager.NameNotFoundException if the new owner could not be found. * @throws SecurityException if called after the session has been committed or abandoned. * @throws SecurityException if the session does not update the original installer * @throws SecurityException if streams opened through * @throws IllegalArgumentException if streams opened through * {@link #openWrite(String, long, long) are still open. */ public void transfer(@NonNull String packageName) Loading
services/core/java/com/android/server/pm/PackageInstallerSession.java +14 −5 Original line number Diff line number Diff line Loading @@ -267,6 +267,9 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { /** Uid of the creator of this session. */ private final int mOriginalInstallerUid; /** Package name of the app that created the installation session. */ private final String mOriginalInstallerPackageName; /** Uid of the owner of the installer session */ @GuardedBy("mLock") private int mInstallerUid; Loading Loading @@ -556,6 +559,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { mOriginalInstallerUid = installerUid; mInstallerUid = installerUid; mInstallSource = Objects.requireNonNull(installSource); mOriginalInstallerPackageName = mInstallSource.installerPackageName; this.params = params; this.createdMillis = createdMillis; this.updatedMillis = createdMillis; Loading Loading @@ -1666,11 +1670,6 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { throw new IllegalArgumentException("Package is not valid", e); } if (!mPackageName.equals(mInstallSource.installerPackageName)) { throw new SecurityException("Can only transfer sessions that update the original " + "installer"); } mInstallerUid = newOwnerAppInfo.uid; mInstallSource = InstallSource.create(packageName, null, packageName); } Loading Loading @@ -2157,6 +2156,15 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } } if (mInstallerUid != mOriginalInstallerUid) { // Session has been transferred, check package name. if (TextUtils.isEmpty(mPackageName) || !mPackageName.equals( mOriginalInstallerPackageName)) { throw new PackageManagerException(PackageManager.INSTALL_FAILED_PACKAGE_CHANGED, "Can only transfer sessions that update the original installer"); } } if (params.mode == SessionParams.MODE_FULL_INSTALL) { // Full installs must include a base package if (!stagedSplits.contains(null)) { Loading Loading @@ -3182,6 +3190,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { pw.printPair("userId", userId); pw.printPair("mOriginalInstallerUid", mOriginalInstallerUid); pw.printPair("mOriginalInstallerPackageName", mOriginalInstallerPackageName); pw.printPair("installerPackageName", mInstallSource.installerPackageName); pw.printPair("installInitiatingPackageName", mInstallSource.initiatingPackageName); pw.printPair("installOriginatingPackageName", mInstallSource.originatingPackageName); Loading