Loading core/api/current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -11259,6 +11259,7 @@ package android.content.pm { method @Nullable public android.content.pm.SigningInfo getInitiatingPackageSigningInfo(); method @Nullable public String getInstallingPackageName(); method @Nullable public String getOriginatingPackageName(); method public int getPackageSource(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstallSourceInfo> CREATOR; } Loading Loading @@ -11466,6 +11467,11 @@ package android.content.pm { field public static final String EXTRA_STATUS = "android.content.pm.extra.STATUS"; field public static final String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE"; field public static final String EXTRA_STORAGE_PATH = "android.content.pm.extra.STORAGE_PATH"; field public static final int PACKAGE_SOURCE_DOWNLOADED_FILE = 4; // 0x4 field public static final int PACKAGE_SOURCE_LOCAL_FILE = 3; // 0x3 field public static final int PACKAGE_SOURCE_OTHER = 1; // 0x1 field public static final int PACKAGE_SOURCE_STORE = 2; // 0x2 field public static final int PACKAGE_SOURCE_UNSPECIFIED = 0; // 0x0 field public static final int STATUS_FAILURE = 1; // 0x1 field public static final int STATUS_FAILURE_ABORTED = 3; // 0x3 field public static final int STATUS_FAILURE_BLOCKED = 2; // 0x2 Loading Loading @@ -11522,6 +11528,7 @@ package android.content.pm { method public int getMode(); method public int getOriginatingUid(); method @Nullable public android.net.Uri getOriginatingUri(); method public int getPackageSource(); method public int getParentSessionId(); method public float getProgress(); method @Nullable public android.net.Uri getReferrerUri(); Loading Loading @@ -11570,6 +11577,7 @@ package android.content.pm { method public void setMultiPackage(); method public void setOriginatingUid(int); method public void setOriginatingUri(@Nullable android.net.Uri); method public void setPackageSource(int); method public void setReferrerUri(@Nullable android.net.Uri); method public void setRequireUserAction(int); method public void setSize(long); core/java/android/content/pm/InstallSourceInfo.java +21 −0 Original line number Diff line number Diff line Loading @@ -35,14 +35,26 @@ public final class InstallSourceInfo implements Parcelable { @Nullable private final String mInstallingPackageName; @Nullable private final int mPackageSource; /** @hide */ public InstallSourceInfo(@Nullable String initiatingPackageName, @Nullable SigningInfo initiatingPackageSigningInfo, @Nullable String originatingPackageName, @Nullable String installingPackageName) { this(initiatingPackageName, initiatingPackageSigningInfo, originatingPackageName, installingPackageName, PackageInstaller.PACKAGE_SOURCE_UNSPECIFIED); } /** @hide */ public InstallSourceInfo(@Nullable String initiatingPackageName, @Nullable SigningInfo initiatingPackageSigningInfo, @Nullable String originatingPackageName, @Nullable String installingPackageName, int packageSource) { mInitiatingPackageName = initiatingPackageName; mInitiatingPackageSigningInfo = initiatingPackageSigningInfo; mOriginatingPackageName = originatingPackageName; mInstallingPackageName = installingPackageName; mPackageSource = packageSource; } @Override Loading @@ -57,6 +69,7 @@ public final class InstallSourceInfo implements Parcelable { dest.writeParcelable(mInitiatingPackageSigningInfo, flags); dest.writeString(mOriginatingPackageName); dest.writeString(mInstallingPackageName); dest.writeInt(mPackageSource); } private InstallSourceInfo(Parcel source) { Loading @@ -64,6 +77,7 @@ public final class InstallSourceInfo implements Parcelable { mInitiatingPackageSigningInfo = source.readParcelable(SigningInfo.class.getClassLoader(), android.content.pm.SigningInfo.class); mOriginatingPackageName = source.readString(); mInstallingPackageName = source.readString(); mPackageSource = source.readInt(); } /** Loading Loading @@ -122,6 +136,13 @@ public final class InstallSourceInfo implements Parcelable { return mInstallingPackageName; } /** * Information about the package source when installer installed this app. */ public @PackageInstaller.PackageSourceType int getPackageSource() { return mPackageSource; } @NonNull public static final Parcelable.Creator<InstallSourceInfo> CREATOR = new Creator<InstallSourceInfo>() { Loading core/java/android/content/pm/PackageInstaller.java +67 −0 Original line number Diff line number Diff line Loading @@ -418,6 +418,48 @@ public class PackageInstaller { @Retention(RetentionPolicy.SOURCE) public @interface FileLocation{} /** * The installer did not call SessionParams#setPackageSource(int) to specify the package * source. */ public static final int PACKAGE_SOURCE_UNSPECIFIED = 0; /** * Code indicating that the package being installed is from a source not reflected by any * other package source constant. */ public static final int PACKAGE_SOURCE_OTHER = 1; /** * Code indicating that the package being installed is from a store. An app store that * installs an app for the user would use this. */ public static final int PACKAGE_SOURCE_STORE = 2; /** * Code indicating that the package being installed comes from a local file on the device. A * file manager that is facilitating the installation of an APK file would use this. */ public static final int PACKAGE_SOURCE_LOCAL_FILE = 3; /** * Code indicating that the package being installed comes from a file that was downloaded to * the device by the user. For use in place of PACKAGE_SOURCE_LOCAL_FILE when the installer * knows the package was downloaded. */ public static final int PACKAGE_SOURCE_DOWNLOADED_FILE = 4; /** @hide */ @IntDef(prefix = { "PACKAGE_SOURCE_" }, value = { PACKAGE_SOURCE_UNSPECIFIED, PACKAGE_SOURCE_STORE, PACKAGE_SOURCE_LOCAL_FILE, PACKAGE_SOURCE_DOWNLOADED_FILE, PACKAGE_SOURCE_OTHER }) @Retention(RetentionPolicy.SOURCE) @interface PackageSourceType{} /** Default set of checksums - includes all available checksums. * @see Session#requestChecksums */ private static final int DEFAULT_CHECKSUMS = Loading Loading @@ -1722,6 +1764,8 @@ public class PackageInstaller { /** {@hide} */ public boolean isMultiPackage; /** {@hide} */ public int packageSource = PACKAGE_SOURCE_UNSPECIFIED; /** {@hide} */ public boolean isStaged; /** {@hide} */ public long requiredInstalledVersionCode = PackageManager.VERSION_CODE_HIGHEST; Loading Loading @@ -1776,6 +1820,7 @@ public class PackageInstaller { } rollbackDataPolicy = source.readInt(); requireUserAction = source.readInt(); packageSource = source.readInt(); } /** {@hide} */ Loading Loading @@ -1805,6 +1850,7 @@ public class PackageInstaller { ret.dataLoaderParams = dataLoaderParams; ret.rollbackDataPolicy = rollbackDataPolicy; ret.requireUserAction = requireUserAction; ret.packageSource = packageSource; return ret; } Loading Loading @@ -1925,6 +1971,13 @@ public class PackageInstaller { this.grantedRuntimePermissions = permissions; } /** * Sets the apk package installation source. */ public void setPackageSource(@PackageSourceType int packageSource) { this.packageSource = packageSource; } /** * Sets which restricted permissions to be allowlisted for the app. Allowlisting * is not granting the permissions, rather it allows the app to hold permissions Loading Loading @@ -2289,6 +2342,7 @@ public class PackageInstaller { pw.printPair("abiOverride", abiOverride); pw.printPair("volumeUuid", volumeUuid); pw.printPair("grantedRuntimePermissions", grantedRuntimePermissions); pw.printPair("packageSource", packageSource); pw.printPair("whitelistedRestrictedPermissions", whitelistedRestrictedPermissions); pw.printPair("autoRevokePermissions", autoRevokePermissionsMode); pw.printPair("installerPackageName", installerPackageName); Loading Loading @@ -2338,6 +2392,7 @@ public class PackageInstaller { } dest.writeInt(rollbackDataPolicy); dest.writeInt(requireUserAction); dest.writeInt(packageSource); } public static final Parcelable.Creator<SessionParams> Loading Loading @@ -2539,6 +2594,9 @@ public class PackageInstaller { /** {@hide} */ public int requireUserAction; /** {@hide} */ public int packageSource = PACKAGE_SOURCE_UNSPECIFIED; /** {@hide} */ public int installerUid; Loading Loading @@ -2593,6 +2651,7 @@ public class PackageInstaller { createdMillis = source.readLong(); requireUserAction = source.readInt(); installerUid = source.readInt(); packageSource = source.readInt(); } /** Loading Loading @@ -2928,6 +2987,13 @@ public class PackageInstaller { return createDetailsIntent(); } /** * Gets the apk package installation source. */ public @PackageSourceType int getPackageSource() { return packageSource; } /** * Returns true if this session is a multi-package session containing references to other * sessions. Loading Loading @@ -3163,6 +3229,7 @@ public class PackageInstaller { dest.writeLong(createdMillis); dest.writeInt(requireUserAction); dest.writeInt(installerUid); dest.writeInt(packageSource); } public static final Parcelable.Creator<SessionInfo> Loading packages/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java +5 −1 Original line number Diff line number Diff line Loading @@ -130,8 +130,12 @@ public class InstallInstalling extends AlertActivity { } else { PackageInstaller.SessionParams params = new PackageInstaller.SessionParams( PackageInstaller.SessionParams.MODE_FULL_INSTALL); final Uri referrerUri = getIntent().getParcelableExtra(Intent.EXTRA_REFERRER); params.setPackageSource( referrerUri != null ? PackageInstaller.PACKAGE_SOURCE_DOWNLOADED_FILE : PackageInstaller.PACKAGE_SOURCE_LOCAL_FILE); params.setInstallAsInstantApp(false); params.setReferrerUri(getIntent().getParcelableExtra(Intent.EXTRA_REFERRER)); params.setReferrerUri(referrerUri); params.setOriginatingUri(getIntent() .getParcelableExtra(Intent.EXTRA_ORIGINATING_URI)); params.setOriginatingUid(getIntent().getIntExtra(Intent.EXTRA_ORIGINATING_UID, Loading services/core/java/com/android/server/pm/ComputerEngine.java +1 −1 Original line number Diff line number Diff line Loading @@ -5033,7 +5033,7 @@ public class ComputerEngine implements Computer { } return new InstallSourceInfo(initiatingPackageName, initiatingPackageSigningInfo, originatingPackageName, installerPackageName); originatingPackageName, installerPackageName, installSource.packageSource); } @PackageManager.EnabledState Loading Loading
core/api/current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -11259,6 +11259,7 @@ package android.content.pm { method @Nullable public android.content.pm.SigningInfo getInitiatingPackageSigningInfo(); method @Nullable public String getInstallingPackageName(); method @Nullable public String getOriginatingPackageName(); method public int getPackageSource(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.content.pm.InstallSourceInfo> CREATOR; } Loading Loading @@ -11466,6 +11467,11 @@ package android.content.pm { field public static final String EXTRA_STATUS = "android.content.pm.extra.STATUS"; field public static final String EXTRA_STATUS_MESSAGE = "android.content.pm.extra.STATUS_MESSAGE"; field public static final String EXTRA_STORAGE_PATH = "android.content.pm.extra.STORAGE_PATH"; field public static final int PACKAGE_SOURCE_DOWNLOADED_FILE = 4; // 0x4 field public static final int PACKAGE_SOURCE_LOCAL_FILE = 3; // 0x3 field public static final int PACKAGE_SOURCE_OTHER = 1; // 0x1 field public static final int PACKAGE_SOURCE_STORE = 2; // 0x2 field public static final int PACKAGE_SOURCE_UNSPECIFIED = 0; // 0x0 field public static final int STATUS_FAILURE = 1; // 0x1 field public static final int STATUS_FAILURE_ABORTED = 3; // 0x3 field public static final int STATUS_FAILURE_BLOCKED = 2; // 0x2 Loading Loading @@ -11522,6 +11528,7 @@ package android.content.pm { method public int getMode(); method public int getOriginatingUid(); method @Nullable public android.net.Uri getOriginatingUri(); method public int getPackageSource(); method public int getParentSessionId(); method public float getProgress(); method @Nullable public android.net.Uri getReferrerUri(); Loading Loading @@ -11570,6 +11577,7 @@ package android.content.pm { method public void setMultiPackage(); method public void setOriginatingUid(int); method public void setOriginatingUri(@Nullable android.net.Uri); method public void setPackageSource(int); method public void setReferrerUri(@Nullable android.net.Uri); method public void setRequireUserAction(int); method public void setSize(long);
core/java/android/content/pm/InstallSourceInfo.java +21 −0 Original line number Diff line number Diff line Loading @@ -35,14 +35,26 @@ public final class InstallSourceInfo implements Parcelable { @Nullable private final String mInstallingPackageName; @Nullable private final int mPackageSource; /** @hide */ public InstallSourceInfo(@Nullable String initiatingPackageName, @Nullable SigningInfo initiatingPackageSigningInfo, @Nullable String originatingPackageName, @Nullable String installingPackageName) { this(initiatingPackageName, initiatingPackageSigningInfo, originatingPackageName, installingPackageName, PackageInstaller.PACKAGE_SOURCE_UNSPECIFIED); } /** @hide */ public InstallSourceInfo(@Nullable String initiatingPackageName, @Nullable SigningInfo initiatingPackageSigningInfo, @Nullable String originatingPackageName, @Nullable String installingPackageName, int packageSource) { mInitiatingPackageName = initiatingPackageName; mInitiatingPackageSigningInfo = initiatingPackageSigningInfo; mOriginatingPackageName = originatingPackageName; mInstallingPackageName = installingPackageName; mPackageSource = packageSource; } @Override Loading @@ -57,6 +69,7 @@ public final class InstallSourceInfo implements Parcelable { dest.writeParcelable(mInitiatingPackageSigningInfo, flags); dest.writeString(mOriginatingPackageName); dest.writeString(mInstallingPackageName); dest.writeInt(mPackageSource); } private InstallSourceInfo(Parcel source) { Loading @@ -64,6 +77,7 @@ public final class InstallSourceInfo implements Parcelable { mInitiatingPackageSigningInfo = source.readParcelable(SigningInfo.class.getClassLoader(), android.content.pm.SigningInfo.class); mOriginatingPackageName = source.readString(); mInstallingPackageName = source.readString(); mPackageSource = source.readInt(); } /** Loading Loading @@ -122,6 +136,13 @@ public final class InstallSourceInfo implements Parcelable { return mInstallingPackageName; } /** * Information about the package source when installer installed this app. */ public @PackageInstaller.PackageSourceType int getPackageSource() { return mPackageSource; } @NonNull public static final Parcelable.Creator<InstallSourceInfo> CREATOR = new Creator<InstallSourceInfo>() { Loading
core/java/android/content/pm/PackageInstaller.java +67 −0 Original line number Diff line number Diff line Loading @@ -418,6 +418,48 @@ public class PackageInstaller { @Retention(RetentionPolicy.SOURCE) public @interface FileLocation{} /** * The installer did not call SessionParams#setPackageSource(int) to specify the package * source. */ public static final int PACKAGE_SOURCE_UNSPECIFIED = 0; /** * Code indicating that the package being installed is from a source not reflected by any * other package source constant. */ public static final int PACKAGE_SOURCE_OTHER = 1; /** * Code indicating that the package being installed is from a store. An app store that * installs an app for the user would use this. */ public static final int PACKAGE_SOURCE_STORE = 2; /** * Code indicating that the package being installed comes from a local file on the device. A * file manager that is facilitating the installation of an APK file would use this. */ public static final int PACKAGE_SOURCE_LOCAL_FILE = 3; /** * Code indicating that the package being installed comes from a file that was downloaded to * the device by the user. For use in place of PACKAGE_SOURCE_LOCAL_FILE when the installer * knows the package was downloaded. */ public static final int PACKAGE_SOURCE_DOWNLOADED_FILE = 4; /** @hide */ @IntDef(prefix = { "PACKAGE_SOURCE_" }, value = { PACKAGE_SOURCE_UNSPECIFIED, PACKAGE_SOURCE_STORE, PACKAGE_SOURCE_LOCAL_FILE, PACKAGE_SOURCE_DOWNLOADED_FILE, PACKAGE_SOURCE_OTHER }) @Retention(RetentionPolicy.SOURCE) @interface PackageSourceType{} /** Default set of checksums - includes all available checksums. * @see Session#requestChecksums */ private static final int DEFAULT_CHECKSUMS = Loading Loading @@ -1722,6 +1764,8 @@ public class PackageInstaller { /** {@hide} */ public boolean isMultiPackage; /** {@hide} */ public int packageSource = PACKAGE_SOURCE_UNSPECIFIED; /** {@hide} */ public boolean isStaged; /** {@hide} */ public long requiredInstalledVersionCode = PackageManager.VERSION_CODE_HIGHEST; Loading Loading @@ -1776,6 +1820,7 @@ public class PackageInstaller { } rollbackDataPolicy = source.readInt(); requireUserAction = source.readInt(); packageSource = source.readInt(); } /** {@hide} */ Loading Loading @@ -1805,6 +1850,7 @@ public class PackageInstaller { ret.dataLoaderParams = dataLoaderParams; ret.rollbackDataPolicy = rollbackDataPolicy; ret.requireUserAction = requireUserAction; ret.packageSource = packageSource; return ret; } Loading Loading @@ -1925,6 +1971,13 @@ public class PackageInstaller { this.grantedRuntimePermissions = permissions; } /** * Sets the apk package installation source. */ public void setPackageSource(@PackageSourceType int packageSource) { this.packageSource = packageSource; } /** * Sets which restricted permissions to be allowlisted for the app. Allowlisting * is not granting the permissions, rather it allows the app to hold permissions Loading Loading @@ -2289,6 +2342,7 @@ public class PackageInstaller { pw.printPair("abiOverride", abiOverride); pw.printPair("volumeUuid", volumeUuid); pw.printPair("grantedRuntimePermissions", grantedRuntimePermissions); pw.printPair("packageSource", packageSource); pw.printPair("whitelistedRestrictedPermissions", whitelistedRestrictedPermissions); pw.printPair("autoRevokePermissions", autoRevokePermissionsMode); pw.printPair("installerPackageName", installerPackageName); Loading Loading @@ -2338,6 +2392,7 @@ public class PackageInstaller { } dest.writeInt(rollbackDataPolicy); dest.writeInt(requireUserAction); dest.writeInt(packageSource); } public static final Parcelable.Creator<SessionParams> Loading Loading @@ -2539,6 +2594,9 @@ public class PackageInstaller { /** {@hide} */ public int requireUserAction; /** {@hide} */ public int packageSource = PACKAGE_SOURCE_UNSPECIFIED; /** {@hide} */ public int installerUid; Loading Loading @@ -2593,6 +2651,7 @@ public class PackageInstaller { createdMillis = source.readLong(); requireUserAction = source.readInt(); installerUid = source.readInt(); packageSource = source.readInt(); } /** Loading Loading @@ -2928,6 +2987,13 @@ public class PackageInstaller { return createDetailsIntent(); } /** * Gets the apk package installation source. */ public @PackageSourceType int getPackageSource() { return packageSource; } /** * Returns true if this session is a multi-package session containing references to other * sessions. Loading Loading @@ -3163,6 +3229,7 @@ public class PackageInstaller { dest.writeLong(createdMillis); dest.writeInt(requireUserAction); dest.writeInt(installerUid); dest.writeInt(packageSource); } public static final Parcelable.Creator<SessionInfo> Loading
packages/PackageInstaller/src/com/android/packageinstaller/InstallInstalling.java +5 −1 Original line number Diff line number Diff line Loading @@ -130,8 +130,12 @@ public class InstallInstalling extends AlertActivity { } else { PackageInstaller.SessionParams params = new PackageInstaller.SessionParams( PackageInstaller.SessionParams.MODE_FULL_INSTALL); final Uri referrerUri = getIntent().getParcelableExtra(Intent.EXTRA_REFERRER); params.setPackageSource( referrerUri != null ? PackageInstaller.PACKAGE_SOURCE_DOWNLOADED_FILE : PackageInstaller.PACKAGE_SOURCE_LOCAL_FILE); params.setInstallAsInstantApp(false); params.setReferrerUri(getIntent().getParcelableExtra(Intent.EXTRA_REFERRER)); params.setReferrerUri(referrerUri); params.setOriginatingUri(getIntent() .getParcelableExtra(Intent.EXTRA_ORIGINATING_URI)); params.setOriginatingUid(getIntent().getIntExtra(Intent.EXTRA_ORIGINATING_UID, Loading
services/core/java/com/android/server/pm/ComputerEngine.java +1 −1 Original line number Diff line number Diff line Loading @@ -5033,7 +5033,7 @@ public class ComputerEngine implements Computer { } return new InstallSourceInfo(initiatingPackageName, initiatingPackageSigningInfo, originatingPackageName, installerPackageName); originatingPackageName, installerPackageName, installSource.packageSource); } @PackageManager.EnabledState Loading