Loading cmds/pm/src/com/android/commands/pm/Pm.java +6 −95 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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; Loading @@ -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; } Loading @@ -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) { Loading core/java/android/app/ApplicationPackageManager.java +53 −38 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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 Loading @@ -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) { try { mPM.installPackageWithVerificationAndEncryptionEtc(packageURI, null, observer.getBinder(), flags, installerPackageName, verificationParams, installCommon(packageURI, observer, flags, installerPackageName, verificationParams, encryptionParams); } catch (RemoteException e) { // Should never happen! } 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.installPackage(originPath, observer.getBinder(), flags, installerPackageName, verificationParams, null); } catch (RemoteException ignored) { } } Loading Loading @@ -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; Loading core/java/android/content/pm/IPackageManager.aidl +6 −43 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading services/core/java/com/android/server/pm/PackageManagerService.java +27 −136 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
cmds/pm/src/com/android/commands/pm/Pm.java +6 −95 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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) { Loading Loading @@ -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; Loading @@ -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; } Loading @@ -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) { Loading
core/java/android/app/ApplicationPackageManager.java +53 −38 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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 Loading @@ -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) { try { mPM.installPackageWithVerificationAndEncryptionEtc(packageURI, null, observer.getBinder(), flags, installerPackageName, verificationParams, installCommon(packageURI, observer, flags, installerPackageName, verificationParams, encryptionParams); } catch (RemoteException e) { // Should never happen! } 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.installPackage(originPath, observer.getBinder(), flags, installerPackageName, verificationParams, null); } catch (RemoteException ignored) { } } Loading Loading @@ -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; Loading
core/java/android/content/pm/IPackageManager.aidl +6 −43 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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); Loading
services/core/java/com/android/server/pm/PackageManagerService.java +27 −136 File changed.Preview size limit exceeded, changes collapsed. Show changes