From 7a061af3178a93d5273ed3c210938343699e9e0d Mon Sep 17 00:00:00 2001 From: Nathan Harold Date: Thu, 7 Jun 2018 16:00:22 -0700 Subject: [PATCH] Use Uppercase instead of Lowercase for PLMN Decode A change to IccUtils converted from using lowercase to uppercase and broke the PLMN trimming logic. This resolves bugs where the platform may report 5-digit PLMNs with an invalid trailing 'F' character. This fixes an issue introduced by aosp/575243, which impacts the Manual Network Selection menu and the public API. Bug: 79561854 Test: compilation Merged-In: I5ea7867cd9c11fe4454188fd1f30bf58b2911712 Change-Id: I5ea7867cd9c11fe4454188fd1f30bf58b2911712 (cherry picked from commit b70fbc85f7496dd1b43ed70f0c480184ba5e9585) --- .../com/android/internal/telephony/uicc/IccUtils.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java index c0954385a0a3f..4790b75d96300 100644 --- a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java +++ b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java @@ -105,7 +105,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 - * all invalid character 'f' + * all invalid character 'F' */ public static String bcdPlmnToString(byte[] data, int offset) { if (offset + 3 > data.length) { @@ -117,9 +117,9 @@ public class IccUtils { trans[2] = (byte) ((data[2 + offset] & 0xF0) | ((data[1 + offset] >> 4) & 0xF)); String ret = bytesToHexString(trans); - // For a valid plmn we trim all character 'f' - if (ret.contains("f")) { - ret = ret.replaceAll("f", ""); + // For a valid plmn we trim all character 'F' + if (ret.contains("F")) { + ret = ret.replaceAll("F", ""); } return ret; }