Loading api/system-current.txt +4 −4 Original line number Original line Diff line number Diff line Loading @@ -2030,10 +2030,10 @@ package android.content.pm { } } public static class PackageInstaller.Session implements java.io.Closeable { public static class PackageInstaller.Session implements java.io.Closeable { method public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]); method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void commitTransferred(@NonNull android.content.IntentSender); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void commitTransferred(@NonNull android.content.IntentSender); method @Nullable public android.content.pm.DataLoaderParams getDataLoaderParams(); method @Nullable @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public android.content.pm.DataLoaderParams getDataLoaderParams(); method public void removeFile(int, @NonNull String); method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void removeFile(int, @NonNull String); } } public static class PackageInstaller.SessionInfo implements android.os.Parcelable { public static class PackageInstaller.SessionInfo implements android.os.Parcelable { Loading @@ -2054,7 +2054,7 @@ package android.content.pm { public static class PackageInstaller.SessionParams implements android.os.Parcelable { public static class PackageInstaller.SessionParams implements android.os.Parcelable { method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean); method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean); method @Deprecated public void setAllowDowngrade(boolean); method @Deprecated public void setAllowDowngrade(boolean); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams); method @RequiresPermission(allOf={android.Manifest.permission.INSTALL_PACKAGES, "com.android.permission.USE_INSTALLER_V2"}) public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams); method public void setDontKillApp(boolean); method public void setDontKillApp(boolean); method public void setEnableRollback(boolean); method public void setEnableRollback(boolean); method public void setEnableRollback(boolean, int); method public void setEnableRollback(boolean, int); Loading core/java/android/content/pm/PackageInstaller.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -1118,6 +1118,7 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2) public @Nullable DataLoaderParams getDataLoaderParams() { public @Nullable DataLoaderParams getDataLoaderParams() { try { try { DataLoaderParamsParcel data = mSession.getDataLoaderParams(); DataLoaderParamsParcel data = mSession.getDataLoaderParams(); Loading Loading @@ -1157,6 +1158,7 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2) public void addFile(@FileLocation int location, @NonNull String name, long lengthBytes, public void addFile(@FileLocation int location, @NonNull String name, long lengthBytes, @NonNull byte[] metadata, @Nullable byte[] signature) { @NonNull byte[] metadata, @Nullable byte[] signature) { try { try { Loading @@ -1180,6 +1182,7 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2) public void removeFile(@FileLocation int location, @NonNull String name) { public void removeFile(@FileLocation int location, @NonNull String name) { try { try { mSession.removeFile(location, name); mSession.removeFile(location, name); Loading Loading @@ -1927,7 +1930,9 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(Manifest.permission.INSTALL_PACKAGES) @RequiresPermission(allOf = { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.USE_INSTALLER_V2}) public void setDataLoaderParams(@NonNull DataLoaderParams dataLoaderParams) { public void setDataLoaderParams(@NonNull DataLoaderParams dataLoaderParams) { this.dataLoaderParams = dataLoaderParams; this.dataLoaderParams = dataLoaderParams; } } Loading core/res/AndroidManifest.xml +10 −0 Original line number Original line Diff line number Diff line Loading @@ -3654,6 +3654,16 @@ <permission android:name="com.android.permission.INSTALL_EXISTING_PACKAGES" <permission android:name="com.android.permission.INSTALL_EXISTING_PACKAGES" android:protectionLevel="signature|privileged" /> android:protectionLevel="signature|privileged" /> <!-- Allows an application to use the package installer v2 APIs. <p>The package installer v2 APIs are still a work in progress and we're currently validating they work in all scenarios. <p>Not for use by third-party applications. TODO(b/152310230): remove this permission once the APIs are confirmed to be sufficient. @hide --> <permission android:name="com.android.permission.USE_INSTALLER_V2" android:protectionLevel="signature|verifier" /> <!-- @SystemApi @TestApi Allows an application to clear user data. <!-- @SystemApi @TestApi Allows an application to clear user data. <p>Not for use by third-party applications <p>Not for use by third-party applications @hide @hide Loading packages/Shell/AndroidManifest.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -81,6 +81,8 @@ <uses-permission android:name="android.permission.READ_INPUT_STATE" /> <uses-permission android:name="android.permission.READ_INPUT_STATE" /> <uses-permission android:name="android.permission.SET_ORIENTATION" /> <uses-permission android:name="android.permission.SET_ORIENTATION" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <!-- TODO(b/152310230): remove once APIs are confirmed to be sufficient --> <uses-permission android:name="com.android.permission.USE_INSTALLER_V2" /> <uses-permission android:name="android.permission.MOVE_PACKAGE" /> <uses-permission android:name="android.permission.MOVE_PACKAGE" /> <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> Loading services/core/java/com/android/server/pm/PackageInstallerService.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -490,6 +490,14 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements throw new SecurityException("User restriction prevents installing"); throw new SecurityException("User restriction prevents installing"); } } if (params.dataLoaderParams != null && mContext.checkCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("You need the " + "com.android.permission.USE_INSTALLER_V2 permission " + "to use a data loader"); } String requestedInstallerPackageName = params.installerPackageName != null String requestedInstallerPackageName = params.installerPackageName != null ? params.installerPackageName : installerPackageName; ? params.installerPackageName : installerPackageName; Loading Loading
api/system-current.txt +4 −4 Original line number Original line Diff line number Diff line Loading @@ -2030,10 +2030,10 @@ package android.content.pm { } } public static class PackageInstaller.Session implements java.io.Closeable { public static class PackageInstaller.Session implements java.io.Closeable { method public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]); method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void addFile(int, @NonNull String, long, @NonNull byte[], @Nullable byte[]); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void commitTransferred(@NonNull android.content.IntentSender); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void commitTransferred(@NonNull android.content.IntentSender); method @Nullable public android.content.pm.DataLoaderParams getDataLoaderParams(); method @Nullable @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public android.content.pm.DataLoaderParams getDataLoaderParams(); method public void removeFile(int, @NonNull String); method @RequiresPermission("com.android.permission.USE_INSTALLER_V2") public void removeFile(int, @NonNull String); } } public static class PackageInstaller.SessionInfo implements android.os.Parcelable { public static class PackageInstaller.SessionInfo implements android.os.Parcelable { Loading @@ -2054,7 +2054,7 @@ package android.content.pm { public static class PackageInstaller.SessionParams implements android.os.Parcelable { public static class PackageInstaller.SessionParams implements android.os.Parcelable { method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean); method @RequiresPermission(android.Manifest.permission.ALLOCATE_AGGRESSIVE) public void setAllocateAggressive(boolean); method @Deprecated public void setAllowDowngrade(boolean); method @Deprecated public void setAllowDowngrade(boolean); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams); method @RequiresPermission(allOf={android.Manifest.permission.INSTALL_PACKAGES, "com.android.permission.USE_INSTALLER_V2"}) public void setDataLoaderParams(@NonNull android.content.pm.DataLoaderParams); method public void setDontKillApp(boolean); method public void setDontKillApp(boolean); method public void setEnableRollback(boolean); method public void setEnableRollback(boolean); method public void setEnableRollback(boolean, int); method public void setEnableRollback(boolean, int); Loading
core/java/android/content/pm/PackageInstaller.java +6 −1 Original line number Original line Diff line number Diff line Loading @@ -1118,6 +1118,7 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2) public @Nullable DataLoaderParams getDataLoaderParams() { public @Nullable DataLoaderParams getDataLoaderParams() { try { try { DataLoaderParamsParcel data = mSession.getDataLoaderParams(); DataLoaderParamsParcel data = mSession.getDataLoaderParams(); Loading Loading @@ -1157,6 +1158,7 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2) public void addFile(@FileLocation int location, @NonNull String name, long lengthBytes, public void addFile(@FileLocation int location, @NonNull String name, long lengthBytes, @NonNull byte[] metadata, @Nullable byte[] signature) { @NonNull byte[] metadata, @Nullable byte[] signature) { try { try { Loading @@ -1180,6 +1182,7 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(android.Manifest.permission.USE_INSTALLER_V2) public void removeFile(@FileLocation int location, @NonNull String name) { public void removeFile(@FileLocation int location, @NonNull String name) { try { try { mSession.removeFile(location, name); mSession.removeFile(location, name); Loading Loading @@ -1927,7 +1930,9 @@ public class PackageInstaller { * {@hide} * {@hide} */ */ @SystemApi @SystemApi @RequiresPermission(Manifest.permission.INSTALL_PACKAGES) @RequiresPermission(allOf = { Manifest.permission.INSTALL_PACKAGES, Manifest.permission.USE_INSTALLER_V2}) public void setDataLoaderParams(@NonNull DataLoaderParams dataLoaderParams) { public void setDataLoaderParams(@NonNull DataLoaderParams dataLoaderParams) { this.dataLoaderParams = dataLoaderParams; this.dataLoaderParams = dataLoaderParams; } } Loading
core/res/AndroidManifest.xml +10 −0 Original line number Original line Diff line number Diff line Loading @@ -3654,6 +3654,16 @@ <permission android:name="com.android.permission.INSTALL_EXISTING_PACKAGES" <permission android:name="com.android.permission.INSTALL_EXISTING_PACKAGES" android:protectionLevel="signature|privileged" /> android:protectionLevel="signature|privileged" /> <!-- Allows an application to use the package installer v2 APIs. <p>The package installer v2 APIs are still a work in progress and we're currently validating they work in all scenarios. <p>Not for use by third-party applications. TODO(b/152310230): remove this permission once the APIs are confirmed to be sufficient. @hide --> <permission android:name="com.android.permission.USE_INSTALLER_V2" android:protectionLevel="signature|verifier" /> <!-- @SystemApi @TestApi Allows an application to clear user data. <!-- @SystemApi @TestApi Allows an application to clear user data. <p>Not for use by third-party applications <p>Not for use by third-party applications @hide @hide Loading
packages/Shell/AndroidManifest.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -81,6 +81,8 @@ <uses-permission android:name="android.permission.READ_INPUT_STATE" /> <uses-permission android:name="android.permission.READ_INPUT_STATE" /> <uses-permission android:name="android.permission.SET_ORIENTATION" /> <uses-permission android:name="android.permission.SET_ORIENTATION" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> <!-- TODO(b/152310230): remove once APIs are confirmed to be sufficient --> <uses-permission android:name="com.android.permission.USE_INSTALLER_V2" /> <uses-permission android:name="android.permission.MOVE_PACKAGE" /> <uses-permission android:name="android.permission.MOVE_PACKAGE" /> <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> <uses-permission android:name="android.permission.CLEAR_APP_CACHE" /> Loading
services/core/java/com/android/server/pm/PackageInstallerService.java +8 −0 Original line number Original line Diff line number Diff line Loading @@ -490,6 +490,14 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements throw new SecurityException("User restriction prevents installing"); throw new SecurityException("User restriction prevents installing"); } } if (params.dataLoaderParams != null && mContext.checkCallingOrSelfPermission(Manifest.permission.USE_INSTALLER_V2) != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("You need the " + "com.android.permission.USE_INSTALLER_V2 permission " + "to use a data loader"); } String requestedInstallerPackageName = params.installerPackageName != null String requestedInstallerPackageName = params.installerPackageName != null ? params.installerPackageName : installerPackageName; ? params.installerPackageName : installerPackageName; Loading