diff options
author | Nathan Harold <nharold@google.com> | 2016-12-02 19:59:20 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-12-02 19:59:20 +0000 |
commit | 0720b4df109181bf1abe4e842c94420c7ff12856 (patch) | |
tree | 7569bb517f45fdafa3956fb871f09ee7a3e0321a | |
parent | 70dc80c2d505188358b6445acf3f74b96fa6739d (diff) | |
parent | c2c6320ec1ba32d42ae47ed2f731b71e9928cde4 (diff) | |
download | base-0720b4df109181bf1abe4e842c94420c7ff12856.tar.gz |
Add PLMN Selection Info to SIM Records
am: 14545cbe38
Change-Id: I1071e41f919a173585f20e9c1d407383b2adcc6e
-rw-r--r-- | src/java/com/android/internal/telephony/uicc/IccUtils.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/uicc/IccUtils.java b/src/java/com/android/internal/telephony/uicc/IccUtils.java index fdcc12537d1a..67de87f2bf85 100644 --- a/src/java/com/android/internal/telephony/uicc/IccUtils.java +++ b/src/java/com/android/internal/telephony/uicc/IccUtils.java @@ -23,6 +23,7 @@ import android.graphics.Color; import android.telephony.Rlog; import com.android.internal.telephony.GsmAlphabet; + import java.io.UnsupportedEncodingException; /** @@ -61,6 +62,28 @@ 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 + */ + public static String bcdPlmnToString(byte[] data, int offset) { + if (offset + 3 > data.length) { + return null; + } + byte[] trans = new byte[3]; + trans[0] = (byte) ((data[0 + offset] << 4) | ((data[0 + offset] >> 4) & 0xF)); + trans[1] = (byte) ((data[1 + offset] << 4) | (data[2 + offset] & 0xF)); + 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); + } + return ret; + } + + /** * Some fields (like ICC ID) in GSM SIMs are stored as nibble-swizzled BCH */ public static String |