diff options
author | Jeff Sharkey <jsharkey@android.com> | 2014-07-08 17:10:32 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2014-07-08 17:41:29 -0700 |
commit | 513a074de68a4772a9900e90f38e74ff92c15e7c (patch) | |
tree | 410c98a83b684a34063903496863247c303cb5cb | |
parent | 8d479b0c2ddb150182bcf510876a240cb869661b (diff) | |
download | frameworks_base-513a074de68a4772a9900e90f38e74ff92c15e7c.zip frameworks_base-513a074de68a4772a9900e90f38e74ff92c15e7c.tar.gz frameworks_base-513a074de68a4772a9900e90f38e74ff92c15e7c.tar.bz2 |
Clean up IPackageManager install surface area.
Also more removal of encryption support.
Change-Id: If525dc5a8422134515f225a8ac4731e968069468
-rw-r--r-- | cmds/pm/src/com/android/commands/pm/Pm.java | 101 | ||||
-rw-r--r-- | core/java/android/app/ApplicationPackageManager.java | 91 | ||||
-rw-r--r-- | core/java/android/content/pm/IPackageManager.aidl | 49 | ||||
-rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 163 |
4 files changed, 92 insertions, 312 deletions
diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java index f85a7dc..a435fba 100644 --- a/cmds/pm/src/com/android/commands/pm/Pm.java +++ b/cmds/pm/src/com/android/commands/pm/Pm.java @@ -21,7 +21,6 @@ import android.app.ActivityManagerNative; import android.app.IActivityManager; import android.content.ComponentName; import android.content.pm.ApplicationInfo; -import android.content.pm.ContainerEncryptionParams; import android.content.pm.FeatureInfo; import android.content.pm.IPackageDataObserver; import android.content.pm.IPackageDeleteObserver; @@ -48,24 +47,19 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserManager; +import com.android.internal.content.PackageHelper; +import com.android.internal.util.ArrayUtils; + import java.io.File; import java.io.FileDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.security.InvalidAlgorithmParameterException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.WeakHashMap; -import javax.crypto.SecretKey; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; - -import com.android.internal.content.PackageHelper; -import com.android.internal.util.ArrayUtils; - public final class Pm { IPackageManager mPm; IUserManager mUm; @@ -816,13 +810,6 @@ public final class Pm { String opt; - String algo = null; - byte[] iv = null; - byte[] key = null; - - String macAlgo = null; - byte[] macKey = null; - byte[] tag = null; String originatingUriString = null; String referrer = null; String abi = null; @@ -848,42 +835,6 @@ public final class Pm { installFlags |= PackageManager.INSTALL_INTERNAL; } else if (opt.equals("-d")) { installFlags |= PackageManager.INSTALL_ALLOW_DOWNGRADE; - } else if (opt.equals("--algo")) { - algo = nextOptionData(); - if (algo == null) { - System.err.println("Error: must supply argument for --algo"); - return; - } - } else if (opt.equals("--iv")) { - iv = hexToBytes(nextOptionData()); - if (iv == null) { - System.err.println("Error: must supply argument for --iv"); - return; - } - } else if (opt.equals("--key")) { - key = hexToBytes(nextOptionData()); - if (key == null) { - System.err.println("Error: must supply argument for --key"); - return; - } - } else if (opt.equals("--macalgo")) { - macAlgo = nextOptionData(); - if (macAlgo == null) { - System.err.println("Error: must supply argument for --macalgo"); - return; - } - } else if (opt.equals("--mackey")) { - macKey = hexToBytes(nextOptionData()); - if (macKey == null) { - System.err.println("Error: must supply argument for --mackey"); - return; - } - } else if (opt.equals("--tag")) { - tag = hexToBytes(nextOptionData()); - if (tag == null) { - System.err.println("Error: must supply argument for --tag"); - return; - } } else if (opt.equals("--originating-uri")) { originatingUriString = nextOptionData(); if (originatingUriString == null) { @@ -924,43 +875,6 @@ public final class Pm { } } - final ContainerEncryptionParams encryptionParams; - if (algo != null || iv != null || key != null || macAlgo != null || macKey != null - || tag != null) { - if (algo == null || iv == null || key == null) { - System.err.println("Error: all of --algo, --iv, and --key must be specified"); - return; - } - - if (macAlgo != null || macKey != null || tag != null) { - if (macAlgo == null || macKey == null || tag == null) { - System.err.println("Error: all of --macalgo, --mackey, and --tag must " - + "be specified"); - return; - } - } - - try { - final SecretKey encKey = new SecretKeySpec(key, "RAW"); - - final SecretKey macSecretKey; - if (macKey == null || macKey.length == 0) { - macSecretKey = null; - } else { - macSecretKey = new SecretKeySpec(macKey, "RAW"); - } - - encryptionParams = new ContainerEncryptionParams(algo, new IvParameterSpec(iv), - encKey, macAlgo, null, macSecretKey, tag, -1, -1, -1); - } catch (InvalidAlgorithmParameterException e) { - e.printStackTrace(); - return; - } - } else { - encryptionParams = null; - } - - final Uri apkURI; final Uri verificationURI; final Uri originatingURI; final Uri referrerURI; @@ -980,9 +894,7 @@ public final class Pm { // Populate apkURI, must be present final String apkFilePath = nextArg(); System.err.println("\tpkg: " + apkFilePath); - if (apkFilePath != null) { - apkURI = Uri.fromFile(new File(apkFilePath)); - } else { + if (apkFilePath == null) { System.err.println("Error: no package specified"); return; } @@ -1001,9 +913,8 @@ public final class Pm { VerificationParams verificationParams = new VerificationParams(verificationURI, originatingURI, referrerURI, VerificationParams.NO_UID, null); - mPm.installPackageWithVerificationEncryptionAndAbiOverrideEtc(apkURI, null, - obs, installFlags, installerPackageName, verificationParams, - encryptionParams, abi); + mPm.installPackage(apkFilePath, obs, installFlags, installerPackageName, + verificationParams, abi); synchronized (obs) { while (!obs.finished) { diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index e2f3c60..97f1e50 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -29,11 +29,11 @@ import android.content.pm.FeatureInfo; import android.content.pm.IPackageDataObserver; import android.content.pm.IPackageDeleteObserver; import android.content.pm.IPackageInstallObserver; -import android.content.pm.IPackageInstallObserver2; import android.content.pm.IPackageManager; import android.content.pm.IPackageMoveObserver; import android.content.pm.IPackageStatsObserver; import android.content.pm.InstrumentationInfo; +import android.content.pm.ManifestDigest; import android.content.pm.PackageInfo; import android.content.pm.PackageInstaller; import android.content.pm.PackageItemInfo; @@ -44,15 +44,14 @@ import android.content.pm.PermissionInfo; import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; -import android.content.pm.ManifestDigest; import android.content.pm.VerificationParams; import android.content.pm.VerifierDeviceIdentity; import android.content.res.Resources; import android.content.res.XmlResourceParser; -import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; +import android.os.Bundle; import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; @@ -1112,47 +1111,36 @@ final class ApplicationPackageManager extends PackageManager { @Override public void installPackage(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName) { - try { - mPM.installPackageEtc(packageURI, observer, null, flags, installerPackageName); - } catch (RemoteException e) { - // Should never happen! - } + final VerificationParams verificationParams = new VerificationParams(null, null, + null, VerificationParams.NO_UID, null); + installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, + installerPackageName, verificationParams, null); } @Override public void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { - try { - mPM.installPackageWithVerificationEtc(packageURI, observer, null, flags, - installerPackageName, verificationURI, manifestDigest, encryptionParams); - } catch (RemoteException e) { - // Should never happen! - } + final VerificationParams verificationParams = new VerificationParams(verificationURI, null, + null, VerificationParams.NO_UID, manifestDigest); + installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, + installerPackageName, verificationParams, encryptionParams); } @Override public void installPackageWithVerificationAndEncryption(Uri packageURI, IPackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { - try { - mPM.installPackageWithVerificationAndEncryptionEtc(packageURI, observer, null, - flags, installerPackageName, verificationParams, encryptionParams); - } catch (RemoteException e) { - // Should never happen! - } + installCommon(packageURI, new LegacyPackageInstallObserver(observer), flags, + installerPackageName, verificationParams, encryptionParams); } - // Expanded observer-API versions @Override public void installPackage(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName) { - try { - mPM.installPackageEtc(packageURI, null, observer.getBinder(), - flags, installerPackageName); - } catch (RemoteException e) { - // Should never happen! - } + final VerificationParams verificationParams = new VerificationParams(null, null, + null, VerificationParams.NO_UID, null); + installCommon(packageURI, observer, flags, installerPackageName, verificationParams, null); } @Override @@ -1160,24 +1148,35 @@ final class ApplicationPackageManager extends PackageManager { PackageInstallObserver observer, int flags, String installerPackageName, Uri verificationURI, ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { - try { - mPM.installPackageWithVerificationEtc(packageURI, null, observer.getBinder(), flags, - installerPackageName, verificationURI, manifestDigest, encryptionParams); - } catch (RemoteException e) { - // Should never happen! - } + final VerificationParams verificationParams = new VerificationParams(verificationURI, null, + null, VerificationParams.NO_UID, manifestDigest); + installCommon(packageURI, observer, flags, installerPackageName, verificationParams, + encryptionParams); } @Override public void installPackageWithVerificationAndEncryption(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName, VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { + installCommon(packageURI, observer, flags, installerPackageName, verificationParams, + encryptionParams); + } + + private void installCommon(Uri packageURI, + PackageInstallObserver observer, int flags, String installerPackageName, + VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { + if (!"file".equals(packageURI.getScheme())) { + throw new UnsupportedOperationException("Only file:// URIs are supported"); + } + if (encryptionParams != null) { + throw new UnsupportedOperationException("ContainerEncryptionParams not supported"); + } + + final String originPath = packageURI.getPath(); try { - mPM.installPackageWithVerificationAndEncryptionEtc(packageURI, null, - observer.getBinder(), flags, installerPackageName, verificationParams, - encryptionParams); - } catch (RemoteException e) { - // Should never happen! + mPM.installPackage(originPath, observer.getBinder(), flags, installerPackageName, + verificationParams, null); + } catch (RemoteException ignored) { } } @@ -1523,6 +1522,22 @@ final class ApplicationPackageManager extends PackageManager { return dr; } + private static class LegacyPackageInstallObserver extends PackageInstallObserver { + private final IPackageInstallObserver mLegacy; + + public LegacyPackageInstallObserver(IPackageInstallObserver legacy) { + mLegacy = legacy; + } + + @Override + public void packageInstalled(String basePackageName, Bundle extras, int returnCode) { + try { + mLegacy.packageInstalled(basePackageName, returnCode); + } catch (RemoteException ignored) { + } + } + } + private final ContextImpl mContext; private final IPackageManager mPM; diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 40dec8f..58d3526 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -189,18 +189,12 @@ interface IPackageManager { List<InstrumentationInfo> queryInstrumentation( String targetPackage, int flags); - /** - * Install a package. - * - * @param packageURI The location of the package file to install. - * @param observer a callback to use to notify when the package installation in finished. - * @param flags - possible values: {@link #FORWARD_LOCK_PACKAGE}, - * {@link #REPLACE_EXISITING_PACKAGE} - * @param installerPackageName Optional package name of the application that is performing the - * installation. This identifies which market the package came from. - */ - void installPackage(in Uri packageURI, IPackageInstallObserver observer, int flags, - in String installerPackageName); + void installPackage(in String originPath, + in IPackageInstallObserver2 observer, + int flags, + in String installerPackageName, + in VerificationParams verificationParams, + in String packageAbiOverride); void finishPackageInstall(int token); @@ -412,37 +406,6 @@ interface IPackageManager { boolean setInstallLocation(int loc); int getInstallLocation(); - void installPackageWithVerification(in Uri packageURI, in IPackageInstallObserver observer, - int flags, in String installerPackageName, in Uri verificationURI, - in ManifestDigest manifestDigest, in ContainerEncryptionParams encryptionParams); - - void installPackageWithVerificationAndEncryption(in Uri packageURI, - in IPackageInstallObserver observer, int flags, in String installerPackageName, - in VerificationParams verificationParams, - in ContainerEncryptionParams encryptionParams); - - /** Expanded observer versions */ - void installPackageEtc(in Uri packageURI, IPackageInstallObserver observer, - IPackageInstallObserver2 observer2, int flags, in String installerPackageName); - - void installPackageWithVerificationEtc(in Uri packageURI, - in IPackageInstallObserver observer, IPackageInstallObserver2 observer2, - int flags, in String installerPackageName, in Uri verificationURI, - in ManifestDigest manifestDigest, in ContainerEncryptionParams encryptionParams); - - void installPackageWithVerificationAndEncryptionEtc(in Uri packageURI, - in IPackageInstallObserver observer, in IPackageInstallObserver2 observer2, - int flags, in String installerPackageName, - in VerificationParams verificationParams, - in ContainerEncryptionParams encryptionParams); - - void installPackageWithVerificationEncryptionAndAbiOverrideEtc(in Uri packageURI, - in IPackageInstallObserver observer, in IPackageInstallObserver2 observer2, - int flags, in String installerPackageName, - in VerificationParams verificationParams, - in ContainerEncryptionParams encryptionParams, - in String packageAbiOverride); - int installExistingPackageAsUser(String packageName, int userId); void verifyPendingInstall(int id, int verificationCode); diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index b65cf72..c2fb773 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -25,6 +25,7 @@ import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER; import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED; import static android.content.pm.PackageManager.INSTALL_EXTERNAL; +import static android.content.pm.PackageManager.INSTALL_FAILED_USER_RESTRICTED; import static android.content.pm.PackageManager.INSTALL_FORWARD_LOCK; import static android.content.pm.PackageParser.isApkFile; import static android.os.Process.PACKAGE_INFO_GID; @@ -87,7 +88,6 @@ import android.content.IntentSender.SendIntentException; import android.content.ServiceConnection; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; -import android.content.pm.ContainerEncryptionParams; import android.content.pm.FeatureInfo; import android.content.pm.IPackageDataObserver; import android.content.pm.IPackageDeleteObserver; @@ -1093,15 +1093,8 @@ public class PackageManagerService extends IPackageManager.Stub { } if (args.observer != null) { try { - args.observer.packageInstalled(res.name, res.returnCode); - } catch (RemoteException e) { - Slog.i(TAG, "Observer no longer exists."); - } - } - if (args.observer2 != null) { - try { Bundle extras = extrasForInstallResult(res); - args.observer2.packageInstalled(res.name, extras, res.returnCode); + args.observer.packageInstalled(res.name, extras, res.returnCode); } catch (RemoteException e) { Slog.i(TAG, "Observer no longer exists."); } @@ -7617,104 +7610,19 @@ public class PackageManagerService extends IPackageManager.Stub { private final boolean mIsPrivileged; } - /* - * The old-style observer methods all just trampoline to the newer signature with - * expanded install observer API. The older API continues to work but does not - * supply the additional details of the Observer2 API. - */ - - /* Called when a downloaded package installation has been confirmed by the user */ - public void installPackage( - final Uri packageURI, final IPackageInstallObserver observer, final int flags) { - installPackageEtc(packageURI, observer, null, flags, null); - } - - /* Called when a downloaded package installation has been confirmed by the user */ @Override - public void installPackage( - final Uri packageURI, final IPackageInstallObserver observer, final int flags, - final String installerPackageName) { - installPackageWithVerificationEtc(packageURI, observer, null, flags, - installerPackageName, null, null, null); - } - - @Override - public void installPackageWithVerification(Uri packageURI, IPackageInstallObserver observer, - int flags, String installerPackageName, Uri verificationURI, - ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { - VerificationParams verificationParams = new VerificationParams(verificationURI, null, null, - VerificationParams.NO_UID, manifestDigest); - installPackageWithVerificationAndEncryptionEtc(packageURI, observer, null, flags, - installerPackageName, verificationParams, encryptionParams); - } - - @Override - public void installPackageWithVerificationAndEncryption(Uri packageURI, - IPackageInstallObserver observer, int flags, String installerPackageName, - VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { - installPackageWithVerificationAndEncryptionEtc(packageURI, observer, null, flags, - installerPackageName, verificationParams, encryptionParams); - } - - /* - * And here are the "live" versions that take both observer arguments - */ - public void installPackageEtc( - final Uri packageURI, final IPackageInstallObserver observer, - IPackageInstallObserver2 observer2, final int flags) { - installPackageEtc(packageURI, observer, observer2, flags, null); - } - - public void installPackageEtc( - final Uri packageURI, final IPackageInstallObserver observer, - final IPackageInstallObserver2 observer2, final int flags, - final String installerPackageName) { - installPackageWithVerificationEtc(packageURI, observer, observer2, flags, - installerPackageName, null, null, null); - } - - @Override - public void installPackageWithVerificationEtc(Uri packageURI, IPackageInstallObserver observer, - IPackageInstallObserver2 observer2, - int flags, String installerPackageName, Uri verificationURI, - ManifestDigest manifestDigest, ContainerEncryptionParams encryptionParams) { - VerificationParams verificationParams = new VerificationParams(verificationURI, null, null, - VerificationParams.NO_UID, manifestDigest); - installPackageWithVerificationAndEncryptionEtc(packageURI, observer, observer2, flags, - installerPackageName, verificationParams, encryptionParams); - } - - /* - * All of the installPackage...*() methods redirect to this one for the master implementation - */ - public void installPackageWithVerificationAndEncryptionEtc(Uri packageURI, - IPackageInstallObserver observer, IPackageInstallObserver2 observer2, - int flags, String installerPackageName, - VerificationParams verificationParams, ContainerEncryptionParams encryptionParams) { - if (observer == null && observer2 == null) { - throw new IllegalArgumentException("No install observer supplied"); - } - installPackageWithVerificationEncryptionAndAbiOverrideEtc(packageURI, observer, observer2, - flags, installerPackageName, verificationParams, encryptionParams, null); - } - - @Override - public void installPackageWithVerificationEncryptionAndAbiOverrideEtc(Uri packageURI, - IPackageInstallObserver observer, IPackageInstallObserver2 observer2, - int flags, String installerPackageName, - VerificationParams verificationParams, ContainerEncryptionParams encryptionParams, + public void installPackage(String originPath, IPackageInstallObserver2 observer, int flags, + String installerPackageName, VerificationParams verificationParams, String packageAbiOverride) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.INSTALL_PACKAGES, null); + final File originFile = new File(originPath); final int uid = Binder.getCallingUid(); if (isUserRestricted(UserHandle.getUserId(uid), UserManager.DISALLOW_INSTALL_APPS)) { try { if (observer != null) { - observer.packageInstalled("", PackageManager.INSTALL_FAILED_USER_RESTRICTED); - } - if (observer2 != null) { - observer2.packageInstalled("", null, PackageManager.INSTALL_FAILED_USER_RESTRICTED); + observer.packageInstalled("", null, INSTALL_FAILED_USER_RESTRICTED); } } catch (RemoteException re) { } @@ -7729,7 +7637,6 @@ public class PackageManagerService extends IPackageManager.Stub { } final int filteredFlags; - if (uid == Process.SHELL_UID || uid == 0) { if (DEBUG_INSTALL) { Slog.v(TAG, "Install from ADB"); @@ -7741,18 +7648,9 @@ public class PackageManagerService extends IPackageManager.Stub { verificationParams.setInstallerUid(uid); - if (!"file".equals(packageURI.getScheme())) { - throw new UnsupportedOperationException("Only file:// URIs are supported"); - } - final File fromFile = new File(packageURI.getPath()); - - if (encryptionParams != null) { - throw new UnsupportedOperationException("ContainerEncryptionParams not supported"); - } - final Message msg = mHandler.obtainMessage(INIT_COPY); - msg.obj = new InstallParams(fromFile, observer, observer2, filteredFlags, - installerPackageName, verificationParams, user, packageAbiOverride); + msg.obj = new InstallParams(originFile, observer, filteredFlags, installerPackageName, + verificationParams, user, packageAbiOverride); mHandler.sendMessage(msg); } @@ -8469,8 +8367,7 @@ public class PackageManagerService extends IPackageManager.Stub { */ boolean originTrusted; - final IPackageInstallObserver observer; - final IPackageInstallObserver2 observer2; + final IPackageInstallObserver2 observer; int flags; final String installerPackageName; final VerificationParams verificationParams; @@ -8479,14 +8376,13 @@ public class PackageManagerService extends IPackageManager.Stub { final String packageAbiOverride; final String packageInstructionSetOverride; - InstallParams(File originFile, IPackageInstallObserver observer, - IPackageInstallObserver2 observer2, int flags, String installerPackageName, - VerificationParams verificationParams, UserHandle user, String packageAbiOverride) { + InstallParams(File originFile, IPackageInstallObserver2 observer, int flags, + String installerPackageName, VerificationParams verificationParams, UserHandle user, + String packageAbiOverride) { super(user); this.originFile = Preconditions.checkNotNull(originFile); this.originTrusted = false; this.observer = observer; - this.observer2 = observer2; this.flags = flags; this.installerPackageName = installerPackageName; this.verificationParams = verificationParams; @@ -9018,8 +8914,7 @@ public class PackageManagerService extends IPackageManager.Stub { // TODO: define inherit location - final IPackageInstallObserver observer; - final IPackageInstallObserver2 observer2; + final IPackageInstallObserver2 observer; // Always refers to PackageManager flags only final int flags; final String installerPackageName; @@ -9028,15 +8923,13 @@ public class PackageManagerService extends IPackageManager.Stub { final String instructionSet; final String abiOverride; - InstallArgs(File originFile, boolean originTrusted, IPackageInstallObserver observer, - IPackageInstallObserver2 observer2, int flags, String installerPackageName, - ManifestDigest manifestDigest, UserHandle user, String instructionSet, - String abiOverride) { + InstallArgs(File originFile, boolean originTrusted, IPackageInstallObserver2 observer, + int flags, String installerPackageName, ManifestDigest manifestDigest, + UserHandle user, String instructionSet, String abiOverride) { this.originFile = originFile; this.originTrusted = originTrusted; this.flags = flags; this.observer = observer; - this.observer2 = observer2; this.installerPackageName = installerPackageName; this.manifestDigest = manifestDigest; this.user = user; @@ -9113,10 +9006,9 @@ public class PackageManagerService extends IPackageManager.Stub { /** New install */ FileInstallArgs(InstallParams params) { - super(params.originFile, params.originTrusted, params.observer, params.observer2, - params.flags, params.installerPackageName, params.getManifestDigest(), - params.getUser(), params.packageInstructionSetOverride, - params.packageAbiOverride); + super(params.originFile, params.originTrusted, params.observer, params.flags, + params.installerPackageName, params.getManifestDigest(), params.getUser(), + params.packageInstructionSetOverride, params.packageAbiOverride); if (isFwdLocked()) { throw new IllegalArgumentException("Forward locking only supported in ASEC"); } @@ -9125,7 +9017,7 @@ public class PackageManagerService extends IPackageManager.Stub { /** Existing install */ FileInstallArgs(String codePath, String resourcePath, String nativeLibraryPath, String instructionSet) { - super(null, false, null, null, 0, null, null, null, instructionSet, null); + super(null, false, null, 0, null, null, null, instructionSet, null); this.codeFile = (codePath != null) ? new File(codePath) : null; this.resourceFile = (resourcePath != null) ? new File(resourcePath) : null; this.nativeLibraryFile = (nativeLibraryPath != null) ? new File(nativeLibraryPath) : null; @@ -9133,7 +9025,7 @@ public class PackageManagerService extends IPackageManager.Stub { /** New install from existing */ FileInstallArgs(File originFile, String instructionSet) { - super(originFile, true, null, null, 0, null, null, null, instructionSet, null); + super(originFile, true, null, 0, null, null, null, instructionSet, null); } boolean checkFreeStorage(IMediaContainerService imcs) throws RemoteException { @@ -9393,16 +9285,15 @@ public class PackageManagerService extends IPackageManager.Stub { /** New install */ AsecInstallArgs(InstallParams params) { - super(params.originFile, params.originTrusted, params.observer, params.observer2, - params.flags, params.installerPackageName, params.getManifestDigest(), - params.getUser(), params.packageInstructionSetOverride, - params.packageAbiOverride); + super(params.originFile, params.originTrusted, params.observer, params.flags, + params.installerPackageName, params.getManifestDigest(), params.getUser(), + params.packageInstructionSetOverride, params.packageAbiOverride); } /** Existing install */ AsecInstallArgs(String fullCodePath, String fullResourcePath, String nativeLibraryPath, String instructionSet, boolean isExternal, boolean isForwardLocked) { - super(null, false, null, null, (isExternal ? INSTALL_EXTERNAL : 0) + super(null, false, null, (isExternal ? INSTALL_EXTERNAL : 0) | (isForwardLocked ? INSTALL_FORWARD_LOCK : 0), null, null, null, instructionSet, null); // Extract cid from fullCodePath @@ -9414,7 +9305,7 @@ public class PackageManagerService extends IPackageManager.Stub { } AsecInstallArgs(String cid, String instructionSet, boolean isForwardLocked) { - super(null, false, null, null, (isAsecExternal(cid) ? INSTALL_EXTERNAL : 0) + super(null, false, null, (isAsecExternal(cid) ? INSTALL_EXTERNAL : 0) | (isForwardLocked ? INSTALL_FORWARD_LOCK : 0), null, null, null, instructionSet, null); this.cid = cid; @@ -9424,7 +9315,7 @@ public class PackageManagerService extends IPackageManager.Stub { /** New install from existing */ AsecInstallArgs(File originPackageFile, String cid, String instructionSet, boolean isExternal, boolean isForwardLocked) { - super(originPackageFile, true, null, null, (isExternal ? INSTALL_EXTERNAL : 0) + super(originPackageFile, true, null, (isExternal ? INSTALL_EXTERNAL : 0) | (isForwardLocked ? INSTALL_FORWARD_LOCK : 0), null, null, null, instructionSet, null); this.cid = cid; |