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

Commit 2fe7090d authored by Evgenii Stepanov's avatar Evgenii Stepanov Committed by Android (Google) Code Review
Browse files

Merge "Convert enableGwpAsan to @IntDef and rename to gwpAsanMode."

parents 5673c87b 7487f249
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -573,7 +573,6 @@ package android {
    field public static final int elevation = 16843840; // 0x1010440
    field public static final int ellipsize = 16842923; // 0x10100ab
    field public static final int ems = 16843096; // 0x1010158
    field public static final int enableGwpAsan = 16844312; // 0x1010618
    field public static final int enableVrMode = 16844069; // 0x1010525
    field public static final int enabled = 16842766; // 0x101000e
    field public static final int end = 16843996; // 0x10104dc
@@ -710,6 +709,7 @@ package android {
    field public static final int gravity = 16842927; // 0x10100af
    field public static final int gridViewStyle = 16842865; // 0x1010071
    field public static final int groupIndicator = 16843019; // 0x101010b
    field public static final int gwpAsanMode = 16844312; // 0x1010618
    field public static final int hand_hour = 16843011; // 0x1010103
    field public static final int hand_minute = 16843012; // 0x1010104
    field public static final int handle = 16843354; // 0x101025a
@@ -11443,7 +11443,7 @@ package android.content.pm {
    method public int describeContents();
    method public void dump(android.util.Printer, String);
    method public static CharSequence getCategoryTitle(android.content.Context, int);
    method @Nullable public Boolean isGwpAsanEnabled();
    method public int getGwpAsanMode();
    method public boolean isProfileableByShell();
    method public boolean isResourceOverlay();
    method public boolean isVirtualPreload();
@@ -11490,6 +11490,9 @@ package android.content.pm {
    field public static final int FLAG_UPDATED_SYSTEM_APP = 128; // 0x80
    field public static final int FLAG_USES_CLEARTEXT_TRAFFIC = 134217728; // 0x8000000
    field public static final int FLAG_VM_SAFE_MODE = 16384; // 0x4000
    field public static final int GWP_ASAN_ALWAYS = 1; // 0x1
    field public static final int GWP_ASAN_DEFAULT = -1; // 0xffffffff
    field public static final int GWP_ASAN_NEVER = 0; // 0x0
    field public String appComponentFactory;
    field public String backupAgentName;
    field public int category;
+38 −15
Original line number Diff line number Diff line
@@ -59,8 +59,6 @@ import java.util.UUID;
 * <application> tag.
 */
public class ApplicationInfo extends PackageItemInfo implements Parcelable {
    private static ForBoolean sForBoolean = Parcelling.Cache.getOrCreate(ForBoolean.class);

    /**
     * Default task affinity of all activities in this application. See 
     * {@link ActivityInfo#taskAffinity} for more information.  This comes 
@@ -1276,13 +1274,38 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
    /** @hide */
    public String zygotePreloadName;

    /**
     * Default (unspecified) setting of GWP-ASan.
     */
    public static final int GWP_ASAN_DEFAULT = -1;

    /**
     * Never enable GWP-ASan in this application or process.
     */
    public static final int GWP_ASAN_NEVER = 0;

    /**
     * Always enable GWP-ASan in this application or process.
     */
    public static final int GWP_ASAN_ALWAYS = 1;

    /**
     * These constants need to match the values of gwpAsanMode in application manifest.
     * @hide
     */
    @IntDef(prefix = {"GWP_ASAN_"}, value = {
            GWP_ASAN_DEFAULT,
            GWP_ASAN_NEVER,
            GWP_ASAN_ALWAYS,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface GwpAsanMode {}

    /**
     * Indicates if the application has requested GWP-ASan to be enabled, disabled, or left
     * unspecified. Processes can override this setting.
     * @hide
     */
    @Nullable
    public Boolean enableGwpAsan;
    private @GwpAsanMode int gwpAsanMode;

    /**
     * Represents the default policy. The actual policy used will depend on other properties of
@@ -1425,8 +1448,8 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
            pw.println(prefix + "usesNonSdkApi=" + usesNonSdkApi());
            pw.println(prefix + "allowsPlaybackCapture="
                        + (isAudioPlaybackCaptureAllowed() ? "true" : "false"));
            if (enableGwpAsan != null) {
                pw.println(prefix + "enableGwpAsan=" + enableGwpAsan);
            if (gwpAsanMode != GWP_ASAN_DEFAULT) {
                pw.println(prefix + "gwpAsanMode=" + gwpAsanMode);
            }
        }
        super.dumpBack(pw, prefix);
@@ -1526,8 +1549,8 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
            if (category != CATEGORY_UNDEFINED) {
                proto.write(ApplicationInfoProto.Detail.CATEGORY, category);
            }
            if (enableGwpAsan != null) {
                proto.write(ApplicationInfoProto.Detail.ENABLE_GWP_ASAN, enableGwpAsan);
            if (gwpAsanMode != GWP_ASAN_DEFAULT) {
                proto.write(ApplicationInfoProto.Detail.ENABLE_GWP_ASAN, gwpAsanMode);
            }
            proto.end(detailToken);
        }
@@ -1638,7 +1661,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        mHiddenApiPolicy = orig.mHiddenApiPolicy;
        hiddenUntilInstalled = orig.hiddenUntilInstalled;
        zygotePreloadName = orig.zygotePreloadName;
        enableGwpAsan = orig.enableGwpAsan;
        gwpAsanMode = orig.gwpAsanMode;
    }

    public String toString() {
@@ -1722,7 +1745,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        dest.writeInt(mHiddenApiPolicy);
        dest.writeInt(hiddenUntilInstalled ? 1 : 0);
        dest.writeString(zygotePreloadName);
        sForBoolean.parcel(enableGwpAsan, dest, parcelableFlags);
        dest.writeInt(gwpAsanMode);
    }

    public static final @android.annotation.NonNull Parcelable.Creator<ApplicationInfo> CREATOR
@@ -1803,7 +1826,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        mHiddenApiPolicy = source.readInt();
        hiddenUntilInstalled = source.readInt() != 0;
        zygotePreloadName = source.readString();
        enableGwpAsan = sForBoolean.unparcel(source);
        gwpAsanMode = source.readInt();
    }

    /**
@@ -2182,7 +2205,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
    /** {@hide} */ public void setResourcePath(String resourcePath) { scanPublicSourceDir = resourcePath; }
    /** {@hide} */ public void setBaseResourcePath(String baseResourcePath) { publicSourceDir = baseResourcePath; }
    /** {@hide} */ public void setSplitResourcePaths(String[] splitResourcePaths) { splitPublicSourceDirs = splitResourcePaths; }
    /** {@hide} */ public void setGwpAsanEnabled(@Nullable Boolean value) { enableGwpAsan = value; }
    /** {@hide} */ public void setGwpAsanMode(@GwpAsanMode int value) { gwpAsanMode = value; }

    /** {@hide} */
    @UnsupportedAppUsage
@@ -2194,6 +2217,6 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
    @UnsupportedAppUsage
    public String getBaseResourcePath() { return publicSourceDir; }
    /** {@hide} */ public String[] getSplitResourcePaths() { return splitPublicSourceDirs; }
    @Nullable
    public Boolean isGwpAsanEnabled() { return enableGwpAsan; }
    @GwpAsanMode
    public int getGwpAsanMode() { return gwpAsanMode; }
}
+15 −12
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.content.pm;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.pm.ApplicationInfo;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
@@ -50,14 +51,13 @@ public class ProcessInfo implements Parcelable {
    /**
     * Indicates if the process has requested GWP-ASan to be enabled, disabled, or left unspecified.
     */
    @Nullable
    public Boolean enableGwpAsan;
    public @ApplicationInfo.GwpAsanMode int gwpAsanMode;

    @Deprecated
    public ProcessInfo(@NonNull ProcessInfo orig) {
        this.name = orig.name;
        this.deniedPermissions = orig.deniedPermissions;
        this.enableGwpAsan = orig.enableGwpAsan;
        this.gwpAsanMode = orig.gwpAsanMode;
    }


@@ -82,19 +82,21 @@ public class ProcessInfo implements Parcelable {
     *   The name of the process, fully-qualified based on the app's package name.
     * @param deniedPermissions
     *   If non-null, these are permissions that are not allowed in this process.
     * @param enableGwpAsan
     * @param gwpAsanMode
     *   Indicates if the process has requested GWP-ASan to be enabled, disabled, or left unspecified.
     */
    @DataClass.Generated.Member
    public ProcessInfo(
            @NonNull String name,
            @Nullable ArraySet<String> deniedPermissions,
            @Nullable Boolean enableGwpAsan) {
            @ApplicationInfo.GwpAsanMode int gwpAsanMode) {
        this.name = name;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, name);
        this.deniedPermissions = deniedPermissions;
        this.enableGwpAsan = enableGwpAsan;
        this.gwpAsanMode = gwpAsanMode;
        com.android.internal.util.AnnotationValidations.validate(
                ApplicationInfo.GwpAsanMode.class, null, gwpAsanMode);

        // onConstructed(); // You can define this method to get a callback
    }
@@ -118,11 +120,10 @@ public class ProcessInfo implements Parcelable {

        byte flg = 0;
        if (deniedPermissions != null) flg |= 0x2;
        if (enableGwpAsan != null) flg |= 0x4;
        dest.writeByte(flg);
        dest.writeString(name);
        sParcellingForDeniedPermissions.parcel(deniedPermissions, dest, flags);
        if (enableGwpAsan != null) dest.writeBoolean(enableGwpAsan);
        dest.writeInt(gwpAsanMode);
    }

    @Override
@@ -139,13 +140,15 @@ public class ProcessInfo implements Parcelable {
        byte flg = in.readByte();
        String _name = in.readString();
        ArraySet<String> _deniedPermissions = sParcellingForDeniedPermissions.unparcel(in);
        Boolean _enableGwpAsan = (flg & 0x4) == 0 ? null : (Boolean) in.readBoolean();
        int _gwpAsanMode = in.readInt();

        this.name = _name;
        com.android.internal.util.AnnotationValidations.validate(
                NonNull.class, null, name);
        this.deniedPermissions = _deniedPermissions;
        this.enableGwpAsan = _enableGwpAsan;
        this.gwpAsanMode = _gwpAsanMode;
        com.android.internal.util.AnnotationValidations.validate(
                ApplicationInfo.GwpAsanMode.class, null, gwpAsanMode);

        // onConstructed(); // You can define this method to get a callback
    }
@@ -165,10 +168,10 @@ public class ProcessInfo implements Parcelable {
    };

    @DataClass.Generated(
            time = 1582840056156L,
            time = 1584555730519L,
            codegenVersion = "1.0.15",
            sourceFile = "frameworks/base/core/java/android/content/pm/ProcessInfo.java",
            inputSignatures = "public @android.annotation.NonNull java.lang.String name\npublic @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedStringArraySet.class) android.util.ArraySet<java.lang.String> deniedPermissions\npublic @android.annotation.Nullable java.lang.Boolean enableGwpAsan\nclass ProcessInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genGetters=true, genSetters=false, genParcelable=true, genAidl=false, genBuilder=false)")
            inputSignatures = "public @android.annotation.NonNull java.lang.String name\npublic @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedStringArraySet.class) android.util.ArraySet<java.lang.String> deniedPermissions\npublic @android.content.pm.ApplicationInfo.GwpAsanMode int gwpAsanMode\nclass ProcessInfo extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genGetters=true, genSetters=false, genParcelable=true, genAidl=false, genBuilder=false)")
    @Deprecated
    private void __metadata() {}

+1 −1
Original line number Diff line number Diff line
@@ -240,7 +240,7 @@ public interface ParsingPackage extends ParsingPackageRead {

    ParsingPackage setEnabled(boolean enabled);

    ParsingPackage setGwpAsanEnabled(Boolean enableGwpAsan);
    ParsingPackage setGwpAsanMode(int gwpAsanMode);

    ParsingPackage setCrossProfile(boolean crossProfile);

+8 −11
Original line number Diff line number Diff line
@@ -409,9 +409,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
    private boolean allowDontAutoRevokePermissions;
    private boolean preserveLegacyExternalStorage;

    @Nullable
    @DataClass.ParcelWith(ForBoolean.class)
    protected Boolean enableGwpAsan = null;
    protected int gwpAsanMode;

    // TODO(chiuwinson): Non-null
    @Nullable
@@ -911,7 +909,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
        appInfo.volumeUuid = volumeUuid;
        appInfo.zygotePreloadName = zygotePreloadName;
        appInfo.crossProfile = isCrossProfile();
        appInfo.setGwpAsanEnabled(enableGwpAsan);
        appInfo.setGwpAsanMode(gwpAsanMode);
        appInfo.setBaseCodePath(baseCodePath);
        appInfo.setBaseResourcePath(baseCodePath);
        appInfo.setCodePath(codePath);
@@ -1095,7 +1093,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
        dest.writeBoolean(this.allowDontAutoRevokePermissions);
        dest.writeBoolean(this.preserveLegacyExternalStorage);
        dest.writeArraySet(this.mimeGroups);
        sForBoolean.parcel(this.enableGwpAsan, dest, flags);
        dest.writeInt(this.gwpAsanMode);
    }

    public ParsingPackageImpl(Parcel in) {
@@ -1255,7 +1253,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
        this.allowDontAutoRevokePermissions = in.readBoolean();
        this.preserveLegacyExternalStorage = in.readBoolean();
        this.mimeGroups = (ArraySet<String>) in.readArraySet(boot);
        this.enableGwpAsan = sForBoolean.unparcel(in);
        this.gwpAsanMode = in.readInt();
    }

    public static final Parcelable.Creator<ParsingPackageImpl> CREATOR =
@@ -1978,9 +1976,8 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
    }

    @Override
    @Nullable
    public Boolean isGwpAsanEnabled() {
        return enableGwpAsan;
    public int getGwpAsanMode() {
        return gwpAsanMode;
    }

    @Override
@@ -2449,8 +2446,8 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
    }

    @Override
    public ParsingPackageImpl setGwpAsanEnabled(@Nullable Boolean value) {
        enableGwpAsan = value;
    public ParsingPackageImpl setGwpAsanMode(int value) {
        gwpAsanMode = value;
        return this;
    }

Loading