Loading telephony/java/com/android/internal/telephony/IccConstants.java +4 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,10 @@ public interface IccConstants { // 3GPP2 C.S0065 static final int EF_CSIM_LI = 0x6F3A; static final int EF_CSIM_SPN =0x6F41; static final int EF_CSIM_MDN = 0x6F44; static final int EF_CSIM_IMSIM = 0x6F22; static final int EF_CSIM_CDMAHOME = 0x6F28; static final int EF_CSIM_EPRL = 0x6F5A; //ISIM access static final int EF_IMPU = 0x6f04; Loading telephony/java/com/android/internal/telephony/IccRecords.java +10 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,16 @@ public abstract class IccRecords extends Handler implements IccConstants { public void setVoiceCallForwardingFlag(int line, boolean enable) { } /** * Indicates wether SIM is in provisioned state or not. * Overridden only if SIM can be dynamically provisioned via OTA. * * @return true if provisioned */ public boolean isProvisioned () { return true; } /** * Write string to log file * Loading telephony/java/com/android/internal/telephony/IccUtils.java +23 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,29 @@ public class IccUtils { return ret.toString(); } /** * Decode cdma byte into String. */ public static String cdmaBcdToString(byte[] data, int offset, int length) { StringBuilder ret = new StringBuilder(length); int count = 0; for (int i = offset; count < length; i++) { int v; v = data[i] & 0xf; if (v > 9) v = 0; ret.append((char)('0' + v)); if (++count == length) break; v = (data[i] >> 4) & 0xf; if (v > 9) v = 0; ret.append((char)('0' + v)); ++count; } return ret.toString(); } /** * Decodes a GSM-style BCD byte, returning an int ranging from 0-99. Loading telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java +14 −1 Original line number Diff line number Diff line Loading @@ -67,11 +67,24 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { case EVENT_SIM_READY: if (DBG) log("handleMessage EVENT_SIM_READY"); isSubscriptionFromRuim = false; cm.getCDMASubscription( obtainMessage(EVENT_POLL_STATE_CDMA_SUBSCRIPTION)); // Register SIM_RECORDS_LOADED dynamically. // This is to avoid confilct with RUIM_READY scenario) phone.mIccRecords.registerForRecordsLoaded(this, EVENT_SIM_RECORDS_LOADED, null); pollState(); // Signal strength polling stops when radio is off. queueNextSignalStrengthPoll(); break; case EVENT_SIM_RECORDS_LOADED: CdmaLteUiccRecords sim = (CdmaLteUiccRecords)phone.mIccRecords; if ((sim != null) && sim.isProvisioned()) { mMdn = sim.getMdn(); mMin = sim.getMin(); parseSidNid(sim.getSid(), sim.getNid()); mPrlVersion = sim.getPrlVersion();; mIsMinInfoReady = true; updateOtaspState(); } break; default: super.handleMessage(msg); } Loading telephony/java/com/android/internal/telephony/cdma/CdmaLteUiccFileHandler.java +20 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.internal.telephony.cdma; import android.util.Log; import com.android.internal.telephony.IccConstants; import com.android.internal.telephony.IccFileHandler; import android.os.Message; /** * {@hide} Loading @@ -34,6 +35,10 @@ public final class CdmaLteUiccFileHandler extends IccFileHandler { switch(efid) { case EF_CSIM_SPN: case EF_CSIM_LI: case EF_CSIM_MDN: case EF_CSIM_IMSIM: case EF_CSIM_CDMAHOME: case EF_CSIM_EPRL: return MF_SIM + DF_CDMA; case EF_AD: return MF_SIM + DF_GSM; Loading @@ -41,6 +46,21 @@ public final class CdmaLteUiccFileHandler extends IccFileHandler { return getCommonIccEFPath(efid); } @Override public void loadEFTransparent(int fileid, Message onLoaded) { if (fileid == EF_CSIM_EPRL) { // Entire PRL could be huge. We are only interested in // the first 4 bytes of the record. phone.mCM.iccIO(COMMAND_READ_BINARY, fileid, getEFPath(fileid), 0, 0, 4, null, null, obtainMessage(EVENT_READ_BINARY_DONE, fileid, 0, onLoaded)); } else { super.loadEFTransparent(fileid, onLoaded); } } protected void logd(String msg) { Log.d(LOG_TAG, "[CdmaLteUiccFileHandler] " + msg); } Loading Loading
telephony/java/com/android/internal/telephony/IccConstants.java +4 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,10 @@ public interface IccConstants { // 3GPP2 C.S0065 static final int EF_CSIM_LI = 0x6F3A; static final int EF_CSIM_SPN =0x6F41; static final int EF_CSIM_MDN = 0x6F44; static final int EF_CSIM_IMSIM = 0x6F22; static final int EF_CSIM_CDMAHOME = 0x6F28; static final int EF_CSIM_EPRL = 0x6F5A; //ISIM access static final int EF_IMPU = 0x6f04; Loading
telephony/java/com/android/internal/telephony/IccRecords.java +10 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,16 @@ public abstract class IccRecords extends Handler implements IccConstants { public void setVoiceCallForwardingFlag(int line, boolean enable) { } /** * Indicates wether SIM is in provisioned state or not. * Overridden only if SIM can be dynamically provisioned via OTA. * * @return true if provisioned */ public boolean isProvisioned () { return true; } /** * Write string to log file * Loading
telephony/java/com/android/internal/telephony/IccUtils.java +23 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,29 @@ public class IccUtils { return ret.toString(); } /** * Decode cdma byte into String. */ public static String cdmaBcdToString(byte[] data, int offset, int length) { StringBuilder ret = new StringBuilder(length); int count = 0; for (int i = offset; count < length; i++) { int v; v = data[i] & 0xf; if (v > 9) v = 0; ret.append((char)('0' + v)); if (++count == length) break; v = (data[i] >> 4) & 0xf; if (v > 9) v = 0; ret.append((char)('0' + v)); ++count; } return ret.toString(); } /** * Decodes a GSM-style BCD byte, returning an int ranging from 0-99. Loading
telephony/java/com/android/internal/telephony/cdma/CdmaLteServiceStateTracker.java +14 −1 Original line number Diff line number Diff line Loading @@ -67,11 +67,24 @@ public class CdmaLteServiceStateTracker extends CdmaServiceStateTracker { case EVENT_SIM_READY: if (DBG) log("handleMessage EVENT_SIM_READY"); isSubscriptionFromRuim = false; cm.getCDMASubscription( obtainMessage(EVENT_POLL_STATE_CDMA_SUBSCRIPTION)); // Register SIM_RECORDS_LOADED dynamically. // This is to avoid confilct with RUIM_READY scenario) phone.mIccRecords.registerForRecordsLoaded(this, EVENT_SIM_RECORDS_LOADED, null); pollState(); // Signal strength polling stops when radio is off. queueNextSignalStrengthPoll(); break; case EVENT_SIM_RECORDS_LOADED: CdmaLteUiccRecords sim = (CdmaLteUiccRecords)phone.mIccRecords; if ((sim != null) && sim.isProvisioned()) { mMdn = sim.getMdn(); mMin = sim.getMin(); parseSidNid(sim.getSid(), sim.getNid()); mPrlVersion = sim.getPrlVersion();; mIsMinInfoReady = true; updateOtaspState(); } break; default: super.handleMessage(msg); } Loading
telephony/java/com/android/internal/telephony/cdma/CdmaLteUiccFileHandler.java +20 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.internal.telephony.cdma; import android.util.Log; import com.android.internal.telephony.IccConstants; import com.android.internal.telephony.IccFileHandler; import android.os.Message; /** * {@hide} Loading @@ -34,6 +35,10 @@ public final class CdmaLteUiccFileHandler extends IccFileHandler { switch(efid) { case EF_CSIM_SPN: case EF_CSIM_LI: case EF_CSIM_MDN: case EF_CSIM_IMSIM: case EF_CSIM_CDMAHOME: case EF_CSIM_EPRL: return MF_SIM + DF_CDMA; case EF_AD: return MF_SIM + DF_GSM; Loading @@ -41,6 +46,21 @@ public final class CdmaLteUiccFileHandler extends IccFileHandler { return getCommonIccEFPath(efid); } @Override public void loadEFTransparent(int fileid, Message onLoaded) { if (fileid == EF_CSIM_EPRL) { // Entire PRL could be huge. We are only interested in // the first 4 bytes of the record. phone.mCM.iccIO(COMMAND_READ_BINARY, fileid, getEFPath(fileid), 0, 0, 4, null, null, obtainMessage(EVENT_READ_BINARY_DONE, fileid, 0, onLoaded)); } else { super.loadEFTransparent(fileid, onLoaded); } } protected void logd(String msg) { Log.d(LOG_TAG, "[CdmaLteUiccFileHandler] " + msg); } Loading