diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/content/pm/PackageInstaller.java | 22 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageManager.java | 9 |
2 files changed, 31 insertions, 0 deletions
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java index 9341be16c28f..32830053fae2 100644 --- a/core/java/android/content/pm/PackageInstaller.java +++ b/core/java/android/content/pm/PackageInstaller.java @@ -868,6 +868,9 @@ public class PackageInstaller { public static final int MODE_INHERIT_EXISTING = 2; /** {@hide} */ + public static final int UID_UNKNOWN = -1; + + /** {@hide} */ public int mode = MODE_INVALID; /** {@hide} */ public int installFlags; @@ -886,6 +889,8 @@ public class PackageInstaller { /** {@hide} */ public Uri originatingUri; /** {@hide} */ + public int originatingUid = UID_UNKNOWN; + /** {@hide} */ public Uri referrerUri; /** {@hide} */ public String abiOverride; @@ -915,6 +920,7 @@ public class PackageInstaller { appIcon = source.readParcelable(null); appLabel = source.readString(); originatingUri = source.readParcelable(null); + originatingUid = source.readInt(); referrerUri = source.readParcelable(null); abiOverride = source.readString(); volumeUuid = source.readString(); @@ -983,6 +989,15 @@ public class PackageInstaller { } /** + * Sets the UID that initiated package installation. Used for verification purposes. + * + * @see PackageManager#EXTRA_VERIFICATION_INSTALLER_UID + */ + public void setOriginatingUid(int originatingUid) { + this.originatingUid = originatingUid; + } + + /** * Optionally set the URI that referred you to install this package. Used * for verification purposes. * @@ -1022,6 +1037,11 @@ public class PackageInstaller { } /** {@hide} */ + public void setInstallFlagsForcePermissionPrompt() { + installFlags |= PackageManager.INSTALL_FORCE_PERMISSION_PROMPT; + } + + /** {@hide} */ public void dump(IndentingPrintWriter pw) { pw.printPair("mode", mode); pw.printHexPair("installFlags", installFlags); @@ -1031,6 +1051,7 @@ public class PackageInstaller { pw.printPair("appIcon", (appIcon != null)); pw.printPair("appLabel", appLabel); pw.printPair("originatingUri", originatingUri); + pw.printPair("originatingUid", originatingUid); pw.printPair("referrerUri", referrerUri); pw.printPair("abiOverride", abiOverride); pw.printPair("volumeUuid", volumeUuid); @@ -1053,6 +1074,7 @@ public class PackageInstaller { dest.writeParcelable(appIcon, flags); dest.writeString(appLabel); dest.writeParcelable(originatingUri, flags); + dest.writeInt(originatingUid); dest.writeParcelable(referrerUri, flags); dest.writeString(abiOverride); dest.writeString(volumeUuid); diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index c8e9402e6442..054dafe72750 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -422,6 +422,15 @@ public abstract class PackageManager { public static final int INSTALL_FORCE_VOLUME_UUID = 0x00000200; /** + * Flag parameter for {@link #installPackage} to indicate that we always want to force + * the prompt for permission approval. This overrides any special behaviour for internal + * components. + * + * @hide + */ + public static final int INSTALL_FORCE_PERMISSION_PROMPT = 0x00000400; + + /** * Flag parameter for * {@link #setComponentEnabledSetting(android.content.ComponentName, int, int)} to indicate * that you don't want to kill the app containing the component. Be careful when you set this |
