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

Commit c00e49b6 authored by Svet Ganov's avatar Svet Ganov Committed by Android Git Automerger
Browse files

am d4b566bf: Merge "Add APIs for verifier to grant at install and revoke permissions" into mnc-dev

* commit 'd4b566bf':
  Add APIs for verifier to grant at install and revoke permissions
parents 7b0fa466 d4b566bf
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -104,6 +104,7 @@ package android {
    field public static final java.lang.String HARDWARE_TEST = "android.permission.HARDWARE_TEST";
    field public static final java.lang.String HDMI_CEC = "android.permission.HDMI_CEC";
    field public static final java.lang.String INJECT_EVENTS = "android.permission.INJECT_EVENTS";
    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_SHORTCUT = "com.android.launcher.permission.INSTALL_SHORTCUT";
@@ -181,6 +182,7 @@ package android {
    field public static final java.lang.String REQUEST_INSTALL_PACKAGES = "android.permission.REQUEST_INSTALL_PACKAGES";
    field public static final deprecated java.lang.String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
    field public static final java.lang.String RETRIEVE_WINDOW_CONTENT = "android.permission.RETRIEVE_WINDOW_CONTENT";
    field public static final java.lang.String REVOKE_RUNTIME_PERMISSIONS = "android.permission.REVOKE_RUNTIME_PERMISSIONS";
    field public static final java.lang.String SCORE_NETWORKS = "android.permission.SCORE_NETWORKS";
    field public static final java.lang.String SEND_RESPOND_VIA_MESSAGE = "android.permission.SEND_RESPOND_VIA_MESSAGE";
    field public static final java.lang.String SEND_SMS = "android.permission.SEND_SMS";
@@ -9436,6 +9438,7 @@ package android.content.pm {
    method public void setAppIcon(android.graphics.Bitmap);
    method public void setAppLabel(java.lang.CharSequence);
    method public void setAppPackageName(java.lang.String);
    method public void setGrantedRuntimePermissions(java.lang.String[]);
    method public void setInstallLocation(int);
    method public void setOriginatingUri(android.net.Uri);
    method public void setReferrerUri(android.net.Uri);
+1 −1
Original line number Diff line number Diff line
@@ -1023,7 +1023,7 @@ public class Intent implements Parcelable, Cloneable {
     *
     * <p>Note: if you app targets {@link android.os.Build.VERSION_CODES#MNC MNC}
     * and above and declares as using the {@link android.Manifest.permission#CALL_PHONE}
     * permission which is not granted, then atempting to use this action will
     * permission which is not granted, then attempting to use this action will
     * result in a {@link java.lang.SecurityException}.
     */
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+24 −0
Original line number Diff line number Diff line
@@ -18,8 +18,10 @@ package android.content.pm;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.SystemApi;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
@@ -889,6 +891,8 @@ public class PackageInstaller {
        public String abiOverride;
        /** {@hide} */
        public String volumeUuid;
        /** {@hide} */
        public String[] grantedRuntimePermissions;

        /**
         * Construct parameters for a new package install session.
@@ -914,6 +918,7 @@ public class PackageInstaller {
            referrerUri = source.readParcelable(null);
            abiOverride = source.readString();
            volumeUuid = source.readString();
            grantedRuntimePermissions = source.readStringArray();
        }

        /**
@@ -987,6 +992,23 @@ public class PackageInstaller {
            this.referrerUri = referrerUri;
        }

        /**
         * Sets which runtime permissions to be granted to the package at installation.
         * Using this API requires holding {@link android.Manifest.permission
         * #INSTALL_GRANT_RUNTIME_PERMISSIONS}
         *
         * @param permissions The permissions to grant or null to grant all runtime
         *     permissions.
         *
         * @hide
         */
        @SystemApi
        @RequiresPermission(android.Manifest.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS)
        public void setGrantedRuntimePermissions(String[] permissions) {
            installFlags |= PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS;
            this.grantedRuntimePermissions = permissions;
        }

        /** {@hide} */
        public void setInstallFlagsInternal() {
            installFlags |= PackageManager.INSTALL_INTERNAL;
@@ -1012,6 +1034,7 @@ public class PackageInstaller {
            pw.printPair("referrerUri", referrerUri);
            pw.printPair("abiOverride", abiOverride);
            pw.printPair("volumeUuid", volumeUuid);
            pw.printPair("grantedRuntimePermissions", grantedRuntimePermissions);
            pw.println();
        }

@@ -1033,6 +1056,7 @@ public class PackageInstaller {
            dest.writeParcelable(referrerUri, flags);
            dest.writeString(abiOverride);
            dest.writeString(volumeUuid);
            dest.writeStringArray(grantedRuntimePermissions);
        }

        public static final Parcelable.Creator<SessionParams>
+3 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap.CompressFormat;
import android.net.Uri;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Base64;
import android.util.Xml;
@@ -45,6 +46,8 @@ import java.util.Set;
/** {@hide} */
public class XmlUtils {

    private static final String STRING_ARRAY_SEPARATOR = ":";

    public static void skipCurrentTag(XmlPullParser parser)
            throws XmlPullParserException, IOException {
        int outerDepth = parser.getDepth();
+16 −8
Original line number Diff line number Diff line
@@ -2052,10 +2052,24 @@
    <permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"
        android:protectionLevel="signature|privileged" />

    <!-- @hide Allows an application to grant or revoke specific permissions. -->
    <permission android:name="android.permission.GRANT_REVOKE_PERMISSIONS"
    <!-- Allows an application to grant specific permissions.
         @hide -->
    <permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS"
        android:protectionLevel="signature|installer" />

    <!-- Allows an app that has this permission and the permissions to install packages
         to request certain runtime permissions to be granted at installation.
         @hide
         @SystemApi -->
    <permission android:name="android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS"
        android:protectionLevel="signature|installer|verifier" />

    <!-- Allows an application to revoke specific permissions.
        @hide
        @SystemApi -->
    <permission android:name="android.permission.REVOKE_RUNTIME_PERMISSIONS"
         android:protectionLevel="signature|installer|verifier" />

    <!-- @hide Allows an application to observe permission changes. -->
    <permission android:name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS"
        android:protectionLevel="signature|privileged" />
@@ -2539,12 +2553,6 @@
    <permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE"
        android:protectionLevel="signature" />

    <!-- Allows an app that has this permission and a permissions to install packages
         to request all runtime permissions to be granted at installation.
     @hide -->
    <permission android:name="android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS"
        android:protectionLevel="signature" />

    <!-- The system process that is allowed to bind to services in carrier apps will
         have this permission. Carrier apps should use this permission to protect
         their services that only the system is allowed to bind to.
Loading