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

Commit 0dba101b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add self update permission"

parents 34a55512 cfdc1eea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ package android {
    field public static final java.lang.String INSTALL_GRANT_RUNTIME_PERMISSIONS = "android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS";
    field public static final java.lang.String INSTALL_LOCATION_PROVIDER = "android.permission.INSTALL_LOCATION_PROVIDER";
    field public static final java.lang.String INSTALL_PACKAGES = "android.permission.INSTALL_PACKAGES";
    field public static final java.lang.String INSTALL_SELF_UPDATES = "android.permission.INSTALL_SELF_UPDATES";
    field public static final java.lang.String INSTALL_SHORTCUT = "com.android.launcher.permission.INSTALL_SHORTCUT";
    field public static final java.lang.String INSTANT_APP_FOREGROUND_SERVICE = "android.permission.INSTANT_APP_FOREGROUND_SERVICE";
    field public static final java.lang.String INTENT_FILTER_VERIFICATION_AGENT = "android.permission.INTENT_FILTER_VERIFICATION_AGENT";
+8 −0
Original line number Diff line number Diff line
@@ -2778,6 +2778,14 @@
    <permission android:name="android.permission.INSTALL_PACKAGES"
      android:protectionLevel="signature|privileged" />

    <!-- @SystemApi Allows an application to install self updates. This is a limited version
         of {@link android.Manifest.permission#INSTALL_PACKAGES}.
        <p>Not for use by third-party applications.
        @hide
    -->
    <permission android:name="android.permission.INSTALL_SELF_UPDATES"
        android:protectionLevel="signature|privileged" />

    <!-- @SystemApi Allows an application to clear user data.
         <p>Not for use by third-party applications
         @hide
+7 −1
Original line number Diff line number Diff line
@@ -312,9 +312,15 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
            return false;
        }

        final boolean isPermissionGranted =
        final boolean isInstallPermissionGranted =
                (mPm.checkUidPermission(android.Manifest.permission.INSTALL_PACKAGES,
                        mInstallerUid) == PackageManager.PERMISSION_GRANTED);
        final boolean isSelfUpdatePermissionGranted =
                (mPm.checkUidPermission(android.Manifest.permission.INSTALL_SELF_UPDATES,
                        mInstallerUid) == PackageManager.PERMISSION_GRANTED);
        final boolean isPermissionGranted = isInstallPermissionGranted
                || (isSelfUpdatePermissionGranted
                    && mPm.getPackageUid(mPackageName, 0, userId) == mInstallerUid);
        final boolean isInstallerRoot = (mInstallerUid == Process.ROOT_UID);
        final boolean forcePermissionPrompt =
                (params.installFlags & PackageManager.INSTALL_FORCE_PERMISSION_PROMPT) != 0;