summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorPhilip P. Moltmann <moltmann@google.com>2018-01-04 23:50:40 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-01-04 23:50:40 +0000
commite92d9e11564d400ef017acd51867c8f3afa05e30 (patch)
tree4ac0658a478988a42a82a3af384b6e2b126e3cd7 /core/java
parentf262c7f2e00b9239e0c333b81f1ccb1953713ab1 (diff)
parent7323eecba36991e161d621c001d35e8cccb258ab (diff)
Merge changes from topic "BackupManagerModernInstallInterface"
* changes: Disable installation via adb restore Use modern install method in backup service
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java17
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl8
-rw-r--r--core/java/android/content/pm/PackageInstaller.java26
-rw-r--r--core/java/android/content/pm/PackageManager.java12
4 files changed, 25 insertions, 38 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 8641a21a0b3c..82f2bacbcd39 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -64,7 +64,6 @@ import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
-import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -1683,22 +1682,6 @@ public class ApplicationPackageManager extends PackageManager {
}
@Override
- public void installPackage(Uri packageURI,
- PackageInstallObserver observer, int flags, String installerPackageName) {
- if (!"file".equals(packageURI.getScheme())) {
- throw new UnsupportedOperationException("Only file:// URIs are supported");
- }
-
- final String originPath = packageURI.getPath();
- try {
- mPM.installPackageAsUser(originPath, observer.getBinder(), flags, installerPackageName,
- mContext.getUserId());
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
-
- @Override
public int installExistingPackage(String packageName) throws NameNotFoundException {
return installExistingPackage(packageName, PackageManager.INSTALL_REASON_UNKNOWN);
}
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index 56a0def27602..e319750dfaa6 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -26,7 +26,6 @@ import android.content.pm.ChangedPackages;
import android.content.pm.InstantAppInfo;
import android.content.pm.FeatureInfo;
import android.content.pm.IDexModuleRegisterCallback;
-import android.content.pm.IPackageInstallObserver2;
import android.content.pm.IPackageInstaller;
import android.content.pm.IPackageDeleteObserver;
import android.content.pm.IPackageDeleteObserver2;
@@ -222,13 +221,6 @@ interface IPackageManager {
ParceledListSlice queryInstrumentation(
String targetPackage, int flags);
- /** @deprecated Use PackageInstaller instead */
- void installPackageAsUser(in String originPath,
- in IPackageInstallObserver2 observer,
- int flags,
- in String installerPackageName,
- int userId);
-
void finishPackageInstall(int token, boolean didLaunch);
void setInstallerPackageName(in String targetPackage, in String installerPackageName);
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index 77c5743fc882..df677d208d36 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -324,7 +324,14 @@ public class PackageInstaller {
*/
public int createSession(@NonNull SessionParams params) throws IOException {
try {
- return mInstaller.createSession(params, mInstallerPackageName, mUserId);
+ final String installerPackage;
+ if (params.installerPackageName == null) {
+ installerPackage = mInstallerPackageName;
+ } else {
+ installerPackage = params.installerPackageName;
+ }
+
+ return mInstaller.createSession(params, installerPackage, mUserId);
} catch (RuntimeException e) {
ExceptionUtils.maybeUnwrapIOException(e);
throw e;
@@ -1081,6 +1088,8 @@ public class PackageInstaller {
public String volumeUuid;
/** {@hide} */
public String[] grantedRuntimePermissions;
+ /** {@hide} */
+ public String installerPackageName;
/**
* Construct parameters for a new package install session.
@@ -1109,6 +1118,7 @@ public class PackageInstaller {
abiOverride = source.readString();
volumeUuid = source.readString();
grantedRuntimePermissions = source.readStringArray();
+ installerPackageName = source.readString();
}
/**
@@ -1304,6 +1314,18 @@ public class PackageInstaller {
}
}
+ /**
+ * Set the installer package for the app.
+ *
+ * By default this is the app that created the {@link PackageInstaller} object.
+ *
+ * @param installerPackageName name of the installer package
+ * {@hide}
+ */
+ public void setInstallerPackageName(String installerPackageName) {
+ this.installerPackageName = installerPackageName;
+ }
+
/** {@hide} */
public void dump(IndentingPrintWriter pw) {
pw.printPair("mode", mode);
@@ -1319,6 +1341,7 @@ public class PackageInstaller {
pw.printPair("abiOverride", abiOverride);
pw.printPair("volumeUuid", volumeUuid);
pw.printPair("grantedRuntimePermissions", grantedRuntimePermissions);
+ pw.printPair("installerPackageName", installerPackageName);
pw.println();
}
@@ -1343,6 +1366,7 @@ public class PackageInstaller {
dest.writeString(abiOverride);
dest.writeString(volumeUuid);
dest.writeStringArray(grantedRuntimePermissions);
+ dest.writeString(installerPackageName);
}
public static final Parcelable.Creator<SessionParams>
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 2d7263293f08..5b85ce34cd15 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -47,7 +47,6 @@ import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
@@ -4718,17 +4717,6 @@ public abstract class PackageManager {
}
/**
- * @deprecated replaced by {@link PackageInstaller}
- * @hide
- */
- @Deprecated
- public abstract void installPackage(
- Uri packageURI,
- PackageInstallObserver observer,
- @InstallFlags int flags,
- String installerPackageName);
-
- /**
* If there is already an application with the given package name installed
* on the system for other users, also install it for the calling user.
* @hide