summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Harold <nharold@google.com>2016-12-02 19:59:20 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-12-02 19:59:20 +0000
commit0720b4df109181bf1abe4e842c94420c7ff12856 (patch)
tree7569bb517f45fdafa3956fb871f09ee7a3e0321a
parent70dc80c2d505188358b6445acf3f74b96fa6739d (diff)
parentc2c6320ec1ba32d42ae47ed2f731b71e9928cde4 (diff)
downloadbase-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.java23
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