Loading api/current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -11482,7 +11482,6 @@ package android.content.pm { method public void setOriginatingUri(@Nullable android.net.Uri); method public void setReferrerUri(@Nullable android.net.Uri); method public void setSize(long); method public void setStaged(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.PackageInstaller.SessionParams> CREATOR; field public static final int MODE_FULL_INSTALL = 1; // 0x1 api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1535,6 +1535,7 @@ package android.content.pm { method @RequiresPermission(android.Manifest.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS) public void setGrantedRuntimePermissions(String[]); method public void setInstallAsInstantApp(boolean); method public void setInstallAsVirtualPreload(); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged(); } public class PackageItemInfo { Loading core/java/android/content/pm/PackageInstaller.java +4 −5 Original line number Diff line number Diff line Loading @@ -791,11 +791,6 @@ public class PackageInstaller { * individual session IDs can be added with {@link #addChildSessionId(int)} * and commit of the multi-package session will result in all child sessions * being committed atomically. * <p> * If a package requires to be installed only at reboot, the session should * be marked as a staged session by calling {@link SessionParams#setStaged()} * with {@code true}. This can also apply to a multi-package session, in * which case all the packages in the session will be applied at reboot. */ public static class Session implements Closeable { /** {@hide} */ Loading Loading @@ -1539,7 +1534,11 @@ public class PackageInstaller { * Staged sessions are scheduled to be installed at next reboot. Staged sessions can also be * multi-package. In that case, if any of the children sessions fail to install at reboot, * all the other children sessions are aborted as well. * * {@hide} */ @SystemApi @RequiresPermission(Manifest.permission.INSTALL_PACKAGES) public void setStaged() { this.isStaged = true; } Loading services/core/java/com/android/server/pm/PackageInstallerService.java +4 −0 Original line number Diff line number Diff line Loading @@ -481,6 +481,10 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements } } if (params.isStaged) { mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, TAG); } if (!params.isMultiPackage) { // Only system components can circumvent runtime permissions when installing. if ((params.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0 Loading Loading
api/current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -11482,7 +11482,6 @@ package android.content.pm { method public void setOriginatingUri(@Nullable android.net.Uri); method public void setReferrerUri(@Nullable android.net.Uri); method public void setSize(long); method public void setStaged(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.PackageInstaller.SessionParams> CREATOR; field public static final int MODE_FULL_INSTALL = 1; // 0x1
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1535,6 +1535,7 @@ package android.content.pm { method @RequiresPermission(android.Manifest.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS) public void setGrantedRuntimePermissions(String[]); method public void setInstallAsInstantApp(boolean); method public void setInstallAsVirtualPreload(); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged(); } public class PackageItemInfo { Loading
core/java/android/content/pm/PackageInstaller.java +4 −5 Original line number Diff line number Diff line Loading @@ -791,11 +791,6 @@ public class PackageInstaller { * individual session IDs can be added with {@link #addChildSessionId(int)} * and commit of the multi-package session will result in all child sessions * being committed atomically. * <p> * If a package requires to be installed only at reboot, the session should * be marked as a staged session by calling {@link SessionParams#setStaged()} * with {@code true}. This can also apply to a multi-package session, in * which case all the packages in the session will be applied at reboot. */ public static class Session implements Closeable { /** {@hide} */ Loading Loading @@ -1539,7 +1534,11 @@ public class PackageInstaller { * Staged sessions are scheduled to be installed at next reboot. Staged sessions can also be * multi-package. In that case, if any of the children sessions fail to install at reboot, * all the other children sessions are aborted as well. * * {@hide} */ @SystemApi @RequiresPermission(Manifest.permission.INSTALL_PACKAGES) public void setStaged() { this.isStaged = true; } Loading
services/core/java/com/android/server/pm/PackageInstallerService.java +4 −0 Original line number Diff line number Diff line Loading @@ -481,6 +481,10 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements } } if (params.isStaged) { mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, TAG); } if (!params.isMultiPackage) { // Only system components can circumvent runtime permissions when installing. if ((params.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0 Loading