Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3cbd4a58 authored by Nikita Ioffe's avatar Nikita Ioffe Committed by Android (Google) Code Review
Browse files

Merge "Require INSTALL_PACKAGES permission for setInstallAsApex"

parents d490ce14 4501c11c
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -11475,7 +11475,6 @@ package android.content.pm {
    method public void setAppIcon(@Nullable android.graphics.Bitmap);
    method public void setAppIcon(@Nullable android.graphics.Bitmap);
    method public void setAppLabel(@Nullable CharSequence);
    method public void setAppLabel(@Nullable CharSequence);
    method public void setAppPackageName(@Nullable String);
    method public void setAppPackageName(@Nullable String);
    method public void setInstallAsApex();
    method public void setInstallLocation(int);
    method public void setInstallLocation(int);
    method public void setInstallReason(int);
    method public void setInstallReason(int);
    method public void setMultiPackage();
    method public void setMultiPackage();
+1 −0
Original line number Original line Diff line number Diff line
@@ -1558,6 +1558,7 @@ package android.content.pm {
    method public void setDontKillApp(boolean);
    method public void setDontKillApp(boolean);
    method public void setEnableRollback();
    method public void setEnableRollback();
    method @RequiresPermission(android.Manifest.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS) public void setGrantedRuntimePermissions(String[]);
    method @RequiresPermission(android.Manifest.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS) public void setGrantedRuntimePermissions(String[]);
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setInstallAsApex();
    method public void setInstallAsInstantApp(boolean);
    method public void setInstallAsInstantApp(boolean);
    method public void setInstallAsVirtualPreload();
    method public void setInstallAsVirtualPreload();
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged();
    method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged();
+4 −0
Original line number Original line Diff line number Diff line
@@ -1545,7 +1545,11 @@ public class PackageInstaller {


        /**
        /**
         * Set this session to be installing an APEX package.
         * Set this session to be installing an APEX package.
         *
         * {@hide}
         */
         */
        @SystemApi
        @RequiresPermission(Manifest.permission.INSTALL_PACKAGES)
        public void setInstallAsApex() {
        public void setInstallAsApex() {
            installFlags |= PackageManager.INSTALL_APEX;
            installFlags |= PackageManager.INSTALL_APEX;
        }
        }
+3 −2
Original line number Original line Diff line number Diff line
@@ -483,11 +483,12 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements
            }
            }
        }
        }


        if (params.isStaged) {
        boolean isApex = (params.installFlags & PackageManager.INSTALL_APEX) != 0;
        if (params.isStaged || isApex) {
            mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, TAG);
            mContext.enforceCallingOrSelfPermission(Manifest.permission.INSTALL_PACKAGES, TAG);
        }
        }


        if ((params.installFlags & PackageManager.INSTALL_APEX) != 0) {
        if (isApex) {
            if (!mApexManager.isApexSupported()) {
            if (!mApexManager.isApexSupported()) {
                throw new IllegalArgumentException(
                throw new IllegalArgumentException(
                    "This device doesn't support the installation of APEX files");
                    "This device doesn't support the installation of APEX files");