The method of parseEfSpdi does not match TS24008.

Accordding to TS51101 and TS31102, Each PLMN is coded as follows:
Mobile Country Code (MCC) followed by the Mobile Network Code (MNC) according to 3GPP TS 24.008
Test: Boot phone and check log, wether parseEfSpdi works fine.

Change-Id: Iada3f25287e586ddb518a2916009f535011a8ab5
This commit is contained in:
kun.tang
2017-07-04 17:33:52 +08:00
parent b975c88178
commit 8cd6dad005

View File

@@ -64,7 +64,7 @@ public class IccUtils {
/**
* PLMN (MCC/MNC) is encoded as per 24.008 10.5.1.3
* Returns a concatenated string of MCC+MNC, stripping
* a trailing character for a 2-digit MNC
* all invalid character 'f'
*/
public static String bcdPlmnToString(byte[] data, int offset) {
if (offset + 3 > data.length) {
@@ -76,9 +76,9 @@ public class IccUtils {
trans[2] = (byte) ((data[2 + offset] & 0xF0) | ((data[1 + offset] >> 4) & 0xF));
String ret = bytesToHexString(trans);
// For a 2-digit MNC we trim the trailing 'f'
if (ret.endsWith("f")) {
ret = ret.substring(0, ret.length() - 1);
// For a valid plmn we trim all character 'f'
if (ret.contains("f")) {
ret = ret.replaceAll("f", "");
}
return ret;
}