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

Commit 3152b6c2 authored by Chen Xu's avatar Chen Xu Committed by Gerrit Code Review
Browse files

Merge "A test api to override carrier information"

parents 2fd3cafb 0ec06caa
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -532,6 +532,7 @@ public class CarrierIdentifier extends Handler {

        if (VDBG) {
            logd("[matchCarrier]"
                    + " mnnmnc:" + mccmnc
                    + " gid1: " + gid1
                    + " gid2: " + gid2
                    + " imsi: " + Rlog.pii(LOG_TAG, imsi)
@@ -585,7 +586,7 @@ public class CarrierIdentifier extends Handler {
                unknownMccmncToLog, unknownGid1ToLog);
    }

    private int getCarrierListVersion() {
    public int getCarrierListVersion() {
        final Cursor cursor = mContext.getContentResolver().query(
                Uri.withAppendedPath(CarrierId.All.CONTENT_URI,
                "get_version"), null, null, null);
+5 −0
Original line number Diff line number Diff line
@@ -1547,6 +1547,11 @@ public class GsmCdmaPhone extends Phone {
        mCIM.resetCarrierKeysForImsiEncryption(mContext, mPhoneId);
    }

    @Override
    public int getCarrierIdListVersion() {
        return mCarrerIdentifier.getCarrierListVersion();
    }

    @Override
    public String getGroupIdLevel1() {
        if (isPhoneTypeGsm()) {
+12 −0
Original line number Diff line number Diff line
@@ -3017,6 +3017,10 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        return null;
    }

    public int getCarrierIdListVersion() {
        return TelephonyManager.UNKNOWN_CARRIER_ID_LIST_VERSION;
    }

    /**
     *  Resets the Carrier Keys in the database. This involves 2 steps:
     *  1. Delete the keys from the database.
@@ -3597,6 +3601,14 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
        }
    }

    public void setCarrierTestOverride(String mccmnc, String imsi, String iccid, String gid1,
            String gid2, String pnn, String spn) {
        IccRecords r = mIccRecords.get();
        if (r != null) {
            r.setCarrierTestOverride(mccmnc, imsi, iccid, gid1, gid2, pnn, spn);
        }
    }

    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        pw.println("Phone: subId=" + getSubId());
        pw.println(" mPhoneId=" + mPhoneId);
+25 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ public class CarrierTestOverride {
     * Sample xml:
     * <carrierTestOverrides>
       <carrierTestOverride key="isInTestMode" value="true"/>
       <carrierTestOverride key="mccmnc" value="310010" />
       <carrierTestOverride key="gid1" value="bae0000000000000"/>
       <carrierTestOverride key="gid2" value="ffffffffffffffff"/>
       <carrierTestOverride key="imsi" value="310010123456789"/>
@@ -58,6 +59,7 @@ public class CarrierTestOverride {
    static final String CARRIER_TEST_XML_ITEM_KEY = "key";
    static final String CARRIER_TEST_XML_ITEM_VALUE = "value";
    static final String CARRIER_TEST_XML_ITEM_KEY_STRING_ISINTESTMODE = "isInTestMode";
    static final String CARRIER_TEST_XML_ITEM_KEY_STRING_MCCMNC = "mccmnc";
    static final String CARRIER_TEST_XML_ITEM_KEY_STRING_GID1 = "gid1";
    static final String CARRIER_TEST_XML_ITEM_KEY_STRING_GID2 = "gid2";
    static final String CARRIER_TEST_XML_ITEM_KEY_STRING_IMSI = "imsi";
@@ -144,6 +146,29 @@ public class CarrierTestOverride {
        }
    }

    String getFakeMccMnc() {
        try {
            String mccmnc = mCarrierTestParamMap.get(CARRIER_TEST_XML_ITEM_KEY_STRING_MCCMNC);
            Rlog.d(LOG_TAG, "reading mccmnc from CarrierTestConfig file: " + mccmnc);
            return mccmnc;
        } catch (NullPointerException e) {
            Rlog.w(LOG_TAG, "No mccmnc in CarrierTestConfig file ");
            return null;
        }
    }

    void override(String mccmnc, String imsi, String iccid, String gid1, String gid2, String pnn,
            String spn) {
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_ISINTESTMODE, "true");
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_MCCMNC, mccmnc);
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_IMSI, imsi);
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_ICCID, iccid);
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_GID1, gid1);
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_GID2, gid2);
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_PNN, pnn);
        mCarrierTestParamMap.put(CARRIER_TEST_XML_ITEM_KEY_STRING_SPN, spn);
    }

    private void loadCarrierTestOverrides() {

        FileReader carrierTestConfigReader;
+30 −43
Original line number Diff line number Diff line
@@ -80,7 +80,6 @@ public abstract class IccRecords extends Handler implements IccConstants {
    protected int mLockedRecordsReqReason = LOCKED_RECORDS_REQ_REASON_NONE;

    protected String mIccId;  // Includes only decimals (no hex)
    protected String mFakeIccId;

    protected String mFullIccId;  // Includes hex characters in ICCID
    protected String mMsisdn = null;  // My mobile number
@@ -93,22 +92,17 @@ public abstract class IccRecords extends Handler implements IccConstants {
    protected String mNewVoiceMailTag = null;
    protected boolean mIsVoiceMailFixed = false;
    protected String mImsi;
    protected String mFakeImsi;
    private IccIoResult auth_rsp;

    protected int mMncLength = UNINITIALIZED;
    protected int mMailboxIndex = 0; // 0 is no mailbox dailing number associated

    private String mSpn;
    private String mFakeSpn;

    protected String mGid1;
    protected String mFakeGid1;
    protected String mGid2;
    protected String mFakeGid2;

    protected String mPnnHomeName;
    protected String mFakePnnHomeName;

    protected String mPrefLang;

@@ -170,7 +164,8 @@ public abstract class IccRecords extends Handler implements IccConstants {
                + " recordsRequested=" + mRecordsRequested
                + " lockedRecordsReqReason=" + mLockedRecordsReqReason
                + " iccid=" + iccIdToPrint
                + (mCarrierTestOverride.isInTestMode() ? "mFakeIccid=" + mFakeIccId : "")
                + (mCarrierTestOverride.isInTestMode() ? "mFakeIccid="
                + mCarrierTestOverride.getFakeIccid() : "")
                + " msisdnTag=" + mMsisdnTag
                + " voiceMailNum=" + Rlog.pii(VDBG, mVoiceMailNum)
                + " voiceMailTag=" + mVoiceMailTag
@@ -179,11 +174,13 @@ public abstract class IccRecords extends Handler implements IccConstants {
                + " isVoiceMailFixed=" + mIsVoiceMailFixed
                + " mImsi=" + ((mImsi != null) ?
                mImsi.substring(0, 6) + Rlog.pii(VDBG, mImsi.substring(6)) : "null")
                + (mCarrierTestOverride.isInTestMode() ? " mFakeImsi=" + mFakeImsi : "")
                + (mCarrierTestOverride.isInTestMode() ? " mFakeImsi="
                + mCarrierTestOverride.getFakeIMSI() : "")
                + " mncLength=" + mMncLength
                + " mailboxIndex=" + mMailboxIndex
                + " spn=" + mSpn
                + (mCarrierTestOverride.isInTestMode() ? " mFakeSpn=" + mFakeSpn : "");
                + (mCarrierTestOverride.isInTestMode() ? " mFakeSpn="
                + mCarrierTestOverride.getFakeSpn() : "");
    }

    /**
@@ -212,29 +209,18 @@ public abstract class IccRecords extends Handler implements IccConstants {
                Context.TELEPHONY_SERVICE);

        mCarrierTestOverride = new CarrierTestOverride();

        if (mCarrierTestOverride.isInTestMode()) {
            mFakeImsi = mCarrierTestOverride.getFakeIMSI();
            log("load mFakeImsi: " + mFakeImsi);

            mFakeGid1 = mCarrierTestOverride.getFakeGid1();
            log("load mFakeGid1: " + mFakeGid1);

            mFakeGid2 = mCarrierTestOverride.getFakeGid2();
            log("load mFakeGid2: " + mFakeGid2);

            mFakeSpn = mCarrierTestOverride.getFakeSpn();
            log("load mFakeSpn: " + mFakeSpn);

            mFakePnnHomeName = mCarrierTestOverride.getFakePnnHomeName();
            log("load mFakePnnHomeName: " + mFakePnnHomeName);

            mFakeIccId = mCarrierTestOverride.getFakeIccid();
            log("load mFakeIccId: " + mFakeIccId);
        }
        mCi.registerForIccRefresh(this, EVENT_REFRESH, null);
    }

    // Override IccRecords for testing
    public void setCarrierTestOverride(String mccmnc, String imsi, String iccid, String gid1,
            String gid2, String pnn, String spn)  {
        mCarrierTestOverride.override(mccmnc, imsi, iccid, gid1, gid2, pnn, spn);
        mTelephonyManager.setSimOperatorNameForPhone(mParentApp.getPhoneId(), spn);
        mTelephonyManager.setSimOperatorNumericForPhone(mParentApp.getPhoneId(), mccmnc);
        mRecordsLoadedRegistrants.notifyRegistrants();
    }

    /**
     * Call when the IccRecords object is no longer going to be used.
     */
@@ -295,8 +281,8 @@ public abstract class IccRecords extends Handler implements IccConstants {
     * @return ICC ID without hex digits
     */
    public String getIccId() {
        if (mCarrierTestOverride.isInTestMode() && mFakeIccId != null) {
            return mFakeIccId;
        if (mCarrierTestOverride.isInTestMode() && mCarrierTestOverride.getFakeIccid() != null) {
            return mCarrierTestOverride.getFakeIccid();
        } else {
            return mIccId;
        }
@@ -442,8 +428,8 @@ public abstract class IccRecords extends Handler implements IccConstants {
     * @return null if SIM is not yet ready or unavailable
     */
    public String getIMSI() {
        if (mCarrierTestOverride.isInTestMode() && mFakeImsi != null) {
            return mFakeImsi;
        if (mCarrierTestOverride.isInTestMode() && mCarrierTestOverride.getFakeIMSI() != null) {
            return mCarrierTestOverride.getFakeIMSI();
        } else {
            return mImsi;
        }
@@ -477,8 +463,8 @@ public abstract class IccRecords extends Handler implements IccConstants {
     * @return null if SIM is not yet ready
     */
    public String getGid1() {
        if (mCarrierTestOverride.isInTestMode() && mFakeGid1 != null) {
            return mFakeGid1;
        if (mCarrierTestOverride.isInTestMode() && mCarrierTestOverride.getFakeGid1() != null) {
            return mCarrierTestOverride.getFakeGid1();
        } else {
            return mGid1;
        }
@@ -489,8 +475,8 @@ public abstract class IccRecords extends Handler implements IccConstants {
     * @return null if SIM is not yet ready
     */
    public String getGid2() {
        if (mCarrierTestOverride.isInTestMode() && mFakeGid2 != null) {
            return mFakeGid2;
        if (mCarrierTestOverride.isInTestMode() && mCarrierTestOverride.getFakeGid2() != null) {
            return mCarrierTestOverride.getFakeGid2();
        } else {
            return mGid2;
        }
@@ -501,8 +487,9 @@ public abstract class IccRecords extends Handler implements IccConstants {
     * @return null if SIM is not yet ready
     */
    public String getPnnHomeName() {
        if (mCarrierTestOverride.isInTestMode() && mFakePnnHomeName != null) {
            return mFakePnnHomeName;
        if (mCarrierTestOverride.isInTestMode()
                && mCarrierTestOverride.getFakePnnHomeName() != null) {
            return mCarrierTestOverride.getFakePnnHomeName();
        } else {
            return mPnnHomeName;
        }
@@ -531,8 +518,8 @@ public abstract class IccRecords extends Handler implements IccConstants {
     * @return null if SIM is not yet ready or no RUIM entry
     */
    public String getServiceProviderName() {
        if (mCarrierTestOverride.isInTestMode() && mFakeSpn != null) {
            return mFakeSpn;
        if (mCarrierTestOverride.isInTestMode() && mCarrierTestOverride.getFakeSpn() != null) {
            return mCarrierTestOverride.getFakeSpn();
        }
        String providerName = mSpn;

@@ -981,13 +968,13 @@ public abstract class IccRecords extends Handler implements IccConstants {
        pw.println(" mImsi=" + ((mImsi != null) ?
                mImsi.substring(0, 6) + Rlog.pii(VDBG, mImsi.substring(6)) : "null"));
        if (mCarrierTestOverride.isInTestMode()) {
            pw.println(" mFakeImsi=" + mFakeImsi);
            pw.println(" mFakeImsi=" + mCarrierTestOverride.getFakeIMSI());
        }
        pw.println(" mMncLength=" + mMncLength);
        pw.println(" mMailboxIndex=" + mMailboxIndex);
        pw.println(" mSpn=" + mSpn);
        if (mCarrierTestOverride.isInTestMode()) {
            pw.println(" mFakeSpn=" + mFakeSpn);
            pw.println(" mFakeSpn=" + mCarrierTestOverride.getFakeSpn());
        }
        pw.flush();
    }
Loading