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

Commit e2107314 authored by Chad Brubaker's avatar Chad Brubaker
Browse files

Remove usage info

Test: checkbuild
Bug: 123699931
Change-Id: I1adf60c3667ea88c296fc06807ac22b2ddf0e226
parent bdda90fc
Loading
Loading
Loading
Loading
+7 −33
Original line number Diff line number Diff line
@@ -224,6 +224,11 @@ package android {
  public static final class R.attr {
    ctor public R.attr();
    field public static final int __removed1 = 16844185; // 0x1010599
    field public static final int __removed2 = 16844186; // 0x101059a
    field public static final int __removed3 = 16844187; // 0x101059b
    field public static final int __removed4 = 16844188; // 0x101059c
    field public static final int __removed5 = 16844189; // 0x101059d
    field public static final int absListViewStyle = 16842858; // 0x101006a
    field public static final int accessibilityEventTypes = 16843648; // 0x1010380
    field public static final int accessibilityFeedbackType = 16843650; // 0x1010382
@@ -484,10 +489,6 @@ package android {
    field public static final int dashGap = 16843175; // 0x10101a7
    field public static final int dashWidth = 16843174; // 0x10101a6
    field public static final int data = 16842798; // 0x101002e
    field public static final int dataRetentionTime = 16844189; // 0x101059d
    field public static final int dataSentOffDevice = 16844186; // 0x101059a
    field public static final int dataSharedWithThirdParty = 16844187; // 0x101059b
    field public static final int dataUsedForMonetization = 16844188; // 0x101059c
    field public static final int datePickerDialogTheme = 16843948; // 0x10104ac
    field public static final int datePickerMode = 16843955; // 0x10104b3
    field public static final int datePickerStyle = 16843612; // 0x101035c
@@ -1507,7 +1508,6 @@ package android {
    field @Deprecated public static final int unfocusedMonthDateColor = 16843588; // 0x1010344
    field public static final int unselectedAlpha = 16843278; // 0x101020e
    field public static final int updatePeriodMillis = 16843344; // 0x1010250
    field public static final int usageInfoRequired = 16844185; // 0x1010599
    field public static final int use32bitAbi = 16844053; // 0x1010515
    field public static final int useAppZygote = 16844184; // 0x1010598
    field public static final int useDefaultMargins = 16843641; // 0x1010379
@@ -10267,7 +10267,6 @@ package android.content {
    field public static final String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
    field public static final String ACTION_PACKAGE_VERIFIED = "android.intent.action.PACKAGE_VERIFIED";
    field public static final String ACTION_PASTE = "android.intent.action.PASTE";
    field public static final String ACTION_PERMISSION_USAGE_DETAILS = "android.intent.action.PERMISSION_USAGE_DETAILS";
    field public static final String ACTION_PICK = "android.intent.action.PICK";
    field public static final String ACTION_PICK_ACTIVITY = "android.intent.action.PICK_ACTIVITY";
    field public static final String ACTION_POWER_CONNECTED = "android.intent.action.ACTION_POWER_CONNECTED";
@@ -10393,7 +10392,6 @@ package android.content {
    field public static final String EXTRA_NOT_UNKNOWN_SOURCE = "android.intent.extra.NOT_UNKNOWN_SOURCE";
    field public static final String EXTRA_ORIGINATING_URI = "android.intent.extra.ORIGINATING_URI";
    field public static final String EXTRA_PACKAGE_NAME = "android.intent.extra.PACKAGE_NAME";
    field public static final String EXTRA_PERMISSION_USAGE_PERMISSIONS = "android.intent.extra.PERMISSION_USAGE_PERMISSIONS";
    field public static final String EXTRA_PHONE_NUMBER = "android.intent.extra.PHONE_NUMBER";
    field public static final String EXTRA_PROCESS_TEXT = "android.intent.extra.PROCESS_TEXT";
    field public static final String EXTRA_PROCESS_TEXT_READONLY = "android.intent.extra.PROCESS_TEXT_READONLY";
@@ -11358,8 +11356,8 @@ package android.content.pm {
    field public android.content.pm.ProviderInfo[] providers;
    field public android.content.pm.ActivityInfo[] receivers;
    field public android.content.pm.FeatureInfo[] reqFeatures;
    field @Deprecated public String[] requestedPermissions;
    field @Deprecated public int[] requestedPermissionsFlags;
    field public String[] requestedPermissions;
    field public int[] requestedPermissionsFlags;
    field public android.content.pm.ServiceInfo[] services;
    field public String sharedUserId;
    field public int sharedUserLabel;
@@ -11367,7 +11365,6 @@ package android.content.pm {
    field public android.content.pm.SigningInfo signingInfo;
    field public String[] splitNames;
    field public int[] splitRevisionCodes;
    field public android.content.pm.UsesPermissionInfo[] usesPermissions;
    field @Deprecated public int versionCode;
    field public String versionName;
  }
@@ -11867,7 +11864,6 @@ package android.content.pm {
    field public String group;
    field public CharSequence nonLocalizedDescription;
    field @Deprecated public int protectionLevel;
    field public boolean usageInfoRequired;
  }
  public final class ProviderInfo extends android.content.pm.ComponentInfo implements android.os.Parcelable {
@@ -12058,28 +12054,6 @@ package android.content.pm {
    field public static final android.os.Parcelable.Creator<android.content.pm.SigningInfo> CREATOR;
  }
  public final class UsesPermissionInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
    method public int describeContents();
    method public int getDataRetention();
    method public int getDataRetentionWeeks();
    method public int getDataSentOffDevice();
    method public int getDataSharedWithThirdParty();
    method public int getDataUsedForMonetization();
    method public int getFlags();
    method public String getPermission();
    field public static final android.os.Parcelable.Creator<android.content.pm.UsesPermissionInfo> CREATOR;
    field public static final int FLAG_REQUESTED_PERMISSION_GRANTED = 2; // 0x2
    field public static final int RETENTION_NOT_RETAINED = 1; // 0x1
    field public static final int RETENTION_SPECIFIED = 4; // 0x4
    field public static final int RETENTION_UNDEFINED = 0; // 0x0
    field public static final int RETENTION_UNLIMITED = 3; // 0x3
    field public static final int RETENTION_USER_SELECTED = 2; // 0x2
    field public static final int USAGE_NO = 3; // 0x3
    field public static final int USAGE_UNDEFINED = 0; // 0x0
    field public static final int USAGE_USER_TRIGGERED = 2; // 0x2
    field public static final int USAGE_YES = 1; // 0x1
  }
  public final class VersionedPackage implements android.os.Parcelable {
    ctor public VersionedPackage(@NonNull String, int);
    ctor public VersionedPackage(@NonNull String, long);
+0 −22
Original line number Diff line number Diff line
@@ -816,28 +816,6 @@ public class Intent implements Parcelable, Cloneable {
    public static final String ACTION_SHOW_APP_INFO
            = "android.intent.action.SHOW_APP_INFO";

    /**
     * Activity Action: Start an activity to show the app's detailed usage information for
     * permission protected data.
     *
     * The Intent contains an extra {@link #EXTRA_PERMISSION_USAGE_PERMISSIONS} that is of
     * type {@code String[]} and contains the specific permissions to show information for.
     *
     * Apps should handle this intent if they want to provide more information about permission
     * usage to users beyond the information provided in the manifest.
     */
    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
    public static final String ACTION_PERMISSION_USAGE_DETAILS =
            "android.intent.action.PERMISSION_USAGE_DETAILS";

    /**
     * The name of the extra used to contain the permissions in
     * {@link #ACTION_PERMISSION_USAGE_DETAILS}.
     * @see #ACTION_PERMISSION_USAGE_DETAILS
     */
    public static final String EXTRA_PERMISSION_USAGE_PERMISSIONS =
            "android.intent.extra.PERMISSION_USAGE_PERMISSIONS";

    /**
     * Represents a shortcut/live folder icon resource.
     *
+0 −18
Original line number Diff line number Diff line
@@ -204,10 +204,7 @@ public class PackageInfo implements Parcelable {
     * {@link PackageManager#GET_PERMISSIONS} was set.  This list includes
     * all permissions requested, even those that were not granted or known
     * by the system at install time.
     *
     * @deprecated Use {@link #usesPermissions}
     */
    @Deprecated
    public String[] requestedPermissions;

    /**
@@ -217,22 +214,9 @@ public class PackageInfo implements Parcelable {
     * {@link PackageManager#GET_PERMISSIONS} was set.  Each value matches
     * the corresponding entry in {@link #requestedPermissions}, and will have
     * the flag {@link #REQUESTED_PERMISSION_GRANTED} set as appropriate.
     *
     * @deprecated Use {@link #usesPermissions}
     */
    @Deprecated
    public int[] requestedPermissionsFlags;

    /**
     * Array of all {@link android.R.styleable#AndroidManifestUsesPermission
     * &lt;uses-permission&gt;} tags included under &lt;manifest&gt;,
     * or null if there were none.  This is only filled in if the flag
     * {@link PackageManager#GET_PERMISSIONS} was set.  This list includes
     * all permissions requested, even those that were not granted or known
     * by the system at install time.
     */
    public UsesPermissionInfo[] usesPermissions;

    /**
     * Flag for {@link #requestedPermissionsFlags}: the requested permission
     * is required for the application to run; the user can not optionally
@@ -480,7 +464,6 @@ public class PackageInfo implements Parcelable {
        dest.writeTypedArray(permissions, parcelableFlags);
        dest.writeStringArray(requestedPermissions);
        dest.writeIntArray(requestedPermissionsFlags);
        dest.writeTypedArray(usesPermissions, parcelableFlags);
        dest.writeTypedArray(signatures, parcelableFlags);
        dest.writeTypedArray(configPreferences, parcelableFlags);
        dest.writeTypedArray(reqFeatures, parcelableFlags);
@@ -545,7 +528,6 @@ public class PackageInfo implements Parcelable {
        permissions = source.createTypedArray(PermissionInfo.CREATOR);
        requestedPermissions = source.createStringArray();
        requestedPermissionsFlags = source.createIntArray();
        usesPermissions = source.createTypedArray(UsesPermissionInfo.CREATOR);
        signatures = source.createTypedArray(Signature.CREATOR);
        configPreferences = source.createTypedArray(ConfigurationInfo.CREATOR);
        reqFeatures = source.createTypedArray(FeatureInfo.CREATOR);
+13 −75
Original line number Diff line number Diff line
@@ -791,23 +791,18 @@ public class PackageParser {
                    pi.permissions[i] = generatePermissionInfo(p.permissions.get(i), flags);
                }
            }
            N = p.usesPermissionInfos.size();
            N = p.requestedPermissions.size();
            if (N > 0) {
                pi.requestedPermissions = new String[N];
                pi.requestedPermissionsFlags = new int[N];
                pi.usesPermissions = new UsesPermissionInfo[N];
                for (int i=0; i<N; i++) {
                    UsesPermissionInfo info = p.usesPermissionInfos.get(i);
                    final String perm = info.getPermission();
                    final String perm = p.requestedPermissions.get(i);
                    pi.requestedPermissions[i] = perm;
                    int permissionFlags = 0;
                    // The notion of required permissions is deprecated but for compatibility.
                    permissionFlags |= PackageInfo.REQUESTED_PERMISSION_REQUIRED;
                    pi.requestedPermissionsFlags[i] |= PackageInfo.REQUESTED_PERMISSION_REQUIRED;
                    if (grantedPermissions != null && grantedPermissions.contains(perm)) {
                        permissionFlags |= PackageInfo.REQUESTED_PERMISSION_GRANTED;
                        pi.requestedPermissionsFlags[i] |= PackageInfo.REQUESTED_PERMISSION_GRANTED;
                    }
                    pi.requestedPermissionsFlags[i] = permissionFlags;
                    pi.usesPermissions[i] = new UsesPermissionInfo(info, permissionFlags);
                }
            }
        }
@@ -2175,12 +2170,12 @@ public class PackageParser {
                    return null;
                }
            } else if (tagName.equals(TAG_USES_PERMISSION)) {
                if (!parseUsesPermission(pkg, res, parser, outError)) {
                if (!parseUsesPermission(pkg, res, parser)) {
                    return null;
                }
            } else if (tagName.equals(TAG_USES_PERMISSION_SDK_M)
                    || tagName.equals(TAG_USES_PERMISSION_SDK_23)) {
                if (!parseUsesPermission(pkg, res, parser, outError)) {
                if (!parseUsesPermission(pkg, res, parser)) {
                    return null;
                }
            } else if (tagName.equals(TAG_USES_CONFIGURATION)) {
@@ -2498,7 +2493,7 @@ public class PackageParser {
                    newPermsMsg.append(' ');
                }
                newPermsMsg.append(npi.name);
                addRequestedPermission(pkg, npi.name);
                pkg.requestedPermissions.add(npi.name);
                pkg.implicitPermissions.add(npi.name);
            }
        }
@@ -2519,7 +2514,7 @@ public class PackageParser {
            for (int in = 0; in < newPerms.size(); in++) {
                final String perm = newPerms.get(in);
                if (!pkg.requestedPermissions.contains(perm)) {
                    addRequestedPermission(pkg, perm);
                    pkg.requestedPermissions.add(perm);
                    pkg.implicitPermissions.add(perm);
                }
            }
@@ -2599,13 +2594,13 @@ public class PackageParser {
            }
        } else {
            if (FORCE_AUDIO_PACKAGES.contains(pkg.packageName)) {
                addRequestedPermission(pkg, android.Manifest.permission.READ_MEDIA_AUDIO);
                pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_AUDIO);
            }
            if (FORCE_VIDEO_PACKAGES.contains(pkg.packageName)) {
                addRequestedPermission(pkg, android.Manifest.permission.READ_MEDIA_VIDEO);
                pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_VIDEO);
            }
            if (FORCE_IMAGES_PACKAGES.contains(pkg.packageName)) {
                addRequestedPermission(pkg, android.Manifest.permission.READ_MEDIA_IMAGES);
                pkg.requestedPermissions.add(android.Manifest.permission.READ_MEDIA_IMAGES);
            }
        }

@@ -2645,12 +2640,6 @@ public class PackageParser {
    }

    /**
     * Helper method for adding a requested permission to a package outside of a uses-permission.
     */
    private void addRequestedPermission(Package pkg, String permission) {
        pkg.requestedPermissions.add(permission);
        pkg.usesPermissionInfos.add(new UsesPermissionInfo(permission));
    }

    /**
     * Matches a given {@code targetCode} against a set of release codeNames. Target codes can
@@ -2987,8 +2976,8 @@ public class PackageParser {
        return certSha256Digests;
    }

    private boolean parseUsesPermission(Package pkg, Resources res, XmlResourceParser parser,
            String[] outError) throws XmlPullParserException, IOException {
    private boolean parseUsesPermission(Package pkg, Resources res, XmlResourceParser parser)
            throws XmlPullParserException, IOException {
        TypedArray sa = res.obtainAttributes(parser,
                com.android.internal.R.styleable.AndroidManifestUsesPermission);

@@ -3012,44 +3001,6 @@ public class PackageParser {
        final String requiredNotfeature = sa.getNonConfigurationString(
                com.android.internal.R.styleable.AndroidManifestUsesPermission_requiredNotFeature, 0);

        int dataSentOffDevice = sa.getInt(
                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataSentOffDevice, 0);

        int dataSharedWithThirdParty = sa.getInt(
                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataSharedWithThirdParty, 0);

        int dataUsedForMonetization = sa.getInt(
                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataUsedForMonetization, 0);

        int retentionWeeks = -1;
        int retention;

        String rawRetention = sa.getString(
                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataRetentionTime);

        if (rawRetention == null) {
            retention = UsesPermissionInfo.RETENTION_UNDEFINED;
        } else if ("notRetained".equals(rawRetention)) {
            retention = UsesPermissionInfo.RETENTION_NOT_RETAINED;
        } else if ("userSelected".equals(rawRetention)) {
            retention = UsesPermissionInfo.RETENTION_USER_SELECTED;
        } else if ("unlimited".equals(rawRetention)) {
            retention = UsesPermissionInfo.RETENTION_UNLIMITED;
        } else {
            // A number of weeks was specified
            retention = UsesPermissionInfo.RETENTION_SPECIFIED;
            retentionWeeks = sa.getInt(
                com.android.internal.R.styleable.AndroidManifestUsesPermission_dataRetentionTime,
                -1);

            if (retentionWeeks < 0) {
                outError[0] = "Bad value provided for dataRetentionTime.";
                mParseError = PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED;
                XmlUtils.skipCurrentTag(parser);
                sa.recycle();
                return false;
            }
        }
        sa.recycle();

        XmlUtils.skipCurrentTag(parser);
@@ -3082,10 +3033,6 @@ public class PackageParser {
                    + parser.getPositionDescription());
        }

        UsesPermissionInfo info = new UsesPermissionInfo(name, dataSentOffDevice,
                dataSharedWithThirdParty, dataUsedForMonetization, retention, retentionWeeks);
        pkg.usesPermissionInfos.add(info);

        return true;
    }

@@ -3420,10 +3367,6 @@ public class PackageParser {
        perm.info.flags = sa.getInt(
                com.android.internal.R.styleable.AndroidManifestPermission_permissionFlags, 0);

        perm.info.usageInfoRequired = sa.getInt(
                com.android.internal.R.styleable.AndroidManifestPermission_usageInfoRequired, 0)
                != 0;

        sa.recycle();

        if (perm.info.protectionLevel == -1) {
@@ -6621,9 +6564,6 @@ public class PackageParser {
        @UnsupportedAppUsage
        public final ArrayList<String> requestedPermissions = new ArrayList<String>();

        public final ArrayList<UsesPermissionInfo> usesPermissionInfos =
                new ArrayList<>();

        /** Permissions requested but not in the manifest. */
        public final ArrayList<String> implicitPermissions = new ArrayList<>();

@@ -7155,7 +7095,6 @@ public class PackageParser {

            dest.readStringList(requestedPermissions);
            internStringArrayList(requestedPermissions);
            dest.readParcelableList(usesPermissionInfos, boot);
            dest.readStringList(implicitPermissions);
            internStringArrayList(implicitPermissions);
            protectedBroadcasts = dest.createStringArrayList();
@@ -7323,7 +7262,6 @@ public class PackageParser {
            dest.writeParcelableList(instrumentation, flags);

            dest.writeStringList(requestedPermissions);
            dest.writeParcelableList(usesPermissionInfos, flags);
            dest.writeStringList(implicitPermissions);
            dest.writeStringList(protectedBroadcasts);

+0 −10
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@ import android.annotation.IntDef;
import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
@@ -368,12 +367,6 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
     */
    public CharSequence nonLocalizedDescription;

    /**
     * If {@code true} an application targeting {@link Build.VERSION_CODES#Q} <em>must</em>
     * include permission data usage information in order to be able to be granted this permission.
     */
    public boolean usageInfoRequired;

    /** @hide */
    public static int fixProtectionLevel(int level) {
        if (level == PROTECTION_SIGNATURE_OR_SYSTEM) {
@@ -475,7 +468,6 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
        descriptionRes = orig.descriptionRes;
        requestRes = orig.requestRes;
        nonLocalizedDescription = orig.nonLocalizedDescription;
        usageInfoRequired = orig.usageInfoRequired;
    }

    /**
@@ -540,7 +532,6 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
        dest.writeInt(descriptionRes);
        dest.writeInt(requestRes);
        TextUtils.writeToParcel(nonLocalizedDescription, dest, parcelableFlags);
        dest.writeInt(usageInfoRequired ? 1 : 0);
    }

    /** @hide */
@@ -581,6 +572,5 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
        descriptionRes = source.readInt();
        requestRes = source.readInt();
        nonLocalizedDescription = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
        usageInfoRequired = source.readInt() != 0;
    }
}
Loading