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

Commit 148b92d5 authored by Shawn Willden's avatar Shawn Willden
Browse files

Add support for vendor indication that disclosures are benign.

Bug: 355062720
Test: atest CellularIdentifierDisclosureNotifierTest
Flag: com.android.internal.telephony.flags.cellular_identifier_disclosure_indications
Change-Id: Ifcd971403cd06e0e2e23b7c1890aca3bead4333f
parent e6f49617
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -15143,6 +15143,7 @@ package android.telephony {
    method public int getCellularIdentifier();
    method public int getNasProtocolMessage();
    method @NonNull public String getPlmn();
    method @FlaggedApi("com.android.internal.telephony.flags.vendor_specific_cellular_identifier_disclosure_indications") public boolean isBenign();
    method public boolean isEmergency();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field public static final int CELLULAR_IDENTIFIER_IMEI = 2; // 0x2
@@ -15160,6 +15161,8 @@ package android.telephony {
    field public static final int NAS_PROTOCOL_MESSAGE_IMSI_DETACH_INDICATION = 11; // 0xb
    field public static final int NAS_PROTOCOL_MESSAGE_LOCATION_UPDATE_REQUEST = 5; // 0x5
    field public static final int NAS_PROTOCOL_MESSAGE_REGISTRATION_REQUEST = 7; // 0x7
    field @FlaggedApi("com.android.internal.telephony.flags.vendor_specific_cellular_identifier_disclosure_indications") public static final int NAS_PROTOCOL_MESSAGE_THREAT_IDENTIFIER_FALSE = 12; // 0xc
    field @FlaggedApi("com.android.internal.telephony.flags.vendor_specific_cellular_identifier_disclosure_indications") public static final int NAS_PROTOCOL_MESSAGE_THREAT_IDENTIFIER_TRUE = 13; // 0xd
    field public static final int NAS_PROTOCOL_MESSAGE_TRACKING_AREA_UPDATE_REQUEST = 4; // 0x4
    field public static final int NAS_PROTOCOL_MESSAGE_UNKNOWN = 0; // 0x0
  }
+19 −1
Original line number Diff line number Diff line
@@ -74,6 +74,14 @@ public final class CellularIdentifierDisclosure implements Parcelable {
    /** IMEI DETATCH INDICATION. Reference: 3GPP TS 24.008 9.2.14.
     * Applies to 2g and 3g networks. Used for circuit-switched detach. */
    public static final int NAS_PROTOCOL_MESSAGE_IMSI_DETACH_INDICATION = 11;
    /** Vendor-specific enumeration to identify a disclosure as potentially benign.
     * Enables vendors to semantically classify disclosures based on their own logic. */
    @FlaggedApi(Flags.FLAG_VENDOR_SPECIFIC_CELLULAR_IDENTIFIER_DISCLOSURE_INDICATIONS)
    public static final int NAS_PROTOCOL_MESSAGE_THREAT_IDENTIFIER_FALSE = 12;
    /** Vendor-specific enumeration to identify a disclosure as potentially harmful.
     * Enables vendors to semantically classify disclosures based on their own logic. */
    @FlaggedApi(Flags.FLAG_VENDOR_SPECIFIC_CELLULAR_IDENTIFIER_DISCLOSURE_INDICATIONS)
    public static final int NAS_PROTOCOL_MESSAGE_THREAT_IDENTIFIER_TRUE = 13;

    /** @hide */
    @Retention(RetentionPolicy.SOURCE)
@@ -84,7 +92,9 @@ public final class CellularIdentifierDisclosure implements Parcelable {
            NAS_PROTOCOL_MESSAGE_AUTHENTICATION_AND_CIPHERING_RESPONSE,
            NAS_PROTOCOL_MESSAGE_REGISTRATION_REQUEST, NAS_PROTOCOL_MESSAGE_DEREGISTRATION_REQUEST,
            NAS_PROTOCOL_MESSAGE_CM_REESTABLISHMENT_REQUEST,
            NAS_PROTOCOL_MESSAGE_CM_SERVICE_REQUEST, NAS_PROTOCOL_MESSAGE_IMSI_DETACH_INDICATION})
            NAS_PROTOCOL_MESSAGE_CM_SERVICE_REQUEST, NAS_PROTOCOL_MESSAGE_IMSI_DETACH_INDICATION,
            NAS_PROTOCOL_MESSAGE_THREAT_IDENTIFIER_FALSE,
            NAS_PROTOCOL_MESSAGE_THREAT_IDENTIFIER_TRUE})
    public @interface NasProtocolMessage {
    }

@@ -156,6 +166,14 @@ public final class CellularIdentifierDisclosure implements Parcelable {
        return mIsEmergency;
    }

    /**
     * @return if the modem vendor classifies the disclosure as benign.
     */
    @FlaggedApi(Flags.FLAG_VENDOR_SPECIFIC_CELLULAR_IDENTIFIER_DISCLOSURE_INDICATIONS)
    public boolean isBenign() {
        return mNasProtocolMessage == NAS_PROTOCOL_MESSAGE_THREAT_IDENTIFIER_FALSE;
    }

    @Override
    public int describeContents() {
        return 0;