diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..1887a8a
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,79 @@
+// Copyright 2019 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Build the Phone app which includes the emergency dialer. See Contacts
+// for the 'other' dialer.
+
+android_app {
+    name: "TeleService",
+
+    libs: [
+        "telephony-common",
+        "voip-common",
+        "ims-common",
+        "libprotobuf-java-lite",
+        "unsupportedappusage",
+    ],
+
+    static_libs: [
+        "androidx.appcompat_appcompat",
+        "androidx.preference_preference",
+        "androidx.recyclerview_recyclerview",
+        "androidx.legacy_legacy-preference-v14",
+        "android-support-annotations",
+        "com.android.phone.common-lib",
+        "guava",
+        "PlatformProperties",
+    ],
+
+    srcs: [
+        ":framework-telephony-common-shared-srcs",
+        "src/**/*.java",
+        "sip/src/**/*.java",
+        "ecc/proto/**/*.proto",
+        "src/com/android/phone/EventLogTags.logtags",
+    ],
+
+    jarjar_rules: ":jarjar-rules-shared",
+
+    resource_dirs: [
+        "res",
+        "sip/res",
+    ],
+
+    asset_dirs: [
+        "assets",
+        "ecc/output",
+    ],
+
+    aaptflags: [
+        "--extra-packages com.android.services.telephony.sip",
+    ],
+
+    platform_apis: true,
+
+    certificate: "platform",
+    privileged: true,
+
+    optimize: {
+        proguard_flags_files: [
+            "proguard.flags",
+            "sip/proguard.flags",
+        ],
+    },
+
+    proto: {
+        type: "lite",
+    },
+}
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 8aff191..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,59 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Phone app which includes the emergency dialer. See Contacts
-# for the 'other' dialer.
-include $(CLEAR_VARS)
-
-phone_common_dir := ../../apps/PhoneCommon
-
-src_dirs := src $(phone_common_dir)/src sip/src
-res_dirs := res $(phone_common_dir)/res sip/res
-asset_dirs := assets ecc/output
-
-LOCAL_JAVA_LIBRARIES := \
-        telephony-common \
-        voip-common \
-        ims-common \
-        org.apache.http.legacy \
-        libprotobuf-java-lite
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        androidx.appcompat_appcompat \
-        androidx.preference_preference \
-        androidx.recyclerview_recyclerview \
-        androidx.legacy_legacy-preference-v14
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        guava \
-        volley \
-        android-support-annotations
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_SRC_FILES += $(call all-proto-files-under, ecc/proto)
-LOCAL_SRC_FILES += \
-        src/com/android/phone/EventLogTags.logtags \
-        src/com/android/phone/INetworkQueryService.aidl \
-        src/com/android/phone/INetworkQueryServiceCallback.aidl
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-LOCAL_ASSET_DIR := $(addprefix $(LOCAL_PATH)/, $(asset_dirs))
-LOCAL_USE_AAPT2 := true
-
-LOCAL_AAPT_FLAGS := \
-    --extra-packages com.android.phone.common \
-    --extra-packages com.android.services.telephony.sip
-
-LOCAL_PACKAGE_NAME := TeleService
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_PROGUARD_FLAG_FILES := proguard.flags sip/proguard.flags
-
-include frameworks/base/packages/SettingsLib/common.mk
-
-include $(BUILD_PACKAGE)
-
-# Build the test package
-include $(call all-makefiles-under,$(LOCAL_PATH))
-
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a47100b..0f316ea 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -32,14 +32,12 @@
     <protected-broadcast android:name="android.intent.action.EMERGENCY_CALL_STATE_CHANGED" />
     <protected-broadcast android:name="android.intent.action.SIG_STR" />
     <protected-broadcast android:name="android.intent.action.ANY_DATA_STATE" />
-    <protected-broadcast android:name="android.intent.action.DATA_CONNECTION_FAILED" />
     <protected-broadcast android:name="android.intent.action.DATA_STALL_DETECTED" />
     <protected-broadcast android:name="android.intent.action.SIM_STATE_CHANGED" />
-    <protected-broadcast android:name="android.intent.action.NETWORK_SET_TIME" />
-    <protected-broadcast android:name="android.intent.action.NETWORK_SET_TIMEZONE" />
-    <protected-broadcast android:name="com.android.internal.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
+    <protected-broadcast android:name="android.intent.action.USER_ACTIVITY_NOTIFICATION" />
+    <protected-broadcast android:name="android.telephony.action.SHOW_NOTICE_ECM_BLOCK_OTHERS" />
     <protected-broadcast android:name="android.intent.action.ACTION_MDN_STATE_CHANGED" />
-    <protected-broadcast android:name="android.provider.Telephony.SPN_STRINGS_UPDATED" />
+    <protected-broadcast android:name="android.telephony.action.SERVICE_PROVIDERS_UPDATED" />
     <protected-broadcast android:name="android.provider.Telephony.SIM_FULL" />
     <protected-broadcast android:name="com.android.internal.telephony.data-restart-trysetup" />
     <protected-broadcast android:name="com.android.internal.telephony.data-stall" />
@@ -50,7 +48,8 @@
     <protected-broadcast android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
     <protected-broadcast android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
     <protected-broadcast android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
-    <protected-broadcast android:name="android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED" />
+    <protected-broadcast android:name="android.provider.action.SMS_EMERGENCY_CB_RECEIVED" />
+    <protected-broadcast android:name="android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED" />
     <protected-broadcast android:name="android.provider.Telephony.SECRET_CODE" />
     <protected-broadcast android:name= "com.android.internal.stk.command" />
     <protected-broadcast android:name= "com.android.internal.stk.session_end" />
@@ -62,7 +61,6 @@
     <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_RESET" />
     <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE" />
     <protected-broadcast android:name= "com.android.internal.telephony.ACTION_LINE1_NUMBER_ERROR_DETECTED" />
-    <protected-broadcast android:name= "com.android.internal.telephony.ACTION_REPORT_RADIO_BUG" />
     <protected-broadcast android:name= "com.android.internal.provider.action.VOICEMAIL_SMS_RECEIVED" />
     <protected-broadcast android:name= "com.android.intent.isim_refresh" />
     <protected-broadcast android:name= "com.android.ims.ACTION_RCS_SERVICE_AVAILABLE" />
@@ -78,7 +76,7 @@
     <protected-broadcast android:name= "com.android.imsconnection.DISCONNECTED" />
     <protected-broadcast android:name= "com.android.intent.action.IMS_FEATURE_CHANGED" />
     <protected-broadcast android:name= "com.android.intent.action.IMS_CONFIG_CHANGED" />
-    <protected-broadcast android:name= "com.android.ims.REGISTRATION_ERROR" />
+    <protected-broadcast android:name= "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR" />
     <protected-broadcast android:name= "com.android.phone.vvm.omtp.sms.REQUEST_SENT" />
     <protected-broadcast android:name= "com.android.phone.vvm.ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT" />
     <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_VVM_PACKAGE_INSTALLED" />
@@ -92,10 +90,14 @@
     <protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED" />
     <protected-broadcast android:name= "android.telephony.action.NETWORK_COUNTRY_CHANGED" />
     <protected-broadcast android:name= "android.telephony.action.PRIMARY_SUBSCRIPTION_LIST_CHANGED" />
+    <protected-broadcast android:name= "android.telephony.action.MULTI_SIM_CONFIG_CHANGED" />
 
     <!-- For Vendor Debugging in Telephony -->
     <protected-broadcast android:name="android.telephony.action.ANOMALY_REPORTED" />
 
+    <!-- Allows granting runtime permissions to telephony related components. -->
+    <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS" />
+
     <uses-permission android:name="android.permission.BROADCAST_STICKY" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
@@ -128,8 +130,8 @@
     <uses-permission android:name="android.permission.WRITE_SMS" />
     <uses-permission android:name="android.permission.SEND_SMS" />
     <uses-permission android:name="android.permission.SEND_RESPOND_VIA_MESSAGE" />
-    <uses-permission android:name="android.permission.SET_TIME" />
     <uses-permission android:name="android.permission.SET_TIME_ZONE" />
+    <uses-permission android:name="android.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
     <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
@@ -139,6 +141,7 @@
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
     <uses-permission android:name="android.permission.BROADCAST_SMS"/>
     <uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"/>
@@ -157,8 +160,11 @@
     <uses-permission android:name="com.android.smspush.WAPPUSH_MANAGER_BIND" />
     <uses-permission android:name="android.permission.MANAGE_USERS" />
     <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
+    <uses-permission android:name="android.permission.READ_CARRIER_APP_INFO" />
     <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" />
-    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
+    <uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS" />
+    <uses-permission android:name="android.permission.NETWORK_FACTORY" />
+    <uses-permission android:name="android.permission.OBSERVE_NETWORK_POLICY" />
     <uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
     <uses-permission android:name="android.permission.READ_SEARCH_INDEXABLES" />
     <uses-permission android:name="android.permission.DUMP" />
@@ -169,7 +175,8 @@
     <!-- BIND_CARRIER_MESSAGING_SERVICE has been deprecated in favor of BIND_CARRIER_SERVICES. -->
     <uses-permission android:name="android.permission.BIND_CARRIER_MESSAGING_SERVICE" />
     <uses-permission android:name="android.permission.BIND_EUICC_SERVICE" />
-    <uses-permission android:name="com.android.permission.BIND_TELEPHONY_NETWORK_SERVICE" />
+    <uses-permission android:name="android.permission.BIND_TELEPHONY_NETWORK_SERVICE" />
+    <uses-permission android:name="android.permission.BIND_CELL_BROADCAST_SERVICE" />
     <uses-permission android:name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS" />
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
@@ -189,6 +196,9 @@
     <uses-permission android:name="android.permission.WRITE_BLOCKED_NUMBERS" />
     <uses-permission android:name="android.permission.NETWORK_SETTINGS" />
 
+    <!-- Needed to register puller to statsd. -->
+    <uses-permission android:name="android.permission.REGISTER_STATS_PULL_ATOM" />
+
     <!-- This tells the activity manager to not delay any of our activity
          start requests, even if they happen immediately after the user
          presses home. -->
@@ -200,6 +210,11 @@
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
     <uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
     <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
+    <!-- Allows us to whitelist receivers of the
+         ACTION_SIM_SLOT_STATUS_CHANGED broadcast to start activities
+         from the background.  -->
+    <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
+    <uses-permission android:name="android.permission.NETWORK_STATS_PROVIDER" />
 
     <application android:name="PhoneApp"
             android:persistent="true"
@@ -233,6 +248,15 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:scheme="tel" />
             </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.DIAL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.DIAL_EMERGENCY" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="tel" />
+            </intent-filter>
         </activity>
 
         <activity android:name="ADNList" />
@@ -264,39 +288,6 @@
                   android:theme="@android:style/Theme.Translucent.NoTitleBar"
                   android:exported="false"/>
 
-        <!-- "Mobile network settings" screen, used on both
-             non-voice-capable tablets and regular phone devices. -->
-        <activity android:name="MobileNetworkSettings"
-            android:label="@string/network_settings_title"
-            android:theme="@style/NetworkOperatorsSettingsTheme">
-            <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
-                <action android:name="android.intent.action.MAIN" />
-                <action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
-                <action android:name="android.settings.DATA_ROAMING_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
-        <activity-alias android:name="Settings"
-            android:targetActivity="MobileNetworkSettings" />
-
-        <!-- networks setting -->
-        <!-- "Choose network" screen. Used only when the Automatically
-             select network turned off-->
-        <activity android:name="NetworkSelectSettingActivity"
-            android:label="@string/choose_network_title"
-            android:theme="@style/NetworkOperatorsSettingsTheme"
-            android:configChanges="orientation|screenSize">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
-        <!-- service to handle network query requests sent to RIL -->
-        <service android:name="NetworkQueryService" />
-
         <activity android:name="GsmUmtsCallOptions"
                 android:label="@string/gsm_umts_options"
                 android:theme="@style/DialerSettingsLight">
@@ -484,6 +475,21 @@
             </intent-filter>
         </activity>
 
+        <!--
+            Handler for EuiccManager's public action intents. These are public and do not require
+            any special permissions to start, although the calling package name should be
+            whitelisted by the underlying eUICC service implementation (i.e. the LPA).
+        -->
+        <activity android:name=".euicc.EuiccPublicActionUiDispatcherActivity"
+            android:theme="@android:style/Theme.NoDisplay">
+            <!-- Max out priority to ensure nobody else will handle these intents. -->
+            <intent-filter android:priority="1000">
+                <action android:name=
+                    "android.telephony.euicc.action.START_EUICC_ACTIVATION" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
         <activity android:name="EmergencyCallbackModeExitDialog"
             android:excludeFromRecents="true"
             android:label="@string/ecm_exit_dialog"
@@ -491,7 +497,7 @@
             android:theme="@android:style/Theme.Translucent.NoTitleBar">
             <intent-filter>
                 <action android:name="com.android.phone.action.ACTION_SHOW_ECM_EXIT_DIALOG" />
-                <action android:name="com.android.internal.intent.action.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS" />
+                <action android:name="android.telephony.action.SHOW_NOTICE_ECM_BLOCK_OTHERS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
@@ -508,7 +514,7 @@
 
         <receiver android:name="com.android.services.telephony.sip.SipIncomingCallReceiver">
             <intent-filter>
-                <action android:name="com.android.phone.SIP_INCOMING_CALL" />
+                <action android:name="android.net.sip.action.SIP_INCOMING_CALL" />
             </intent-filter>
         </receiver>
 
@@ -539,6 +545,12 @@
                 android:uiOptions="splitActionBarWhenNarrow">
         </activity>
 
+        <service android:name="com.android.services.telephony.sip.components.TelephonySipService">
+            <intent-filter>
+                <action android:name="android.net.sip.action.START_SIP" />
+            </intent-filter>
+        </service>
+
         <!-- End SIP -->
 
         <activity android:name="MMIDialogActivity"
@@ -631,5 +643,33 @@
                 <action android:name="android.telephony.data.DataService" />
             </intent-filter>
         </service>
+
+        <activity
+            android:name=".settings.RadioInfo"
+            android:label="@string/phone_info_label"
+            android:theme="@style/Theme.AppCompat.DayNight">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".settings.BandMode"
+                  android:label="@string/band_mode_title"
+                  android:theme="@style/Theme.AppCompat.DayNight">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.VOICE_LAUNCH" />
+            </intent-filter>
+        </activity>
+
+        <provider
+            android:name="ServiceStateProvider"
+            android:authorities="service-state"
+            android:exported="true"
+            android:multiprocess="false"
+            android:singleUser="true"
+            android:writePermission="android.permission.MODIFY_PHONE_STATE"/>
     </application>
 </manifest>
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 1321ace..ed8a4da 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -48,3 +48,9 @@
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
 # ************************************************
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.services.telephony.common_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/telephony-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/framework/ims-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/apex/com.android.telephony/javalib/telephony-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/apex/com.android.telephony/javalib/ims-common.jar)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/apex/com.android.telephony.apex)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/TeleServiceLib)
\ No newline at end of file
diff --git a/OWNERS b/OWNERS
index 1ef8344..3059d4d 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,13 +1,15 @@
 amitmahajan@google.com
 breadley@google.com
 fionaxu@google.com
-hallliu@google.com
 jackyu@google.com
+hallliu@google.com
 rgreenwalt@google.com
 tgunn@google.com
-refuhoo@google.com
-mpq@google.com
 jminjie@google.com
 shuoq@google.com
-paulye@google.com
+refuhoo@google.com
 nazaninb@google.com
+sarahchin@google.com
+dbright@google.com
+xiaotonj@google.com
+
diff --git a/TEST_MAPPING b/TEST_MAPPING
new file mode 100644
index 0000000..e75dcb0
--- /dev/null
+++ b/TEST_MAPPING
@@ -0,0 +1,12 @@
+{
+  "presubmit": [
+    {
+      "name": "TeleServiceTests",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    }
+  ]
+}
diff --git a/apex/Android.bp b/apex/Android.bp
new file mode 100644
index 0000000..a7137d9
--- /dev/null
+++ b/apex/Android.bp
@@ -0,0 +1,33 @@
+apex_defaults {
+    name: "com.android.telephony-defaults",
+
+    // optional. if unspecified, a default one is auto-generated
+    androidManifest: "AndroidManifest.xml",
+
+    //java_libs: ["telephony-common", "ims-common", "voip-common"],
+    //apps: ["TeleService", "StkLib", "ONSLib"],
+
+    key: "com.android.telephony.key",
+    certificate: ":com.android.telephony.certificate",
+}
+
+apex {
+    name: "com.android.telephony",
+    manifest: "apex_manifest.json",
+    //apps: ["StkLib"],
+
+    defaults:["com.android.telephony-defaults"],
+}
+
+apex_key {
+    name: "com.android.telephony.key",
+    public_key: "com.android.telephony.avbpubkey",
+    private_key: "com.android.telephony.pem",
+}
+
+android_app_certificate {
+    name: "com.android.telephony.certificate",
+    // This will use com.android.telephony.x509.pem (the cert) and
+    // com.android.telephony.pk8 (the private key)
+    certificate: "com.android.telephony",
+}
diff --git a/apex/AndroidManifest.xml b/apex/AndroidManifest.xml
new file mode 100644
index 0000000..6f25d7c
--- /dev/null
+++ b/apex/AndroidManifest.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.android.telephony">
+    <!-- APEX does not have classes.dex -->
+    <application android:hasCode="false" />
+    <!-- Setting maxSdk to lock the module to R. minSdk is auto-set by build system -->
+</manifest>
diff --git a/apex/apex_manifest.json b/apex/apex_manifest.json
new file mode 100644
index 0000000..493d6fd
--- /dev/null
+++ b/apex/apex_manifest.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.telephony",
+  "version": 1
+}
\ No newline at end of file
diff --git a/apex/com.android.telephony.avbpubkey b/apex/com.android.telephony.avbpubkey
new file mode 100644
index 0000000..cba14427
--- /dev/null
+++ b/apex/com.android.telephony.avbpubkey
Binary files differ
diff --git a/apex/com.android.telephony.pem b/apex/com.android.telephony.pem
new file mode 100644
index 0000000..19d8c05
--- /dev/null
+++ b/apex/com.android.telephony.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIJKQIBAAKCAgEAvEOU0eLO65uykCUYoLBXxjsIB7pCIXahtyIMYiGuUl6tnYb2
+gjPxsD9fNrqgdT+WgzHlfMPr4GqkT7prSI4/y9NglnFk2nAKZLQwiwtLOmm54Cnp
+OqqQZ9+g4MvA2rsrmstJ/Pdu4t+9Bv9bZHYLEPCW4LV1v5S2jY7ie/C+SbZm8yFz
+X9RgTX7loH7oSNDqvVMRUeyrlH3gRHxPMQxIMfLMro1NCfkA4q8QnwPpM2+YEBf0
+kktXkvbfJUB0Ywo6BCVAoqxkghNQQTLBuBDFnho13gQSMOLu8C62pzdAyPm/n5Yv
+aqEdmmGkBsy2qiHTiRuiWWl9aGDhd0U6e+hYK4OM3ISDQiTr5OuraIKt8EH7jo8H
+Zb/WqJFygOq5RqXmAvbtq+eBAgLlUNAl5F9RwLU6zPTREsSGG/g1fqUSD4ZS2qHt
+d9aBdSepvL4xDCg9BDTFMt4Xjc83hk+v7nIIPB4cayA9s2kgjXwjZhiMOJuoNMmr
+Wu2GP9zw37WmUF5jXKgICVtoq//qofA3KA+YZ8NcmPRmeBzCEks5fCAZN64AIh5l
+vi8pPv+s8lbhGui/dkgJAGoMWKwukMZZDxTFfgbPU74yIWUpoiXGEv+0WPsOyxKe
+HEC0uXL6h6HtTaxTTyk9OJp1Z12ih2CdHmoK8aHeL1ND+YXxko4rcVyJGvcCAwEA
+AQKCAgAve1gAa5TGhZlOk5yXgoJQw7itwkNFj1cQCi1XXqlJqwlcrppjklhFnGYW
+NpGboLMEWcRIaF2IVz0jwp+mSAI9FQ3KQ8Us9o8YgP2xQ+LwU5QGvmtNWZFcMWGw
+8JKuWACSZO0/OOSlocpaBnN1bfQyjItxFzMgY5B7OWtT2Q8VJkTm0yv3Img7g2LE
+zN0m6FIb9+RpZiiMJgc3HqcWdsOKnXMUHx0sA7o+cereQC1DxMR0YqZTc18d+Nek
+3JG+HOku/HpFzPb4e4iFORj0pH5C9tdZLGuuGr4qo417tQrI5Xx38nf5C7OcqT2m
+XWFAnZFthiO3K0zu02hqHXK3p4z81aerzOAFHQP9Dvw0LrEevhMS7POwnoBMWIYT
+j2oJAKf84AIt+URNxRMcOH4Vs8133ZJxesotYzEdZBN4KBukCC+MzLtkJ3C3vLSu
+PPlwYfS0T/wMLBlQRfGM2pZbuldc4Th+VuE8lvDIvmZKxUXdAh/OkTJRt95SSpFQ
+PZy9NauagIaDyE08z3vgiYUH/498piibXiv4ox9puyfDI30W7VlZA9NBV7UBhkcV
+vxmop3U4KJdI0dcwB/8oQao/eM8Bk8TOI58Ux/gM+7tLM+pzeIPlKsZ3GWjZYyZi
+Fds7JdprR2AljUoKXAGA3G2IejhiB6VSivR8IRLwdWZSAaM9iQKCAQEA512QfnYR
+MDjYzUBYySHANVFi09q3taoYJ1Ovq4w3YnC4Yy6OM1rI1g55mhzGGnrQhC8//Lwy
+v9fxhxEQkx8rY40KJRizfc28l3gIFzF+/mP5DqUQiVZQBiAm0m0y3LA1xTCRxyc/
+yLWCodFOojcg8H3vxDUiL+80wLRX/zXmUHjhGmg+sZVtuWTVpgdFEGR1guVAoXPM
+t6p9+Zpr+yhURRuce7IfjVxIXtjzaZ6fglCYSnakhxvBMWvvhhD2Sx60bl0sBpsT
+oj4VZmd7i01bde1H2BlJ9ca23uGPylvmC+kVFVoqnMv7dZuhHgQY06zg+zts8Grm
+mVcTa5xKtEr2FQKCAQEA0E8t9/XV6tEH5BoiZ6SLIYeh+yk/h8hQKGn+lnzcywon
+L/EEtvqzoeIkbLATOk4ffbiYtI86GxldPUp293ups9rJCJdb7fIahJJd4Pl9d9QF
+dEWkuMC9btyBq0WjvJLIVxKLcBv9NAMnfLYIWk4OfAXQ2Kgv4OrYmxqtLdnzqIT0
+4jgQcHkaDbPIBkOAfAcyy6b6TNsdhiR/ojZ/3s7e0YpUhUkvGqHPeGkg827fznui
+mOSvuIC1eg92Kpsv/NzZkSkhh+Y4yT3mXTPkdRrIoRiwfUsBx9c3CUB1bhMlqYdP
+p9IwfcDYPmPIWqD/5EIm5CIFTh/qFuJuB/RP1xr72wKCAQEAm6BZGGdsqmYilvWI
+g0o7kuG6u0xstDrE4nctPBQmEQZHURe4uRyA6VN1Qk/GhXtFFRT/Uo55CIhFw5eb
+8YpO0jjFsSxLV/zytWQc9RTrGky+87XeSLMRQv2Pf43KX537nTdNZ4ukIOrPAu/a
+l8zDUGE1zWH8LAgYEON+KYHk+Q5GRFAIk8UyuDj2aSaMszkPvktczP0qoASDlkjk
+B14aSR4IhT/Mb3a6i2odWVdEbhCuT7A8fVETA55Z0HFKaj8uGOp9ObhIXaKrHGXR
+OWOAePNxlw9zq2nOCl/pK7HjLPHMp78t2Khw7awQlTMmTAQGlZdkcNdHY6+ptYG8
+0kd1/QKCAQAaosVB+5FK4UedByp3DjcsJmez8eZJundlc4g2PekNnVK9cpgjvZLS
+lFQMAcezoOGt9biw/c90P54IhEkKBCoC8WrbSl9a4aY6ZWzTo5NDizzXTUBuz1Zp
+opCCEfmJ10r+t0RVJX8O84hNDgmrYme/vA6kZX0ZyW3BB3w1bLUXS0j01C5l81Y9
+gkuFYYRAV7tLByLiSPJRgMFBQK7BErqzGHkOQflf8mjRAMBR4E+F25FC85r0gKCz
+5t45PHa6YpL/WL8M3YdNVDjsmgIQZ0hYMQwAOWMU5pQG/tMFLDWYo9CvqNTCf7Im
+6CNqU0PlMABBE4iSIMqR+ooPQlIjMzQZAoIBAQC9JulZdQJzjZSI5tBj+zPScJJQ
+s/+sRfQBy7SalPtc+oLYBP2Js9c1JsR4Dk2vC3V5z7BaL4Lg4YcFVRcz9B4yUVRm
+BL/E34XGLfn5KBI8NeqIvHiivvlAPgoHwHAVsqtE35E2sYjOYbnn1FEaNm6EKiL3
+Dv1auVdLlP3jALJIEwHPzc2ZOc/Sh/LolfajR427j5YlgbMAk5DdXuxz7t9qEcyk
+Nc8HFaoXiBP1jK+L5C4mVvGeI9xghNoJXhNywEmMa2Shab0pmtOMQWuvNMQa3gRC
+OKbaM3A6zjvAl3rjFRBrGORqbu1E/InLOSXWuB8knYVf8LkWEDRjOHqMO3pJ
+-----END RSA PRIVATE KEY-----
diff --git a/apex/com.android.telephony.pk8 b/apex/com.android.telephony.pk8
new file mode 100644
index 0000000..b15a884
--- /dev/null
+++ b/apex/com.android.telephony.pk8
Binary files differ
diff --git a/apex/com.android.telephony.x509.pem b/apex/com.android.telephony.x509.pem
new file mode 100644
index 0000000..8b45823
--- /dev/null
+++ b/apex/com.android.telephony.x509.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGKTCCBBGgAwIBAgIUCmopA1YmjspwjjHHjmtsDPqxBxgwDQYJKoZIhvcNAQEL
+BQAwgaIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
+b2lkMR4wHAYDVQQDDBVjb20uYW5kcm9pZC50ZWxlcGhvbnkxIjAgBgkqhkiG9w0B
+CQEWE2FuZHJvaWRAYW5kcm9pZC5jb20wIBcNMTkxMjA0MDAzNjAxWhgPNDc1NzEw
+MzAwMDM2MDFaMIGiMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEW
+MBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UE
+CwwHQW5kcm9pZDEeMBwGA1UEAwwVY29tLmFuZHJvaWQudGVsZXBob255MSIwIAYJ
+KoZIhvcNAQkBFhNhbmRyb2lkQGFuZHJvaWQuY29tMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA4qQYe8S6yte4MUDF2/JBUulJLF15CdnALkDJuGYLRom2
+DxRpq2/IqX8gpwVfZCfVjtthKGMhsdLW9gI+oKck0eVB7Q2cU/WO+1Cr9cuKuT6B
+cfJUck125gRGmowWZomDXv1to6ZrGgqBlVGA546w3CNGXW/PoKr8im+xLEgD0TPA
+3jJCbxt2v2IDjMwPChHOF57y9wRkXN5aJHgwIvayReVy3Cko/rJOuPnNo2kLKI5u
+qfM4NovYNAzKbHHPCNzqhySoh2H0iTmHLby5bvXYh32ooGPmxrP6q8PubeNb+Xfc
+yY33tE74ityiqu/2FDuK2iZyL8EZkEWHbX4ddt/JREda1Mcnt95TUudqA28xHgC4
+wRYXLUADvKDVWOYu/ydWBes1iu7ZsEhy8oFdECsZGRQm2BkdmWAsMPUXRWeiaCQ4
+GFfpB38UPczY5GTgYwKAK3mmY5EeBKRu/hFMCfYGJvio2rUujRzIGOd6ovk+G/74
+Eqdbsphrkr6+UOCUrNOYUD0j7kDHVVDiWMoeKL6Qb+dFcewdDO1rRbZv8ZeExf6l
+vacfKKcEE+wls8jqof/y7cu+McGEn4R8+KKiRDcDQqLvZN4Q+CCtNRLiXA2KdrkB
+hKfhnTBBYfDNZA1WOhGrKM+Yb97ObgAgf2HuhZ2F40F3dRZ6w8yaURXAjkdCqycC
+AwEAAaNTMFEwHQYDVR0OBBYEFDCf58Ogbx07WK+hWEylNMxKYrj6MB8GA1UdIwQY
+MBaAFDCf58Ogbx07WK+hWEylNMxKYrj6MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
+hvcNAQELBQADggIBABoGWqoOfPBsXFYzP7aNhywhuCr6ddjAi3ss9vwod6JuVuVg
+Inuw1i/qPb/bO1JFEwYVH3w0JASMwzIl9h5sQv++z0P+cWsLW02AXyszb0jGD3CI
+ni/irO5PO0DdaTSHQWc8DEv0293EcqpKWmQDQ2XWH19rJ5f+Gx1046sFlUi633D2
+sFO5dG94pCtT/TcqwwkeEwA6cV2Re8F1AW8elal3sINBU5MI/OJ3GQDe+pqp9VTg
+xIEQfZ9oP6Ewl6Ect+M2hVG5X4mCk9HQL7aSuPKo2Ej6l3Xq4aQYlpO4wOVZgCJC
+chMbdAn2pjuk8+mDSR39hdIusOgr7zLZscmaGKyoxVz9KVNwd/mmu+9/mftGfYae
+RomF15hVnkhZAw21fSnhKry62+DuKt2WIyu5LqvTvRxFs0Hvoy3wrQY/oruHlgk1
+J1v1rXm3ZTrh2qv1XG8mOdTegurEvjkYQm0E38jdlkhByIHmhDdBARX2Aeb7Lrd8
+9k/7tr9+58+45punZBBMX6iW1xfwaCDF8xfZrrC96azXP6Kv/JZTxbfNm/dqHyKK
+zM2WhELaoJg7uFO9TC5eMsnBQzDoYXsr3Mu7nC7V1Bs/D7jYmFG0dG0LQJwUUGr1
+WqJT4LB0BMnzNrMH1hTQTBVYDlfn7c6fnihNBOWQt72x2GGFQsGAMUWb7pxC
+-----END CERTIFICATE-----
diff --git a/apex/testing/Android.bp b/apex/testing/Android.bp
new file mode 100644
index 0000000..10455a4
--- /dev/null
+++ b/apex/testing/Android.bp
@@ -0,0 +1,25 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+apex {
+    name: "test_com.android.telephony",
+    visibility: [
+        "//system/apex/tests",
+    ],
+    defaults: ["com.android.telephony-defaults"],
+    manifest: "test_manifest.json",
+    file_contexts: ":com.android.telephony-file_contexts",
+    // Test APEX, should never be installed
+    installable: false,
+}
\ No newline at end of file
diff --git a/apex/testing/AndroidManifest.xml b/apex/testing/AndroidManifest.xml
new file mode 100644
index 0000000..e2af9f5
--- /dev/null
+++ b/apex/testing/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.android.telephony">
+    <!-- APEX does not have classes.dex -->
+    <application android:hasCode="false" />
+    <uses-sdk
+        android:targetSdkVersion="30"
+    />
+</manifest>
\ No newline at end of file
diff --git a/apex/testing/test_manifest.json b/apex/testing/test_manifest.json
new file mode 100644
index 0000000..30bfda2
--- /dev/null
+++ b/apex/testing/test_manifest.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.telephony",
+  "version": 2147483647
+}
\ No newline at end of file
diff --git a/client/res/values-af/strings.xml b/client/res/values-af/strings.xml
new file mode 100644
index 0000000..9e9877c
--- /dev/null
+++ b/client/res/values-af/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobiele data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Foondienste"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Noodbeller"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-lys"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Kies kontakte om in te voer"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-/UMTS-opsies"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-opsies"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Oproepinstellings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Oproepaanstuur"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Oproepblokkering"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-oproepinstellings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Belbeperkingnommers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Voer PIN2 in"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Vee belbeperkingnommer uit"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktiveer/deaktiveer SIM-PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Verander SIM-PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Toeganklikheid"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialoog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ingeboude SIP-oproepe"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Oproeprekeninge"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Stemboodskap"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ingeboude SIM-kaarte"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletinligting"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Fooninligting"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Stel radiobandmodus"</string>
+</resources>
diff --git a/client/res/values-am/strings.xml b/client/res/values-am/strings.xml
new file mode 100644
index 0000000..fb1bc40
--- /dev/null
+++ b/client/res/values-am/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"የስልክ አገልግሎቶች"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"የአደጋ ጊዜ ደዋይ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"የኤፍዲኤን ዝርዝር"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ለማምጣት ዕውቂያዎችን ይምረጡ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS አማራጮች"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"የCDMA አማራጮች"</string>
+    <string name="call_settings" msgid="8152058602760531097">"የጥሪ ቅንብሮች"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ጥሪ ማስተላለፍ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ጥሪ ከልክል"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"የGSM ጥሪ ቅንብሮች"</string>
+    <string name="fdn" msgid="1080701466751913822">"ቋሚ መደወያ ቁጥሮች"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ፒን2ን ተይብ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ቋሚ መደወያ ቁጥርን ሰርዝ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"የሲም ፒን አንቃ/አሰናክል"</string>
+    <string name="change_pin" msgid="7219696137781706635">"የሲም ፒን ለውጥ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ተደራሽነት"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ውስጠ ግንቡ SIP መደወያ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"የመደወያ መለያዎች"</string>
+    <string name="voicemail" msgid="9083239047687566742">"የድምፅ መልዕክት"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"አብሮገነብ ሲም ካርዶች"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"የጡባዊ መረጃ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"የስልክ መረጃ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"የሬዲዮ ባንድ ሁነታን ያዘጋጁ"</string>
+</resources>
diff --git a/client/res/values-ar/strings.xml b/client/res/values-ar/strings.xml
new file mode 100644
index 0000000..58ff201
--- /dev/null
+++ b/client/res/values-ar/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"بيانات الجوّال"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"خدمات الهاتف"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"برنامج الاتصال في حالات الطوارئ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"قائمة أرقام الطلب الثابتة"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"اختيار جهات اتصال لاستيرادها"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏خيارات نظام GSM/النظام العالمي لاتصالات الجوال عن بعد (UMTS)"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏خيارات CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"إعدادات المكالمات"</string>
+    <string name="labelCF" msgid="2140733390678280443">"إعادة توجيه المكالمات"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"منع الاتصال"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏إعدادات اتصال نظام GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"أرقام الطلب الثابتة"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‏كتابة رقم PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"حذف رقم الطلب الثابت"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‏تفعيل/إيقاف رقم التعريف الشخصي لشريحة SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‏تغيير رقم التعريف الشخصي لشريحة SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"سهولة الاستخدام"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏اتصالات SIP مدمجة"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"حسابات الاتصال"</string>
+    <string name="voicemail" msgid="9083239047687566742">"بريد صوتي"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‏شرائح SIM المدمجة"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"معلومات الجهاز اللوحي"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"معلومات الهاتف"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ضبط وضع النطاق اللاسلكي"</string>
+</resources>
diff --git a/client/res/values-as/strings.xml b/client/res/values-as/strings.xml
new file mode 100644
index 0000000..51fdb46
--- /dev/null
+++ b/client/res/values-as/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"ম’বাইল ডেটা"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ফ’নৰ সেৱাসমূহ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"জৰুৰীকালীন ডায়েলাৰ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN তালিকা"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"আমদানি কৰিবলৈ সম্পৰ্কসমূহ বাছনি কৰক"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTSৰ বিকল্পসমূহ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA বিকল্পসমূহ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"কল ছেটিংসমূহ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"কল ফৰৱাৰ্ডিং"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"কল প্ৰতিবন্ধকতা"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM কল ছেটিংসমূহ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ফিক্সড্‌ ডায়েলিং নম্বৰসমূহ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2টো টাইপ কৰক"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ফিক্সড্‌ ডায়েলিং নম্বৰটো মচক"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ছিমৰ পিন সক্ষম/অক্ষম কৰক"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ছিমৰ পিনটো সলনি কৰক"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"সাধ্য সুবিধাসমূহ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"বিল্ট-ইন SIP কলিং"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"কলিং একাউণ্টসমূহ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ভইচমেইল"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"বিল্ট-ইন ছিম কাৰ্ডসমূহ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"টেবলেটৰ তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ফ’নৰ তথ্য"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ৰেডিঅ’ৰ বেণ্ড ম’ড ছেট কৰক"</string>
+</resources>
diff --git a/client/res/values-az/strings.xml b/client/res/values-az/strings.xml
new file mode 100644
index 0000000..0fbccb5
--- /dev/null
+++ b/client/res/values-az/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobil data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon xidmətləri"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Təcili nömrə yığan"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN siyahısı"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"İmport etmək üçün kontaktlar seçin"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS seçimləri"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA Seçimləri"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Zəng ayarları"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Zəng yönləndirmə"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zəng bloklama"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM zəng ayarları"</string>
+    <string name="fdn" msgid="1080701466751913822">"Sabit yığım nömrələri"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PİN2 daxil edin"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Sabit yığım nömrəsini silin"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SİM-in PİN kodunu aktiv/deaktiv edin"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SİM-in PİN kodunu dəyişin"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Əlçatımlılıq"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Daxili SIP zəngi"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Zəng hesabları"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Səsli poçt"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Daxili SİM kartlar"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Planşet məlumatı"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon məlumatı"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radio diapazon rejimini quraşdırın"</string>
+</resources>
diff --git a/client/res/values-b+sr+Latn/strings.xml b/client/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..48bd373
--- /dev/null
+++ b/client/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobilni podaci"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Brojčanik za hitne pozive"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista brojeva za fiksno biranje"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Izaberite kontakte za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcije za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcije"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Podešavanja poziva"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Preusmeravanje poziva"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Ograničavanje poziva"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Podešavanja GSM poziva"</string>
+    <string name="fdn" msgid="1080701466751913822">"Brojevi za fiksno biranje"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Unesite PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Izbrišite broj za fiksno biranje"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogućite/onemogućite PIN za SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Promenite PIN za SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pristupačnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ugrađena funkcija SIP pozivanja"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Nalozi za pozivanje"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Govorna pošta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ugrađene SIM kartice"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Podesite režim radijskog opsega"</string>
+</resources>
diff --git a/client/res/values-be/strings.xml b/client/res/values-be/strings.xml
new file mode 100644
index 0000000..6a9caa1
--- /dev/null
+++ b/client/res/values-be/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мабільная перадача даных"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Тэлефонныя службы"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Набіральнік нумара для экстранных сітуацый"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Спіс фіксаваных нумароў"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Выберыце кантакты для імпарту"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Параметры GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Параметры CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Налады выклікаў"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Пераадрасацыя выкліку"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Забарона выкліку"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Налады выклікаў GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Фіксаваныя нумары"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Увядзіце код PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Выдаліць фіксаваны нумар"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Уключэнне/адключэнне PIN-коду SIM-карты"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Змена PIN-кода SIM-карты"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Спецыяльныя магчымасці"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Убудаваная SIP-тэлефанія"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Уліковыя запісы для выклікаў"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Галасавая пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Убудаваныя SIM-карты"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Інфармацыя аб планшэце"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Звесткі аб тэлефоне"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Задаць рэжым радыёдыяпазону"</string>
+</resources>
diff --git a/client/res/values-bg/strings.xml b/client/res/values-bg/strings.xml
new file mode 100644
index 0000000..67d46d4
--- /dev/null
+++ b/client/res/values-bg/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобилни данни"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонни услуги"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Набиране на спешни номера"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Списък с FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Избиране на контакти за импортиране"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Опции за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Опции за CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Настройки за обаждане"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Прехвърляне на обаждания"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Забрана за обаждания"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Настройки за обаждане с GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Номера за фиксирано набиране"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Въведете PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Изтриване на номера за фиксирано набиране"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Активиране/деактивиране на ПИН за SIM карта"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Промяна на ПИН за SIM картата"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Достъпност"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Вградена услуга за обаждане през SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Профили за обаждане"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Гласова поща"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Вградени SIM карти"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информация за таблета"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информация за телефона"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Задаване на режима за радиодиапазона"</string>
+</resources>
diff --git a/client/res/values-bn/strings.xml b/client/res/values-bn/strings.xml
new file mode 100644
index 0000000..6044cbb
--- /dev/null
+++ b/client/res/values-bn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"মোবাইল ডেটা"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ফোনের পরিষেবা"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"জরুরি ডায়ালার"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN সূচি"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ইম্পোর্ট করার জন্য পরিচিতি বেছে নিন"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS বিকল্প"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA বিকল্প"</string>
+    <string name="call_settings" msgid="8152058602760531097">"কল সেটিংস"</string>
+    <string name="labelCF" msgid="2140733390678280443">"কল ফরওয়ার্ডিং"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"কল নিষিদ্ধ করা"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM কল সেটিংস"</string>
+    <string name="fdn" msgid="1080701466751913822">"ফিক্সড ডায়ালিং নম্বর"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 টাইপ করুন"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ফিক্সড ডায়ালিং নম্বর মুছুন"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"সিমের পিন চালু/বন্ধ করুন"</string>
+    <string name="change_pin" msgid="7219696137781706635">"সিমের পিন পরিবর্তন করুন"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"অ্যাক্সেসিবিলিটি"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"অন্তর্নির্মিত SIP কলিং"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"কলিং অ্যাকাউন্ট"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ভয়েসমেল"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"বিল্ট-ইন সিম কার্ড"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ট্যাবলেটের তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ফোনের তথ্য"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"রেডিও ব্যান্ড মোড সেট করুন"</string>
+</resources>
diff --git a/client/res/values-bs/strings.xml b/client/res/values-bs/strings.xml
new file mode 100644
index 0000000..4b48eb9
--- /dev/null
+++ b/client/res/values-bs/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Prijenos podataka na mobilnoj mreži"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Brojčana tastatura za hitne pozive"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN lista"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Odaberite kontakte za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS opcije"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcije"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Postavke poziva"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Prosljeđivanje poziva"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zabrana poziva"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Postavke za GSM poziv"</string>
+    <string name="fdn" msgid="1080701466751913822">"Brojevi fiksnog biranja"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Upišite PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Izbrišite broj fiksnog biranja"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogućite/onemogućite PIN za SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Promijenite PIN za SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pristupačnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ugrađeno SIP pozivanje"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Računi za pozivanje"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Govorna pošta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ugrađene SIM kartice"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Postavite način radijskog opsega"</string>
+</resources>
diff --git a/client/res/values-ca/strings.xml b/client/res/values-ca/strings.xml
new file mode 100644
index 0000000..b48a19d
--- /dev/null
+++ b/client/res/values-ca/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Dades mòbils"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Serveis del telèfon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Marcador d\'emergència"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Llista d\'FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selecciona contactes per importar-los"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcions de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opcions de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configuració de trucades"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desviació de trucades"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restricció de trucades"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configuració de trucades GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcatge fix"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Escriu el PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Suprimeix el número de marcatge fix"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activa o desactiva el PIN de la SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Canvia el PIN de la SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilitat"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Trucades SIP integrades"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Comptes de trucades"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Bústia de veu"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Targetes SIM integrades"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informació de la tauleta"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informació del telèfon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Configura el mode de banda de senyal mòbil"</string>
+</resources>
diff --git a/client/res/values-cs/strings.xml b/client/res/values-cs/strings.xml
new file mode 100644
index 0000000..44e2301
--- /dev/null
+++ b/client/res/values-cs/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobilní data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonní služby"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Tísňové volání"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Seznam povolených čísel"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Vyberte kontakty na import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Možnosti CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Nastavení hovoru"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Přesměrování hovorů"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blokování hovorů"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Nastavení hovorů GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Povolená telefonní čísla"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Zadejte kód PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Smazat povolené telefonní číslo"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Povolit nebo zakázat PIN SIM karty"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Změnit PIN SIM karty"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Usnadnění"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Dialog ukončení režimu tísňového zpětného volání"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Vestavěné volání SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Účty pro volání"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Hlasová schránka"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Vestavěné SIM karty"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informace o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informace o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nastavit režim pásma bezdrátového modulu"</string>
+</resources>
diff --git a/client/res/values-da/strings.xml b/client/res/values-da/strings.xml
new file mode 100644
index 0000000..215da60
--- /dev/null
+++ b/client/res/values-da/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Opkaldstjenester"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Nødopkald"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Numre til begrænset opkald"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Vælg kontakter, der skal importeres"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Indstillinger for GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Indstillinger for CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Indstillinger for opkald"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Viderestilling af opkald"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Opkaldsspærring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Indstillinger for GSM-opkald"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numre til begrænset opkald"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Angiv PIN2-kode"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Slet nummer til begrænset opkald"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktiver/deaktiver pinkode til SIM-kort"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Skift pinkode til SIM-kort"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Tilgængelighed"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"NttAfslutDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Indbygget SIP-opkald"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Opkaldskonti"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Talebesked"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Indbyggede SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Oplysninger om tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefonoplysninger"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Konfigurer radiobåndstilstand"</string>
+</resources>
diff --git a/client/res/values-de/strings.xml b/client/res/values-de/strings.xml
new file mode 100644
index 0000000..ad6a476
--- /dev/null
+++ b/client/res/values-de/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobile Daten"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefondienste"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Notruf"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Zugelassene Rufnummern"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Kontakte für Import auswählen"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-/UMTS-Optionen"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-Optionen"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Anrufeinstellungen"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Anrufweiterleitung"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Anrufsperre"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-Anrufeinstellungen"</string>
+    <string name="fdn" msgid="1080701466751913822">"Rufnummernbeschränkung"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 eingeben"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Zugelassene Rufnummer löschen"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"PIN für SIM-Karte aktivieren/deaktivieren"</string>
+    <string name="change_pin" msgid="7219696137781706635">"PIN für SIM-Karte ändern"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Bedienungshilfen"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Integrierte SIP-Telefonie"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Anrufkonten"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Mailbox"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Integrierte SIM-Karten"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet-Informationen"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Über das Telefon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Frequenzbereichmodus festlegen"</string>
+</resources>
diff --git a/client/res/values-el/strings.xml b/client/res/values-el/strings.xml
new file mode 100644
index 0000000..4ca4469
--- /dev/null
+++ b/client/res/values-el/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Δεδομένα κινητής τηλεφωνίας"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Υπηρεσίες τηλεφώνου"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Πρόγραμμα κλήσης έκτακτης ανάγκης"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Λίστα FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Επιλέξτε επαφές προς εισαγωγή"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Επιλογές GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Επιλογές CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Ρυθμίσεις κλήσης"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Προώθηση κλήσης"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Φραγή κλήσεων"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Ρυθμίσεις κλήσης GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Καθορισμένοι αριθμοί κλήσης"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Τύπος PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Διαγραφή καθορισμένου αριθμού κλήσης"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ενεργοποίηση/απενεργοποίηση αριθμού PIN της κάρτας SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Αλλαγή αριθμού PIN κάρτας SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Προσβασιμότητα"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Παράθυρο διαλόγου εξόδου από λειτουργία κλήσης έκτακτης ανάγκης"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ενσωματωμένη υπηρεσία κλήσεων SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Λογαριασμοί κλήσης"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Αυτόματος τηλεφωνητής"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ενσωματωμένες κάρτες SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Πληροφορίες tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Πληροφορίες τηλεφώνου"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Ρύθμιση λειτουργίας ζώνης συχνοτήτων πομπού"</string>
+</resources>
diff --git a/client/res/values-en-rAU/strings.xml b/client/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rAU/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rCA/strings.xml b/client/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rCA/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rGB/strings.xml b/client/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rGB/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rIN/strings.xml b/client/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..357fd69
--- /dev/null
+++ b/client/res/values-en-rIN/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobile data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Emergency dialler"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN list"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Select contacts to be imported"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS options"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA options"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Call settings"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Call forwarding"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Call barring"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM call settings"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fixed dialling numbers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Type PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Delete fixed dialling number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Enable/disable SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Change SIM PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibility"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialogue"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in SIP calling"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Calling accounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Built-in SIM cards"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Phone info"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Set radio band mode"</string>
+</resources>
diff --git a/client/res/values-en-rXC/strings.xml b/client/res/values-en-rXC/strings.xml
new file mode 100644
index 0000000..bd9de85
--- /dev/null
+++ b/client/res/values-en-rXC/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎Mobile Data‎‏‎‎‏‎"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎Phone Services‎‏‎‎‏‎"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎Emergency Dialer‎‏‎‎‏‎"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎FDN list‎‏‎‎‏‎"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‏‎Select contacts to import‎‏‎‎‏‎"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎GSM/UMTS Options‎‏‎‎‏‎"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎CDMA Options‎‏‎‎‏‎"</string>
+    <string name="call_settings" msgid="8152058602760531097">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‎Call settings‎‏‎‎‏‎"</string>
+    <string name="labelCF" msgid="2140733390678280443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‎Call forwarding‎‏‎‎‏‎"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‎‎‎Call barring‎‏‎‎‏‎"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‏‎‏‎GSM call settings‎‏‎‎‏‎"</string>
+    <string name="fdn" msgid="1080701466751913822">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‏‎‎Fixed Dialing Numbers‎‏‎‎‏‎"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎Type PIN2‎‏‎‎‏‎"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎Delete fixed dialing number‎‏‎‎‏‎"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎Enable/disable SIM PIN‎‏‎‎‏‎"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎Change SIM PIN‎‏‎‎‏‎"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‎Accessibility‎‏‎‎‏‎"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎EcmExitDialog‎‏‎‎‏‎"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎Built-in SIP calling‎‏‎‎‏‎"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎Calling accounts‎‏‎‎‏‎"</string>
+    <string name="voicemail" msgid="9083239047687566742">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎Voicemail‎‏‎‎‏‎"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎Built-in SIM cards‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‎Tablet info‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎Phone info‎‏‎‎‏‎"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎Set Radio Band Mode‎‏‎‎‏‎"</string>
+</resources>
diff --git a/client/res/values-es-rUS/strings.xml b/client/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..338b6b8
--- /dev/null
+++ b/client/res/values-es-rUS/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Datos móviles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Servicios telefónicos"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Marcador de emergencia"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de NMF"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleccionar contactos para importar"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opciones de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opciones de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configuración de llamadas"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desvío de llamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restricción de llamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configuración de llamadas de GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Marcación fija"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ingresar el PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Borrar número de marcación fija"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Habilitar/inhabilitar PIN de tarjeta SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambiar PIN de SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilidad"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Llamadas SIP integradas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Cuentas telefónicas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Buzón de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Tarjetas SIM integradas"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Información de la tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Información del dispositivo"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Establecer modo de banda de radio"</string>
+</resources>
diff --git a/client/res/values-es/strings.xml b/client/res/values-es/strings.xml
new file mode 100644
index 0000000..7836aca
--- /dev/null
+++ b/client/res/values-es/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Datos móviles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Servicios del teléfono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Llamada de emergencia"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleccionar contactos para importarlos"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opciones GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opciones de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Ajustes de llamadas"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desvío de llamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Bloqueo de llamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Ajustes de llamadas GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcación fija"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Introducir código PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eliminar número de marcación fija"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Habilitar o inhabilitar PIN de tarjeta SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambiar PIN de la tarjeta SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilidad"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Llamadas SIP integradas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Cuentas de llamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Buzón de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Tarjetas SIM integradas"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Información del tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Información sobre el teléfono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Establecer modo de banda de señal móvil"</string>
+</resources>
diff --git a/client/res/values-et/strings.xml b/client/res/values-et/strings.xml
new file mode 100644
index 0000000..583e3c6
--- /dev/null
+++ b/client/res/values-et/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobiilne andmeside"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefoniteenused"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Hädaabikõne valija"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-i loend"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Valige imporditavad kontaktid"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-i/UMTS-i valikud"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA valikud"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Kõne seaded"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Kõne suunamine"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Kõnede blokeerimine"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-kõneseaded"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fikseeritud valimisnumbrid"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Sisestage PIN2-kood"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Kustuta fikseeritud valimisnumber"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM-i PIN-koodi lubamine/keelamine"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Muuda SIM-kaardi PIN-koodi"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Hõlbustus"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Sisseehitatud SIP-kõnede tegemine"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Kõnekontod"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Kõnepost"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Sisseehitatud SIM-kaardid"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Teave tahvelarvuti kohta"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefoniteave"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Raadio ribarežiimi määramine"</string>
+</resources>
diff --git a/client/res/values-eu/strings.xml b/client/res/values-eu/strings.xml
new file mode 100644
index 0000000..3bd2b1c
--- /dev/null
+++ b/client/res/values-eu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Datu-konexioa"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonoaren zerbitzuak"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Larrialdietarako markagailua"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN zenbakien zerrenda"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Hautatu inportatu beharreko kontaktuak"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS aukerak"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA aukerak"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Dei-ezarpenak"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Dei-desbideratzea"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Deiak debekatzeko aukera"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM deien ezarpenak"</string>
+    <string name="fdn" msgid="1080701466751913822">"Markatze finkoko zenbakiak"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Idatzi PIN2 kodea"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ezabatu markatze finkoko zenbakia"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Gaitu/Desgaitu SIM txartelaren PIN kodea"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Aldatu SIMaren PIN kodea"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Erabilerraztasuna"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP dei integratuak"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Deiak egiteko kontuak"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ahots-mezua"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"SIM txartel integratuak"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletaren informazioa"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefonoaren informazioa"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Ezarri irrati-bandaren modua"</string>
+</resources>
diff --git a/client/res/values-fa/strings.xml b/client/res/values-fa/strings.xml
new file mode 100644
index 0000000..d2e67b3
--- /dev/null
+++ b/client/res/values-fa/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"داده‌ تلفن همراه"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"سرویس‌های تلفن"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"شماره‌گیر اضطراری"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"‏فهرست FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"انتخاب مخاطبین برای وارد کردن"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏گزینه‌های GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏گزینه‌های CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"تنظیمات تماس"</string>
+    <string name="labelCF" msgid="2140733390678280443">"هدایت تماس"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"محدودیت تماس"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏تنظیمات تماس GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"شماره‌های شماره‌گیری ثابت"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"تایپ پین۲"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"حذف شماره شماره‌گیری ثابت"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"فعال کردن/غیرفعال کردن پین سیم"</string>
+    <string name="change_pin" msgid="7219696137781706635">"تغییر پین سیم"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"دسترس‌پذیری"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏تماس SIP داخلی"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"حساب‌های تماس"</string>
+    <string name="voicemail" msgid="9083239047687566742">"پست صوتی"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"سیم‌کارت‌های داخلی"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"اطلاعات رایانه لوحی"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"اطلاعات تلفن"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"تنظیم حالت باند رادیو"</string>
+</resources>
diff --git a/client/res/values-fi/strings.xml b/client/res/values-fi/strings.xml
new file mode 100644
index 0000000..75f0ab9
--- /dev/null
+++ b/client/res/values-fi/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobiilidata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Puhelinpalvelut"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Hätäpuhelut"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Sallittujen numeroiden luettelo"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Valitse tuotavat yhteystiedot"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS-asetukset"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-asetukset"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Puheluasetukset"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Soitonsiirto"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Puhelujen esto"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-puheluasetukset"</string>
+    <string name="fdn" msgid="1080701466751913822">"Sallitut numerot"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Anna PIN2-koodi"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Poista sallittu numero"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ota SIM-kortin PIN-koodi käyttöön / poista koodi käytöstä"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Muuta SIM-kortin PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Esteettömyys"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Sisäänrakennetut SIP-puhelut"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Puhelutilit"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Puhelinvastaaja"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Sisäiset SIM-kortit"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletin tiedot"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Puhelimen tiedot"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radion taajuustilan valinta"</string>
+</resources>
diff --git a/client/res/values-fr-rCA/strings.xml b/client/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..c4070f6
--- /dev/null
+++ b/client/res/values-fr-rCA/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Données cellulaires"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Services téléphoniques"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Composeur d\'urgence"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Liste de NAF"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Sélectionner les contacts à importer"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Options GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Options CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Paramètres d\'appel"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Transfert d\'appel"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Interdiction d\'appel"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Paramètres d\'appel GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numéros d\'appel fixe"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Entrer le NIP2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Supprimer un numéro autorisé"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activer/désactiver le NIP de la carte SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Modifier le NIP de la carte SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilité"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Appels SIP intégrés"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Comptes d\'appel"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Messagerie vocale"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Cartes SIM intégrées"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informations sur le téléphone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Définir le mode de bande radio"</string>
+</resources>
diff --git a/client/res/values-fr/strings.xml b/client/res/values-fr/strings.xml
new file mode 100644
index 0000000..0966a9a
--- /dev/null
+++ b/client/res/values-fr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Données mobiles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Services téléphoniques"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Appels d\'urgence"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Liste de numéros autorisés"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Sélectionner les contacts à importer"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Options GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Options CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Paramètres d\'appel"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Transfert d\'appel"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Interdiction d\'appel"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Paramètres d\'appel GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numéros autorisés"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Saisir le code PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Supprimer un numéro autorisé"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activer/désactiver le code PIN de la carte SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Modifier le code PIN de la carte SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilité"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Appels SIP intégrés"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Comptes téléphoniques"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Messagerie vocale"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Cartes SIM intégrées"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informations sur le téléphone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Définir le mode de bande radio"</string>
+</resources>
diff --git a/client/res/values-gl/strings.xml b/client/res/values-gl/strings.xml
new file mode 100644
index 0000000..cdce574
--- /dev/null
+++ b/client/res/values-gl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Datos móbiles"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Servizos de telefonía"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Marcador de emerxencia"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de NMF"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleccionar contactos para importar"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcións de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opcións de CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configuración de chamada"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Desvío de chamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restrición de chamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configuración de chamadas GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcación fixa"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Escribir PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eliminar número de marcación fixa"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activar ou desactivar o PIN da SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambiar PIN da SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilidade"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chamadas SIP integradas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Contas de chamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Correo de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Tarxetas SIM integradas"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Información da tableta"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Información do teléfono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Definir modo de banda do sinal móbil"</string>
+</resources>
diff --git a/client/res/values-gu/strings.xml b/client/res/values-gu/strings.xml
new file mode 100644
index 0000000..6c2d5a8
--- /dev/null
+++ b/client/res/values-gu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"મોબાઇલ ડેટા"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ફોન સેવાઓ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ઇમર્જન્સી ડાયલર"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDNની સૂચિ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"આયાત કરવા માટે સંપર્કો પસંદ કરો"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTSના વિકલ્પો"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA વિકલ્પો"</string>
+    <string name="call_settings" msgid="8152058602760531097">"કૉલ સેટિંગ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"કૉલ ફૉરવર્ડિંગ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"કૉલ અવરોધન"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM કૉલ સેટિંગ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ફિક્સ્ડ ડાયલિંગ નંબર"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"પિન2 ટાઇપ કરો"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ફિક્સ્ડ ડાયલિંગ નંબર ડિલીટ કરો"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"સિમનો પિન ચાલુ/બંધ કરો"</string>
+    <string name="change_pin" msgid="7219696137781706635">"સિમનો પિન બદલો"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ઍક્સેસિબિલિટી"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"બિલ્ટ-ઇન SIP કૉલિંગ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"કૉલિંગ એકાઉન્ટ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"વૉઇસમેઇલ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"બિલ્ટ-ઇન સિમ કાર્ડ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ટૅબ્લેટ વિશે માહિતી"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ફોનની માહિતી"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"રેડિયો બૅન્ડ મોડ સેટ કરો"</string>
+</resources>
diff --git a/client/res/values-hi/strings.xml b/client/res/values-hi/strings.xml
new file mode 100644
index 0000000..cc84a0d
--- /dev/null
+++ b/client/res/values-hi/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"मोबाइल डेटा"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"फ़ोन सेवाएं"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"आपातकालीन डायलर"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"एफ़डीएन सूची"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"इंपोर्ट करने के लिए संपर्कों को चुनें"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS के विकल्प"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA विकल्प"</string>
+    <string name="call_settings" msgid="8152058602760531097">"कॉल की सेटिंग"</string>
+    <string name="labelCF" msgid="2140733390678280443">"कॉल को दूसरे नंबर पर भेजना"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"कॉल रोकना"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM कॉल सेटिंग"</string>
+    <string name="fdn" msgid="1080701466751913822">"फ़िक्स्ड डायलिंग नंबर"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"पिन2 लिखें"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"फ़िक्स्ड डायलिंग नंबर मिटाएं"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"सिम कार्ड का पिन चालू/बंद करें"</string>
+    <string name="change_pin" msgid="7219696137781706635">"सिम कार्ड का पिन बदलें"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"सुलभता"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"अंतर्निहित SIP कॉलिंग"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"कॉलिंग खाते"</string>
+    <string name="voicemail" msgid="9083239047687566742">"वॉइसमेल"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"पहले से मौजूद सिम कार्ड"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"टैबलेट की जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"फ़ोन की जानकारी"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"रेडियो बैंड मोड सेट करें"</string>
+</resources>
diff --git a/client/res/values-hr/strings.xml b/client/res/values-hr/strings.xml
new file mode 100644
index 0000000..63aa21d
--- /dev/null
+++ b/client/res/values-hr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobilni podaci"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske usluge"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Brojčanik za hitne pozive"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Popis FDN brojeva"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Odabir kontakata za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcije za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcije"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Postavke poziva"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Preusmjeravanje poziva"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zabrana poziva"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Postavke GSM poziva"</string>
+    <string name="fdn" msgid="1080701466751913822">"Brojevi za fiksno biranje"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Upišite PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Izbrišite broj za fiksno biranje"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogući/onemogući PIN za SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Promjena PIN-a za SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pristupačnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ugrađeni SIP pozivi"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Pozivanje računa"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Govorna pošta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ugrađene SIM kartice"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacije o tabletnom uređaju"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Postavi način radijske frekvencije"</string>
+</resources>
diff --git a/client/res/values-hu/strings.xml b/client/res/values-hu/strings.xml
new file mode 100644
index 0000000..84442e6
--- /dev/null
+++ b/client/res/values-hu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobiladatok"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonszolgáltatás"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Segélyhívó tárcsázó"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Fix hívószámok listája"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Válassza ki az importálni kívánt névjegyeket"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS beállításai"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-beállítások"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Hívásbeállítások"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Hívásátirányítás"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Híváskorlátozás"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-hívásbeállítások"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fix hívószámok"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Írja be a PIN2-kódot"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Fix hívószám törlése"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM-kártya PIN-kódjának be-/kikapcsolása"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN-kódjának módosítása"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Kisegítő lehetőségek"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Beépített SIP-hívás"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Telefonos fiókok"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Hangposta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Beépített SIM-kártyák"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Táblagép adatai"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon adatai"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Rádióhullámsáv mód beállítása"</string>
+</resources>
diff --git a/client/res/values-hy/strings.xml b/client/res/values-hy/strings.xml
new file mode 100644
index 0000000..1bd85cd
--- /dev/null
+++ b/client/res/values-hy/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Բջջային ինտերնետ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Հեռախոսի ծառայություններ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Արտակարգ իրավիճակների համարհավաքիչ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ցուցակ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Ընտրեք կոնտակտներ ներմուծման համար"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ընտրանքներ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ընտրանքներ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Զանգերի կարգավորումներ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Զանգի վերահասցեավորում"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Զանգերի արգելափակում"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM զանգերի կարգավորումներ"</string>
+    <string name="fdn" msgid="1080701466751913822">"Թույլատրված հեռախոսահամարներ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Մուտքագրեք PIN2-ը"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ջնջել թույլատրված հեռախոսահամարը"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Միացնել/անջատել SIM քարտի PIN կոդը"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM քարտի PIN կոոդի փոփոխում"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Հատուկ գործառույթներ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP-ի միջոցով զանգերի ներկառուցված ծառայություն"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Հաշիվներ զանգերի համար"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ձայնային փոստ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ներկառուցված SIM քարտեր"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Պլանշետի մասին տեղեկություններ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Հեռախոսի մասին տեղեկություններ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Կարգավորել հաճախությունների շերտի ռեժիմը"</string>
+</resources>
diff --git a/client/res/values-in/strings.xml b/client/res/values-in/strings.xml
new file mode 100644
index 0000000..7be70c4
--- /dev/null
+++ b/client/res/values-in/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Data Seluler"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Layanan Telepon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Telepon Darurat"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Daftar NPT"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Pilih kontak untuk diimpor"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opsi GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opsi CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Setelan panggilan"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Penerusan panggilan"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Pemblokiran panggilan"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Setelan panggilan GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Panggilan Terbatas (FDN)"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ketik PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Hapus nomor panggilan terbatas"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktifkan/nonaktifkan PIN SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Ubah PIN SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Aksesibilitas"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Panggilan SIP built-in"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Akun panggilan"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Pesan Suara"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Kartu SIM internal"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Info telepon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Setel Mode Band Radio"</string>
+</resources>
diff --git a/client/res/values-is/strings.xml b/client/res/values-is/strings.xml
new file mode 100644
index 0000000..83974b3
--- /dev/null
+++ b/client/res/values-is/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Farsímagögn"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Símaþjónusta"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Neyðarnúmeraval"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Listi yfir fast númeraval"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Veldu tengiliði til að flytja inn"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Valkostir GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-valkostir"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Símtalsstillingar"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Símtalsflutningur"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Útilokun símtala"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-símtalsstillingar"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fast númeraval"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Sláðu inn PIN2-númerið"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eyða föstu númeravali"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Gera PIN-númer SIM-korts virkt eða óvirkt"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Breyta PIN-númeri SIM-korts"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Aðgengi"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Innbyggð SIP-símtöl"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Símtalareikningar"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Talhólf"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Innbyggð SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Upplýsingar um spjaldtölvu"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Upplýsingar um síma"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Velja útvarpstíðni"</string>
+</resources>
diff --git a/client/res/values-it/strings.xml b/client/res/values-it/strings.xml
new file mode 100644
index 0000000..48a79c5
--- /dev/null
+++ b/client/res/values-it/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Dati mobili"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Phone Services"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Telefono di emergenza"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Elenco numeri consentiti"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Seleziona contatti da importare"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opzioni GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opzioni CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Impostazioni chiamate"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Deviazione chiamate"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blocco chiamate"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Impostazioni di chiamata GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numeri consentiti"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Digita PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Elimina numeri consentiti"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Attiva/disattiva PIN di SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Cambia PIN della SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accessibilità"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chiamate SIP incorporate"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Account di chiamata"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Segreteria"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Schede SIM integrate"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Info telefono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Imposta modalità banda radio"</string>
+</resources>
diff --git a/client/res/values-iw/strings.xml b/client/res/values-iw/strings.xml
new file mode 100644
index 0000000..24f0d80
--- /dev/null
+++ b/client/res/values-iw/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"חבילת גלישה"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"שירותי טלפון"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"חייגן חירום"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"רשימת מספרים קבועים לחיוג"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"בחירת אנשי קשר לייבוא"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏אפשרויות GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏אפשרויות CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"הגדרות השיחה"</string>
+    <string name="labelCF" msgid="2140733390678280443">"העברת שיחות"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"חסימת שיחות"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏הגדרות שיחה של GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"מספרים קבועים לחיוג"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‏צריך להזין את קוד הגישה (PIN2)"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"מחיקת מספר קבוע לחיוג"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‏הפעלה/השבתה של קוד גישה לכרטיס ה-SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‏שינוי קוד הגישה של ה-SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"נגישות"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏שיחות SIP מובנות"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"חשבונות לשיחות"</string>
+    <string name="voicemail" msgid="9083239047687566742">"דואר קולי"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‏כרטיסי SIM מובנים"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"פרטי הטאבלט"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"פרטי הטלפון"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"הגדרת מצב תדרים של רדיו"</string>
+</resources>
diff --git a/client/res/values-ja/strings.xml b/client/res/values-ja/strings.xml
new file mode 100644
index 0000000..c1994aa
--- /dev/null
+++ b/client/res/values-ja/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"モバイルデータ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"電話サービス"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"緊急通報"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"発信番号制限リスト"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"インポートする連絡先の選択"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM / UMTS オプション"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA オプション"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通話設定"</string>
+    <string name="labelCF" msgid="2140733390678280443">"電話の転送"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通話制限"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通話設定"</string>
+    <string name="fdn" msgid="1080701466751913822">"発信番号制限"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 を入力"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"発信番号制限の削除"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN の有効化 / 無効化"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN の変更"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ユーザー補助機能"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"内蔵SIP通話機能"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通話アカウント"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ボイスメール"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"内蔵の SIM カード"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"タブレット情報"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"スマートフォン情報"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"無線バンドモードの設定"</string>
+</resources>
diff --git a/client/res/values-ka/strings.xml b/client/res/values-ka/strings.xml
new file mode 100644
index 0000000..16a6718
--- /dev/null
+++ b/client/res/values-ka/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"მობილური ინტერნეტი"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ტელეფონის სერვისები"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"გადაუდებელი ზარის აკრეფა"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN სია"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"აირჩიეთ კონტაქტი იმპორტისთვის"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ვარიანტები"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA პარამეტრები"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ზარის პარამეტრები"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ზარის გადამისამართება"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ზარების აკრძალვა"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ზარის პარამეტრები"</string>
+    <string name="fdn" msgid="1080701466751913822">"დაშვებული ნომრები"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"აკრიფეთ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"დაშვებული ნომრის წაშლა"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN-ის გააქტიურება/გამორთვა"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN-ის შეცვლა"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"მარტივი წვდომა"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ჩაშენებული SIP ზარში"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"დარეკვის ანგარიშები"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ხმოვანი ფოსტა"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ჩაშენებული SIM ბარათები"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ინფორმაცია ტაბლეტის შესახებ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ინფორმაცია ტელეფონის შესახებ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"რადიოდიაპაზონის რეჟიმის დაყენება"</string>
+</resources>
diff --git a/client/res/values-kk/strings.xml b/client/res/values-kk/strings.xml
new file mode 100644
index 0000000..bddfa14
--- /dev/null
+++ b/client/res/values-kk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобильдік интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефон қызметтері"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Құтқару қызметінің нөмірін тергіш"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"ТТН тізімі"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Импортталатын контактілерді таңдау"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS опциялары"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA (кең жолақты әртүрлі кодты бірнеше қол жетімділік) опциялары"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Қоңырау параметрлері"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Қоңырауды басқа нөмірге бағыттау"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Қоңырауды бөгеу"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM қоңырауының параметрлері"</string>
+    <string name="fdn" msgid="1080701466751913822">"Рұқсат нөмірлері"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 кодын теріңіз"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Рұқсат нөмірлерін жою"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN кодын іске қосу/істен шығару"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN кодын өзгерту"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Арнайы мүмкіндіктер"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"КММтерезесіненШығу"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Кірістірілген SIP қоңыраулары"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Қоңырау шалатын есептік жазбалар"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Дауыстық пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Кірістірілген SIM карталары"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Планшет туралы ақпарат"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Телефон ақпараты"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Радиожолақ режимін орнату"</string>
+</resources>
diff --git a/client/res/values-km/strings.xml b/client/res/values-km/strings.xml
new file mode 100644
index 0000000..553b30b
--- /dev/null
+++ b/client/res/values-km/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"ទិន្នន័យ​ទូរសព្ទ​ចល័ត"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"សេវា​ទូរសព្ទ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ផ្ទាំង​ចុច​ហៅ​ទូរសព្ទ​ទៅ​លេខ​សង្គ្រោះ​បន្ទាន់"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"បញ្ជី FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ជ្រើសរើស​ទំនាក់ទំនង​ដែល​ត្រូវ​នាំចូល"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"ជម្រើស GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"ជម្រើស CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ការកំណត់​ការហៅ​ទូរសព្ទ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ការហៅ​បន្ត"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ការរារាំង​ការហៅ​ទូរសព្ទ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"ការកំណត់​ការហៅ​ទូរសព្ទ GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"លេខ​ហៅ​ថេរ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"វាយ​បញ្ចូល​កូដ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"លុប​លេខ​ហៅ​ថេរ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"បិទ/បើក​កូដ PIN ស៊ីម"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ប្ដូរ​កូដ PIN ស៊ីម"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ភាពងាយស្រួល"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ភ្ជាប់មកជាមួយការហៅ SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"គណនី​ហៅ​ទូរសព្ទ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"សារ​ជា​សំឡេង"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ស៊ីមកាត​ជាប់​ជាមួយ​ស្រាប់"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ព័ត៌មាន​ថេប្លេត"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ព័ត៌មាន​ទូរសព្ទ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"កំណត់​មុខងារ​កម្រិត​បញ្ជូន​វិទ្យុ"</string>
+</resources>
diff --git a/client/res/values-kn/strings.xml b/client/res/values-kn/strings.xml
new file mode 100644
index 0000000..a18862d
--- /dev/null
+++ b/client/res/values-kn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ಫೋನ್ ಸೇವೆಗಳು"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ತುರ್ತು ಡಯಲರ್"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ಪಟ್ಟಿ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ಆಮದು ಮಾಡಲು ಸಂಪರ್ಕಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ಆಯ್ಕೆಗಳು"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ಆಯ್ಕೆಗಳು"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ಕರೆ ಫಾರ್ವರ್ಡ್‌ ಮಾಡುವಿಕೆ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="fdn" msgid="1080701466751913822">"ಸ್ಥಿರ ಡಯಲಿಂಗ್‌‌ ಸಂಖ್ಯೆಗಳು"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ಪಿನ್2 ಅನ್ನು ಟೈಪ್‌ ಮಾಡಿ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ಸ್ಥಿರ ಡಯಲಿಂಗ್‌‌ ಸಂಖ್ಯೆಯನ್ನು ಅಳಿಸಿ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ಸಿಮ್‌ ಪಿನ್‌ ಸಕ್ರಿಯಗೊಳಿಸಿ/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ಸಿಮ್‌ ಪಿನ್‌ ಬದಲಾಯಿಸಿ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ಪ್ರವೇಶಿಸುವಿಕೆ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ಅಂತರ್ನಿರ್ಮಿತ ಎಸ್‌ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ಧ್ವನಿಮೇಲ್"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ಅಂತರ್ನಿರ್ಮಿತ ಸಿಮ್‌ ಕಾರ್ಡ್‌ಗಳು"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ಟ್ಯಾಬ್ಲೆಟ್ ಮಾಹಿತಿ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ಫೋನ್ ಮಾಹಿತಿ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಮೋಡ್ ಹೊಂದಿಸಿ"</string>
+</resources>
diff --git a/client/res/values-ko/strings.xml b/client/res/values-ko/strings.xml
new file mode 100644
index 0000000..f25c61f
--- /dev/null
+++ b/client/res/values-ko/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"모바일 데이터"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"전화 서비스"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"긴급 통화"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"발신 허용 번호 목록"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"가져올 주소록 선택"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 옵션"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 옵션"</string>
+    <string name="call_settings" msgid="8152058602760531097">"통화 설정"</string>
+    <string name="labelCF" msgid="2140733390678280443">"착신전환"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"착발신 제한"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 통화 설정"</string>
+    <string name="fdn" msgid="1080701466751913822">"발신 허용 번호"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 입력"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"발신 허용 번호 삭제"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN 사용 설정/중지"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN 변경"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"접근성"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP 통화 기본 지원"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"통화 계정"</string>
+    <string name="voicemail" msgid="9083239047687566742">"음성메시지"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"내장된 SIM 카드"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"태블릿 정보"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"휴대전화 정보"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"무선 주파수 대역 모드 설정"</string>
+</resources>
diff --git a/client/res/values-ky/strings.xml b/client/res/values-ky/strings.xml
new file mode 100644
index 0000000..f5895a2
--- /dev/null
+++ b/client/res/values-ky/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобилдик Интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефон кызматтары"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Өзгөчө кырдаалдагы тергич"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Туруктуу терүү номерлеринин тизмеси"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Импорттоло турган байланыштарды тандаңыз"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS параметрлери"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA мүмкүнчүлүктөрү"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Чалуу жөндөөлөрү"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Чалууну башка номерге багыттоо"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Чалууларга тыюу салуу функциясы"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM чалуунун жөндөөлөрү"</string>
+    <string name="fdn" msgid="1080701466751913822">"Туруктуу терүү номерлери"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 териңиз"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Туруктуу терүү номерин өчүрүү"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM картанын PIN кодун иштетүү/өчүрүү"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM карта PIN кодун өзгөртүү"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Атайын мүмкүнчүлүктөр"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Шашылыш кайра чалуу режими"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Камтылган SIP чалуу"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Чалуу аккаунттары"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Үн почтасы"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Орнотулган SIM карталар"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Планшеттин маалыматы"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Телефондун маалыматы"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Радио жыштыгынын режимин коюу"</string>
+</resources>
diff --git a/client/res/values-lo/strings.xml b/client/res/values-lo/strings.xml
new file mode 100644
index 0000000..8676edd
--- /dev/null
+++ b/client/res/values-lo/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"ອິນເຕີເນັດມືຖື"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ການບໍລິການໂທລະສັບ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ແປ້ນໂທລະສັບໂທອອກສຸກເສີນ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"ລາຍການ FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ເລືອກລາຍຊື່ຜູ້ຕິດຕໍ່ເພື່ອນຳເຂົ້າ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"ຕົວເລືອກ GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"ຕົວເລືອກ CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ຕັ້ງຄ່າການໂທ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ການໂອນສາຍ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ການລະງັບການໂທ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"ການຕັ້ງຄ່າການໂທ GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"ໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ພິມ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ລຶບໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ປິດ/ເປີດນຳໃຊ້ PIN ຂອງ SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ປ່ຽນ PIN ຂອງ SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ການ​ໂທ SIP ໃນ​ເຄື່ອງ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ບັນການຊີໂທ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ຂໍ້ຄວາມສຽງ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ຊິມກາດໃນຕົວ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ຂໍ້​ມູນ​ແທັບເລັດ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ຂໍ້​ມູນ​ໂທລະ​ສັບ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ຕັ້ງຄ່າໂໝດແຖບຄວາມຖີ່ວິທະຍຸ"</string>
+</resources>
diff --git a/client/res/values-lt/strings.xml b/client/res/values-lt/strings.xml
new file mode 100644
index 0000000..48ee029
--- /dev/null
+++ b/client/res/values-lt/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobiliojo ryšio duomenys"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefono paslaugos"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Pagalbos numerio rinkiklis"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FRN sąrašas"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Pasirinkti importuojamus kontaktus"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM / UMTS parinktys"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA parinktys"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Skambinimo nustatymai"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Skambučių peradresavimas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Skambučių blokavimas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM skambinimo nustatymai"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fiksuotojo rinkimo numeriai"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Įveskite PIN2 kodą"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ištrinti fiksuoto rinkimo numerį"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Įgalinti / išjungti SIM kortelės PIN kodą"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Pakeisti SIM kortelės PIN kodą"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pritaikymas neįgaliesiems"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Integruotas SIP skambinimas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Skambinimo paskyros"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Balso paštas"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Įtaisytosios SIM kortelės"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Planšetinio kompiuterio informacija"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefono informacija"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nustatyti radijo dažnių režimą"</string>
+</resources>
diff --git a/client/res/values-lv/strings.xml b/client/res/values-lv/strings.xml
new file mode 100644
index 0000000..be99080
--- /dev/null
+++ b/client/res/values-lv/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobilie dati"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Tālruņa pakalpojumi"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Ārkārtas numura sastādītājs"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"IZSN saraksts"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Importējamo kontaktpersonu atlase"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS opcijas"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA opcijas"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Zvana iestatījumi"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Zvanu pāradresācija"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zvanu aizliegšana"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM zvanu iestatījumi"</string>
+    <string name="fdn" msgid="1080701466751913822">"Atļautie numuri"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ievadiet PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Fiksētā numura sastādīšanas numura dzēšana"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM kartes PIN iespējošana/atspējošana"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM kartes PIN mainīšana"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pieejamība"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Iebūvēta SIP zvanu funkcija"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Zvanu konti"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Balss pasta ziņojums"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Iebūvētās SIM kartes"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informācija par planšetdatoru"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Tālruņa informācija"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radio frekvenču joslu režīma iestatīšana"</string>
+</resources>
diff --git a/client/res/values-mk/strings.xml b/client/res/values-mk/strings.xml
new file mode 100644
index 0000000..febf964
--- /dev/null
+++ b/client/res/values-mk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобилен интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонски услуги"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Бирач за итни случаи"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-список"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Изберете контакти за увезување"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Опции за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Опции за CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Поставки за повик"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Проследување повик"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Забрана на повик"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-поставки за повик"</string>
+    <string name="fdn" msgid="1080701466751913822">"Броеви со ограничено бирање"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Внесете PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Бришење број со ограничено бирање"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Овозможи/оневозможи PIN на SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Променување PIN на SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Пристапност"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Вградено повикување со SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Сметки за повикување"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Говорна пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Вградени SIM-картички"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информации за таблет"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информации за телефонот"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Поставете режим на појас на радио"</string>
+</resources>
diff --git a/client/res/values-ml/strings.xml b/client/res/values-ml/strings.xml
new file mode 100644
index 0000000..8a17383
--- /dev/null
+++ b/client/res/values-ml/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"മൊബൈൽ ഡാറ്റ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ഫോൺ സേവനങ്ങൾ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"അടിയന്തര ഡയലർ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ലിസ്റ്റ്"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ഇമ്പോർട്ട് ചെയ്യാനുള്ള കോൺടാക്‌റ്റുകൾ തിരഞ്ഞെടുക്കുക"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ഓപ്‌ഷനുകൾ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ഓപ്‌ഷനുകൾ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"കോൾ ക്രമീകരണം"</string>
+    <string name="labelCF" msgid="2140733390678280443">"കോൾ കൈമാറ്റം"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"കോൾ തടയൽ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM കോൾ ക്രമീകരണം"</string>
+    <string name="fdn" msgid="1080701466751913822">"സ്ഥിര ഡയലിംഗ് നമ്പറുകൾ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 ടൈപ്പ് ചെയ്യുക"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"സ്ഥിര ഡയലിംഗ് നമ്പർ ഇല്ലാതാക്കുക"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"സിം പിൻ പ്രവർത്തനക്ഷമമാക്കുക/പ്രവർത്തനരഹിതമാക്കുക"</string>
+    <string name="change_pin" msgid="7219696137781706635">"സിം പിൻ മാറ്റുക"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ഉപയോഗസഹായി"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"അന്തർ നിർമ്മിത SIP കോൾചെയ്യൽ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"കോളിംഗ് അക്കൗണ്ട്"</string>
+    <string name="voicemail" msgid="9083239047687566742">"വോയ്‌സ്‌മെയിൽ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ബിൽറ്റ് ഇൻ സിം കാർഡുകൾ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ടാബ്‌ലെറ്റ് വിവരം"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ഫോൺ വിവരം"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"റേഡിയോ ബാൻഡ് മോഡ് സജ്ജീകരിക്കുക"</string>
+</resources>
diff --git a/client/res/values-mn/strings.xml b/client/res/values-mn/strings.xml
new file mode 100644
index 0000000..553905f
--- /dev/null
+++ b/client/res/values-mn/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобайл дата"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Утасны үйлчилгээ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Яаралтай тусламжийн залгагч"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Залгахаар тохируулсан дугаарын жагсаалт"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Импорт хийх харилцагчдыг сонгоно уу"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS-н тохиргоо"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA сонголтууд"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Дуудлагын тохиргоо"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Дуудлага шилжүүлэх"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Дуудлага хаах"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM дуудлагын тохиргоо"</string>
+    <string name="fdn" msgid="1080701466751913822">"Залгахаар тохируулсан дугаарууд"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ПИН2-г оруулна уу"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Залгахаар тохируулсан дугаарыг устгах"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"СИМ-н ПИН-г идэвхжүүлэх/идэвхгүй болгох"</string>
+    <string name="change_pin" msgid="7219696137781706635">"СИМ-н ПИН-г өөрчлөх"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Хандалт"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP дуудлага өгөгдсөн"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Дуудлага хийх эрхтэй бүртгэлүүд"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Дуут шуудан"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Бүрэлдэхүүн СИМ карт"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Таблетын мэдээлэл"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Утасны мэдээлэл"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Радио хязгаарын горимыг тохируулах"</string>
+</resources>
diff --git a/client/res/values-mr/strings.xml b/client/res/values-mr/strings.xml
new file mode 100644
index 0000000..d142525
--- /dev/null
+++ b/client/res/values-mr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"मोबाइल डेटा"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"फोन सेवा"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"आणीबाणी डायलर"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN सूची"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"इंपोर्ट करण्यासाठी संपर्क निवडा"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS पर्याय"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA पर्याय"</string>
+    <string name="call_settings" msgid="8152058602760531097">"कॉल सेटिंग्ज"</string>
+    <string name="labelCF" msgid="2140733390678280443">"कॉल फॉरवर्डिंग"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"कॉल बारिंग"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM कॉल सेटिंग्ज"</string>
+    <string name="fdn" msgid="1080701466751913822">"निश्चित डायलिंग नंबर"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 टाइप करा"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"निश्चित डायलिंग नंबर हटवा"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"सिम पिन सुरू/बंद करा"</string>
+    <string name="change_pin" msgid="7219696137781706635">"सिम पिन बदला"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ॲक्सेसिबिलिटी"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"अंगभूत SIP कॉल करणे"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"कॉल करण्याची खाती"</string>
+    <string name="voicemail" msgid="9083239047687566742">"व्हॉइसमेल"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"अंगभूत सिम कार्डे"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"टॅबलेट माहिती"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"फोन माहिती"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"रेडिओ बँड मोड सेट करा"</string>
+</resources>
diff --git a/client/res/values-ms/strings.xml b/client/res/values-ms/strings.xml
new file mode 100644
index 0000000..1146adb
--- /dev/null
+++ b/client/res/values-ms/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Data Mudah Alih"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Perkhidmatan Telefon"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Pendail Kecemasan"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Senarai FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Pilih kenalan untuk diimport"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Pilihan GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Pilihan CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Tetapan panggilan"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Pemajuan panggilan"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Sekatan panggilan"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Tetapan panggilan GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Nombor Dailan Tetap"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Jenis PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Padam nombor dailan tetap"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Dayakan/lumpuhkan PIN SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Tukar PIN SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Kebolehcapaian"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Panggilan SIP terbina dalam"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Akaun panggilan"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Mel suara"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Kad SIM terbina dalam"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Maklumat tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Maklumat telefon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Tetapkan Mod Jalur Radio"</string>
+</resources>
diff --git a/client/res/values-my/strings.xml b/client/res/values-my/strings.xml
new file mode 100644
index 0000000..9a4637a
--- /dev/null
+++ b/client/res/values-my/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"မိုဘိုင်းဒေတာ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ဖုန်းဝန်ဆောင်မှုများ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"အရေးပေါ်ခေါ်ဆိုရန် နံပါတ်အကွက်"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN စာရင်း"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ထည့်သွင်းမည့်လိပ်စာများကို ရွေးရန်"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ရွေးချယ်မှုများ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ရွေးချယ်စရာများ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ခေါ်ဆိုမှု ဆက်တင်များ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"အဝင်ဖုန်းကို ဆက်ပို့ပေးခြင်း"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ခေါ်ဆိုမှုကို ပိတ်ပင်ရန်"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ခေါ်ဆိုမှု ဆက်တင်များ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ခေါ်ဆိုရန် ကန့်သတ်နံပါတ်"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ပင်နံပါတ် ၂ ကို ထည့်ပါ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ခေါ်ဆိုရန် ကန့်သတ်နံပါတ်ကို ဖျက်မည်"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ဆင်းမ် ပင်နံပါတ်ကို ဖွင့်/ပိတ်ထားရန်"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ဆင်းမ်ကဒ် ပင်နံပါတ်ပြောင်းရန်"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"အသုံးလွယ်မှု"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"SIP မူလခေါ်ဆိုမှု"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ခေါ်ဆိုသော အကောင့်များ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"အသံမေးလ်"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"အသင့်ပါ ဆင်းမ်ကဒ်များ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"တက်ဘလက် အချက်အလက်"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ဖုန်းအချက်အလက်"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ရေဒီယိုလိုင်းမုဒ်အဖြစ် သတ်မှတ်ပါ"</string>
+</resources>
diff --git a/client/res/values-nb/strings.xml b/client/res/values-nb/strings.xml
new file mode 100644
index 0000000..80b7a0c
--- /dev/null
+++ b/client/res/values-nb/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefontjenester"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Nødnummer"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Liste over faste numre"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Velg kontaktene du vil importere"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS-innstillinger"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-innstillinger"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Samtaleinnstillinger"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Viderekobling"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Anropsblokkering"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Innstillinger for GSM-samtaler"</string>
+    <string name="fdn" msgid="1080701466751913822">"Forhåndsbestemte numre"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Skriv inn PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Slett programmert telefonnummer"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Slå av/på PIN-kode for SIM-kort"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Endre SIM-PIN-koden"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Tilgjengelighet"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Innebygd SIP-anrop"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Ringekontoer"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Talepost"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Innebygde SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informasjon om nettbrettet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefoninformasjon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Angi båndmodus for radio"</string>
+</resources>
diff --git a/client/res/values-ne/strings.xml b/client/res/values-ne/strings.xml
new file mode 100644
index 0000000..a5efc11
--- /dev/null
+++ b/client/res/values-ne/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"मोबाइल डेटा"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"फोन सेवाहरू"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"आपतकालीन डायलर"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN सूची"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"आयात गर्न सम्पर्कहरू चयन गर्नुहोस्"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS सम्बन्धी विकल्पहरू"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA का विकल्पहरू"</string>
+    <string name="call_settings" msgid="8152058602760531097">"कलसम्बन्धी सेटिङ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"कल फर्वार्ड गर्ने सेवा"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"कल ब्यारिङ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM कलसम्बन्धी सेटिङ"</string>
+    <string name="fdn" msgid="1080701466751913822">"स्थिर डायलिङ नम्बरहरू"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 टाइप गर्नुहोस्"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"स्थिर डायलिङ नम्बर मेट्नुहोस्"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN सक्षम/असक्षम पार्नुहोस्"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM को PIN परिवर्तन गर्नुहोस्"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"पहुँच"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"अन्तरनिर्मित SIP कल"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"कल गर्ने खाताहरू"</string>
+    <string name="voicemail" msgid="9083239047687566742">"भ्वाइस मेल"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"अन्तर्निर्मित SIM कार्डहरू"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ट्याब्लेटसम्बन्धी जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"फोनसम्बन्धी जानकारी"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"रेडियोको ब्यान्डसम्बन्धी मोड सेट गर्नुहोस्"</string>
+</resources>
diff --git a/client/res/values-nl/strings.xml b/client/res/values-nl/strings.xml
new file mode 100644
index 0000000..83d11b2
--- /dev/null
+++ b/client/res/values-nl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobiele data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefoonservices"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Kiezer noodoproep"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-lijst"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Contacten selecteren om te importeren"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM-/UMTS-opties"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-opties"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Gespreksinstellingen"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Gesprek doorschakelen"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Gesprek blokkeren"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM-gespreksinstellingen"</string>
+    <string name="fdn" msgid="1080701466751913822">"Vaste nummers"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 opgeven"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Vast nummer verwijderen"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM pincode in-/uitschakelen"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Pincode sim wijzigen"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Toegankelijkheid"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ingebouwde SIP-gesprekken"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Gespreksaccounts"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ingebouwde simkaarten"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tabletinformatie"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefooninfo"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Modus voor radioband instellen"</string>
+</resources>
diff --git a/client/res/values-or/strings.xml b/client/res/values-or/strings.xml
new file mode 100644
index 0000000..3bfa3f5
--- /dev/null
+++ b/client/res/values-or/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"ମୋବାଇଲ୍ ଡାଟା"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ଫୋନ୍ ସେବା"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ଜରୁରୀକାଳୀନ ଡାଏଲର୍"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ତାଲିକା"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ଇମ୍ପୋର୍ଟ କରିବା ପାଇଁ ଯୋଗାଯୋଗଗୁଡ଼ିକୁ ଚୟନ କରନ୍ତୁ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ବିକଳ୍ପ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ବିକଳ୍ପ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"କଲ୍ ସେଟିଂସ୍"</string>
+    <string name="labelCF" msgid="2140733390678280443">"କଲ୍‌ ଫର୍‌ୱାର୍ଡିଂ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"କଲ୍ ବାରିଂ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM କଲ୍ ସେଟିଂସ୍‌"</string>
+    <string name="fdn" msgid="1080701466751913822">"ସ୍ଥାୟୀ ଡାଏଲିଙ୍ଗ ନମ୍ବରଗୁଡ଼ିକ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 ଟାଇପ୍ କରନ୍ତୁ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ସ୍ଥାୟୀ ଡାଏଲିଙ୍ଗ ନମ୍ବରକୁ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PINକୁ ସକ୍ଷମ/ଅକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN ବଦାଳନ୍ତୁ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ଆକ୍ସେସିବିଲିଟୀ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ବିଲ୍ଟ-ଇନ୍ SIP କଲିଙ୍ଗ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"କଲିଂ ଆକାଉଣ୍ଟଗୁଡ଼ିକ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ଭଏସ୍‌ମେଲ୍"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ବିଲ୍ଟ-ଇନ୍ SIM କାର୍ଡ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ଟାବ୍‌ଲେଟ୍‍ର ସୂଚନା"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ଫୋନ୍‍ର ସୂଚନା"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ"</string>
+</resources>
diff --git a/client/res/values-pa/strings.xml b/client/res/values-pa/strings.xml
new file mode 100644
index 0000000..2eac401
--- /dev/null
+++ b/client/res/values-pa/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ਫ਼ੋਨ ਸੇਵਾਵਾਂ"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ਸੰਕਟਕਾਲੀਨ ਡਾਇਲਰ"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ਸੂਚੀ"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ਆਯਾਤ ਕਰਨ ਲਈ ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ਵਿਕਲਪ"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ਚੋਣਾਂ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ਕਾਲ ਫਾਰਵਰਡਿੰਗ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ਕਾਲ ਬੈਰਿੰਗ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="fdn" msgid="1080701466751913822">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"ਪਿੰਨ2 ਟਾਈਪ ਕਰੋ"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਮਿਟਾਓ"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"ਸਿਮ ਪਿੰਨ ਨੂੰ ਚਾਲੂ ਕਰੋ/ਬੰਦ ਕਰੋ"</string>
+    <string name="change_pin" msgid="7219696137781706635">"ਸਿਮ ਪਿੰਨ ਬਦਲੋ"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ਪਹੁੰਚਯੋਗਤਾ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"ਬਿਲਟ-ਇਨ SIP ਕਾਲਿੰਗ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ਕਾਲਿੰਗ ਖਾਤੇ"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ਵੌਇਸਮੇਲ"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ਬਿਲਟ-ਇਨ ਸਿਮ ਕਾਰਡ"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ਟੈਬਲੈੱਟ ਜਾਣਕਾਰੀ"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ਫ਼ੋਨ ਜਾਣਕਾਰੀ"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ਰੇਡੀਓ ਬੈਂਡ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
+</resources>
diff --git a/client/res/values-pl/strings.xml b/client/res/values-pl/strings.xml
new file mode 100644
index 0000000..642e241
--- /dev/null
+++ b/client/res/values-pl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobilna transmisja danych"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon – usługi"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Numery alarmowe"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Wybieranie ustalone"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Wybierz kontakty do zaimportowania"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opcje GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opcje CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Ustawienia połączeń"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Przekierowanie połączeń"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blokada połączeń"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Ustawienia połączenia GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Wybieranie ustalone"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Wpisz kod PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Usuń wybieranie ustalone"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Włącz/wyłącz kod PIN do karty SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Zmień PIN do karty SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Ułatwienia dostępu"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Wbudowanie połączenia SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Konta telefoniczne"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Poczta głosowa"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Wbudowane karty SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacje o tablecie"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacje o telefonie"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Ustawianie trybu pasma radiowego"</string>
+</resources>
diff --git a/client/res/values-pt-rPT/strings.xml b/client/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..ad6b116
--- /dev/null
+++ b/client/res/values-pt-rPT/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Dados móveis"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Serviços de telemóvel"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Telefone de emergência"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selecione os contactos a importar"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opções GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opções CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Definições de chamadas"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Reencaminhamento de chamadas"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Barramento de chamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Definições de chamadas GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de marcação fixa (FDN)"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Introduzir PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Eliminar números autorizados"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ativar/desativar o PIN do cartão SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Alterar PIN do SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Acessibilidade"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chamadas SIP incorporadas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Contas de chamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Correio de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Cartões SIM incorporados"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informações do telefone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Definir modo de banda de rádio"</string>
+</resources>
diff --git a/client/res/values-pt/strings.xml b/client/res/values-pt/strings.xml
new file mode 100644
index 0000000..28a7709
--- /dev/null
+++ b/client/res/values-pt/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Dados móveis"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Serviços do smartphone"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Discador de emergência"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista de FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selecione os contatos a serem importados"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opções de GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opções CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Configurações de chamada"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Encaminhamento de chamada"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Bloqueio de chamadas"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Configurações de chamada GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Números de discagem fixa"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Digitar PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Excluir número de discagem fixa"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Ativar/desativar PIN do chip"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Alterar PIN do chip"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Acessibilidade"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Chamadas SIP incorporadas"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Contas de chamadas"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Correio de voz"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Chips integrados"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informações do smartphone"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Definir modo de banda de rádio"</string>
+</resources>
diff --git a/client/res/values-ro/strings.xml b/client/res/values-ro/strings.xml
new file mode 100644
index 0000000..fad774e
--- /dev/null
+++ b/client/res/values-ro/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Date mobile"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon – Servicii"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Tastatură de telefon de urgență"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Listă NAR"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Selectați persoane de contact pentru import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opțiuni GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opțiuni CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Setări pentru apeluri"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Redirecționare apeluri"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Restricționarea apelurilor"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Setările apelului GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numere apeluri restricționate"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Introduceți codul PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ștergeți numărul pentru apeluri restricționate"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Activați/dezactivați codul PIN al cardului SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Schimbați codul PIN pentru SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Accesibilitate"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Apelare SIP integrată"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Conturi pentru apelare"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Mesagerie vocală"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Carduri SIM încorporate"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informații tabletă"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informații telefon"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Setați Modul bandă radio"</string>
+</resources>
diff --git a/client/res/values-ru/strings.xml b/client/res/values-ru/strings.xml
new file mode 100644
index 0000000..4335f88
--- /dev/null
+++ b/client/res/values-ru/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобильный Интернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефон – сервисы"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Экстренный вызов"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Разрешенные номера"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Выберите контакты для импорта"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Параметры GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Параметры CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Настройки вызовов"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Переадресация вызовов"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Запрет вызовов"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Настройки вызовов GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Разрешенные номера"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Введите PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Удалить разрешенный номер"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Включить/отключить запрос PIN-кода SIM-карты"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Изменить PIN-код SIM-карты"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Специальные возможности"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Встроенный сервис звонков через SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Аккаунты для вызовов"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Голосовая почта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Встроенные SIM-карты"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информация о планшетном ПК"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информация о телефоне"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Настроить режим радиостанции"</string>
+</resources>
diff --git a/client/res/values-si/strings.xml b/client/res/values-si/strings.xml
new file mode 100644
index 0000000..856b2a5
--- /dev/null
+++ b/client/res/values-si/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"ජංගම දත්ත"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"දුරකථන සේවා"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"හදිසි අවස්ථා ඩයල්කරු"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN ලැයිස්තුව"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"ආයාත කිරීමට සම්බන්ධතා තෝරන්න"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS විකල්ප"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA විකල්ප"</string>
+    <string name="call_settings" msgid="8152058602760531097">"ඇමතුම් සැකසීම්"</string>
+    <string name="labelCF" msgid="2140733390678280443">"ඇමතුම යොමු කිරීම"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ඇමතුම අවහිර කිරීම"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM ඇමතුම් සැකසීම්"</string>
+    <string name="fdn" msgid="1080701466751913822">"ස්ථාවර ඇමතුම් අංක"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 ටයිප් කරන්න"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ස්ථාවර ඇමතුම් අංකය මකන්න"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN අංකය සබල/අබල කරන්න"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN අංකය වෙනස් කරන්න"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ප්‍රවේශ්‍යතාව"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"තැනූ SIP ඇමතුම්"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"ගිණුම් ඇමතීම"</string>
+    <string name="voicemail" msgid="9083239047687566742">"හඬ තැපෑල"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"තිළැලි SIM කාඩ් පත්"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ටැබ්ලට් තොරතුරු"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"දුරකථන තොරතුරු"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"රේඩියෝ කලාප ප්‍රකාරය සකසන්න"</string>
+</resources>
diff --git a/client/res/values-sk/strings.xml b/client/res/values-sk/strings.xml
new file mode 100644
index 0000000..5b8f291
--- /dev/null
+++ b/client/res/values-sk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobilné dáta"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefónne služby"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Tiesňové vytáčanie"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Zoznam režimu povolených čísel"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Výber kontaktov na import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Možnosti CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Nastavenia hovoru"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Presmerovanie hovorov"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Blokovanie hovorov"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Nastavenia hovorov GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Režim povolených čísel"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Zadajte kód PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Odstrániť povolené číslo"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Povoliť alebo zakázať kód PIN SIM karty"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Zmeniť kód PIN karty SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Dostupnosť"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"Dialóg ukončenia režimu tiesňového spätného volania"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Vstavané hovory SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Telefónne účty"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Hlasová schránka"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Vstavané SIM karty"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informácie o tablete"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informácie o telefóne"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nastaviť režim rádiového pásma"</string>
+</resources>
diff --git a/client/res/values-sl/strings.xml b/client/res/values-sl/strings.xml
new file mode 100644
index 0000000..fca5ac2
--- /dev/null
+++ b/client/res/values-sl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Prenos podatkov v mobilnem omrežju"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefonske storitve"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Klicalnik za nujne primere"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Seznam FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Izberite stike za uvoz"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Možnosti GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Možnosti CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Nastavitve klicanja"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Posredovanje klicev"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Zapora klicev"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Nastavitve klicev GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Številke za omejeno klicanje"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Vnesite kodo PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Urejanje številke za omejeno klicanje"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Omogočenje/onemogočenje kode PIN za kartico SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Sprememba kode PIN kartice SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Dostopnost"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Vgrajeno klicanje SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Računi za klicanje"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Odzivnik"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Vgrajene kartice SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Podatki o tabličnem računalniku"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacije o telefonu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Nastavljanje načina radijskega območja"</string>
+</resources>
diff --git a/client/res/values-sq/strings.xml b/client/res/values-sq/strings.xml
new file mode 100644
index 0000000..f759c78
--- /dev/null
+++ b/client/res/values-sq/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Të dhënat celulare"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Shërbimet e telefonit"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Formuesi i numrit të urgjencës"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Lista e FDN-ve"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Zgjidh kontaktet për importim"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Opsionet GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Opsionet CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Cilësimet e telefonatave"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Transferimi i telefonatave"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Bllokimi i telefonatave"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Cilësimet e telefonatës GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Numrat me telefonim të përzgjedhur"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Shkruaj kodin PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Fshi numrin me telefonim të përzgjedhur"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktivizo/çaktivizo PIN-in e kartës SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Ndrysho PIN-in e kartës SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Qasshmëria"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Telefonata SIP e integruar"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Llogaritë e telefonatave"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Posta zanore"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Kartat e integruara SIM"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Informacion mbi tabletin"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Informacioni i telefonit"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Cakto modalitetin e brezit të radios"</string>
+</resources>
diff --git a/client/res/values-sr/strings.xml b/client/res/values-sr/strings.xml
new file mode 100644
index 0000000..c34f23f
--- /dev/null
+++ b/client/res/values-sr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобилни подаци"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонске услуге"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Бројчаник за хитне позиве"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Листа бројева за фиксно бирање"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Изаберите контакте за увоз"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Опције за GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA опције"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Подешавања позива"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Преусмеравање позива"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Ограничавање позива"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Подешавања GSM позива"</string>
+    <string name="fdn" msgid="1080701466751913822">"Бројеви за фиксно бирање"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Унесите PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Избришите број за фиксно бирање"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Омогућите/онемогућите PIN за SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Промените PIN за SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Приступачност"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Уграђена функција SIP позивања"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Налози за позивање"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Говорна пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Уграђене SIM картице"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Информације о таблету"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Информације о телефону"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Подесите режим радијског опсега"</string>
+</resources>
diff --git a/client/res/values-sv/strings.xml b/client/res/values-sv/strings.xml
new file mode 100644
index 0000000..09c177e
--- /dev/null
+++ b/client/res/values-sv/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobildata"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefontjänster"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Nödsamtal"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN-lista"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Välj kontakter att importera"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Alternativ för GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA-alternativ"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Samtalsinställningar"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Vidarebef. samtal"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Samtalsspärr"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Samtalsinst. för GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Fasta nummer"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Ange PIN2-kod"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ta bort fast nummer"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Aktivera/inaktivera SIM-kortets pinkod"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Ändra pinkod för SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Tillgänglighet"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Inbyggd tjänst för SIP-samtal"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Konton för samtal"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Röstbrevlåda"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Inbyggda SIM-kort"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Information om surfplattan"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefoninformation"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Konfigurera radiobandsläget"</string>
+</resources>
diff --git a/client/res/values-sw/strings.xml b/client/res/values-sw/strings.xml
new file mode 100644
index 0000000..c0a2929
--- /dev/null
+++ b/client/res/values-sw/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Data ya mtandao wa simu"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Huduma za Simu"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Kipiga Simu za Dhararu"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Orodha ya FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Chagua anwani za kuleta"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Chaguo za GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Chaguo za CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Mipangilio ya simu"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Kusambaza simu"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Kuzuia upigaji simu"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Mipangilio ya simu ya GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Nambari za Simu Zilizobainishwa"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Andika PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Futa nambari ya simu iliyobainishwa"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Wezesha/zima PIN ya SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Badilisha PIN ya SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Ufikivu"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Upigaji simu wa SIP uliojengewa ndani ya kifaa"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Akaunti za simu"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ujumbe wa sauti"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"SIM kadi zilizojengewa ndani"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Maelezo kuhusu kompyuta kibao"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Maelezo ya simu"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Weka Hali ya Bendi ya Redio"</string>
+</resources>
diff --git a/client/res/values-ta/strings.xml b/client/res/values-ta/strings.xml
new file mode 100644
index 0000000..c738660
--- /dev/null
+++ b/client/res/values-ta/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"மொபைல் டேட்டா"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"மொபைல் சேவைகள்"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"அவசரகால டயலர்"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN பட்டியல்"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"இறக்க வேண்டிய தொடர்புகளைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS விருப்பங்கள்"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA விருப்பங்கள்"</string>
+    <string name="call_settings" msgid="8152058602760531097">"அழைப்பு அமைப்புகள்"</string>
+    <string name="labelCF" msgid="2140733390678280443">"அழைப்புப் பகிர்வு"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"அழைப்புத் தடுப்பு"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM அழைப்பு அமைப்புகள்"</string>
+    <string name="fdn" msgid="1080701466751913822">"நிலையான அழைப்பு எண்கள்"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"பின்2 ஐ உள்ளிடுக"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"நிலையான அழைப்பு எண்ணை நீக்கு"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"சிம்மின் பின்னை இயக்கு/முடக்கு"</string>
+    <string name="change_pin" msgid="7219696137781706635">"சிம்மின் பின்னை மாற்று"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"அணுகல் தன்மை"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"உள்கட்டமைக்கப்பட்ட SIP அழைப்பு"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"அழைப்புக் கணக்குகள்"</string>
+    <string name="voicemail" msgid="9083239047687566742">"குரலஞ்சல்"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"உள்ளமைந்த சிம் கார்டுகள்"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"டேப்லெட்டின் தகவல்"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"மொபைலின் தகவல்"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ரேடியோ பேண்டு பயன்முறையை அமை"</string>
+</resources>
diff --git a/client/res/values-te/strings.xml b/client/res/values-te/strings.xml
new file mode 100644
index 0000000..891da37
--- /dev/null
+++ b/client/res/values-te/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"మొబైల్ డేటా"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"ఫోన్ సేవలు"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"అత్యవసర డయలర్"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN జాబితా"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"దిగుమతి చేయాల్సిన కాంటాక్ట్‌లను ఎంచుకోండి"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS ఎంపికలు"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA ఎంపికలు"</string>
+    <string name="call_settings" msgid="8152058602760531097">"కాల్ సెట్టింగ్‌లు"</string>
+    <string name="labelCF" msgid="2140733390678280443">"కాల్ ఫార్వర్డింగ్"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"కాల్ నిషేధం"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM కాల్ సెట్టింగ్‌లు"</string>
+    <string name="fdn" msgid="1080701466751913822">"ఫిక్సెడ్ డయలింగ్ నంబర్‌లు"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"పిన్2ను టైప్ చేయండి"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ఫిక్స్‌డ్ డయలింగ్ నంబర్‌ను తొలగించండి"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM పిన్‌ను ఎనేబుల్/డిజేబుల్ చేయండి"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM పిన్‌ను మార్చండి"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"యాక్సెసిబిలిటీ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"అంతర్నిర్మిత SIP కాలింగ్"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"కాల్ చేసే ఖాతాలు"</string>
+    <string name="voicemail" msgid="9083239047687566742">"వాయిస్ మెయిల్"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"అంతర్నిర్మిత SIM కార్డ్‌లు"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"టాబ్లెట్ సమాచారం"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ఫోన్ సమాచారం"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"రేడియో బ్యాండ్ మోడ్‌ను సెట్ చేయండి"</string>
+</resources>
diff --git a/client/res/values-th/strings.xml b/client/res/values-th/strings.xml
new file mode 100644
index 0000000..2814f9a
--- /dev/null
+++ b/client/res/values-th/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"อินเทอร์เน็ตมือถือ"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"บริการโทรศัพท์"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"โปรแกรมโทรออกฉุกเฉิน"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"รายการ FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"เลือกผู้ติดต่อที่จะนำเข้า"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"ตัวเลือก GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"ตัวเลือก CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"การตั้งค่าการโทร"</string>
+    <string name="labelCF" msgid="2140733390678280443">"การโอนสาย"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"ระงับการโทร"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"การตั้งค่าการโทร GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"หมายเลขโทรออกที่กำหนดตายตัว"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"พิมพ์ PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"ลบหมายเลขโทรออกที่กำหนดตายตัว"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"เปิด/ปิดใช้ PIN ของซิม"</string>
+    <string name="change_pin" msgid="7219696137781706635">"เปลี่ยน PIN ของซิม"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"การช่วยเหลือพิเศษ"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"การโทรผ่าน SIP ในตัว"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"บัญชีการโทร"</string>
+    <string name="voicemail" msgid="9083239047687566742">"ข้อความเสียง"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"ซิมการ์ดในตัว"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ข้อมูลแท็บเล็ต"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"ข้อมูลโทรศัพท์"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ตั้งค่าโหมดย่านความถี่วิทยุ"</string>
+</resources>
diff --git a/client/res/values-tl/strings.xml b/client/res/values-tl/strings.xml
new file mode 100644
index 0000000..12cd30c
--- /dev/null
+++ b/client/res/values-tl/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobile Data"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Mga Serbisyo sa Telepono"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Pang-emergency na Dialer"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Listahan ng FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Piliin ang mga contact na ii-import"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Mga pagpipilian sa GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Mga pagpipiliian sa CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Mga setting ng tawag"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Pagpasa ng tawag"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Pag-bar ng tawag"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Mga setting ng tawag ng GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Mga Fixed Dialing Number"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"I-type ang PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"I-delete ang fixed dialing number"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"I-enable/i-disable ang PIN ng SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Baguhin ang PIN ng SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Pagiging Accessible"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Built-in na pagtawag sa pamamagitan ng SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Mga account sa pagtawag"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Voicemail"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Mga built-in na SIM card"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Impormasyon ng tablet"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Impormasyon ng telepono"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Itakda ang Band Mode ng Radyo"</string>
+</resources>
diff --git a/client/res/values-tr/strings.xml b/client/res/values-tr/strings.xml
new file mode 100644
index 0000000..30293cd
--- /dev/null
+++ b/client/res/values-tr/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobil Veri"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon Hizmetleri"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Acil Durum Çeviricisi"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"SAN listesi"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"İçe aktarılacak kişileri seçin"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS Seçenekleri"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA Seçenekleri"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Arama ayarları"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Arama yönlendirme"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Arama engelleme"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM arama ayarları"</string>
+    <string name="fdn" msgid="1080701466751913822">"Sabit Arama Numaraları"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2\'yi yazın"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Sabit arama numarasını silin"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM PIN\'ini etkinleştirin/devre dışı bırakın"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM PIN\'ini Değiştir"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Erişilebilirlik"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Yerleşik SIP arama"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Arama hesapları"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Sesli Mesaj"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Yerleşik SIM kartlar"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Tablet bilgileri"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon bilgileri"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Radyo Bant Modunu Ayarla"</string>
+</resources>
diff --git a/client/res/values-uk/strings.xml b/client/res/values-uk/strings.xml
new file mode 100644
index 0000000..d25162b
--- /dev/null
+++ b/client/res/values-uk/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Мобільний Інтернет"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Телефонні сервіси"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Аварійний телефон"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Список фіксованих номерів"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Виберіть контакти для імпорту"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Параметри GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Параметри CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Налаштування виклику"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Переадресація виклику"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Заборона викликів"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Налаштування викликів GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Фіксовані номери"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Введіть PIN2-код"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Видалити фіксований номер"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Увімкнути/вимкнути PIN-код SIM-карти"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Змінити PIN-код SIM-карти"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Спеціальні можливості"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Вбудована функція викликів SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Облікові записи для викликів"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Голосова пошта"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Вбудовані SIM-карти"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Інформація про пристрій"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Інформація про телефон"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Установити режим радіодіапазону"</string>
+</resources>
diff --git a/client/res/values-ur/strings.xml b/client/res/values-ur/strings.xml
new file mode 100644
index 0000000..1ed7325
--- /dev/null
+++ b/client/res/values-ur/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"موبائل ڈیٹا"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"فون سروسز"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"ہنگامی ڈائلر"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"‏FDN کی فہرست"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"درآمد کے لیے رابطوں کا انتخاب کریں"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"‏GSM/UMTS کے اختیارات"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"‏CDMA کے اختیارات"</string>
+    <string name="call_settings" msgid="8152058602760531097">"کال کی ترتیبات"</string>
+    <string name="labelCF" msgid="2140733390678280443">"کال فارورڈنگ"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"کال میں رکاوٹ"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"‏GSM کال کی ترتیبات"</string>
+    <string name="fdn" msgid="1080701466751913822">"فکسڈ ڈائلنگ نمبرز"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"‏PIN2 ٹائپ کریں"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"فکسڈ ڈائلنگ نمبر حذف کریں"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"‏SIM کا PIN فعال/غیر فعال کریں"</string>
+    <string name="change_pin" msgid="7219696137781706635">"‏SIM کا PIN تبدیل کریں"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"ایکسیسبیلٹی"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"‏پہلے سے شامل SIP کالنگ"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"کالنگ اکاؤنٹس"</string>
+    <string name="voicemail" msgid="9083239047687566742">"صوتی میل"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"‏پہلے سے شامل SIM کارڈز"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"ٹیبلیٹ کی معلومات"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"فون کی معلومات"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"ریڈیو بینڈ موڈ سیٹ کریں"</string>
+</resources>
diff --git a/client/res/values-uz/strings.xml b/client/res/values-uz/strings.xml
new file mode 100644
index 0000000..beef319
--- /dev/null
+++ b/client/res/values-uz/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Mobil internet"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Telefon xizmatlari"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Favqulodda chaqiruv"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Ruxsat etilgan raqamlar"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Import qilish uchun kontaktlarni tanlang"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS sozlamalari"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA sozlamalari"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Chaqiruv sozlamalari"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Chaqiruvlarni uzatish"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Chaqiruvlarni taqiqlash"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM tarmog‘i qo‘ng‘iroq sozlamalari"</string>
+    <string name="fdn" msgid="1080701466751913822">"Ruxsat etilgan raqamlar"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"PIN2 kodni kiriting"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Ruxsat etilgan raqamni o‘chirish"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"SIM karta uchun PIN-kod so‘rovini yoqish/o‘chirish"</string>
+    <string name="change_pin" msgid="7219696137781706635">"SIM karta PIN-kodini almashtirish"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Maxsus imkoniyatlar"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ichki o‘rnatilgan SIP qo‘ng‘iroqlari"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Chaqiruv uchun hisoblar"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ovozli pochta"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Ichki o‘rnatilgan SIM kartalar"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Planshet haqida"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Telefon haqida"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Tarmoq rejimini sozlash"</string>
+</resources>
diff --git a/client/res/values-vi/strings.xml b/client/res/values-vi/strings.xml
new file mode 100644
index 0000000..cfbf3df
--- /dev/null
+++ b/client/res/values-vi/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Dữ liệu di động"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Dịch vụ điện thoại"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Trình quay số khẩn cấp"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Danh sách FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Chọn danh bạ để nhập"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Tùy chọn GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Tùy chọn CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Tùy chọn cài đặt cuộc gọi"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Chuyển tiếp cuộc gọi"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Chặn cuộc gọi"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Tùy chọn cài đặt cuộc gọi GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Số gọi định sẵn"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Nhập PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Xóa số gọi định sẵn"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Bật/tắt mã PIN của SIM"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Đổi mã PIN của SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Truy cập"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Tính năng gọi điện SIP tích hợp sẵn"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Tài khoản gọi"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Thư thoại"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Thẻ SIM tích hợp sẵn"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Thông tin về máy tính bảng"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Thông tin điện thoại"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Đặt chế độ dải tần số"</string>
+</resources>
diff --git a/client/res/values-zh-rCN/strings.xml b/client/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..07ba878
--- /dev/null
+++ b/client/res/values-zh-rCN/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"移动数据"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"电话服务"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"紧急拨号器"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"固定拨号列表"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"选择要导入的联系人"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 选项"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 选项"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通话设置"</string>
+    <string name="labelCF" msgid="2140733390678280443">"来电转接"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通话限制"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通话设置"</string>
+    <string name="fdn" msgid="1080701466751913822">"固定拨号"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"输入 PIN2 码"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"删除固定拨号联系人"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"启用/停用 SIM 卡 PIN 码"</string>
+    <string name="change_pin" msgid="7219696137781706635">"更改 SIM 卡 PIN 码"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"无障碍"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"内置 SIP 通话功能"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通话帐号"</string>
+    <string name="voicemail" msgid="9083239047687566742">"语音信箱"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"内置 SIM 卡"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"平板电脑信息"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"手机信息"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"设置无线装置频道模式"</string>
+</resources>
diff --git a/client/res/values-zh-rHK/strings.xml b/client/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..1cb5330
--- /dev/null
+++ b/client/res/values-zh-rHK/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"流動數據"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"手機服務"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"緊急撥號器"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"FDN 清單"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"選取要匯入的聯絡人"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 選項"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 選項"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通話設定"</string>
+    <string name="labelCF" msgid="2140733390678280443">"來電轉駁"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通話限制"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通話設定"</string>
+    <string name="fdn" msgid="1080701466751913822">"固定撥號"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"輸入 PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"刪除固定撥號"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"啟用/停用 SIM PIN"</string>
+    <string name="change_pin" msgid="7219696137781706635">"變更 SIM 卡的 PIN"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"無障礙功能"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"內置 SIP 通話"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通話帳戶"</string>
+    <string name="voicemail" msgid="9083239047687566742">"留言信箱"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"內置 SIM 卡"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"手機資訊"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"設定無線電波段模式"</string>
+</resources>
diff --git a/client/res/values-zh-rTW/strings.xml b/client/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..a9a6b77
--- /dev/null
+++ b/client/res/values-zh-rTW/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"行動數據"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"電話服務"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"緊急撥號"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"固定撥號清單"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"選取要匯入的聯絡人"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"GSM/UMTS 選項"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"CDMA 選項"</string>
+    <string name="call_settings" msgid="8152058602760531097">"通話設定"</string>
+    <string name="labelCF" msgid="2140733390678280443">"來電轉接"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"通話限制"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"GSM 通話設定"</string>
+    <string name="fdn" msgid="1080701466751913822">"固定撥號"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"輸入 PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"刪除固定撥號"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"啟用/停用 SIM 卡 PIN 碼"</string>
+    <string name="change_pin" msgid="7219696137781706635">"變更 SIM 卡 PIN 碼"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"無障礙設定"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"內建 SIP 通話功能"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"通話帳戶"</string>
+    <string name="voicemail" msgid="9083239047687566742">"語音信箱"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"內建 SIM 卡"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"手機資訊"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"設定無線電頻帶模式"</string>
+</resources>
diff --git a/client/res/values-zu/strings.xml b/client/res/values-zu/strings.xml
new file mode 100644
index 0000000..679263e
--- /dev/null
+++ b/client/res/values-zu/strings.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="tablet" msgid="4304896407232136185">"Idatha Yeselula"</string>
+    <string name="phoneAppLabel" product="default" msgid="2519341656721644038">"Amasevisi wefoni"</string>
+    <string name="emergencyDialerIconLabel" msgid="7373355740508369750">"Ukudayela Okuphuthumayo"</string>
+    <string name="fdnListLabel" msgid="5034563979654950274">"Uhlu lwe-FDN"</string>
+    <string name="simContacts_title" msgid="4391084959219666947">"Khetha othintana nabo ozobangenisa"</string>
+    <string name="gsm_umts_options" msgid="1113500053403490666">"Okukhethwa kukho kwe-GSM/UMTS"</string>
+    <string name="cdma_options" msgid="4492063023149886710">"Okukhethwa kukho kwe-CDMA"</string>
+    <string name="call_settings" msgid="8152058602760531097">"Izilungiselelo zekholi"</string>
+    <string name="labelCF" msgid="2140733390678280443">"Ukudlulisa ikholi"</string>
+    <string name="labelCallBarring" msgid="8300927675522420184">"Ukuvimba ikholi"</string>
+    <string name="labelGSMMore" msgid="4048734049263392253">"Izilungiselelo zekholi ze-GSM"</string>
+    <string name="fdn" msgid="1080701466751913822">"Izinombolo Zokudayela Okungaguquki"</string>
+    <string name="get_pin2" msgid="5519152040805796508">"Thayipha i-PIN2"</string>
+    <string name="delete_fdn_contact" msgid="4232462795352020296">"Susa othintana naye wokudayela okungaguquki"</string>
+    <string name="enable_pin" msgid="5266421421847399987">"Vumela/Vima i-PIN ye-SI&lt;M"</string>
+    <string name="change_pin" msgid="7219696137781706635">"Shintsha i-PIN ye-SIM"</string>
+    <string name="accessibility_settings_activity_title" msgid="1948510182681531251">"Ukufinyeleleka"</string>
+    <string name="ecm_exit_dialog" msgid="5718252559378968754">"I-EcmExitDialog"</string>
+    <string name="sip_connection_service_label" msgid="6852349516774218961">"Ukushaya okwakhelwe ngaphakathi kwe-SIP"</string>
+    <string name="phone_accounts" msgid="6930293131442022860">"Ama-akhawunti wokushaya"</string>
+    <string name="voicemail" msgid="9083239047687566742">"Ivoyisimeyili"</string>
+    <string name="pstn_connection_service_label" msgid="8160589738201280253">"Amakhadi we-SIM akhelwe ngaphakathi"</string>
+    <string name="phone_info_label" product="tablet" msgid="8816614547088739126">"Ulwazi lethebhulethi"</string>
+    <string name="phone_info_label" product="default" msgid="3123311719257053162">"Ulwazi lwefoni"</string>
+    <string name="band_mode_title" msgid="681256838654706936">"Isetha imodi yebhendi yerediyo"</string>
+</resources>
diff --git a/ecc/conversion_toolset_v1/gen_eccdata.sh b/ecc/conversion_toolset_v1/gen_eccdata.sh
index 1efac37..9fc0efc 100644
--- a/ecc/conversion_toolset_v1/gen_eccdata.sh
+++ b/ecc/conversion_toolset_v1/gen_eccdata.sh
@@ -19,8 +19,7 @@
 source "${LOCAL_TOOLSET_DIR}/env.sh"
 
 echo "Converting eccdata..."
-${ANDROID_BUILD_TOP}/prebuilts/tools/linux-x86_64/protoc/bin/protoc \
-  --encode=ecc.AllInfo proto/protobuf_ecc_data.proto \
+aprotoc --encode=ecc.AllInfo proto/protobuf_ecc_data.proto \
   < "${INPUT_DATA}" > "${RAW_DATA}"
 
 echo "Compressing eccdata..."
diff --git a/ecc/conversion_toolset_v1/proto/Android.bp b/ecc/conversion_toolset_v1/proto/Android.bp
index 7d6cce4..e1e0643 100644
--- a/ecc/conversion_toolset_v1/proto/Android.bp
+++ b/ecc/conversion_toolset_v1/proto/Android.bp
@@ -22,7 +22,7 @@
         ],
     },
     srcs: ["protobuf_ecc_data.proto"],
-    no_framework_libs: true,
+    sdk_version: "system_current",
     jarjar_rules: "jarjar-rules.txt",
     java_version: "1.8",
-}
\ No newline at end of file
+}
diff --git a/ecc/gen_eccdata.sh b/ecc/gen_eccdata.sh
index e4dd745..2888585 100755
--- a/ecc/gen_eccdata.sh
+++ b/ecc/gen_eccdata.sh
@@ -20,24 +20,8 @@
   exit 1
 fi
 
-case $(uname -s) in
-  Darwin)
-    KERNEL=darwin
-    ;;
-  Linux)
-    KERNEL=linux
-    ;;
-  *)
-    echo "Unknown kernel \"`uname -s`\"" 1>&2
-    exit 1
-    ;;
-esac
-
-read -d "" PROTOC_COMMAND << END || :
-${ANDROID_BUILD_TOP}/prebuilts/tools/${KERNEL}-x86_64/protoc/bin/protoc
-END
-if ! [ -x "${PROTOC_COMMAND}" ] ; then
-  echo "Missing ${PROTOC_COMMAND}." 1>&2
+if ! [ -x "$(which aprotoc)" ] ; then
+  echo "Missing aprotoc, build it with 'm aprotoc'." 1>&2
   exit 1
 fi
 
diff --git a/res/drawable/preference_background.xml b/res/drawable/preference_background.xml
index 19ca432..1ec90fb 100644
--- a/res/drawable/preference_background.xml
+++ b/res/drawable/preference_background.xml
@@ -21,7 +21,7 @@
         android:insetBottom="0dip">
 
     <shape android:shape="rectangle">
-        <solid android:color="@*android:color/background_material_light" />
+        <solid android:color="@color/background_material_light" />
     </shape>
 
 </inset>
diff --git a/res/drawable/progress_indeterminate_horizontal_material_trimmed.xml b/res/drawable/progress_indeterminate_horizontal_material_trimmed.xml
deleted file mode 100644
index 905dc55..0000000
--- a/res/drawable/progress_indeterminate_horizontal_material_trimmed.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Variant of progress_indeterminate_horizontal_material in frameworks/base/core/res, which
-     draws the whole height of the progress bar instead having blank space above and below the
-     bar. -->
-<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:drawable="@drawable/vector_drawable_progress_indeterminate_horizontal_trimmed" >
-    <target
-        android:name="rect2_grp"
-        android:animation="@*android:anim/progress_indeterminate_horizontal_rect2" />
-    <target
-        android:name="rect1_grp"
-        android:animation="@*android:anim/progress_indeterminate_horizontal_rect1" />
-</animated-vector>
\ No newline at end of file
diff --git a/res/layout/band_mode.xml b/res/layout/band_mode.xml
new file mode 100644
index 0000000..b43dd1d
--- /dev/null
+++ b/res/layout/band_mode.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+  
+          http://www.apache.org/licenses/LICENSE-2.0
+  
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="vertical"
+              android:padding="4dip"
+              android:gravity="center_horizontal"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content">
+
+    <ListView android:id="@+id/band"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:textSize="7sp">
+    </ListView>
+
+</LinearLayout>
diff --git a/res/layout/choose_network_progress_header.xml b/res/layout/choose_network_progress_header.xml
deleted file mode 100644
index 671c297..0000000
--- a/res/layout/choose_network_progress_header.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (C) 2018 The Android Open Source Project
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-
-<FrameLayout
-    android:layout_width="match_parent"
-    android:layout_height="3dp"
-    xmlns:android="http://schemas.android.com/apk/res/android">
-    <View
-        android:id="@+id/progress_bar_background"
-        style="@style/TrimmedHorizontalProgressBar"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="?android:attr/colorSecondary" />
-    <ProgressBar
-        android:id="@+id/progress_bar_animation"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        style="@style/TrimmedHorizontalProgressBar"
-        android:indeterminate="true" />
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
index bea01fe..ab32c62 100644
--- a/res/layout/emergency_dialer.xml
+++ b/res/layout/emergency_dialer.xml
@@ -58,8 +58,6 @@
         android:accessibilityPaneTitle="@string/pane_title_emergency_dialpad"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:paddingLeft="36dp"
-        android:paddingRight="36dp"
         android:paddingBottom="@dimen/dialpad_bottom_padding"
         android:visibility="visible">
         <LinearLayout
@@ -73,6 +71,7 @@
                 android:id="@+id/emergency_action_group"
                 android:layout_height="64dp"
                 android:layout_width="match_parent"
+                android:layout_marginHorizontal="36dp"
                 android:layout_marginTop="16dp"
                 android:layout_marginBottom="24dp">
 
@@ -110,7 +109,7 @@
                     <View
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:backgroundTint="#ffe53935"
+                        android:backgroundTint="#ffe32926"
                         android:focusable="false"
                         android:clickable="false"
                         style="?android:attr/buttonStyle"/>
@@ -155,8 +154,14 @@
                 </FrameLayout>
 
             </com.android.phone.EmergencyActionGroup>
-
+            <Space
+                android:id="@+id/emergency_info_dialpad_spacer"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"/>
             <include layout="@layout/dialpad_view_unthemed"
+                     android:layout_height="wrap_content"
+                     android:layout_width="match_parent"
                      android:theme="?attr/dialpadTheme" />
 
         </LinearLayout>
diff --git a/res/layout/pref_dialog_editpin.xml b/res/layout/pref_dialog_editpin.xml
deleted file mode 100644
index 94cdadf..0000000
--- a/res/layout/pref_dialog_editpin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Layout used as the dialog's content View for EditTextPreference. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@*android:id/edittext_container"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:padding="?android:attr/dialogPreferredPadding">
-
-    <TextView android:id="@android:id/message"
-        style="?android:attr/textAppearanceSmall"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:textColor="?android:attr/textColorSecondary" />
-
-</LinearLayout>
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
new file mode 100644
index 0000000..40c2e53
--- /dev/null
+++ b/res/layout/radio_info.xml
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/Settings/assets/res/any/layout/radio_info.xml
+**
+** Copyright 2006, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License"); 
+** you may not use this file except in compliance with the License. 
+** You may obtain a copy of the License at 
+**
+**     http://www.apache.org/licenses/LICENSE-2.0 
+**
+** Unless required by applicable law or agreed to in writing, software 
+** distributed under the License is distributed on an "AS IS" BASIS, 
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+** See the License for the specific language governing permissions and 
+** limitations under the License.
+*/
+-->
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout style="@style/info_layout"
+        android:descendantFocusability="beforeDescendants"
+        android:focusableInTouchMode="true">
+
+        <!-- Phone index -->
+        <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/phone_index_label"
+                style="@style/info_label"
+                />
+
+        <Spinner android:id="@+id/phoneIndex"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                />
+
+        <!-- IMEI -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_imei_label" style="@style/info_label" />
+            <TextView android:id="@+id/imei" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Phone Number -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_phone_number_label" style="@style/info_label" />
+            <TextView android:id="@+id/number" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Subscription ID -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_subid" style="@style/info_label" />
+            <TextView android:id="@+id/subid" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Default data subscription -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_dds" style="@style/info_label" />
+            <TextView android:id="@+id/dds" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- IMSI -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_imsi_label" style="@style/info_label" />
+            <TextView android:id="@+id/imsi" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Network Identifier -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_current_network_label" style="@style/info_label" />
+            <TextView android:id="@+id/operator" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Roaming -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_roaming_label" style="@style/info_label" />
+            <TextView android:id="@+id/roaming" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Data Service Status -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_gprs_service_label" style="@style/info_label" />
+            <TextView android:id="@+id/gprs" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Data Network Type -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_data_network_type_label" style="@style/info_label" />
+            <TextView android:id="@+id/data_network" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Voice Service Status -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_gsm_service_label" style="@style/info_label" />
+            <TextView android:id="@+id/gsm" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Voice Network Type -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_voice_network_type_label" style="@style/info_label" />
+            <TextView android:id="@+id/voice_network" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Signal Strength -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_signal_strength_label" style="@style/info_label" />
+            <TextView android:id="@+id/dbm" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Link Bandwidth -->
+        <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+            <TextView android:text="@string/radio_info_dl_kbps" style="@style/info_label" />
+            <TextView android:id="@+id/dl_kbps" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Link Bandwidth -->
+        <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+            <TextView android:text="@string/radio_info_ul_kbps" style="@style/info_label" />
+            <TextView android:id="@+id/ul_kbps" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Physical Channel Config -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_phy_chan_config" style="@style/info_label" />
+            <TextView android:id="@+id/phy_chan_config" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Preferred Network Type -->
+        <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/radio_info_set_perferred_label"
+                style="@style/info_label"
+                />
+
+        <Spinner android:id="@+id/preferredNetworkType"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                />
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Radio Power -->
+        <Switch android:id="@+id/radio_power"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/radio_info_radio_power"/>
+
+        <!-- VoLTE provisioned -->
+        <Switch android:id="@+id/volte_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/volte_provisioned_switch_string"/>
+
+        <!-- VT provisioned -->
+        <Switch android:id="@+id/vt_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/vt_provisioned_switch_string"/>
+
+        <!-- Wifi Calling provisioned -->
+        <Switch android:id="@+id/wfc_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/wfc_provisioned_switch_string"/>
+
+        <!-- EAB/Presence provisioned -->
+        <Switch android:id="@+id/eab_provisioned_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/eab_provisioned_switch_string"/>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Enable/Disable CBRS data -->
+        <Switch android:id="@+id/cbrs_data_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/cbrs_data_switch_string" />
+
+        <!-- Switch between SSSS(single sim single standby) and DSDS(dual sim dual standby). -->
+        <Switch android:id="@+id/dsds_switch"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/dsds_switch_string" />
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Ping stats -->
+        <Button android:id="@+id/ping_test"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/ping_test_label"
+                />
+ 
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ping_hostname_v4" style="@style/info_label" />
+            <TextView android:id="@+id/pingHostnameV4" style="@style/info_value" />
+        </LinearLayout>
+
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ping_hostname_v6" style="@style/info_label" />
+            <TextView android:id="@+id/pingHostnameV6" style="@style/info_value" />
+        </LinearLayout>
+
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_http_client_test" style="@style/info_label" />
+            <TextView android:id="@+id/httpClientTest" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- PPP Sent -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ppp_sent_label"
+                style="@style/info_label" />
+            <TextView android:id="@+id/sent" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- PPP Received -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ppp_received_label"
+                style="@style/info_label" />
+            <TextView android:id="@+id/received" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- PPP Sent since last received -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_ppp_resets_label"
+                style="@style/info_label" />
+            <TextView android:id="@+id/sentSinceReceived" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Call Status -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_call_status_label" style="@style/info_label" />
+            <TextView android:id="@+id/call" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Message Waiting Indicator -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_message_waiting_label" style="@style/info_label" />
+            <TextView android:id="@+id/mwi" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Call Forwarding Indicator -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_call_redirect_label" style="@style/info_label" />
+            <TextView android:id="@+id/cfi" style="@style/info_value" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- CellInfoListRate Selection -->
+        <!-- Location -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_signal_location_label" style="@style/info_label" />
+            <TextView android:id="@+id/location" style="@style/info_value" />
+        </LinearLayout>
+
+        <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/radio_info_cell_info_refresh_rate"
+                style="@style/info_label"
+                />
+
+        <Spinner android:id="@+id/cell_info_rate_select"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"
+                />
+
+        <!-- CellInfo -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_cellinfo_label"
+                      style="@style/info_label" />
+        </LinearLayout>
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:id="@+id/cellinfo"
+                      style="@style/info_value"
+                      android:minHeight="300dip"
+                      android:textSize="12sp" />
+        </LinearLayout>
+
+        <!-- Horizontal Rule -->
+        <View
+            android:layout_width="fill_parent"
+            android:layout_height="1dip"
+            android:background="?android:attr/listDivider" />
+
+        <!-- Launch OEM-specific Info/Settings Activity (if any) -->
+        <!-- Carrier Provisioning -->
+        <LinearLayout style="@style/RadioInfo_entry_layout"
+                      android:orientation="horizontal" >
+            <Button android:id="@+id/carrier_provisioning"
+                    android:layout_marginTop="8dip"
+                    android:layout_weight="1"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:text="@string/carrier_provisioning"
+                    android:textSize="14sp"/>
+            <Button android:id="@+id/trigger_carrier_provisioning"
+                    android:layout_marginTop="8dip"
+                    android:layout_weight="1"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:text="@string/trigger_carrier_provisioning"
+                    android:textSize="14sp"/>
+            <Button android:id="@+id/oem_info"
+                    android:layout_marginTop="8dip"
+                    android:layout_weight="1"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:text="@string/oem_radio_info_label"
+                    android:textSize="14sp"/>
+        </LinearLayout>
+
+        <!-- SMSC -->
+        <RelativeLayout android:layout_width="match_parent"
+                        android:layout_height="wrap_content">
+            <TextView android:id="@+id/smsc_label"
+                      android:text="@string/radio_info_smsc_label"
+                      android:layout_alignBaseline="@+id/update_smsc"
+                      style="@style/info_label" />
+            <Button android:id="@+id/refresh_smsc"
+                    android:textSize="14sp"
+                    android:layout_marginTop="8dip"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/radio_info_smsc_refresh_label"
+                    android:layout_alignParentEnd="true"
+                    />
+            <Button android:id="@+id/update_smsc"
+                    android:textSize="14sp"
+                    android:layout_marginTop="8dip"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/radio_info_smsc_update_label"
+                    android:layout_toStartOf="@+id/refresh_smsc"
+                    android:layout_alignBaseline="@+id/refresh_smsc"
+                    />
+            <EditText android:id="@+id/smsc"
+                      style="@style/form_value"
+                      android:layout_alignBaseline="@+id/refresh_smsc"
+                      android:layout_toStartOf="@id/update_smsc"
+                      android:layout_toEndOf="@id/smsc_label" />
+        </RelativeLayout>
+
+        <!-- Test setting to ignore bad DNS, useful in lab environments -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <Button android:id="@+id/dns_check_toggle"
+                    android:textSize="14sp"
+                    android:layout_marginTop="8dip"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/radio_info_toggle_dns_check_label"
+                    />
+            <TextView android:id="@+id/dnsCheckState" style="@style/info_value" />
+        </LinearLayout>
+
+
+    </LinearLayout>
+</ScrollView>
diff --git a/res/layout/sim_ndp.xml b/res/layout/sim_ndp.xml
index 5e3c472..5f03d7b 100644
--- a/res/layout/sim_ndp.xml
+++ b/res/layout/sim_ndp.xml
@@ -29,6 +29,7 @@
             android:layout_centerInParent="true">
 
         <TextView
+                android:id="@+id/perso_subtype_text"
                 android:textAppearance="?android:attr/textAppearanceMedium"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
diff --git a/res/values-af/config.xml b/res/values-af/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-af/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 18a7800..66a8ee8 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privaat nommer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefoonhokkie"</string>
     <string name="onHold" msgid="6132725550015899006">"Hou aan"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-boodskap"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Diensverskafferboodskap"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kode begin"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kode loop tans…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kode gekanselleer"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Net NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Voorkeurnetwerk-modus: WCDMA verkies"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Voorkeurnetwerk-modus: net GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Voorkeurnetwerk-modus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Voorkeurnetwerk-modus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Voorkeurnetwerk-modus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Voorkeurnetwerkmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Voorkeurnetwerk-modus: Globaal"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Voorkeurnetwerk-modus: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Voorkeurnetwerkmodus: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Voorkeurnetwerkmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Voorkeurnetwerkmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Voorkeurnetwerkmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Voorkeurnetwerkmodus: net NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Voorkeurnetwerkmodus: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Voorkeurnetwerkmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Voorkeurnetwerkmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Voorkeurnetwerkmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Voorkeurnetwerkmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Voorkeurnetwerkmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Oproepe"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netwerk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Verbeterde 4G LTE-modus"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multikategorie"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multikategorie geaktiveer"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategorie gedeaktiveer"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (aanbeveel)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (aanbeveel)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (aanbeveel)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globaal"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Verwyder belbeperking-nommer…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Belbeperking-nommer uitgevee."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN is nie opgedateer nie omdat jy \'n verkeerde PIN ingevoer het."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN is nie opgedateer nie, omdat die getal 20 syfers oorskry."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN is nie opgedateer nie, omdat die getal <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>syfers oorskry."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN is nie bygewerk nie. Die PIN2 was verkeerd of die foonnommer is verwerp."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-bewerking het misluk."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lees tans van SIM-kaart af…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan nie bel nie. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is nie \'n noodnommer nie."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Kan nie bel nie. Skakel \'n noodnommer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Noodoproepe is nie bekikbaar nie"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Net die eienaar van die toestel kan PIN-/PUK-kodes invoer."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polisie"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Intydse teksoproep (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Laat boodskappe binne \'n stemoproep toe"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT help bellers wat doof is, hardhorend is, \'n spraakgebrek het of meer as net stem benodig.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Kom meer te wete&lt;/a&gt;\n       &lt;br&amp;gtlt;br&gt; - RTT-oproepe word as \'n boodskaptranskripsie gestoor\n       &lt;br&amp;gt - RTT is nie vir video-oproepe beskikbaar nie"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Let wel: RTT is nie beskikbaar terwyl jy swerf nie"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY af"</item>
     <item msgid="1449091874731375214">"TTY vol"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nee"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Maak toe"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Die foon is in noodterugbelmodus"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Tot <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Die foon sal in noodterugbelmodus wees vir <xliff:g id="COUNT_1">%s</xliff:g> minute.\nWil jy nou uitgaan?</item>
+      <item quantity="one">Die foon sal in noodterugbelmodus wees vir <xliff:g id="COUNT_0">%s</xliff:g> minuut.\nWil jy nou uitgaan?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Diens"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Opstelling"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nie gestel nie&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Oproepstuiting is gedeaktiveer"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Verander wagwoord"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Verander oproepstuitingwagwoord"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Kan nie oproepstuitingwagwoord verander nie"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Kan nie oproepstuitingwagwoord verander nie"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Wagwoorde nie dieselfde nie"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Voer \'n wagwoord met 4 syfers in"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Wagwoord verander"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bevestig wagwoord"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Voer wagwoord in"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Oproepstuitinginstellings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktiveer alle oproepstuitinginstellings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Netwerk is besig. Probeer asseblief later weer bel."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Netwerk is vol. Kontak jou selfoonoperateur vir bystand."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Oproep is afgelei."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Om <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> te gebruik, maak seker dat mobiele data vir SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Om <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> te gebruik, maak seker dat mobiele data en dataswerwing vir SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Weier"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktiveer dataverbinding"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Deaktiveer dataverbinding"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-voorbereid"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video-oproepe is opgestel"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-oproepe is opgestel"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/teenwoordigheid is opgestel"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktiveer DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Herbegin toestel?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Jy moet jou toestel herbegin om dié instelling te verander."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Herbegin"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Kanselleer"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobieleradiokrag"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Bekyk SIM-adresboek"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kyk na vaste skakelnommers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Bekyk skakeldiensnommers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-diensstatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Geregistreer"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nie geregistreer nie"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Beskikbaar"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nie beskikbaar nie"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrasie: <xliff:g id="STATUS">%1$s</xliff:g>\nStem oor LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nStem oor Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo-oproepe: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-koppelvlak: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In diens"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Diens is nie beskikbaar nie"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Net noodoproepe"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio is af"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Swerwing"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Swerf nie"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Luier"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Lui tans"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Besig met oproep"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ontkoppel"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Koppel tans"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Gekoppel"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Opgeskort"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Onbekend"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"grepe"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Huidige sub-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Sub-ID van verstekdata-SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Aflaaibandwydte (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Oplaaibandwydte (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Selligginginligting (opgeskort):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fisieke LTE-kanaalopstelling:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Herlaaikoers van selinligting:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle selmetingsinligting:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datadiens:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Swerwing:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Oproepherleiding:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Aantal PPP-terugstellings sedert herlaai:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Huidige netwerk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data ontvang:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Stemdiens:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Seinsterkte:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stemoproepstatus:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data gestuur:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Boodskap wag:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Foonnommer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Kies radioband"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Stemnetwerktipe:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datanetwerktipe:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Kies foonindeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Stel voorkeurnetwerktipe:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pieng gasheernaam(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pieng gasheernaam(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-kliënttoets:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Doen piengtoets"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Dateer op"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Herlaai"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Wissel DNS-kontrole"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-spesifieke inligting/instellings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Stel radiobandmodus"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Laai tans bandlys …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Stel"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Onsuksesvol"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Suksesvol"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletinligting"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Fooninligting"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Diensverskaffervoorsiening-inligting"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger-diensverskaffervoorsiening"</string>
 </resources>
diff --git a/res/values-am/config.xml b/res/values-am/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-am/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 5b7c8e3..d8b8312 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"የግል ቁጥር"</string>
     <string name="payphone" msgid="7936735771836716941">"የሕዝብ ስልክ"</string>
     <string name="onHold" msgid="6132725550015899006">"ያዝናቆይ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> መልዕክት"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"የአገልግሎት አቅራቢ መልዕክት"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"የMMI ኮድ ጀምሯል"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"የUSSD ኮድ አሂድ ላይ ነው..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"የMMI ኮድ ቀርቷል"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR ብቻ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ተመራጭ የአውታረመረብ ፡WCDMA ሁነታ ተመራጭ"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ተመራጭ የአውታረመረብ ፡GSM ሁነታ ብቻ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ተመራጭ የአውታረመረብ ሁኔታ፡ LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ተመራጭ የአውታረመረብ ሁኔታ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ተመራጭ የአውታረመረብ ሁኔታ ፡ CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ተመራጭ የአውታረመረብ ፡ አለምአቀፍ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ተመራጭ የአውታረመረብ ሁኔታ፡ LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ተመራጭ የአውታረ መረብ ሁነታ፦ LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"የተመረጠው የአውታረ መረብ ሁነታ፦ CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"የተመረጠው የአውታረ መረብ ሁነታ፦ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR ብቻ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"የተመረጠው የአውታረ መረብ ሁነታ፦ NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"በመደወል ላይ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"አውታረ መረብ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"የተሻሻለ የ4ጂ LTE ሁነታ"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ብዙ ምድብ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ብዙ ምድብ ነቅቷል"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ብዙ-ምድብ አልነቃም"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (የሚመከር)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (የሚመከር)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (የሚመከር)"</string>
     <string name="network_global" msgid="3289646154407617631">"አለምአቀፍ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"በቋሚ መደወያ ቁጥር በመሰረዝ ላይ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ቋሚ መደወያ ቁጥር ተሰርዟል።"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"የተሳሳተ ፒን ስላስገባህ FDN አልዘመነም፡፡"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN አልተደገፈም ነበር ምክንያቱም ቁጥሩ ከ20 አኃዞች ያንሳል።"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ቁጥሩ ከ<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> አሃዞች ስለሚበልጥ አልዘመነም።"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN አልዘመነም። ፒን2 ትክክል አልነበረም፣ ወይም የስልክ ቁጥሩ ተቀባይነት አላገኘም።"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ክወና አልተሳካም!"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ከSIM ካርድ ላይ በማንበብ ላይ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"መደወል አልተቻለም። <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> የአስቸኳይ አደጋ ቁጥር አይደለም።"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"መደወል አልተቻለም። ወደ የአስቸኳይ አደጋ ቁጥር ይደውሉ።"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"የአደጋ ጊዜ ጥሪ ማድረግ አይገኝም"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"የመሣሪያው ባለቤት ብቻ ፒን/PUK ኮዶችን ማስገባት ይችላል።"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ፖሊስ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"አምቡላንስ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"እሳት"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ቅጽበታዊ ጽሁፍ (አርቲቲ) ጥሪ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"በድምጽ ጥሪ ውስጥ መልዕክት መላክን ፍቀድ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"አርቲቲ መስማት የተሳናቸው፣ የመስማት ችግር ያለባቸው፣ መስማት ያሚያዳግታቸው እና የንግግር አካል ጉዳት ያለባቸውን ወይም ከድምጽ በላይ የሚያስፈልጋቸውን ደዋዮች ይረዳል።&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;የበለጠ ለመረዳት&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - አርቲቲ ጥሪዎች እንደ የመልዕክት ጽሁፍ ግልባጭ ይቀመጣሉ\n       &lt;br&gt; - አርቲቲ ለቪዲዮ ጥሪዎች አይገኝም"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ማስታወሻ፦ አርቲቲ በዝውውር ላይ እያሉ አይገኝም።"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ጠፍቷል"</item>
     <item msgid="1449091874731375214">"TTY ሙሉ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"አዎ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"አይ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"አሰናብት"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ስልኩ የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁነታ ውስጥ ነው ያለው።"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"እስከ <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ስልኩ ለ<xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁነታ ውስጥ ይሆናል።\nአሁን መውጣት ይፈልጋሉ?</item>
+      <item quantity="other">ስልኩ ለ<xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁነታ ውስጥ ይሆናል።\nአሁን መውጣት ይፈልጋሉ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"አገልግሎት"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"አዋቅር"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;አልተዘጋጀም &gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ጥሪ ክልከላ ተሰናክሏል"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"የይለፍ ቃል ለውጥ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"የጥሪ ክልከላ የይለፍ ቃልን ለውጥ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"የጥሪ ክልከላ የይለፍ ቃልን መለወጥ አይቻልም።"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"የጥሪ ክልከላ የይለፍ ቃልን መለወጥ አይቻልም"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"የይለፍ ቃሎችዎ አልተዛመዱም"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ቁጥሮች ያሉት የይለፍ ቃል ያስገቡ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"የይለፍ ቃል ተለውጧል"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"የይለፍ ቃልን ያረጋግጡ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"የይለፍ ቃል አስገባ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"የጥሪ ክልከላ ቅንብሮች"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ሁሉንም የጥሪ ክልከላ ቅንብሮች አሰናክል?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"አውታረመረብ ተጨናንቋል። እባክዎ ጥሪዎን በኋላ እንደገና ይሞክሩ።"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"አውታረመረብ ተጨናንቋል ለእገዛ የሞባይል አከናዋኝዎን ያነጋግሩ"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ጥሪ አቅጣጫውን ቀይሯል።"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ን ለመጠቀም ሞባይል ውሂብ ለ ሲም <xliff:g id="SIM_NUMBER">%2$d</xliff:g> መብራቱን ያረጋግጡ። ይህን በሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ን ለመጠቀም፣ ሞባይል ውሂብ እና ይውሂብ ዝውውር ለሲም <xliff:g id="SIM_NUMBER">%2$d</xliff:g> መብራታቸውን ያረጋግጡ። እነዚህን በ ሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"አሰናብት"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"የውሂብ ግንኙነትን አንቃ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"የውሂብ ግንኙነትን አሰናክል"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"በVoLTE የቀረበ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"የቪዲዮ ጥሪ ቀርቧል"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"የWifi ጥሪ ቀርቧል"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"የEAB/ተገኝነት ቀርቧል"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"የCbrs ውሂብ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDSን አንቃ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"መሣሪያው ዳግም ይጀምር?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ይህን ቅንብር ለመለወጥ መሣሪያዎትን ዳግም ማስጀመር ያስፈልግዎታል።"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ዳግም አስጀምር"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ይቅር"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"የሞባይል ሬዲዮ ኃይል"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"የሲም አድራሻ ደብተር አሳይ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"በቋሚነት የሚደወልባቸው ቁጥሮች"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"የአገልግሎት መደወያ ቁጥሮችን ተመልከት"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS አገልግሎት ሁነታ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ሁነታ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ተመዝግቧል"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"አልተመዘገበም"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"የሚገኙ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"አይገኝም"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"የIMS ምዝገባ፦ <xliff:g id="STATUS">%1$s</xliff:g>\n የድምጽ ቅጂ LTE፡ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nየድምጽ ቅጂ WiFi፡ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nየቪድዮ ጥሪ፦ <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT በይነገጽ፡ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"በአገልግሎት ውስጥ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ከአገልግሎት ውጪ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"የአደጋ ጊዜ ጥሪዎች ብቻ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ሬዲዮ ጠፍቷል"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"በማዘዋወር ላይ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"እየተዘዋወረ አይደለም"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ሥራ ፈት"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"በመጥራት ላይ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ጥሪ በሂደት ላይ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ተቋርጧል"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"በመገናኘት ላይ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ተገናኝቷል"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ታግዷል"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ያልታወቀ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ባይቶች"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"የአሁኑ subId፡"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"የነባሪ ውሂብ ሲም SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL መተላለፊያ ይዘት (ኪቢ/ሴ)፡"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"የUL መተላለፊያ ይዘት (ኪቢ/ሴ)፡"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"የሕዋስ የአካባቢ መረጃ (የተቋረጠ)፦"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"የLTE አካላዊ ሰርጥ ውቅረት:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"የሕዋስ መረጃ እድሳት ፍጥነት፡"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ሁሉም የሕዋስ መለኪያ መረጃ፡"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"የውሂብ አገልግሎት:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"በማዛወር ላይ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ጥሪ ተዛውሯል:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ከተነሳ ጀምሮ የ PPP ድጋሚ ጅምር ብዛት"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"የአሁኑ አውታረ መረብ፡"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ውሂብ ተቀብሏል:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"የድምፅ አገልግሎት:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"የሲግናል ጥንካሬ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"የድምጽ ጥሪ ሁኔታ፡"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"የተላከ ውሂብ፦"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"መልዕክት በመጠበቅ ላይ፡"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ስልክ ቁጥር:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"የሬዲዮ ባንድ ይምረጡ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"የድምፅ የአውታረ መረብ ዓይነት፡"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"የውሂብ አውታረ መረብ ዓይነት፡"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"የስልክ መረጃ ጠቋሚ ይምረጡ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ተመራጭ የአውታረ መረብ አይነት ያዋቅሩ፡"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ፒንግ ስመ ከዳም(www.google.com) IPv4፦"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ፒንግ ስመ ካዳም(www.google.com) IPv6፡"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"የኤችቲቲፒ ደንበኛ ሙከራ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"የፒንግ ሙከራን አስሂድ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"አዘምን"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"አድስ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"የDNS ፍተሻን ቀያይር"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-የተወሰነ መረጃ/ቅንብሮች"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"የሬዲዮ ባንድ ሁነታን ያቀናጁ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"የባንድ ዝርዝርን በመጫን ላይ…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"አዋቅር"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"አልተሳካም"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ስኬታማ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"የጡባዊ መረጃ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"የስልክ መረጃ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"የአገልግሎት አቅራቢ አቅርቦት መረጃ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"የቀስቅሴ አገልግሎት አቅራቢ አቅርቦት"</string>
 </resources>
diff --git a/res/values-ar/config.xml b/res/values-ar/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ar/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 2efc028..6fc08d7 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"رقم خاص"</string>
     <string name="payphone" msgid="7936735771836716941">"هاتف يعمل بالعملة"</string>
     <string name="onHold" msgid="6132725550015899006">"معلقة"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"رسالة <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"رسالة مشغِّل شبكة الجوَّال"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏بدأ رمز MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏جارٍ تشغيل رمز USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏تم إلغاء رمز MMI"</string>
@@ -172,7 +174,7 @@
     <string name="connect_later" msgid="1950138106010005425">"يتعذر الاتصال بهذه الشبكة في الوقت الحالي. حاول مرة أخرى لاحقًا."</string>
     <string name="registration_done" msgid="5337407023566953292">"مسجل على الشبكة."</string>
     <string name="already_auto" msgid="8607068290733079336">"في التحديد التلقائي فعلاً."</string>
-    <string name="select_automatically" msgid="779750291257872651">"تحديد الشبكة تلقائيًا"</string>
+    <string name="select_automatically" msgid="779750291257872651">"اختيار الشبكة تلقائيًا"</string>
     <string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"‏الشبكات غير متاحة عند الاتصال بمشغِّل شبكة الجوّال %1$s."</string>
     <string name="network_select_title" msgid="4117305053881611988">"الشبكة"</string>
     <string name="register_automatically" msgid="3907580547590554834">"التسجيل التلقائي..."</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏NR فقط"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏وضع الشبكة المفضل: تم تفضيل WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏وضع الشبكة المفضل: GSM فقط"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏وضع الشبكة المفضل: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏وضع الشبكة المفضل: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏وضع الشبكة المفضل: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏وضع الشبكة المُفضَّل: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"وضع الشبكة المفضل: عام"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏وضع الشبكة المفضل: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏وضع الشبكة المفضل: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏وضع الشبكة المفضل: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏وضع الشبكة المفضل: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏وضع الشبكة المفضل: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏وضع الشبكة المُفضَّل: NR فقط"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏وضع الشبكة المُفضَّل: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏وضع الشبكة المُفضَّل: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏وضع الشبكة المُفضَّل: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏وضع الشبكة المُفضَّل: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏وضع الشبكة المُفضَّل: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏وضع الشبكة المُفضَّل: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"الاتصال"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"الشبكة"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏وضع 4G LTE المحسّن"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"متعددة الفئات"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"تم تفعيل المتعددة الفئات"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"تم إيقاف متعددة الفئات"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (موصى به)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (مستحسن)"</string>
     <string name="network_4G" msgid="6800527815504223913">"الجيل الرابع (مستحسن)"</string>
     <string name="network_global" msgid="3289646154407617631">"عام"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"جارٍ حذف رقم الاتصال الثابت..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"تم حذف رقم الاتصال الثابت."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‏لم يتم تحديث FDN لأنك كتبت رقم تعريف شخصي غير صحيح."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏لم يتم تحديث FDN نظرًا لأن الرقم يتجاوز طوله 20 رقمًا."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏لم يتم تحديث FDN نظرًا لأن الرقم يتجاوز طوله <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> رقمًا."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‏لم يتم تحديث FDN. رقم PIN2 غير صحيح، أو تم رفض رقم الهاتف."</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏تعذّر إتمام عملية FDN!"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‏جارٍ القراءة من شريحة SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"يتعذر الاتصال. لا يعد <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> رقم طوارئ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"يتعذر الاتصال. يمكنك طلب رقم طوارئ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"مكالمة الطوارئ غير متوفرة"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏يمكن لمالك الجهاز فقط إدخال رمزَي PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"شرطة"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"سيارة إسعاف"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"حريق"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"مكالمة باستخدام الميزة \"مراسلة نصية في الوقت الفعلي\""</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"السماح بالمراسلة داخل مكالمة صوتية"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏تعمل الميزة \"مراسلة نصية في الوقت الفعلي\" على مساعدة المتصلين الذين يعانون من فقدان حاسة السمع أو من ضعف في السمع أو ليست لديهم القدرة على التحدث أو يحتاجون إلى ما هو أكثر من الصوت فقط.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;معرفة المزيد&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - يتم حفظ المكالمات التي تتم عن طريق الميزة \"مراسلة نصية في الوقت الفعلي\" كنص رسالة \n       &lt;br&gt; - لا تتوفر الميزة \"مراسلة نصية في الوقت الفعلي\" لمكالمات الفيديو"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ملاحظة: لا تتوفّر ميزة \"المراسلة النصية في الوقت الفعلي\" أثناء التجوال"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY غير مفعّل"</item>
     <item msgid="1449091874731375214">"‏TTY مكتمل"</item>
@@ -617,6 +645,16 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"نعم"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"لا"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"استبعاد"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"الهاتف في وضع معاودة الاتصال بالطوارئ."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"حتى <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="zero">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقيقة.\nهل تريد الخروج الآن؟</item>
+      <item quantity="two">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة دقيقتين (<xliff:g id="COUNT_1">%s</xliff:g>).\nهل تريد الخروج الآن؟</item>
+      <item quantity="few">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقائق.\nهل تريد الخروج الآن؟</item>
+      <item quantity="many">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقيقة.\nهل تريد الخروج الآن؟</item>
+      <item quantity="other">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقيقة.\nهل تريد الخروج الآن؟</item>
+      <item quantity="one">سيكون الهاتف في وضع معاودة الاتصال بالطوارئ لمدة دقيقة (<xliff:g id="COUNT_0">%s</xliff:g>).\nهل تريد الخروج الآن؟</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"الخدمة"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"الإعداد"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‏&lt;لم يتم التعيين&gt;"</string>
@@ -756,7 +794,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"تم إيقاف منع الاتصال"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"تغيير كلمة المرور"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"تغيير كلمة مرور منع الاتصال"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"يتعذر تغيير كلمة مرور منع الاتصال."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"يتعذّر تغيير كلمة مرور منع الاتصال."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"كلمتا المرور غير متطابقتين"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"إدخال كلمة مرور مكونة من 4 أرقام"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"تم تغيير كلمة المرور"</string>
@@ -765,7 +803,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"تأكيد كلمة المرور"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"إدخال كلمة المرور"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"إعدادات منع الاتصال"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"هل تريد إيقاف كل إعدادات منع الاتصال؟"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"الشبكة مشغولة. يُرجى إعادة الاتّصال في وقتٍ لاحق."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"الشبكة مزدحمة. اتصل بمشغّل شبكة الجوّال للحصول على مساعدة."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"تم انحراف المكالمة."</string>
@@ -795,4 +832,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‏لاستخدام <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، تأكّد من تفعيل بيانات الجوّال لشريحة SIM رقم <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. يمكنك تغيير هذا الإعداد في إعدادات شبكة الجوّال."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‏لاستخدام <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، تأكّد من تفعيل بيانات الجوّال وتجوال البيانات لشريحة SIM رقم <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. يمكنك تغيير هذين الإعدادين في إعدادات شبكة الجوّال."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"رفض"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"تفعيل اتصال البيانات"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"إيقاف اتصال البيانات"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏تم توفير VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"تم توفير مكالمات الفيديو"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏تم توفير اتصال Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏تم توفير EAB/الحضور"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏بيانات CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏تفعيل DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"هل تريد إعادة تشغيل الجهاز؟"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"عليك إعادة تشغيل جهازك لتغيير هذا الإعداد."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"إعادة التشغيل"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"إلغاء"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"طاقة اللاسلكي للجوّال"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏عرض دفتر عناوين SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"عرض أرقام الطلب الثابت"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"عرض أرقام طلب الخدمة"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"حالة خدمة الرسائل الفورية"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"حالة الرسائل الفورية"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"مسجّل"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"غير مسجّل"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"متاح"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"الميزة غير متاحة"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏تسجيل الرسائل الفورية: <xliff:g id="STATUS">%1$s</xliff:g>\nالصوت عبر LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nالصوت عبر WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nمكالمات الفيديو: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nواجهة UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"قيد الخدمة"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"خارج نطاق الخدمة"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"مكالمات الطوارئ فقط"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"تم إيقاف اللاسلكي"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"التجوال"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ليس هناك تجوال"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"خامل"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"جارٍ استصدار الرنين…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"الاتصال قيد التقدّم"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"غير متصل"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"جارٍ الاتصال…"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"متّصل بالإنترنت"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"معلّق"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"غير معروف"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"الحزم"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"بايت"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"بالديسيبل"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"المعرّف الفرعي الحالي:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏المعرّف الفرعي لشريحة SIM التلقائية للبيانات:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏معدّل نقل بيانات DL (كيلوبت في الثانية):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏معدّل نقل بيانات UL (كيلوبت في الثانية):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"معلومات الموقع الخلوية (تم الإيقاف):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏ضبط قناة LTE Physical:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"معدّل إعادة تحميل المعلومات الخلوية:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"جميع معلومات القياس الخلوية:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"خدمة البيانات:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"التجوال:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"إعادة توجيه الاتصال:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏عدد مرات إعادة ضبط PPP منذ التشغيل:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"الشبكة الحالية:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"البيانات المُستلَمة:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"الخدمة الصوتية:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"قوة الإشارة:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"حالة المكالمة الصوتية:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"البيانات المُرسَلة:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"انتظار الرسائل:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"رقم الهاتف:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"تحديد النطاق اللاسلكي"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"نوع الشبكة الصوتية:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"نوع شبكة البيانات:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"اختيار فهرس الهاتف"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"تحديد نوع الشبكة المفضّل:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏فحص اتصال اسم المضيف (www.google.com) عبر IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏فحص اتصال اسم المضيف (www.google.com) عبر IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏اختبار عميل HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"تشغيل اختبار فحص الاتصال"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"تعديل"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"إعادة التحميل"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"تبديل فحص نظام أسماء النطاقات"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"المعلومات/الإعدادات المتعلّقة بالمصنّع الأصلي للجهاز"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"تحديد وضع النطاق اللاسلكي"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"جارٍ تحميل قائمة النطاقات…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ضبط"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"لم يتم بنجاح"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"تم بنجاح"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"معلومات الجهاز اللوحي"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"معلومات الهاتف"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"معلومات توفير خدمة مشغّل شبكة الجوّال"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"توفير خدمة مشغّل شبكة الجوّال"</string>
 </resources>
diff --git a/res/values-as/config.xml b/res/values-as/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-as/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 519be46..873030b 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ব্যক্তিগত নম্বৰ"</string>
     <string name="payphone" msgid="7936735771836716941">"পে\'ফ\'ন"</string>
     <string name="onHold" msgid="6132725550015899006">"হ\'ল্ডত আছে"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> বাৰ্তা"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"বাহকৰ বাৰ্তা"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI ক\'ড আৰম্ভ কৰা হ’ল"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ক\'ড চলি আছে…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI ক\'ড বাতিল কৰা হ’ল"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"কেৱল NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: WCDMA অগ্ৰাধিকাৰ দিয়া হৈছে"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: GSM মাত্ৰ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: গোলকীয়"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: কেৱল NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"অগ্ৰাধিকাৰপ্ৰাপ্ত নেটৱৰ্ক ম’ড: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ ম’ড: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"কলিং"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"নেটৱৰ্ক"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"পৰিৱৰ্ধিত 4G এলটিই ম’ড"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"বহু-বৰ্গীয়"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"বহু-বৰ্গীয় সক্ষম কৰা হ’ল"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"বহু-বৰ্গীয় অক্ষম কৰা হ’ল"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (চুপাৰিছ কৰা)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (অনুমোদিত)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (অনুমোদিত)"</string>
     <string name="network_global" msgid="3289646154407617631">"গোলকীয়"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ফিক্সড্ ডায়েলিং নম্বৰ মচি থকা হৈছে…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ফিক্সড্ ডায়েলিং নম্বৰ মচা হ’ল।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"আপুনি ভুল পিন টাইপ কৰা কাৰণে FDN আপডে’ট কৰা নহ\'ল।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN আপডে’ট কৰা নহ\'ল কাৰণ নম্বৰটো ২০টা অংকতকৈ বেছি হৈছে।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"নম্বৰটোত<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>টাতকৈ বেছি অংক আছে বাবে FDN আপডে\'ট নহ\'ল।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN আপডে’ট কৰা নহ\'ল। PIN2টো ভুল আছিল বা ফ\'নটো নম্বৰটো নাকচ কৰা হৈছে।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN অপাৰেশ্বন বিফল হ’ল।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ছিম কাৰ্ডৰ পৰা পঢ়ি থকা হৈছে…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"কল কৰিব নোৱাৰি। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> এইটো জৰুৰীকালীন নম্বৰ নহয়।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"কল কৰিব নোৱাৰি। জৰুৰী নম্বৰ এটা ডায়েল কৰক।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"জৰুৰীকালীন কলিঙৰ সুবিধা উপলব্ধ নহয়"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"কেৱল ডিভাইচটোৰ গৰাকীয়েহে PIN/PUK ক’ডসমূহ দিব পাৰে।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"পুলিচ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"এম্বুলেঞ্চ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"জুই"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"প্ৰকৃত সময়ত বাৰ্তা (RTT) কল"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ভইচ কল চলি থকাৰ সময়ত বাৰ্তা পঠিওৱাৰ অনুমতি দিয়ক"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTTয়ে বধিৰ বা শ্ৰৱণশক্তি কম থকা, বাকশক্তি সম্পৰ্কীয় দিব্য়াংগ বা কল কৰোঁতে কণ্ঠস্বৰতকৈ অধিক সুবিধাৰ প্ৰয়োজন হোৱা ব্য়ক্তিসকলক সহায় কৰে।&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;অধিক জানক&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT কলসমূহক বাৰ্তাৰ ট্ৰান্সক্ৰিপ্ট হিচাপে ছেভ কৰা হয়\n       &lt;br&gt; - RTT ভিডিঅ\' কলৰ বাবে উপলব্ধ নহয়"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"টোকা: ৰ’মিঙত থাকোঁতে RTT উপলব্ধ নহয়"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY বন্ধ হৈ আছে"</item>
     <item msgid="1449091874731375214">"TTY সম্পূৰ্ণ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"হয়"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"নহয়"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"অগ্ৰাহ্য কৰক"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ফ’নটো জৰুৰীকালীন কলবেক ম’ডত আছে"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> পৰ্যন্ত"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ফ’নটো <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে জৰুৰীকালীন কলবেক ম’ডত থাকিব।\nআপুনি এতিয়া বাহিৰ হ’বলৈ বিচাৰে নেকি?</item>
+      <item quantity="other">ফ’নটো <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে জৰুৰীকালীন কলবেক ম’ডত থাকিব।\nআপুনি এতিয়া বাহিৰ হ’বলৈ বিচাৰে নেকি?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"সেৱা"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ছেট আপ কৰক"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ছেট কৰা হোৱা নাই&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"কল প্ৰতিবন্ধক নিষ্ক্ৰিয় কৰা হ’ল"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"পাছৱৰ্ড সলনি কৰক"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰক"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰিব নোৱাৰি।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰিব নোৱাৰি"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"পাছৱৰ্ডসমূহ মিলা নাই"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"৪টা সংখ্যাৰ এটা পাছৱৰ্ড লিখক"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"পাছৱৰ্ড সলনি কৰা হ’ল"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"পাছৱৰ্ড নিশ্চিত কৰক"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"পাছৱৰ্ড দিয়ক"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"কল প্ৰতিবন্ধক ছেটিংসমূহ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"সকলো কল প্ৰতিবন্ধক ছেটিং নিষ্ক্ৰিয় কৰেনে?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"নেটৱৰ্ক ব্যস্ত। অনুগ্ৰহ কৰি কিছুসময় পিছত আকৌ কল কৰাৰ চেষ্টা কৰক।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"নেটৱর্ক ব্যস্ত আছে। সহায়তাৰ বাবে আপোনাৰ ম\'বাইল অ\'পাৰেটৰৰ সৈতে যোগাযোগ কৰক।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"কলটো বিচ্যুত কৰা হৈছে।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ছিমত ম’বাইল ডেটা অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ছিমত ম’বাইল ডেটা আৰু ডেটা ৰ’মিং অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"অগ্ৰাহ্য কৰক"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ডেটা সংযোগ সক্ৰিয় কৰক"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ডেটা সংযোগ নিষ্ক্ৰিয় কৰক"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE প্ৰ’ভিজন কৰা হৈছে"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ভিডিঅ’ কলিং প্ৰ’ভিজন কৰা হৈছে"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ৱাইফাই কলিং প্ৰ\'ভিজন কৰা হৈছে"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/উপস্থিতিক প্ৰ’ভিজন কৰা হৈছে"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ডেটা"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS সক্ষম কৰক"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ডিভাইচটো ৰিষ্টার্ট কৰিবনে?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"আপুনি এই ছেটিংটো সলনি কৰিবলৈ আপোনাৰ ডিভাইচটো ৰিষ্টার্ট কৰিব লাগিব।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ৰিষ্টাৰ্ট কৰক"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"বাতিল কৰক"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ম’বাইলৰ ৰেডিঅ’ পাৱাৰ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ছিম ঠিকনা সূচী চাওক"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ চাওক"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সেৱা ডায়েলিং নম্বৰসমূহ চাওক"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS সেৱাৰ স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMSৰ স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"পঞ্জীকৃত"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"পঞ্জীকৃত নহয়"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"উপলব্ধ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"উপলব্ধ নহয়"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS পঞ্জীয়ন: <xliff:g id="STATUS">%1$s</xliff:g>\nভইচ অভাৰ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nভইচ অভাৰ ৱাই-ফাই: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nভিডিঅ’ কলিং: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ইণ্টাৰফে’চ: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"সেৱাত আছে"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"সেৱাত নাই"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"কেৱল জৰুৰীকালীন কলসমূহ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ৰেডিঅ’ অফ হৈ আছে"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ৰ’মিং"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ৰ’মিঙত নাই"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"নিষ্ক্ৰিয়"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ৰিং হৈ আছে"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"কল চলি আছে"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"সংযোগ বিচ্ছিন্ন হৈছে"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"সংযোগ কৰি থকা হৈছে"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"সংযোগ কৰা হ’ল"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"নিলম্বন কৰা হৈছে"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"অজ্ঞাত"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"পিকেটিএছ"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"বাইটসমূহ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"ডিবিএম"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"এএছইউ"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"বৰ্তমানৰ ছাবআইডি:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ডিফ’ল্ট ডেটা ছিমৰ ছাবআইডি:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL বেণ্ডৱিথ (কেবিপিএছ):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL বেণ্ডৱিথ (কেবিপিএছ):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"চেল অৱস্থানৰ তথ্য (অনুমোদিত নহয়):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ফিজিকেল চেনেলৰ কনফিগাৰেশ্বন:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"চেল তথ্য ৰিফ্ৰেশ্বৰ হাৰ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"সকলো চেল পৰিমাপৰ তথ্য:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ডেটা সেৱা:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ৰ’মিং:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"কল ৰিডাইৰেক্ট কৰক:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"বুট কৰাৰ পাছত PPP ৰিছেট কৰাৰ সংখ্যা:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"বৰ্তমানৰ নেটৱৰ্ক:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"লাভ কৰা ডেটা:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ভইচ সেৱা:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"সংকেতৰ ক্ষমতা:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ভইচ কলৰ স্থিতি:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"প্ৰেৰণ কৰা ডেটা:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"বাৰ্তা অপেক্ষাৰত:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ফ’ন নম্বৰ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ৰেডিঅ’ বেণ্ড বাছনি কৰক"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ভইচ নেটৱৰ্কৰ প্ৰকাৰ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ডেটা নেটৱৰ্কৰ প্ৰকাৰ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ফ’নৰ ইনডেক্স বাছনি কৰক"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"পচন্দৰ নেটৱৰ্কৰ প্ৰকাৰ ছেট কৰক:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"হ\'ষ্টনাম(www.google.com) IPv4 পিং কৰক:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"হ\'ষ্টনাম(www.google.com) IPv6 পিং কৰক:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ক্লায়েণ্ট পৰীক্ষা:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"পিং পৰীক্ষা কৰক"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"আপডে’ট কৰক"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ৰিফ্ৰেশ্ব কৰক"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS পৰীক্ষা ট’গল কৰক"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM বিশেষক তথ্য/ছেটিংসমূহ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ৰেডিঅ’ৰ বেণ্ড ম’ড ছেট কৰক"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"বেণ্ড সূচীখন ল’ড কৰি থকা হৈছে…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ছেট কৰক"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"বিফল"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"সফল"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"টেবলেটৰ তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ফ\'নৰ তথ্য"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"বাহকৰ প্ৰ’ভিজনিং তথ্য"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"বাহকৰ প্ৰ’ভিজনিং সূচনা কৰক"</string>
 </resources>
diff --git a/res/values-az/config.xml b/res/values-az/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-az/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 17e21f6..072fa3d 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Şəxsi nömrə"</string>
     <string name="payphone" msgid="7936735771836716941">"Taksofon"</string>
     <string name="onHold" msgid="6132725550015899006">"Gözləmə mövqeyində"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mesajı"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator Mesajı"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodu başlandı"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kod işləyir..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodu ləğv olundu"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Yalnız NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Tərcih edilmiş şəbəkə rejimi: WCDMA tərcih edilir"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Tərcih edilmiş şəbəkə rejimi: Yalnız GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Tərcih edilmiş şəbəkə rejimi: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Tərcih edilmiş şəbəkə rejimi: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Tərcih edilmiş şəbəkə rejimi: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Tərcih edilən şəbəkə rejimi: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Tərcih edilmiş şəbəkə rejimi: Qlobal"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Tərcih edilmiş şəbəkə rejimi: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Seçilən şəbəkə rejimi: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Tərcih edilmiş şəbəkə rejimi: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Tərcih edilmiş şəbəkə rejimi: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Tərcih edilmiş şəbəkə rejimi: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Tərcih edilən şəbəkə rejimi: Yalnız NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Tərcih edilən şəbəkə rejimi: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Tərcih edilən şəbəkə rejimi: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Tərcih edilən şəbəkə rejimi: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Tərcih edilən şəbəkə rejimi: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Tərcih edilən şəbəkə rejimi: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Tərcih edilən şəbəkə rejimi: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Zəng edilir"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Şəbəkə"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Təkmil 4G LTE Rejimi"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kateqoriya"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-kateqoriya aktivdir"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-kateqoriya deaktivdir"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (tövsiyə edilir)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (məsləhətlidir)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (məsləhətlidir)"</string>
     <string name="network_global" msgid="3289646154407617631">"Qlobal"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sabit yığım nömrəsi silinir…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Sabit yığım nömrəsi silindi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Yanlış PIN daxil etdiyiniz üçün FDN güncəlləşdirilmədi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Nömrə 20 rəqəmi keçdiyindən FDN yenilənmədi."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Nömrə <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> rəqəmi keçdiyindən FDN yenilənmədi."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN güncəlləşdirilmədi. PIN2 yanlış idi və ya telefon nömrəsi rədd edildi."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN əməliyyatı aılnmadı."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM kart oxunur ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Zəng etmək mümkün deyil. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> fövqəladə nömrə deyil."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Zəng etmək mümkün deyil. Fövqəladə nömrəni yığ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Təcili zəng əlçatan deyil"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Yalnız cihazın sahibi PIN/PUK kodlarını daxil edə bilər."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Təcili yardım"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Yanğın"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real zaman mətn (RTT) zəngi"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Səsli zəng daxilində mesajlaşmaya icazə verin"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT kar və ya eşitmə problemi olan, danışma qüsuru olan və ya səsdən daha çoxuna ehtiyac duyan şəxslərə dəstək olur.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ətraflı məlumat&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - RTT zəngləri mesaj transkripsiyası kimi yadda saxlanılır\n &lt;br&gt; - RTT video zənglər üçün əlçatan deyil"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Qeyd: Rominq zamanı RTT əlçatan olmur"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletayp Deaktivdir"</item>
     <item msgid="1449091874731375214">"Tam funksiyası Teletayp"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Bəli"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Xeyr"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Kənarlaşdır"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon fövqəladə geriyə zəng rejimindədir"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> olana qədər"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon <xliff:g id="COUNT_1">%s</xliff:g> dəqiqəlik fövqəladə geri zəng rejimində olacaq.\nİndi çıxmaq istəyirsiniz?</item>
+      <item quantity="one">Telefon <xliff:g id="COUNT_0">%s</xliff:g> dəqiqəlik fövqəladə geri zəng rejimində olacaq.\nİndi çıxmaq istəyirsiniz?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Xidmət"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Quraşdırma"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ayarlanmayıb&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zəng bloklama deaktiv edildi"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Parolu dəyişin"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Zəng bloklama parolunu dəyişin"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Zəng bloklama parolunu dəyişmək mümkün deyil."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Zəng bloklama parolunu dəyişmək mümkün deyil"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Parollar uyğun deyil"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 rəqəmli parol daxil edin"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parol dəyişdirildi"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Parolu təsdiqləyin"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Parol daxil edin"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Zəng bloklama ayarları"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Bütün zəng bloklama ayarları deaktiv edilsin?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Şəbəkə məşğuldur. Sonra yenidən zəng edin."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Şəbəkə bağlantısı zəifdir Yardım üçün mobil operator ilə əlaqə saxlayın."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call dəyişdirildi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> istifadə etmək üçün <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM nömrəsində mobil datanın aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> istifadə etmək üçün <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM nömrəsində mobil data və data rouminqin aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Rədd edin"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Data bağlantısını aktiv edin"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Data Bağlantısını Deaktiv Edin"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Təmin edildi"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video Zəng Təmin Edildi"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi Zəngi Təmin Edildi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/İştirak Təmin edildi"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Datası"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS-i aktiv edin"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Cihaz yenidən başladılsın?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bu ayarı dəyişmək üçün cihazı yenidən başlatmalısınız."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Yenidən başladın"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ləğv edin"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil Radio Enerjisi"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Ünvan Kitabçasına Baxın"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Yığım Nömrələrinə Baxın"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xidmət Yığım Nömrələrinə Baxın"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS Xidmət Statusu"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS Statusu"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Qeydiyyatlı"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Qeydiyyatsız"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Əlçatan"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Əlçatan deyil"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS Qeydiyyatı: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE ilə səsli: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi ilə səsli: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo Zəngi: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT İnterfeysi: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Xidmətdə"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Xidmətdən kənarda"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Yalnız təcili zənglər"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio Deaktivdir"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Rominq"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Rominq Deyil"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Fəaliyyətsiz"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zəng"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Zəng Davam Edir"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Bağlantı kəsildi"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Qoşulur"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Qoşuldu"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Dayandırılıb"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Naməlum"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bayt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Cari alt Id:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Defolt data SIM üçün alt Id:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL Buraxılışı (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Buraxılışı (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Xananın məkan məlumatı (ləğv edilib):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Fiziki Kanal Konfiqurasiyası:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobil məlumatın yenilənmə göstəricisi:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Operatorun bütün mobil ölçü məlumatı:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data Xidməti:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Rominq:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Zəng Yönləndirməsi:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Yükləmədən bəri sıfırlanan PPP sayı:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Cari Şəbəkə:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data qəbul edildi:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Səs Xidməti:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Siqnal gücü:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Səsli zəng statusu:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data göndərildi:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesaj Gözlənilir:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefon nömrəsi:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radio Diapazon Seçin"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Səs Şəbəkə Növü:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data Şəbəkə Növü:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefon indeksini seçin"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Tərcih Olunmuş Şəbəkə Növü Seçin:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP Müştəri Testi:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping Testi Çalışdırın"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Güncəlləyin"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Yeniləyin"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS Yoxlanışına keçin"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Orijinal Avadanlıq İstehsalçısının Məlumatı/Ayarlar"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radio Diapazon Rejimini Quraşdırın"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Diapazon Siyahısı Yüklənir…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ayarlayın"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Alınmadı"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uğurlu"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Planşet məlumatı"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon məlumatı"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator Təchizat Məlumatı"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operator Təchizatlanmasını aktiv edin"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/config.xml b/res/values-b+sr+Latn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-b+sr+Latn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 43d050c..be096d3 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatan broj"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonska govornica"</string>
     <string name="onHold" msgid="6132725550015899006">"Na čekanju"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> – poruka"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Poruka mobilnog operatera"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Pokrenut je MMI kôd."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kôd je pokrenut…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kôd je otkazan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Željeni režim mreže: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Željeni režim mreže: samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Željeni režim mreže: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Željeni režim mreže: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Željeni režim mreže: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Željeni režim mreže: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Željeni režim mreže: Globalno"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Željeni režim mreže: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Željeni mrežni režim: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Željeni režim mreže: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Željeni režim mreže: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Željeni režim mreže: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Željeni režim mreže: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Željeni režim mreže: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Željeni režim mreže: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Željeni režim mreže: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Željeni režim mreže: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Željeni režim mreže: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Željeni režim mreže: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Željeni režim mreže: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Željeni režim mreže: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Željeni režim mreže: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Željeni režim mreže: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Pozivanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mreža"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Poboljšani 4G LTE režim"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Više kategorija"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Omogućeno je više kategorija"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Onemogućeno je više kategorija"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (preporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (preporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (preporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje broja za fiksno biranje…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Izbrisan je broj za fiksno biranje."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Broj za fiksno biranje nije ažuriran jer ste uneli netačan PIN kôd."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Broj za fiksno biranje nije ažuriran jer ima više od 20 cifara."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Broj za fiksno biranje nije ažuriran jer ima previše cifara (više od <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>)."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nije ažuriran. PIN2 je netačan ili je broj telefona odbačen."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Radnja sa brojem za fiksno biranje nije uspela."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čita se sa SIM kartice…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Poziv nije uspeo. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Poziv nije uspeo. Pozovite broj za hitne slučajeve."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Upućivanje hitnih poziva nije dostupno"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo vlasnik uređaja može da unosi PIN/PUK kodove."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Hitna pomoć"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vatrogasci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Poziv sa tekstom u realnom vremenu (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Dozvolite razmenu poruka u audio pozivu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Tekst u realnom vremenu (RTT) pomaže pozivaocima koji su gluvi, slabo čuju, imaju teškoće u govoru ili kojima je potrebno nešto više od glasa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saznajte više&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT pozivi se čuvaju kao transkript poruke\n       &lt;br&gt; – RTT nije dostupan za video pozive"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Napomena: Tekst u realnom vremenu nije dostupan u romingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY je isključen"</item>
     <item msgid="1449091874731375214">"Kompletni TTY"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Odbaci"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je u režimu za hitan povratni poziv"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon će <xliff:g id="COUNT_1">%s</xliff:g> minut biti u režimu za hitan povratni poziv.\nŽelite sad da izađete iz njega?</item>
+      <item quantity="few">Telefon će <xliff:g id="COUNT_1">%s</xliff:g> minuta biti u režimu za hitan povratni poziv.\nŽelite sad da izađete iz njega?</item>
+      <item quantity="other">Telefon će <xliff:g id="COUNT_1">%s</xliff:g> minuta biti u režimu za hitan povratni poziv.\nŽelite sad da izađete iz njega?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Usluga"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Podešavanje"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nije podešeno&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Ograničavanje poziva je deaktivirano"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Promenite lozinku"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Promenite lozinku za ograničavanje poziva"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ne možete da promenite lozinku za ograničavanje poziva."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ne možete da promenite lozinku za ograničavanje poziva"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Lozinke se ne podudaraju"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Unesite lozinku od 4 broja"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Lozinka je promenjena"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrdite lozinku"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Unesite lozinku"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Podešavanja ograničavanja poziva"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Želite li da deaktivirate sva podešavanja ograničavanja poziva?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mreža je zauzeta. Probajte ponovo da uputite poziv kasnije."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mreža je zagušena. Zatražite pomoć od mobilnog operatera."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Poziv je preusmeren."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Da biste koristili <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, uverite se da su za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni mobilni podaci. To možete da promenite u podešavanjima mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Da biste koristili <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, uverite se da su za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni mobilni podaci i prenos podataka u romingu. To možete da promenite u podešavanjima mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Odbaci"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogući vezu za prenos podataka"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogući vezu za prenos podataka"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Dodeljeno za VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video pozivi su dodeljeni"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Pozivanje preko Wi-Fi-ja je dodeljeno"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Dodeljen je EAB/prisustvo"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Podaci CBRS-a"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogući DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Želite da restartujete uređaj?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Treba da restartujte uređaj da biste promenili ovo podešavanje."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartuj"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Otkaži"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Napajanje za radio na mobilnim uređajima"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži adresar SIM-a"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status usluge IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS-a"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrovano je"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nije registrovano"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostupno"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nije dostupno"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registracija IMS-a: <xliff:g id="STATUS">%1$s</xliff:g>\nGlas preko LTE-a: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGlas preko Wi-Fi-ja: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo poziv: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfejs: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Radi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne radi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo hitni pozivi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio je isključen"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nije u romingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Neaktivno"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvoni"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Poziv je u toku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Veza je prekinuta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Povezuje se"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano je"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendovano"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nepoznato"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pak."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajt(ov)a"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"ID klijenta"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktuelni subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID podrazumevanog SIM-a za podatke:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusni opseg (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusni opseg (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji predajnika (zastarelo):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Učestalost osvežavanja informacija o predajniku:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije o merenju za predajnik:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Usluga prenosa podataka:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmeravanje poziva:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Broj PPP resetovanja od uključivanja:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuelna mreža:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Primljeni podaci:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Glasovna usluga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jačina signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status audio poziva:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Poslati podaci:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Poruka na čekanju:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Broj telefona:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Izaberite radijski opseg"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tip glasovne mreže:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tip mreže za prenos podataka:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Izaberite indeks telefona"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Podesite željeni tip mreže:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"IPv4 imena hosta za pingovanje (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"IPv6 imena hosta za pingovanje (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test za HTTP klijenta:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pokreni test pingovanja"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ažuriraj"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osveži"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Uključi/isključi proveru DNS-a"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacije/podešavanja specifična za proizvođača originalne opreme"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Podesite režim radijskog opsega"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Učitava se lista opsega…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Podesi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nije uspelo"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspelo je"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacije o dodeli mobilnog operatera"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Pokretanje dodele mobilnog operatera"</string>
 </resources>
diff --git a/res/values-be/config.xml b/res/values-be/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-be/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index c756cb7..69b1f84 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Прыватны нумар"</string>
     <string name="payphone" msgid="7936735771836716941">"Таксафон"</string>
     <string name="onHold" msgid="6132725550015899006">"У чаканні"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Паведамленне ад аператара \"<xliff:g id="MMICARRIER">%s</xliff:g>\""</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Паведамленне аператара"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Пачалося выкананне MMI кода"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Запускаецца USSD-код..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Код MMI адменены"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Толькі NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Пераважны рэжым сеткі: пераважна WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Пераважны рэжым сеткі: толькі GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Пераважная сетка: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Пераважная сетка: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Пераважная сетка: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Прыярытэтны рэжым сеткі: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Пераважная сетка: глабальная"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Пераважная сетка: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Пажаданы рэжым сеткі: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Прыярытэтны рэжым сеткі: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Прыярытэтны рэжым сеткі: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Прыярытэтны рэжым сеткі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Прыярытэтны рэжым сеткі: толькі NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Прыярытэтны рэжым сеткі: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Прыярытэтны рэжым сеткі: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Прыярытэтны рэжым сеткі: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Прыярытэтны рэжым сеткі: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Прыярытэтны рэжым сеткі: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Прыярытэтны рэжым сеткі: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Выклік"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Сетка"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Удасканалены рэжым 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мульці-катэгорыя"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мульці-катэгорыя ўключана"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мульці-катэгорыя адключаная"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (рэкамендуецца)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (рэкамендуецца)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (рэкамендуецца)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глабальныя"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Выдаленне дазволенага нумару..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Дазволены нумар выдалены."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN не быў абноўлены, таму што вы набралі няправільны PIN-код."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Фіксаваны нумар не быў абноўлены, бо ён не можа змяшчаць больш за 20 знакаў."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Фіксаваны нумар не абноўлены, бо не можа складацца больш чым з <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> лічбаў."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Cпiс дазволеных нумароў не адноўлены. PIN2 ўведзены няправiльна, або нумар быў адхiлены."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Аперацыя ў закрытай абаненцкай групе не ўдалася."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Чытанне з SIM-карты..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Выклік немагчымы. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не з\'яўляецца нумарам экстраннай службы."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Выклік немагчымы. Набраць нумар экстраннай службы."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Экстранныя выклікі недаступныя"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Толькі ўладальнік прылады можа ўводзіць PIN-код ці PUK-код."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Паліцыя"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Хуткая дапамога"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пажарная служба"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Выклік з тэкстам у рэальным часе (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дазволіць абмен паведамленнямі ў галасавых выкліках"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функцыя RTT дапамагае абанентам з парушэннямі слыху і маўлення.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Даведацца больш&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-выклікі захоўваюцца ў выглядзе расшыфроўкі паведамленняў\n       &lt;br&gt; - Функцыя RTT недаступная для відэавыклікаў"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Заўвага. Функцыя RTT недаступная ў роўмінгу."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Тэлетайп выключаны"</item>
     <item msgid="1449091874731375214">"Поўнафункцыянальны тэлетайп"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Так"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Адхіліць"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Тэлефон знаходзіцца ў рэжыме экстранных зваротных выклікаў"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Да <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліну.\nВыйсці зараз?</item>
+      <item quantity="few">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліны.\nВыйсці зараз?</item>
+      <item quantity="many">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвілін.\nВыйсці зараз?</item>
+      <item quantity="other">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліны.\nВыйсці зараз?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Сэрвіс"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Наладка"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не зададзены&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Адключана забарона выкліку"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Змяніць пароль"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Змяніць пароль забароны выкліку"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Нельга змяніць пароль забароны выкліку."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не ўдаецца змяніць пароль забароны выкліку"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Паролі не супадаюць"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Увядзіце пароль з 4 лічбаў"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Пароль зменены"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Пацвердзіце пароль"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Увядзіце пароль"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Налады забароны выкліку"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Адключыць усе налады забароны выкліку?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Сетка занятая. Паўтарыце выклік пазней."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Сетка перагружаная. Звярніцеся да свайго мабільнага аператара."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Выклік адхілены."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Уключыце перадачу мабільных даных на SIM-карце <xliff:g id="SIM_NUMBER">%2$d</xliff:g> для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Уключыце перадачу мабільных даных і інтэрнэт-роўмінг на SIM-карце <xliff:g id="SIM_NUMBER">%2$d</xliff:g> для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Адхіліць"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Уключыць перадачу даных"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Выключыць перадачу даных"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE уключана"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Відэавыклікі ўключаны"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-тэлефанія ўключана"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence уключана"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Даныя CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Уключыць DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Перазапусціць прыладу?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Каб змяніць гэту наладу, трэба перазапусціць прыладу."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перазапусціць"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Скасаваць"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Магутнасць радыёсігналу"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Праглядзець адрасную кнігу на SIM-карце"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прагляд фіксаваных нумароў"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Паглядзець сэрвісныя нумары"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Стан сэрвісу IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Стан IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Зарэгістравана"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не зарэгістравана"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Даступна"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недаступна"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Рэгістрацыя IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nГаласавая сувязь па LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nГаласавая сувязь па Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВідэавыклікі: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nІнтэрфейс UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Працуе"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не працуе"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Толькі экстранныя выклікі"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Перадатчык выключаны"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роўмінг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Не ў роўмінгу"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"У рэжыме чакання"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ідзе празвон"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Ідзе выклік"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Адключана"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ідзе падключэнне"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Падключана"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Прыпынена"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Невядома"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пак."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"Б"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"дБм"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Бягучы SubID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID стандартнай SIM-карты для перадачы даных:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Прапускная здольнасць канала спампоўвання (кбіт/с):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Прапускная здольнасць канала запампоўвання (кбіт/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Інфармацыя пра месцазнаходжанне сотавай ячэйкі (састарэлая):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Канфігурацыя фізічнага канала LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частата абнаўлення даных сотавай сеткі:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Усе паказчыкі сотавай сеткі:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Сэрвіс перадачы даных:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роўмінг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Перанакіраванне выклікаў:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Колькасць скідаў PPP пасля загрузкі:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Бягучая сетка:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Атрыманыя даныя:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Сэрвіс галасавой сувязі:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Магутнасць сігналу:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Стан галасавых выклікаў:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Адпраўленыя даныя:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Непрачытанае паведамленне:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Нумар тэлефона:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Выбраць радыёдыяпазон"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тып галасавой сеткі:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тып сеткі перадачы даных:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Выбраць тэлефонны код"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Задаць прыярытэтны тып сеткі:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Каманда ping для хоста www.google.com (IPv4):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Каманда ping для хоста www.google.com (IPv6):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тэст HTTP-кліента:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Выканаць праверку ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Абнавіць"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Абнавіць"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Уключыць/выключыць праверку DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Інфармацыя/налады пастаўшчыка"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Задаць рэжым радыёдыяпазону"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Загружаецца спіс дыяпазонаў…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Задаць"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Няўдала"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Паспяхова"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Звесткі аб планшэце"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Звесткі аб тэлефоне"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Звесткі аб аператары"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запусціць сінхранізацыю з аператарам"</string>
 </resources>
diff --git a/res/values-bg/config.xml b/res/values-bg/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-bg/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index b29f7fc..3dabad0 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Частен номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Обществен телефон"</string>
     <string name="onHold" msgid="6132725550015899006">"Задържане на обаждането"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> съобщение"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Съобщение от оператора"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI кодът бе стартиран"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD кодът се изпълнява…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI кодът бе анулиран"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Само NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Предпочитан режим на мрежата: Предпочита се WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Предпочитан режим на мрежата: Само GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Предпочитан режим на мрежата: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Предпочитан режим на мрежата: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Предпочитан режим на мрежата: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Предпочитан режим на мрежата: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Предпочитан режим на мрежата: Глобален"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Предпочитан режим на мрежата: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Предпочитан мрежов режим: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Предпочитан режим на мрежата: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Предпочитан режим на мрежата: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Предпочитан режим на мрежата: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Предпочитан режим на мрежата: само NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Предпочитан режим на мрежата: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Предпочитан режим на мрежата: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Предпочитан режим на мрежата: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Предпочитан режим на мрежата: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Предпочитан режим на мрежата: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Предпочитан режим на мрежата: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Извършва се обаждане"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мрежа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Подобрен режим с 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мултикатегория"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мултикатегорията е активирана"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мултикатегорията е деактивирана"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (препоръчително)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (препоръчително)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (препоръчително)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобална"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Фиксираните номера за набиране се изтриват…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Фиксираните номера за набиране са изтрити."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN не бе актуализирано, защото сте въвели неправилен ПИН."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN не бе актуализиран, защото номерът надвишава 20 цифри."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN не бе актуализиран, защото номерът надвишава <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифри."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN не е актуализирано. PIN2 бе неправилен или телефонният номер бе отхвърлен."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Операцията с фиксираните номера за набиране (FDN) не бе успешна."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Четене на данни от SIM картата…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Не може да се извърши обаждане. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е номер за спешни случаи."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Не може да се извърши обаждане. Наберете номер за спешни случаи."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Не се предлагат спешни обаждания"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Само собственикът на устройството може да въвежда ПИН/PUK кодове"</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Линейка"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожар"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Обаждане с текстово съобщение в реално време (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Позволяване на съобщения в рамките на гласово обаждане"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT подпомага обаждащи се, които са глухи, имат затруднения със слуха, говорно увреждане или се нуждаят от повече от само глас.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Научете повече&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT обажданията се запазват като препис на съобщение.\n       &lt;br&gt; – RTT не е налице за видеообаждания."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Забележка: ТСРВ не е налице при роуминг"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY е изкл."</item>
     <item msgid="1449091874731375214">"Пълен TTY режим"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Отхвърляне"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефонът е в режим на спешно обратно обаждане"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Телефонът ще бъде в режим на спешно обратно обаждане в продължение на <xliff:g id="COUNT_1">%s</xliff:g> минути.\nИскате ли да излезете сега?</item>
+      <item quantity="one">Телефонът ще бъде в режим на спешно обратно обаждане в продължение на <xliff:g id="COUNT_0">%s</xliff:g> минута.\nИскате ли да излезете сега?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Услуга"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Настройка"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не е зададено&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Забраната за обаждания е деактивирана"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Промяна на паролата"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Промяна на паролата за забрана за обаждания"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Паролата за забрана за обаждания не може да се промени."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Паролата за забрана за обаждания не може да се промени"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Паролите не съвпадат"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Въведете парола с 4 цифри"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Паролата бе променена"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Потвърждаване на паролата"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Въведете парола"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Настройки за забрана на обажданията"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Да се деактивират ли всички настройки за забрана за обаждания?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мрежата е заета. Моля, опитайте да се обадите отново по-късно."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мрежата е претоварена. Свържете се с мобилния си оператор за съдействие."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Обаждането е отклонено."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"За да използвате <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, мобилните данни за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"За да използвате <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, мобилните данни и роумингът на данни за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Отхвърляне"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Активиране на връзката за данни"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Деактивиране на връзката за данни"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Обезпечен за VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видеообажданията са обезпечени"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Обажданията през Wi-Fi са обезпечени"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Обезпечено за EAB/присъствие"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Данни чрез CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Активиране на DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Да се рестартира ли устройството?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"За да промените настройката, трябва да рестартирате устройството си."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартиране"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Отказ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мощност на мобилното радио"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Преглед на указателя на SIM картата"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Преглед на номера за фиксирано набиране"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Преглед на номера за набиране на услуги"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Състояние на услугата IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Състояние на услугата IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Регистриран"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не е регистриран"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Налице"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Не е налице"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Регистрация за услугата IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE телефония: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWi-Fi телефония: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидеообаждания: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nИнтерфейс на UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Работи"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не работи"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Само спешни обаждания"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радиото е изключено"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Не е в роуминг"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Звъни се"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Извършва се обаждане"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Няма връзка"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Установява се връзка"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Установена е връзка"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Спрени"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Неизвестно"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пакета"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байта"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"Идентификация на обаждането"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Настоящ идентификационен подномер:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Идентификационен подномер на SIM картата за данни по подразбиране:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускателна способност при изтегляне (кб/сек):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускателна способност при качване (кб/сек):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информация за местоположението на клетката (оттеглено):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурация на физическия канал на LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Честота на опресняване на информацията за клетките:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Цялата измервателна информация за клетките:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Услуга за данни:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Пренасочване на обаждането:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Брой нулирания на PPP след стартиране:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Текуща мрежа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Получени данни:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Гласова услуга:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Сила на сигнала:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Състояние на гласовото обаждане:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Изпратени данни:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Изчакващо съобщение:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефонен номер:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Избиране на радиодиапазон"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип на гласовата мрежа:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип на мрежата за данни:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Избиране на индекс за телефон"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Задаване на предпочитан тип мрежа:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Име на хост за позив (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Име на хост за позив (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тест на HTTP клиента:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Изпълняване на тест „ping“"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMS център:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Актуализиране"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Опресняване"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Превключване на проверката на DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информация/настройки, специфични за ОЕМ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Задаване на режима за радиодиапазона"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Списъкът с диапазони се зарежда…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Задаване"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Неуспешно"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успешно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информация за таблета"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информация за телефона"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Информация за обезпечаването от оператора"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Задействане на обезпечаването от оператора"</string>
 </resources>
diff --git a/res/values-bn/config.xml b/res/values-bn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-bn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 40fab58..0fb9e35 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ব্যক্তিগত নম্বর"</string>
     <string name="payphone" msgid="7936735771836716941">"পে ফোন"</string>
     <string name="onHold" msgid="6132725550015899006">"সাময়িকভাবে স্থগিত রাখা হয়েছে"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> মেসেজ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"পরিষেবা প্রদানকারীর মেসেজ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI কোড শুরু করা হয়েছে"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD কোড চলছে…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI কোড বাতিল করা হয়েছে"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"শুধুমাত্র NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"পছন্দের নেটওয়ার্ক মোড: WCDMA পছন্দসই"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"পছন্দের নেটওয়ার্ক মোড: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"পছন্দের নেটওয়ার্ক মোড: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"পছন্দের নেটওয়ার্ক মোড: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"পছন্দের নেটওয়ার্ক মোড: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"পছন্দের নেটওয়ার্ক মোড: গ্লোবাল"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"পছন্দের নেটওয়ার্ক মোড: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"পছন্দের নেটওয়ার্ক মোড: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"পছন্দের নেটওয়ার্ক মোড: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"পছন্দের নেটওয়ার্ক মোড: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"পছন্দের নেটওয়ার্ক মোড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"পছন্দের নেটওয়ার্ক মোড: শুধুমাত্র NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"পছন্দের নেটওয়ার্ক মোড: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"পছন্দের নেটওয়ার্ক মোড: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"কলিং"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"নেটওয়ার্ক"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"উন্নত 4G LTE মোড"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"একাধিক বিভাগ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"একাধিক বিভাগ সক্ষম করা হয়েছে"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"একাধিক বিভাগ অক্ষম করা হয়েছে"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (সাজেস্ট করা হয়েছে)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (প্রস্তাবিত)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (প্রস্তাবিত)"</string>
     <string name="network_global" msgid="3289646154407617631">"বিশ্বব্যাপী"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ডায়াল করার জন্য স্থির নম্বর মোছা হচ্ছে..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"স্থায়ী ডায়ালের নম্বর মুছে ফেলা হয়েছে৷"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"আপনি একটি ভুল পিন টাইপ করায় FDN আপডেট করা হয়নি৷"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"নম্বরটিতে ২০টির বেশি সংখ্যা আছে, তাই FDN আপডেট করা হয়নি।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>টি সংখ্যার সীমা ছাড়িয়ে যাওয়ায় তাকে আপডেট করা যায়নি।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN আপডেট করা হয়নি৷ PIN2 ভুল ছিল, বা ফোন নম্বর বাতিল করা হয়েছে৷"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN অপারেশন ব্যর্থ হয়েছে৷"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"সিম কার্ড থেকে পড়া হচ্ছে…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"কল করা যাবে না৷ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> কোনো জরুরী নম্বর নয়৷"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"কল করা যাবে না৷ কোনো জরুরী নম্বর ডায়াল করুন৷"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"জরুরি কল করা যাবে না"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"শুধুমাত্র এই ডিভাইসের মালিক পিন/PUK কোড লিখতে পারবেন।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"পুলিশ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"অ্যাম্বুলেন্স"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"আগুন"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"রিয়েল-টাইম টেক্সট (RTT) কল"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ভয়েস কলে মেসেজ পাঠানোর অনুমতি দিন"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"যে কলাররা বধির, কানে কম শোনেন, যাদের কথা বলতে অসুবিধা হয় অথবা যারা কণ্ঠস্বরের সাথে অন্য কোনও উপায়ে নিজেদের প্রকাশ করেন, RTT বৈশিষ্ট্যটি তাদের সাহায্য করে।&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;আরও জানুন&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT কলগুলি মেসেজ ট্রান্সক্রিপ্ট হিসেবে সেভ করে রাখা হয়\n       &lt;br&gt; - ভিডিও কলে RTT বৈশিষ্ট্য ব্যবহার করা যায় না"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"মনে রাখবেন: রোমিংয়ে থাকাকালীন RTT কাজ করে না"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY বন্ধ"</item>
     <item msgid="1449091874731375214">"TTY পূর্ণ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"হ্যাঁ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"না"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"খারিজ করুন"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ফোনটি জরুরি কলব্যাক মোডে থাকবে"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> পর্যন্ত"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য ফোনটি জরুরি কলব্যাক মোডে থাকবে।\nআপনি কি এখন বেরিয়ে আসতে চান?</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য ফোনটি জরুরি কলব্যাক মোডে থাকবে।\nআপনি কি এখন বেরিয়ে আসতে চান?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"পরিষেবা"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"সেটআপ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;সেট করা নেই&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"কল নিষিদ্ধ করার বৈশিষ্ট্যটি নিষ্ক্রিয় করা হয়েছে"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"পাসওয়ার্ড পরিবর্তন করুন"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"কল নিষিদ্ধ করার পাসওয়ার্ড পরিবর্তন করুন"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"কল নিষিদ্ধ করার পাসওয়ার্ড পরিবর্তন করা যাবে না।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"কল নিষিদ্ধ করার পাসওয়ার্ড পরিবর্তন করা যাবে না"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"পাসওয়ার্ড মিলছে না"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"৪টি সংখ্যার পাসওয়ার্ড লিখুন"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"পাসওয়ার্ড পরিবর্তন হয়েছে"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"পাসওয়ার্ড নিশ্চিত করুন"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"পাসওয়ার্ড লিখুন"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"কল নিষিদ্ধ করার সেটিংস"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"কল নিষিদ্ধ করার সমস্ত সেটিংস নিষ্ক্রিয় করবেন?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"নেটওয়ার্ক ব্যস্ত আছে। পরে আবার কল করার চেষ্টা করুন।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"নেটওয়ার্ক ব্যস্ত আছে। সাহায্যের জন্য আপনার মোবাইল অপারেটরের সাথে যোগাযোগ করুন।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"কল ডিফ্লেক্ট করা হয়েছে।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ব্যবহার করতে হলে, <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-এ মোবাইল ডেটা চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যবহার করতে হলে, <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-এ মোবাইল ডেটা এবং ডেটা রোমিং চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"খারিজ করুন"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ডেটা কানেকশন সক্রিয় আছে"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ডেটা কানেকশন নিষ্ক্রিয় করুন"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE প্রস্তুত"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ভিডিও কলিংয়ের ব্যবস্থা আছে"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ওয়াই ফাই কলিংয়ের ব্যবস্থা আছে"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/উপস্থিতির বন্দোবস্ত"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ডেটা"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS চালু করুন"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"রিস্টার্ট করবেন?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"এই সেটিং পরিবর্তন করতে আপনার ডিভাইস রিস্টার্ট করতে হবে।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"রিস্টার্ট করুন"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"বাদ দিন"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"মোবাইল রেডিওর গুণমান"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"সিম অ্যাড্রেস বুক দেখুন"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"স্থায়ী ডায়াল নম্বরগুলি দেখুন"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সার্ভিস ডায়াল নম্বরগুলি দেখুন"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS পরিষেবার স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS স্থিতি"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"রেজিস্টার করা হয়েছে"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"রেজিস্টার করা নয়"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"উপলভ্য"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"উপলভ্য নয়"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS নিবন্ধীকরণ: <xliff:g id="STATUS">%1$s</xliff:g>\nভয়েস ওভার LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nভয়েস ওভার ওয়াই ফাই: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nভিডিও কলিং: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ইন্টারফেস: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"পরিষেবা চালু আছে"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"পরিষেবার বাইরে"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"শুধুমাত্র জরুরি কল"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"রেডিও বন্ধ রয়েছে"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"রোমিং"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"রোমিংয়ে নেই"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"নিষ্ক্রিয়"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"রিং হচ্ছে"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"কল করা হচ্ছে"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ডিসকানেক্ট করা আছে"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"কানেক্ট করা হচ্ছে"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"কানেক্ট করা হয়েছে"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"সাসপেন্ড করা হয়েছে"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"অজানা"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"বাইট"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"বর্তমান subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ডিফল্ট ডেটা সিমের SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"ডিএল ব্যান্ডউইথ (কেবিপিএস):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"ইউএল ব্যান্ডউইথ (কেবিপিএস):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"সেল লোকেশন তথ্য (বন্ধ করা হয়েছে):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ফিজিক্যাল চ্যানেল কনফিগারেশন:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"সেল তথ্যে রিফ্রেশ রেট:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"সমস্ত সেল পরিমাপ তথ্য:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ডেটা পরিষেবা:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"রোমিং:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"কল রিডাইরেক্ট"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"বুট করার পর থেকে এই পরিমাণ PPP পুনরায় সেট করা হয়েছে:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"বর্তমান নেটওয়ার্ক:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ডেটা পাওয়া গেছে"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ভয়েস পরিষেবা:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"সিগন্যাল ক্ষমতা:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ভয়েস কলের স্থিতি:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ডেটা পাঠানো হয়েছে:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"মেসেজের জন্য অপেক্ষা করা হচ্ছে:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ফোন নম্বর:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"রেডিও ব্যান্ড বেছে নিন"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ভয়েস নেটওয়ার্কের প্রকার:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ডেটা নেটওয়ার্কের প্রকার:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ফোনের ইন্ডেক্স বেছে নিন"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"পছন্দের নেটওয়ার্ক সেট করুন:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"হোস্টনামে(www.google.com) IPv4 পিং করুন:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"হোস্টনামে(www.google.com) IPv6 পিং করুন:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ক্লায়েন্ট পরীক্ষা:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"পিং পরীক্ষা চালান"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"আপডেট করুন"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"রিফ্রেশ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS চেক টগল করুন"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-নির্দিষ্ট তথ্য/সেটিংস"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"রেডিও ব্যান্ড মোড সেট করুন"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ব্যান্ড তালিকা লোড হচ্ছে..."</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"সেট করুন"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"সফল হয়নি"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"সফল হয়েছে"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ট্যাবলেটের তথ্য"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ফোনের তথ্য"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"পরিষেবা প্রদানকারীর ব্যবস্থামূলক তথ্য"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ট্রিগার পরিষেবা প্রদানকারীর ব্যবস্থা"</string>
 </resources>
diff --git a/res/values-bs/config.xml b/res/values-bs/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-bs/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7ccfaa9..fbd17bd 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatni broj"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonska govornica"</string>
     <string name="onHold" msgid="6132725550015899006">"Na čekanju"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Poruka mobilnog operatera <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Poruka mobilnog operatera"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kȏd je pokrenut"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kȏd je pokrenut…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kȏd je otkazan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferirani način rada mreže: preferiraj WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferirani način rada mreže: samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferirani način rada mreže: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferirani način rada mreže: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferirani način rada mreže: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferirani način rada mreže: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferirani način rada mreže: globalno"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preporučeni način rada mreže: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferirani način rada mreže: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferirani način rada mreže: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferirani način rada mreže: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferirani način rada mreže: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferirani način rada mreže: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferirani način rada mreže: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferirani način rada mreže: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferirani način rada mreže: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferirani način rada mreže: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferirani način rada mreže: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferirani način rada mreže: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferirani način rada mreže: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferirani način rada mreže: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferirani način rada mreže: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferirani način rada mreže: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Pozivanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mreža"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Poboljšani 4G LTE način rada"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Više kategorija"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Više kategorija je omogućeno"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Više kategorija je onemogućeno"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (preporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (preporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (preporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje broja fiksnog biranja u toku…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Broj fiksnog biranja je izbrisan."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN nije ažuriran jer ste upisali netačan PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN nije ažuriran jer broj ima više od 20 cifara."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN nije ažuriran jer broj ima više od <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifara."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nije ažuriran. PIN2 je netačan ili je broj telefona odbijen."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operacija nije uspjela."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čitanje sa SIM kartice u toku…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nije moguće pozvati. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nije moguće pozvati. Birajte broj za hitne slučajeve."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hitni pozivi nisu dostupni"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo vlasnik uređaja može unositi PIN/PUK kodove."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Vozilo hitne pomoći"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vatrogasci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Pozivanje sa slanjem SMS-ova u stvarnom vremenu (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Dozvolite razmjenu poruka tokom glasovnog poziva"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT pomaže pozivaocima koji su gluhi, imaju probleme sa sluhom ili govorom te onima kojima treba više od samog glasa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saznajte više&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT pozivi se pohranjuju kao transkripti poruka\n       &lt;br&gt; - RTT nije dostupan za video pozive"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Napomena: RTT nije dostupan u romingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY je isključen"</item>
     <item msgid="1449091874731375214">"TTY je pun"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Odbaci"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je u načinu rada za hitni povratni poziv"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon će biti u načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minutu.\nŽelite li izaći iz ovog načina rada sada?</item>
+      <item quantity="few">Telefon će biti u načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minute.\nŽelite li izaći iz ovog načina rada sada?</item>
+      <item quantity="other">Telefon će biti u načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minuta.\nŽelite li izaći iz ovog načina rada sada?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Usluga"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Postavljanje"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nije postavljeno&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zabrana poziva je deaktivirana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Promijenite lozinku"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Promijenite lozinku za zabranu poziva"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nije moguće promijeniti lozinku za zabranu poziva."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nije moguće promijeniti lozinku za zabranu poziva"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Lozinke se ne podudaraju"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Unesite lozinku koja sadrži 4 broja"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Lozinka je promijenjena"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrdite lozinku"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Unesite lozinku"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Postavke zabrane poziva"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktivirati sve postavke zabrane poziva?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mreža je zauzeta. Pokušajte ponovo pozvati kasnije."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mreža je preopterećena. Kontaktirajte svog mobilnog operatera za pomoć."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Poziv je preusmjeren."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite je li za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključen prijenos podataka na mobilnoj mreži. Ovo možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni prijenos podataka na mobilnoj mreži i roming podataka. Ovo možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Odbaci"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogućite vezu za prijenos podataka"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogući vezu za prijenos podataka"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE omogućen"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video poziv obezbijeđen"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"WiFi poziv obezbijeđen"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Omogućeno prisustvo"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs podaci"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogući DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Ponovo pokrenuti uređaj?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Da promijenite ovu postavku, trebate ponovo pokrenuti uređaj."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Ponovo pokreni"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Otkaži"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Snaga mobilnog radija"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži SIM adresar"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve fiksnog biranja"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve biranja usluga"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status IMS usluge"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status za IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrirano"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nije registrirano"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostupno"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nedostupno"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registracija: <xliff:g id="STATUS">%1$s</xliff:g>\nGovor putem LTE mreže: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGovor putem WiFi mreže: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo pozivanje: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfejs: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Aktivno"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne radi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo hitni pozivi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio je isključen"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nije u romingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"U stanju mirovanja"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvoni"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Poziv je u toku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Veza je prekinuta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Povezivanje"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendirano"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nepoznato"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paketi"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajtova"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Trenutni pomoćni ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Pomoćni ID za zadani podatkovni SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusnost (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusnost (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji ćelije (zastarjele):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Interval osvježavanja informacija o ćeliji:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije o mjerenju ćelije:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Prijenos podataka:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmjeravanje poziva:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Broj vraćanja PPP na početne vrijednosti od posljednjeg pokretanja:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Trenutna mreža:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Primljeni podaci:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Govorna usluga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jačina signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status glasovnog poziva:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Poslani podaci:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Poruka na čekanju:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Broj telefona:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Odaberi radijski opseg"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Vrsta glasovne mreže:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Vrsta mreže za prijenos podataka:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Odaberi indeks telefona"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Postavi preferiranu vrstu mreže:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinguj ime računara (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinguj ime računara (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test HTTP klijenta:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pokreni ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ažuriraj"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osvježi"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Uključi/isključi provjeru DNS-a"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifične informacije/postavke"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Postavite način radijskog opsega"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Učitavanje liste opsega…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Postavi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neuspješno"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspješno"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacije o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operater koji pruža informacije"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktiviranje dodjele resursa operatera"</string>
 </resources>
diff --git a/res/values-ca/config.xml b/res/values-ca/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ca/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 39b2132..678cb92 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privat"</string>
     <string name="payphone" msgid="7936735771836716941">"Telèfon públic"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Missatge de: <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Missatge de l\'operador de telefonia mòbil"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Codi MMI iniciat"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"S\'està executant el codi USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Codi MMI cancel·lat"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Només NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode de xarxa preferent: WCDMA preferit"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode de xarxa preferent: només GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode de xarxa preferent: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode de xarxa preferent: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode de xarxa preferent: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode de xarxa preferent: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode de xarxa preferent: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode de xarxa preferent: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mode de xarxa preferent: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode de xarxa preferent: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode de xarxa preferent: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode de xarxa preferent: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode de xarxa preferent: només NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode de xarxa preferent: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode de xarxa preferit: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode de xarxa preferent: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode de xarxa preferent: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode de xarxa preferent: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode de xarxa preferent: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode de xarxa preferent: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode de xarxa preferent: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode de xarxa preferent: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode de xarxa preferent: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Trucades"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Xarxa"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode 4G LTE millorat"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multicategoria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multicategoria activada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multicategoria desactivada"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomanat)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (opció recomanada)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (opció recomanada)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"S\'està suprimint el número de marcatge fix..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Número de marcatge fix suprimit."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN no s\'ha actualitzat ja que has escrit un PIN incorrecte."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN no s\'ha actualitzat perquè el número conté més de 20 dígits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN no s\'ha actualitzat perquè el número supera els <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"El número FDN no s\'ha actualitzat. El PIN2 no és correcte o bé s\'ha rebutjat el número de telèfon."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Hi ha hagut un problema en l\'operació FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lectura de la targeta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"No es pot trucar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no és un número d\'emergència."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"No es pot trucar. Marca un número d\'emergència."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Les trucades d\'emergència no estan disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Només el propietari del dispositiu pot introduir codis PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulància"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bombers"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Trucada de text en temps real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permet l\'ús de missatges en una trucada de veu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La funció RTT ofereix assistència als usuaris que són sords, tenen problemes d\'audició o alteracions de la parla, o bé que necessiten un text a banda de la veu.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Més informació&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Les trucades RTT es desen en forma de transcripció.\n       &lt;br&gt; - Aquesta funció no està disponible per a videotrucades."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: la funció RTT no està disponible en itinerància"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivat"</item>
     <item msgid="1449091874731375214">"TTY complet"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignora"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"El telèfon està en el mode de devolució de trucada d\'emergència"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Fins a les <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">El telèfon estarà en el mode de devolució de trucada d\'emergència durant <xliff:g id="COUNT_1">%s</xliff:g> minuts.\nVols sortir-ne ara?</item>
+      <item quantity="one">El telèfon estarà en el mode de devolució de trucada d\'emergència durant <xliff:g id="COUNT_0">%s</xliff:g> minut.\nVols sortir-ne ara?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servei"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuració"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;No definit&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"S\'ha desactivat la restricció de trucades"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Canvia la contrasenya"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Canvia la contrasenya de restricció de trucades"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"No es pot canviar la contrasenya de restricció de trucades."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"No es pot canviar la contrasenya de restricció de trucades"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Les contrasenyes no coincideixen"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Escriu una contrasenya amb quatre números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"S\'ha canviat la contrasenya"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirma la contrasenya"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Escriu la contrasenya"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configuració de restricció de trucades"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vols desactivar la configuració de restricció de trucades?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La xarxa està ocupada. Torna a provar de trucar més tard."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La xarxa està congestionada. Contacta amb l\'operador mòbil per obtenir assistència."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"S\'ha derivat la trucada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Comprova que les dades mòbils estiguin activades a la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> per utilitzar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Pots canviar aquesta opció a la configuració de xarxa mòbil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Comprova que les dades mòbils i la itinerància de dades estiguin activades a la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> per utilitzar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Pots canviar aquestes opcions a la configuració de xarxa mòbil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignora"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activa la connexió de dades"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desactiva la connexió de dades"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Es proporciona VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Es proporcionen videotrucades"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Es proporcionen trucades per Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Es proporciona EAB/presència"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dades CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activa DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vols reiniciar el dispositiu?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Has de reiniciar el dispositiu per canviar aquesta opció."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reinicia"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel·la"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potència del senyal mòbil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Mostra la llibreta d\'adreces de la SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Mostra els números de marcatge fix"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Mostra els números de marcatge de serveis"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estat del servei de MI"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estat de MI"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Amb registre"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Sense registrar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"No disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registre de MI: <xliff:g id="STATUS">%1$s</xliff:g>\nVeu per LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVeu per Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideotrucades: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfície d\'UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servei"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Sense servei"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Només trucades d\'emergència"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Senyal mòbil desactivat"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinerància"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"No està en itinerància"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivitat"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"S\'està fent sonar"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Trucada en curs"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Sense connexió"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"S\'està connectant"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Amb connexió"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"En suspensió"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconegut"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquets"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Subidentificador actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Subidentificador de la SIM de dades predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Amplada de banda de baixada (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Amplada de banda de pujada (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informació d\'ubicació del mòbil (obsoleta):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuració del canal físic de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Freqüència d\'actualització de la informació del mòbil:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tota la informació de mesures del mòbil:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servei de dades:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinerància:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecció de trucada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Nombre de ppp restablerts des de l\'inici:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Xarxa actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dades rebudes:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servei de veu:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensitat del senyal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estat de la trucada de veu:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dades enviades:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Missatge en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de telèfon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selecciona la banda de senyal mòbil"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipus de xarxa de veu:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipus de xarxa de dades:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selecciona la guia telefònica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Defineix el tipus de xarxa preferit:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Fer ping a IPv4 de nom d\'amfitrió (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Fer ping a IPv6 de nom d\'amfitrió (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prova de client HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executa la prova de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualitza"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualitza"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activa o desactiva la comprovació de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informació/configuració específica d\'OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Configura el mode de banda de senyal mòbil"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"S\'està carregant la llista de bandes…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Defineix"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecte"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcte"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informació de la tauleta"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informació del telèfon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informació de serveis de l\'operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activa els serveis de l\'operador"</string>
 </resources>
diff --git a/res/values-cs/config.xml b/res/values-cs/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-cs/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 2645338..383cbdf 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Soukromé číslo"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonní automat"</string>
     <string name="onHold" msgid="6132725550015899006">"Přidržený hovor"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Zpráva od operátora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Zpráva od operátora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kód MMI byl spuštěn"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kód USSD je spuštěn..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kód MMI byl zrušen"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Pouze NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Upřednostňovaný režim sítě: preferováno WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Upřednostňovaný režim sítě: pouze GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferovaný režim sítě: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferovaný režim sítě: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferovaný režim sítě: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferovaný režim sítě: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferovaný režim sítě: Globální"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferovaný režim sítě: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferovaný režim sítě: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferovaný režim sítě: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferovaný režim sítě: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferovaný režim sítě: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferovaný režim sítě: pouze NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferovaný režim sítě: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferovaný režim sítě: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferovaný režim sítě: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferovaný režim sítě: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferovaný režim sítě: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferovaný režim sítě: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferovaný režim sítě: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferovaný režim sítě: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferovaný režim sítě: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferovaný režim sítě: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Volání"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Síť"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Vylepšený režim 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Více kategorií"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Více kategorií povoleno"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Více kategorií zakázáno"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (doporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (doporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (doporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globální"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Mazání povoleného telefonního čísla..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Povolené telefonní číslo bylo smazáno."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Funkce Povolená tel. čísla nebyla aktualizována, protože jste zadali chybný kód PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Funkce Povolená telefonní čísla nebyla aktualizována, protože číslo má více než 20 číslic."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Funkce Povolená telefonní čísla nebyla aktualizována, protože číslo má více než <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> číslic."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Povolená tel. čísla (FDN) nebyla aktualizována. Kód PIN2 byl nesprávný nebo bylo telefonní číslo odmítnuto."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operace s čísly FDN se nezdařila."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čtení ze SIM karty..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Hovor nelze uskutečnit. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> není číslo tísňového volání."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Hovor nelze uskutečnit. Vytočte číslo tísňového volání."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Tísňové volání není dostupné"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Zadávat kódy PIN a PUK může jen vlastník zařízení."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policie"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Záchranka"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Hasiči"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Hovor, během něhož můžete posílat zprávy (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Povolit posílání zpráv během hlasového hovoru"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Funkce SMS během hovoru (RTT) pomáhá volajícím, kteří neslyší, jsou nedoslýchaví, mají řečovou vadu, případně potřebují víc než jen hlas z jiného důvodu.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Další informace&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Text poslaný během hovoru se uloží jako přepis zpráv\n       &lt;br&gt; – Tato funkce není dostupná při videohovorech"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Použít: Funkce SMS během hovoru není dostupná při roamingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY vypnuto"</item>
     <item msgid="1449091874731375214">"Úplný režim TTY"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ano"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Zavřít"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je v režimu tísňového zpětného volání"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_1">%s</xliff:g> minut.\nChcete tento režim ukončit?</item>
+      <item quantity="many">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_1">%s</xliff:g> minuty.\nChcete tento režim ukončit?</item>
+      <item quantity="other">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_1">%s</xliff:g> minut.\nChcete tento režim ukončit?</item>
+      <item quantity="one">Telefon bude v režimu tísňového zpětného volání po dobu <xliff:g id="COUNT_0">%s</xliff:g> minuty.\nChcete tento režim ukončit?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Služba"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurace"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nenastaveno&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokování hovorů je vypnuté"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Změnit heslo"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Změnit heslo k blokování hovorů"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Heslo k blokování hovorů se nepodařilo změnit."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Heslo k blokování hovorů se nepodařilo změnit"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Hesla se neshodují"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Zadejte heslo se 4 číslicemi"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Heslo bylo změněno"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrďte heslo"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Zadejte heslo"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Nastavení blokování hovorů"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vypnout všechna nastavení blokování hovorů?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Síť je zaneprázdněná. Zkuste zavolat znovu později."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Síť je přehlcená. O pomoc požádejte svého mobilního operátora."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Hovor byl odkloněn."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data pro SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Můžete to změnit v nastavení mobilní sítě."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data a datový roaming pro SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Můžete to změnit v nastavení mobilní sítě."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Zavřít"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Povolit datové připojení"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Zakázat datové připojení"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Poskytnutí VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Zajištění videohovoru"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Zajištění volání přes Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Zajištění EAB/přítomnosti"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivovat DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restartovat zařízení?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ke změně nastavení je nutné restartovat zařízení."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartovat"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Zrušit"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Výkon mobilního přijímače"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobrazit adresář SIM karty"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobrazit povolená telefonní čísla"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobrazit čísla volání služeb"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stav služby IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stav IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrováno"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Bez registrace"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"K dispozici"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Není k dispozici"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registrace IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVolání přes LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVolání přes Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideohovory: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nRozhraní UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"V provozu"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Mimo provoz"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Pouze tísňová volání"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Bezdrátový modul je vypnut"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez roamingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Nečinné"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Vyzvánění"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Probíhá hovor"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Odpojeno"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Připojování"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Připojeno"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Pozastaveno"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Neznámé"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakety"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Stávající subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId výchozí datové SIM karty:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Rychlost stahování (kB/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Rychlost nahrávání (kB/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informace o poloze mobilní sítě (podpora ukončena):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurace fyzického kanálu LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Interval obnovení informací o mobilní síti:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Všechny údaje o měření mobilní sítě:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datová služba:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Přesměrování hovoru:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Počet obnovení protokolu PPP od spuštění:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuální síť:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Přijatá data:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Hlasová služba:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Síla signálu:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stav hlasového hovoru:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Odeslaná data:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Čekající zpráva:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonní číslo:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Zvolit pásmo bezdrátového modulu"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Typ hlasové sítě:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ datové sítě:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Vybrat telefonní seznam"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nastavit upřednostňovaný typ sítě:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping názvu hostitele (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping názvu hostitele (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test klienta HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Spustit test Ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aktualizovat"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Obnovit"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Přepnout kontrolu DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informace a nastavení specifické pro výrobce OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nastavit režim pásma bezdrátového modulu"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Načítání seznamu pásem…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nastavit"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neúspěšné"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Úspěšné"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informace o tabletu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informace o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informace o zprovoznění služby u operátora"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Spustit zprovoznění služby u operátora"</string>
 </resources>
diff --git a/res/values-da/config.xml b/res/values-da/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-da/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index fa282ba..15a9113 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privat nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Mønttelefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Ventende"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Besked via <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Besked via mobilnummer"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-nummer er startet"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kode kører ..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-nummer annulleret"</string>
@@ -166,7 +168,7 @@
     <string name="label_available" msgid="1316084116670821258">"Tilgængelige netværk"</string>
     <string name="load_networks_progress" msgid="4051433047717401683">"Søger..."</string>
     <string name="empty_networks_list" msgid="9216418268008582342">"Der blev ikke fundet nogen netværk."</string>
-    <string name="network_query_error" msgid="3862515805115145124">"Der kunne ikke findes netværk. Prøv igen."</string>
+    <string name="network_query_error" msgid="3862515805115145124">"Der blev ikke fundet netværk. Prøv igen."</string>
     <string name="register_on_network" msgid="4194770527833960423">"Registrerer på <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
     <string name="not_allowed" msgid="8541221928746104798">"Dit SIM-kort tillader ikke en forbindelse til dette netværk."</string>
     <string name="connect_later" msgid="1950138106010005425">"Der kan ikke oprettes forbindelse til dette netværk lige nu. Prøv igen senere."</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Kun NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Foretrukken netværkstilstand: WCDMA foretrækkes"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Foretrukken netværkstilstand: kun GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Foretrukken netværkstilstand: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Foretrukken netværkstilstand: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Foretrukken netværkstilstand: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Foretrukken netværkstilstand: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Foretrukken netværkstilstand: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Foretrukken netværkstilstand: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Foretrukket netværkstilstand: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Foretrukken netværkstilstand: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Foretrukken netværkstilstand: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Foretrukken netværkstilstand: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Foretrukken netværkstilstand: Kun NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Foretrukken netværkstilstand: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Foretrukken netværkstilstand: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Foretrukken netværkstilstand: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Foretrukken netværkstilstand: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Foretrukken netværkstilstand: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Foretrukken netværkstilstand: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Opkald"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netværk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Udvidet 4G LTE-tilstand"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Flere kategorier"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Flere kategorier er aktiveret"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Flere kategorier er deaktiveret"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (anbefales)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (anbefales)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (anbefales)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sletter nummer til begrænset opkald..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nummeret til begrænset opkald blev slettet."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Nummeret til begrænset opkald blev ikke opdateret, fordi du har indtastet en forkert pinkode."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Nummeret til begrænset opkald blev ikke opdateret, fordi nummeret er mere end 20 cifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Nummeret til begrænset opkald blev ikke opdateret, fordi nummeret er mere end <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Nummeret til begrænset opkald blev ikke opdateret. PIN2-koden var forkert, eller telefonnummeret blev afvist."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Handlingen mislykkedes."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Læser fra SIM-kort ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan ikke ringe op. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et alarmnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Kan ikke ringe op. Ring til et alarmnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Det er ikke muligt at foretage nødopkald"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Det er kun ejeren af enheden, der kan angive pinkoder/PUK-koder."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Opkald via sms i realtid"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Tillad afsendelse af sms-beskeder i et taleopkald"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Sms i realtid hjælper personer, som er døve, hørehæmmede, talehandicappede, eller som har brug for mere end bare tale, med at foretage opkald.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Få flere oplysninger&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Opkald via sms i realtid gemmes som en beskedtransskription\n       &lt;br&gt; – Sms i realtid er ikke tilgængeligt til videoopkald"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Bemærk! RTT er ikke tilgængeligt under roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY fra"</item>
     <item msgid="1449091874731375214">"Fuld TTY-tilstand"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nej"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Luk"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonen er i nødtilbagekaldstilstand"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Indtil <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefonen er i nødtilbagekaldstilstand i <xliff:g id="COUNT_1">%s</xliff:g> minut.\nVil du lukke nu?</item>
+      <item quantity="other">Telefonen er i nødtilbagekaldstilstand i <xliff:g id="COUNT_1">%s</xliff:g> minutter.\nVil du lukke nu?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Tjeneste"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfiguration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ikke angivet&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Opkaldsspærring blev deaktiveret"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Skift adgangskode"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Skift adgangskode til opkaldsspærring"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Adgangskoden til opkaldsspærring kan ikke ændres."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Adgangskoden til opkaldsspærring kan ikke ændres"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Adgangskoderne stemmer ikke overens"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Angiv en adgangskode med 4 cifre"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Adgangskoden blev ændret"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bekræft adgangskode"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Angiv adgangskode"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Indstillinger for opkaldsspærring"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vil du deaktivere alle indstillinger for opkaldsspærring?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Netværket er optaget. Prøv at ringe igen senere."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Netværket er belastet. Kontakt din mobiludbyder for at få hjælp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Opkaldet er viderestillet."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skal du sørge for, at mobildata er slået til for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skal du sørge for, at mobildata og dataroaming er slået til for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Luk"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktivér dataforbindelse"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Deaktiver dataforbindelse"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE er provisioneret"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videoopkald er provisioneret"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-opkald er provisioneret"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/tilstedeværelse er provisioneret"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivér DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vil du genstarte enheden?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Genstart enheden for at skifte indstilling."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Genstart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuller"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilsendestyrke"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Vis adressebog på SIM-kortet"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis numre til begrænset opkald"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestens faste opkaldsnumre"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-tjenestestatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registreret"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ikke registreret"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tilgængelig"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ikke tilgængelig"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoopkald: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-grænseflade: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"I drift"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ude af drift"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Kun nødopkald"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radioen er slukket"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Roamer ikke"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringer"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Opkald i gang"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Afbrudt"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Forbindelsen oprettes"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Tilsluttet"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspenderet"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ukendt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pk."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nuværende under-id:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Under-id for standard-SIM-kort til data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Båndbredde til download (kB/sek.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Båndbredde til upload (kB/sek.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Oplysning om placering af celle (udfaset):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysisk kanalkonfiguration for LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Opdateringsfrekvens for celleoplysninger:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle oplysninger om cellemåling:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datatjeneste:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI-nummer:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Omdirigering af opkald:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Antal PPP-nulstillinger siden start:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Nuværende netværk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data modtaget:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Taletjeneste:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstyrke:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status for taleopkald:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sendt:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Besked venter:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Vælg radiobånd"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Talenetværkstype:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datanetværkstype:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Vælg telefonindeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Angiv den foretrukne netværkstype:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping værtsnavn (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping værtsnavn (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-klienttest:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Test ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Opdater"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Opdater"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Skift DNS-kontrol"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifikke oplysninger/indstillinger"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Konfigurer radiobåndstilstand"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Indlæser båndliste…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Angiv"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mislykket"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Fuldført"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Oplysninger om tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefonoplysninger"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Oplysninger om mobilselskab"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivér mobilselskab"</string>
 </resources>
diff --git a/res/values-de/config.xml b/res/values-de/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-de/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index f760ba5..948c7cc 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private Nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Münztelefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Anruf wird gehalten"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Nachricht von <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Nachricht vom Mobilfunkanbieter"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-Code gestartet"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-Code wird ausgeführt..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-Code abgebrochen"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TD-SCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TD-SCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TD-SCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Nur NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Bevorzugter Netzmodus: WCDMA bevorzugt"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Bevorzugter Netzmodus: nur GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Bevorzugter Netzmodus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Bevorzugter Netzmodus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Bevorzugter Netzmodus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Bevorzugter Netzmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Bevorzugter Netzmodus: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Bevorzugter Netzmodus: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Bevorzugter Netzmodus: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Bevorzugter Netzmodus: LTE/TD-SCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Bevorzugter Netzmodus: TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Bevorzugter Netzmodus: LTE/TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Bevorzugter Netzmodus: nur NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Bevorzugter Netzmodus: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Bevorzugter Netzmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Bevorzugter Netzmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Bevorzugter Netzmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Bevorzugter Netzmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Bevorzugter Netzmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Anrufe"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netzwerk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Erweiterter 4G LTE-Modus"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Mehrere Kategorien"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Mehrere Kategorien aktiviert"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Mehrere Kategorien deaktiviert"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (empfohlen)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (empfohlen)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (empfohlen)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Zugelassene Rufnummer wird gelöscht..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Zugelassene Rufnummer gelöscht"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Die Liste der zugelassenen Rufnummern konnte nicht aktualisiert werden, da du eine falsche PIN eingegeben hast."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Die Rufnummernbeschränkung wurde nicht aktualisiert, da die Nummer maximal 20 Ziffern haben darf."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Die Rufnummernbeschränkung wurde nicht aktualisiert, da die Nummer länger als <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> Ziffern ist."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Die Liste der zugelassenen Rufnummern konnte nicht aktualisiert werden. Die eingegebene PIN2 ist ungültig oder die Rufnummer wurde abgelehnt."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Fehler bei der Rufnummernbeschränkung"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-Karte wird ausgelesen..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Anruf nicht möglich. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ist keine Notrufnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Anruf nicht möglich. Wähle eine Notrufnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Notruf nicht verfügbar"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Nur der Eigentümer des Geräts kann PIN-/PUK-Codes eingeben."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polizei"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Krankenwagen"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Feuerwehr"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-Anruf"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Nachrichten in Sprachanrufen erlauben"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Echtzeittext (Real-Time Text, RTT) dient als Unterstützung für Anrufer, die gehörlos, schwerhörig oder sprachgeschädigt sind oder zusätzlich zur gesprochenen Sprache weitere Informationen benötigen.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Weitere Informationen&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-Anrufe werden als Nachrichtentranskripte gespeichert\n       &lt;br&gt; – RTT ist nicht für Videoanrufe verfügbar"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Hinweis: RTT ist während des Roamings nicht verfügbar"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY aus"</item>
     <item msgid="1449091874731375214">"TTY (vollständig)"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nein"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Verwerfen"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Das Smartphone ist im Notfallrückrufmodus"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Bis <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Das Smartphone bleibt <xliff:g id="COUNT_1">%s</xliff:g> Minuten im Notfallrückrufmodus.\nMöchtest du den Vorgang jetzt beenden?</item>
+      <item quantity="one">Das Smartphone bleibt <xliff:g id="COUNT_0">%s</xliff:g> Minute im Notfallrückrufmodus.\nMöchtest du den Vorgang jetzt beenden?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Dienst"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Einrichtung"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nicht festgelegt&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Anrufsperre deaktiviert"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Passwort ändern"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Passwort für Anrufsperre ändern"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Passwort für Anrufsperre kann nicht geändert werden."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Passwort für Anrufsperre kann nicht geändert werden"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Die Passwörter stimmen nicht überein"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Gib ein vierstelliges Passwort ein"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Passwort geändert"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Passwort bestätigen"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Passwort eingeben"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Einstellungen zur Anrufsperre"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Alle Einstellungen zur Anrufsperre deaktivieren?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Das Netzwerk ist ausgelastet. Bitte versuche es später noch einmal."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Das Netzwerk ist überlastet. Bitte wende dich an deinen Mobilfunkanbieter, wenn du Hilfe benötigst."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Anruf umgeleitet."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Damit du <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> nutzen kannst, müssen mobile Daten für SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Damit du <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> nutzen kannst, müssen mobile Daten und Daten-Roaming für SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Schließen"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Datenverbindung aktivieren"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Datenverbindung deaktivieren"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-Kennzeichnung"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videoanrufe eingerichtet"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"WLAN-Anrufe eingerichtet"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Präsenz bereitgestellt"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-Daten"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS aktivieren"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Gerät neu starten?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Die Änderung erfordert einen Neustart des Geräts."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Neu starten"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Abbrechen"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilfunkstärke"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-Adressbuch anzeigen"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Rufnummernbeschränkung ansehen"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicerufnummern anzeigen"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-Dienststatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-Status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registriert"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nicht registriert"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Verfügbar"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nicht verfügbar"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-Registrierung: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice-over-LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice-over-WLAN: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoanrufe: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-Oberfläche: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In Betrieb"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Außer Betrieb"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Nur Notrufe"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio ausschalten"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Kein Roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Klingelt"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Anruf wird getätigt"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Nicht verbunden"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Verbindung wird hergestellt"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Verbunden"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Gesperrt"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unbekannt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"Pakete"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"Bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"ASU"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktuelle Unter-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Unter-ID der standardmäßigen Daten-SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-Bandbreite (kbit/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-Bandbreite (kbit/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Standortinformationen des Mobiltelefons (eingestellt):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguration des physischen LTE-Kanals:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Aktualisierungsrate der Mobiltelefoninformationen:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle Informationen zu Zellenmesswerten:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datendienst:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Rufumleitung:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Anzahl der PPP-Zurücksetzungen seit dem Start:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuelles Netzwerk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Empfangene Daten:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Sprachdienst:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstärke:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status für Audioanruf:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Gesendete Daten:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Nachricht liegt vor:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Frequenzbereich auswählen"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Sprachnetzwerktyp:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datennetzwerktyp:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Smartphone-Index auswählen"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Bevorzugten Netzwerktyp festlegen:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Hostname (www.google.com) pingen, IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Hostname (www.google.com) pingen, IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-Clienttest:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingtest ausführen"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Aktualisieren"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-Überprüfung ein-/ausschalten"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-spezifische Infos/Einstellungen"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Frequenzbereichmodus festlegen"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Frequenzliste wird geladen…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Festlegen"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Fehlgeschlagen"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Erfolgreich"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet-Informationen"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Über das Telefon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informationen zur Nutzerverwaltung durch den Anbieter"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Nutzerverwaltung durch den Anbieter auslösen"</string>
 </resources>
diff --git a/res/values-el/config.xml b/res/values-el/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-el/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 702740a..9b687c1 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Απόκρυψη"</string>
     <string name="payphone" msgid="7936735771836716941">"Τηλέφωνο με χρέωση"</string>
     <string name="onHold" msgid="6132725550015899006">"Σε αναμονή"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Μήνυμα <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Μήνυμα φορέα"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Έναρξη κώδικα MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Ο κώδικας USSD εκτελείται..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Ο κώδικας MMI ακυρώθηκε"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Μόνο NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Προτιμώμενη λειτουργία δικτύου: προτιμώμενο WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Προτιμώμενη λειτουργία δικτύου: μόνο GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Προτιμώμενη λειτουργία δικτύου: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Προτιμώμενη λειτουργία δικτύου: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Προτιμώμενη λειτουργία δικτύου: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Προτιμώμενη λειτουργία δικτύου: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Προτιμώμενη λειτουργία δικτύου: Παγκόσμια"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Προτιμώμενη λειτουργία δικτύου: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Προτιμώμενη λειτουργία δικτύου: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Προτιμώμενη λειτουργία δικτύου: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Προτιμώμενη λειτουργία δικτύου: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Προτιμώμενη λειτουργία δικτύου: μόνο NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Προτιμώμενη λειτουργία δικτύου: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Προτιμώμενη λειτουργία δικτύου: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Κλήση"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Δίκτυο"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Βελτιωμένη λειτουργία 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Πολλές κατηγορίες"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Ενεργοποιήθηκε η προβολή πολλών κατηγοριών"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Απενεργοποιήθηκε η προβολή πολλών κατηγοριών"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (συνιστάται)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (συνιστάται)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (συνιστάται)"</string>
     <string name="network_global" msgid="3289646154407617631">"Παγκοσμίως"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Διαγραφή καθορισμένου αριθμού κλήσης…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Ο καθορισμένος αριθμός κλήσης διαγράφηκε."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Το FDN δεν ενημερώθηκε, επειδή πληκτρολογήσατε εσφαλμένο PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Το FDN δεν ενημερώθηκε, επειδή ο αριθμός ξεπερνάει τα 20 ψηφία."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Το FDN δεν ενημερώθηκε, επειδή ο αριθμός υπερβαίνει τα <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ψηφία."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Δεν έγινε ενημέρωση του FDN. Το PIN2 ήταν λανθασμένο ή ο αριθμός του τηλεφώνου απορρίφθηκε."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Αποτυχία λειτουργίας FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Ανάγνωση από κάρτα SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Δεν είναι δυνατή η κλήση. Το <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> δεν είναι αριθμός έκτακτης ανάγκης."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Δεν είναι δυνατή η κλήση. Πληκτρολογήστε έναν αριθμό έκτακτης ανάγκης."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Η δυνατότητα κλήσεων έκτακτης ανάγκης δεν είναι διαθέσιμη"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Μόνο ο κάτοχος της συσκευής έχει τη δυνατότητα εισαγωγής κωδικών PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Αστυνομία"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ασθενοφόρο"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Πυροσβεστική"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Κλήση με αποστολή κειμένου σε πραγματικό χρόνο (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Να επιτρέπεται η ανταλλαγή μηνυμάτων σε μια φωνητική κλήση"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Η λειτουργία RTT υποβοηθά καλούντες που αντιμετωπίζουν προβλήματα ακοής ή ομιλίας ή θέλουν κάτι περισσότερο από απλή φωνητική επικοινωνία.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Μάθετε περισσότερα&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Οι κλήσεις RTT αποθηκεύονται ως μεταγραφές μηνυμάτων\n       &lt;br&gt; - Η λειτουργία RTT δεν είναι διαθέσιμη για βιντεοκλήσεις"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Σημείωση: Η λειτουργία RTT δεν είναι διαθέσιμη κατά την περιαγωγή"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Απενεργοποιήθηκε"</item>
     <item msgid="1449091874731375214">"TTY πλήρες"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ναι"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Όχι"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Απόρριψη"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Το τηλέφωνο βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Έως <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Το τηλέφωνο θα βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για <xliff:g id="COUNT_1">%s</xliff:g> λεπτά.\nΕπιθυμείτε έξοδο τώρα;</item>
+      <item quantity="one">Το τηλέφωνο θα βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για <xliff:g id="COUNT_0">%s</xliff:g> λεπτό.\nΕπιθυμείτε έξοδο τώρα;</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Υπηρεσία"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Ρυθμίσεις"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Δεν έχει οριστεί&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Η φραγή κλήσεων απενεργοποιήθηκε"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Αλλαγή κωδικού πρόσβασης"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Αλλαγή κωδικού φραγής πρόσβασης για φραγή κλήσεων."</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Δεν είναι δυνατή η αλλαγή του κωδικού πρόσβασης για φραγή κλήσεων."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Δεν είναι δυνατή η αλλαγή του κωδικού πρόσβασης για φραγή κλήσεων"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Οι κωδικοί πρόσβασης δεν αντιστοιχούν μεταξύ τους"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Εισαγάγετε έναν κωδικό πρόσβασης με 4 αριθμούς"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Ο κωδικός πρόσβασης άλλαξε"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Επιβεβαίωση κωδικού πρόσβασης"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Εισαγωγή κωδικού πρόσβασης"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Ρυθμίσεις φραγής κλήσεων"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Απενεργοποίηση όλων των ρυθμίσεων φραγής κλήσεων;"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Το δίκτυο είναι απασχολημένο. Δοκιμάστε να καλέσετε αργότερα."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Παρατηρείται συμφόρηση δικτύου. Επικοινωνήστε με τον φορέα κινητής τηλεφωνίας που χρησιμοποιείτε για βοήθεια."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Έγινε εκτροπή της κλήσης."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας είναι ενεργοποιημένα για τη SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας, καθώς και η περιαγωγή δεδομένων, είναι ενεργοποιημένα για τη SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Απόρριψη"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ενεργοποίηση σύνδεσης δεδομένων"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Απενεργοποίηση σύνδεσης δεδομένων"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Παρέχεται μέσω VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Παρέχεται δυνατότητα βιντεοκλήσης"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Παρέχεται δυνατότητα κλήσης μέσω Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Παρέχεται EAB/παρουσία"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Δεδομένα Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ενεργοποίηση DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Επανεκκίνηση συσκευής;"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Πρέπει να επανεκκινηθεί η συσκευή για να αλλάξει η ρύθμιση."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Επανεκκίνηση"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ακύρωση"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Ισχύς πομπού κινητής τηλεφωνίας"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Προβολή βιβλίου διευθύνσεων κάρτας SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Προβολή προκαθορισμένων αριθμών κλήσης"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Προβολή αριθμών κλήσης υπηρεσίας"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Κατάσταση υπηρεσίας IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Κατάσταση IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Με εγγραφή"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Χωρίς εγγραφή"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Διαθέσιμο"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Μη διαθέσιμο"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Εγγραφή IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nΦωνή μέσω LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nΦωνή μέσω δικτύου Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nΒιντεοκλήσεις: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nΔιεπαφή UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Σε υπηρεσία"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Εκτός υπηρεσίας"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Μόνο κλήσεις έκτακτης ανάγκης"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Ραδιόφωνο ανενεργό"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Περιαγωγή"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Χωρίς περιαγωγή"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Σε αδράνεια"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Κλήση"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Κλήση σε εξέλιξη"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Αποσυνδεδεμένη"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Γίνεται σύνδεση"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Σε σύνδεση"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Σε αναστολή"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Άγνωστο"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Τρέχον subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId προεπιλεγμένης SIM δεδομένων:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Εύρος ζώνης DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Εύρος ζώνης UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Πληροφορίες τοποθεσίας κινητής τηλεφωνίας (καταργήθηκε):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Διαμόρφωση φυσικού καναλιού LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Ρυθμός ανανέωσης στοιχείων κινητής τηλεφωνίας:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Όλα τα στοιχεία μετρήσεων κινητής τηλεφωνίας:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Υπηρεσία δεδομένων:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Περιαγωγή:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"Αριθμός IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Ανακατεύθυνση κλήσης:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Αριθμός επαναφορών PPP από την εκκίνηση:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Τρέχον δίκτυο:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Δεδομένα που λήφθηκαν:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Φωνητική υπηρεσία:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Ισχύς σήματος:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Κατάσταση φωνητικής κλήσης:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Δεδομένα που στάλθηκαν:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Αναμονή μηνύματος:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Αριθμός τηλεφώνου:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Επιλογή ζώνης συχνοτήτων πομπού"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Τύπος δικτύου φωνής:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Τύπος δικτύου δεδομένων:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Επιλογή ευρετηρίου τηλεφώνου"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ορισμός προτιμώμενου τύπου δικτύου:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Όνομα κεντρικού υπολογιστή Ping (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Όνομα κεντρικού υπολογιστή Ping (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Δοκιμή πελάτη HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Εκτέλεση δοκιμής ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ενημέρωση"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Ανανέωση"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Εναλλαγή ελέγχου DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Πληροφορίες/ρυθμίσεις για OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Ρύθμιση λειτουργίας ζώνης συχνοτήτων πομπού"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Φόρτωση λίστας ζωνών…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ορισμός"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Ανεπιτυχής"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Επιτυχής"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Πληροφορίες tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Πληροφορίες τηλεφώνου"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Πληροφορίες παροχής εταιρείας κινητής τηλεφωνίας"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Ενεργοποίηση παροχής εταιρείας κινητής τηλεφωνίας"</string>
 </resources>
diff --git a/res/values-en-rAU/config.xml b/res/values-en-rAU/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rAU/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index bc7fc2b..764fef3 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rCA/config.xml b/res/values-en-rCA/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rCA/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index f493eeb..9ed04f5 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rGB/config.xml b/res/values-en-rGB/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rGB/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index bc7fc2b..764fef3 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rIN/config.xml b/res/values-en-rIN/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rIN/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index bc7fc2b..764fef3 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Private number"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"On hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operator message"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI code started"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD code running…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI code cancelled"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR only"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferred network mode: WCDMA preferred"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferred network mode: GSM only"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferred network mode: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferred network mode: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferred network mode: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferred network mode: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferred network mode: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferred network mode: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferred network mode: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferred network mode: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferred network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferred network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferred network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferred network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferred network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferred network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Calling"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-category enabled"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-category disabled"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recommended)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommended)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommended)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Deleting fixed dialling number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fixed dialling number deleted."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN wasn\'t updated. The PIN2 was incorrect or the phone number was rejected."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN operation failed."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Only the owner of the device can enter PIN/PUK codes."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fire"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time text (RTT) call"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Allow messaging within a voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Learn more&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT calls are saved as a message transcript\n       &lt;br&gt; – RTT is not available for video calls"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Note: RTT is not available while roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY off"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Dismiss"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"The phone is in emergency callback mode"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+      <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute.\nDo you want to exit now?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Not set&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Call barring deactivated"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Change password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Change call barring password"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Cannot change call barring password."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Cannot change call barring password"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passwords do not match"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Enter a password with four numbers"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password changed"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirm password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Enter password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Call barring settings"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deactivate all call barring settings?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Network is busy. Please try placing your call again later."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Network is congested. Contact your mobile operator for assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Call deflected."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Enable data connection"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disable data connection"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video calling provisioned"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi calling provisioned"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence provisioned"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Enable DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Restart device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS service status"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registered"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Not registered"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Unavailable"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registration: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Out of service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Emergency calls only"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Not roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringing"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Call in progress"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnected"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connecting"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connected"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspended"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Unknown"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Current subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Data service:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Call redirect:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Number of PPP reset since boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Current network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data received:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice service:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal strength"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice call status:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sent"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message waiting:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Phone number:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Select radio band"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice network type:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Data network type:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Select phone index"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Set preferred network type:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP client test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Run ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Toggle DNS check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specific info/settings"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Unsuccessful"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Successful"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet info"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
 </resources>
diff --git a/res/values-en-rXC/config.xml b/res/values-en-rXC/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-en-rXC/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index e0b670a..250a26d 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎Private number‎‏‎‎‏‎"</string>
     <string name="payphone" msgid="7936735771836716941">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎Payphone‎‏‎‎‏‎"</string>
     <string name="onHold" msgid="6132725550015899006">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎On hold‎‏‎‎‏‎"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="MMICARRIER">%s</xliff:g>‎‏‎‎‏‏‏‎ Message‎‏‎‎‏‎"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎Carrier Message‎‏‎‎‏‎"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎MMI code started‎‏‎‎‏‎"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎USSD code running…‎‏‎‎‏‎"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎MMI code canceled‎‏‎‎‏‎"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</item>
     <item msgid="8826479449402151312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎TDSCDMA/CDMA/EVDO/GSM/WCDMA‎‏‎‎‏‎"</item>
     <item msgid="6284311629324843506">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="4738087170533378966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‏‏‎‎NR only‎‏‎‎‏‎"</item>
+    <item msgid="2935877729588775187">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‎NR/LTE‎‏‎‎‏‎"</item>
+    <item msgid="8967513231424970529">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎NR/LTE/CDMA/EvDo‎‏‎‎‏‎"</item>
+    <item msgid="1542643426479755015">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎NR/LTE/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="5778162260258129841">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎NR/LTE/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="8088614845214545367">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‏‏‏‎NR/LTE/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="6517428040626326776">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎NR/LTE/TDSCDMA‎‏‎‎‏‎"</item>
+    <item msgid="5294150161567170165">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎NR/LTE/TDSCDMA/GSM‎‏‎‎‏‎"</item>
+    <item msgid="4130965694947056705">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎NR/LTE/TDSCDMA/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="3869566732842046032">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎NR/LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</item>
+    <item msgid="3942770927563146543">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎Preferred network mode: WCDMA preferred‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎Preferred network mode: GSM only‎‏‎‎‏‎"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎Preferred network mode: LTE‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎Preferred network mode: GSM/WCDMA/LTE‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎Preferred network mode: CDMA+LTE/EVDO‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎Preferred network mode: Global‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎Preferred network mode: LTE / WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎Preferred network mode: LTE / GSM / UMTS‎‏‎‎‏‎"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎Preferred network mode: LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎Preferred network mode: NR only‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎Preferred network mode: NR / LTE‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎Preferred network mode: NR/LTE/CDMA/EvDo‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎Preferred network mode: NR/LTE/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‎‎Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎Preferred network mode: NR/LTE/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎Preferred network mode: NR/LTE/TDSCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎Preferred network mode: NR/LTE/TDSCDMA/GSM‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‎Preferred network mode: NR/LTE/TDSCDMA/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA‎‏‎‎‏‎"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‏‎Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA‎‏‎‎‏‎"</string>
     <string name="call_category" msgid="4394703838833058138">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎Calling‎‏‎‎‏‎"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‎‎Network‎‏‎‎‏‎"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‎‎Enhanced 4G LTE Mode‎‏‎‎‏‎"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎Multi-category‎‏‎‎‏‎"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎Multi-category enabled‎‏‎‎‏‎"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎Multi-category disabled‎‏‎‎‏‎"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" ‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎ (recommended)‎‏‎‎‏‎"</string>
     <string name="network_lte" msgid="7206879277095094280">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎LTE (recommended)‎‏‎‎‏‎"</string>
     <string name="network_4G" msgid="6800527815504223913">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‎‏‎4G (recommended)‎‏‎‎‏‎"</string>
     <string name="network_global" msgid="3289646154407617631">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎Global‎‏‎‎‏‎"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‎Deleting fixed dialing number…‎‏‎‎‏‎"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎Fixed dialing number deleted.‎‏‎‎‏‎"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‎FDN wasn\'t updated because you typed an incorrect PIN.‎‏‎‎‏‎"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎FDN wasn\'t updated because the number exceeds 20 digits.‎‏‎‎‏‎"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‎FDN wasn\'t updated because the number exceeds ‎‏‎‎‏‏‎<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>‎‏‎‎‏‏‏‎ digits.‎‏‎‎‏‎"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎FDN wasn\'t updated. The PIN2 was incorrect, or the phone number was rejected.‎‏‎‎‏‎"</string>
     <string name="fdn_failed" msgid="216592346853420250">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‏‎‎FDN operation failed.‎‏‎‎‏‎"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎Reading from SIM card…‎‏‎‎‏‎"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎Can\'t call. ‎‏‎‎‏‏‎<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>‎‏‎‎‏‏‏‎ is not an emergency number.‎‏‎‎‏‎"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎Can\'t call. Dial an emergency number.‎‏‎‎‏‎"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎Emergency calling not available‎‏‎‎‏‎"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎Only the owner of the device can enter PIN/PUK codes.‎‏‎‎‏‎"</string>
     <string name="police_type_description" msgid="2819533883972081757">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎Police‎‏‎‎‏‎"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎Ambulance‎‏‎‎‏‎"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎Fire‎‏‎‎‏‎"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎Real-time text (RTT) call‎‏‎‎‏‎"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‎Allow messaging within a voice call‎‏‎‎‏‎"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎RTT assists callers who are deaf, hard of hearing, have a speech disability, or need more than voice alone.&lt;br&gt; &lt;a href=‎‏‎‎‏‏‎<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>‎‏‎‎‏‏‏‎&gt;Learn more&lt;/a&gt;‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎       &lt;br&gt;&lt;br&gt; - RTT calls are saved as a message transcript‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎       &lt;br&gt; - RTT is not available for video calls‎‏‎‎‏‎"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎Note: RTT is not available while roaming‎‏‎‎‏‎"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎TTY Off‎‏‎‎‏‎"</item>
     <item msgid="1449091874731375214">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎TTY Full‎‏‎‎‏‎"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‎‏‎Yes‎‏‎‎‏‎"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎No‎‏‎‎‏‎"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎Dismiss‎‏‎‎‏‎"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‏‎The phone is in emergency callback mode‎‏‎‎‏‎"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‎‎Until ‎‏‎‎‏‏‎<xliff:g id="COMPLETETIME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎The phone will be in emergency callback mode for ‎‏‎‎‏‏‎<xliff:g id="COUNT_1">%s</xliff:g>‎‏‎‎‏‏‏‎ minutes.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Do you want to exit now?‎‏‎‎‏‎</item>
+      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎The phone will be in emergency callback mode for ‎‏‎‎‏‏‎<xliff:g id="COUNT_0">%s</xliff:g>‎‏‎‎‏‏‏‎ minute.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Do you want to exit now?‎‏‎‎‏‎</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‏‎‎Service‎‏‎‎‏‎"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‎‎Setup‎‏‎‎‏‎"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‎&lt;Not set&gt;‎‏‎‎‏‎"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‎Call barring deactivated‎‏‎‎‏‎"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎Change password‎‏‎‎‏‎"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎Change call barring password‎‏‎‎‏‎"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎Cannot change call barring password.‎‏‎‎‏‎"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎Cannot change call barring password‎‏‎‎‏‎"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎Passwords do not match‎‏‎‎‏‎"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎Enter a password with 4 numbers‎‏‎‎‏‎"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎Password changed‎‏‎‎‏‎"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎Confirm password‎‏‎‎‏‎"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎Enter password‎‏‎‎‏‎"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎Call barring settings‎‏‎‎‏‎"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎Deactivate all call barring settings?‎‏‎‎‏‎"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‎Network is busy. Please try your call again later.‎‏‎‎‏‎"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎Network is congested. Contact your mobile operator for assistance.‎‏‎‎‏‎"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‎‏‎‎‎‏‏‎‏‎‏‎Call deflected.‎‏‎‎‏‎"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎To use ‎‏‎‎‏‏‎<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎, make sure mobile data is turned on for SIM ‎‏‎‎‏‏‎<xliff:g id="SIM_NUMBER">%2$d</xliff:g>‎‏‎‎‏‏‏‎. You can change this in mobile network settings.‎‏‎‎‏‎"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎To use ‎‏‎‎‏‏‎<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎, make sure mobile data and data roaming are turned on for SIM ‎‏‎‎‏‏‎<xliff:g id="SIM_NUMBER">%2$d</xliff:g>‎‏‎‎‏‏‏‎. You can change these in mobile network settings.‎‏‎‎‏‎"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‎‎‎Dismiss‎‏‎‎‏‎"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‎‎Enable Data Connection‎‏‎‎‏‎"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎Disable Data Connection‎‏‎‎‏‎"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎VoLTE Provisioned‎‏‎‎‏‎"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‎Video Calling Provisioned‎‏‎‎‏‎"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‎Wifi Calling Provisioned‎‏‎‎‏‎"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‏‎EAB/Presence Provisioned‎‏‎‎‏‎"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎Cbrs Data‎‏‎‎‏‎"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎Enable DSDS‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎Restart Device?‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎You need to restart your device to change this setting.‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎Restart‎‏‎‎‏‎"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎Cancel‎‏‎‎‏‎"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎Mobile Radio Power‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎View SIM Address Book‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎View Fixed Dialing Numbers‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎View Service Dialing Numbers‎‏‎‎‏‎"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎IMS Service Status‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‏‎IMS Status‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎Registered‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‎‏‎Not Registered‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎Available‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎Unavailable‎‏‎‎‏‎"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‎IMS Registration: ‎‏‎‎‏‏‎<xliff:g id="STATUS">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Voice over LTE: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Voice over WiFi: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Video Calling: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎UT Interface: ‎‏‎‎‏‏‎<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎In Service‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‎Out of Service‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‎‎‎‎Emergency Calls Only‎‏‎‎‏‎"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎Radio Off‎‏‎‎‏‎"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‎Roaming‎‏‎‎‏‎"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎Not Roaming‎‏‎‎‏‎"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎Idle‎‏‎‎‏‎"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‎Ringing‎‏‎‎‏‎"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‎Call in Progress‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎Disconnected‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎Connecting‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎Connected‎‏‎‎‏‎"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎Suspended‎‏‎‎‏‎"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎Unknown‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎pkts‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎bytes‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‏‏‏‎dBm‎‏‎‎‏‎"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎asu‎‏‎‎‏‎"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎LAC‎‏‎‎‏‎"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‎‎‎‏‎CID‎‏‎‎‏‎"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎Current subId:‎‏‎‎‏‎"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‎SubId of default data SIM:‎‏‎‎‏‎"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‎‎‎‏‏‎‎DL Bandwidth (kbps):‎‏‎‎‏‎"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‏‎‎‎UL Bandwidth (kbps):‎‏‎‎‏‎"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎Cell Location Info (deprecated):‎‏‎‎‏‎"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‏‎LTE Physical Channel Configuration:‎‏‎‎‏‎"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‎Cell Info Refresh Rate:‎‏‎‎‏‎"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎All Cell Measurement Info:‎‏‎‎‏‎"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎Data Service:‎‏‎‎‏‎"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎Roaming:‎‏‎‎‏‎"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‎‎‎IMEI:‎‏‎‎‏‎"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‎Call Redirect:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎Number of PPP Reset Since Boot:‎‏‎‎‏‎"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎Current Network:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‎‏‎Data Received:‎‏‎‎‏‎"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎Voice Service:‎‏‎‎‏‎"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎Signal Strength:‎‏‎‎‏‎"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎Voice Call Status:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‏‏‎Data Sent:‎‏‎‎‏‎"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎Message Waiting:‎‏‎‎‏‎"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‎Phone Number:‎‏‎‎‏‎"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎‎Select Radio Band‎‏‎‎‏‎"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎Voice Network Type:‎‏‎‎‏‎"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎Data Network Type:‎‏‎‎‏‎"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎Select phone index‎‏‎‎‏‎"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎Set Preferred Network Type:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‎Ping Hostname(www.google.com) IPv4:‎‏‎‎‏‎"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎Ping Hostname(www.google.com) IPv6:‎‏‎‎‏‎"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎HTTP Client Test:‎‏‎‎‏‎"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎Run Ping Test‎‏‎‎‏‎"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎SMSC:‎‏‎‎‏‎"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎Update‎‏‎‎‏‎"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‎‎Refresh‎‏‎‎‏‎"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‎Toggle DNS Check‎‏‎‎‏‎"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‎‎OEM-specific Info/Settings‎‏‎‎‏‎"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎Set Radio Band Mode‎‏‎‎‏‎"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎Loading Band List…‎‏‎‎‏‎"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎Set‎‏‎‎‏‎"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎Unsuccessful‎‏‎‎‏‎"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‏‎Successful‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎Tablet info‎‏‎‎‏‎"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎Phone info‎‏‎‎‏‎"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎Carrier Provisioning Info‎‏‎‎‏‎"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎Trigger Carrier Provisioning‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-rUS/config.xml b/res/values-es-rUS/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-es-rUS/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 9196f8c..a9ddc42 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Teléfono público"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensaje de <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensaje del proveedor"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código de MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Ejecutando código USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código MMI cancelado"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Solo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de red preferido: WCDMA preferido"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de red preferido: solo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de red preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de red preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de red preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de red preferido: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de red preferido: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de red preferido: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de red preferido: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de red preferido: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de red preferido: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de red preferido: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de red preferido: solo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de red preferido: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de red preferido: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de red preferido: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de red preferido: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de red preferido: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de red preferido: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de red preferido: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de red preferido: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de red preferido: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de red preferido: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Llamando"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Red"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE mejorado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Varias categorías"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Varias categorías activadas"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Varias categorías desactivadas"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminando número de marcación fija..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Número de marcación fija eliminado"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"No se actualizó el FDN porque ingresaste un PIN incorrecto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"El NMF no se actualizó porque el número supera los 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"No se actualizó el NMF porque el número supera los <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"No se actualizó el FDN. El PIN2 era incorrecto o se rechazó el número de teléfono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Ocurrió un error de funcionamiento con el número de marcado fijo."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Leyendo la tarjeta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"No se puede realizar la llamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no es un número de emergencia."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"No se puede realizar la llamada. Marca un número de emergencia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Las llamadas de emergencia no están disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Solo el propietario del dispositivo puede ingresar los códigos PIN/PUK"</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policía"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bomberos"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Llamada de Texto en tiempo real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir la mensajería en las llamadas de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"El RTT brinda asistencia a las personas sordas o hipoacúsicas, que tienen algún trastorno del habla o necesitan una transcripción además de la voz.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Más información&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Las llamadas de RTT se guardan como las transcripciones de los mensajes\n       &lt;br&gt; - El RTT no está disponible para las videollamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: La función RTT no está disponible en roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Descartar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"El teléfono está en modo de devolución de llamadas de emergencia"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hasta las <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\n¿Quieres salir ahora?</item>
+      <item quantity="one">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\n¿Quieres salir ahora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servicio"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Sin configurar&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Se desactivó la restricción de llamadas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Cambiar contraseña"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Cambiar la contraseña para la restricción de llamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"No se puede cambiar la contraseña para la restricción de llamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"No se puede cambiar la contraseña para la restricción de llamadas"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Las contraseñas no coinciden"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Ingresa una contraseña que contenga 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Se cambió la contraseña"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar contraseña"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ingresa la contraseña"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configuración de restricción de llamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"¿Quieres desactivar todas las opciones de restricción de llamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La red está ocupada. Vuelve a realizar la llamada más tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La red está congestionada. Comunícate con tu operador de telefonía móvil para recibir asistencia."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Se desvió la llamada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que los datos móviles estén activados para la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esto en la configuración de la red móvil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que los datos móviles y el roaming de datos estén activados para la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esto en la configuración de la red móvil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Descartar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Habilitar la conexión de datos"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inhabilitar la conexión de datos"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE aprovisionada"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videollamadas aprovisionadas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Llamadas por Wi-Fi aprovisionadas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence aprovisionados"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Datos de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Habilitar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"¿Quieres reiniciar el dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar el dispositivo para cambiar este parámetro de configuración."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potencia de la señal móvil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado del servicio de IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado de IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"No registrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"No disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registro de IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz por LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz por Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideollamada: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfaz de UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servicio"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fuera de servicio"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Solo llamadas de emergencia"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio desactivada"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sin roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Llamada en curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendido"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconocido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquetes"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID secundario actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID secundario de SIM de datos predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Ancho de banda de descarga (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Ancho de banda de carga (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Datos de ubicación del celular (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración del canal físico de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frecuencia de actualización de datos del celular:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Información sobre las dimensiones del celular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servicio de datos:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redireccionamiento de llamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Cantidad de PPP restablecidos desde el inicio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Red actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Datos recibidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servicio de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Potencia de la señal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado de la llamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Datos enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensaje en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de teléfono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleccionar banda de radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de red de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de red de datos:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleccionar guía telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Establecer el tipo de red preferida:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Hacer ping a IPv4 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Hacer ping a IPv6 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prueba de cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ejecutar prueba de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activar o desactivar la comprobación de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Configuración/Datos específicos del OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Establecer modo de banda de radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Cargando lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Establecer"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecto"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcto"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Información de la tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Información del teléfono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Información del aprovisionamiento del proveedor"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activar aprovisionamiento del proveedor"</string>
 </resources>
diff --git a/res/values-es/config.xml b/res/values-es/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-es/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 5a88739..7504802 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Teléfono público"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mensaje"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensaje del operador"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"El código MMI se ha iniciado."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Código USSD en ejecución..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"El código MMI se ha cancelado."</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE, TD-SCDMA, GSM o WCDMA"</item>
     <item msgid="8826479449402151312">"TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</item>
     <item msgid="6284311629324843506">"LTE, TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</item>
+    <item msgid="4738087170533378966">"Solo NR"</item>
+    <item msgid="2935877729588775187">"NR o LTE"</item>
+    <item msgid="8967513231424970529">"NR, LTE, CDMA o EvDo"</item>
+    <item msgid="1542643426479755015">"NR, LTE, GSM o WCDMA"</item>
+    <item msgid="5778162260258129841">"NR, LTE, CDMA, EvDo, GSM o WCDMA"</item>
+    <item msgid="8088614845214545367">"NR, LTE o WCDMA"</item>
+    <item msgid="6517428040626326776">"NR, LTE o TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR, LTE, TDSCDMA o GSM"</item>
+    <item msgid="4130965694947056705">"NR, LTE, TDSCDMA o WCDMA"</item>
+    <item msgid="3869566732842046032">"NR, LTE, TDSCDMA, GSM o WCDMA"</item>
+    <item msgid="3942770927563146543">"NR, LTE, TDSCDMA, CDMA, EvDo, GSM o WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de red preferido: WCDMA preferido"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de red preferido: solo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de red preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de red preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de red preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferencia de modo de red: LTE, CDMA, EvDo, GSM o WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de red preferido: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de red preferido: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de red preferido: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de red preferido: LTE, TD-SCDMA, GSM o WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de red preferido: TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de red preferido: LTE, TD-SCDMA, CDMA, EvDo, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferencia de modo de red: solo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferencia de modo de red: NR o LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferencia de modo de red: NR, LTE, CDMA o EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferencia de modo de red: NR, LTE, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferencia de modo de red: NR, LTE, CDMA, EvDo, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferencia de modo de red: NR, LTE o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferencia de modo de red: NR, LTE o TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferencia de modo de red: NR, LTE, TDSCDMA o GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferencia de modo de red: NR, LTE, TDSCDMA o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferencia de modo de red: NR, LTE, TDSCDMA, GSM o WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferencia de modo de red: NR, LTE, TDSCDMA, CDMA, EvDo, GSM o WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Llamadas"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Red"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE mejorado"</string>
@@ -268,7 +293,7 @@
     <string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"operador, esim, sim, euicc, cambiar de operador, añadir operador"</string>
     <string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
     <string name="mobile_data_settings_title" msgid="7228249980933944101">"Datos móviles"</string>
-    <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Acceder a los datos con la red móvil"</string>
+    <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Acceder a datos con la red móvil"</string>
     <string name="data_usage_disable_mobile" msgid="5669109209055988308">"¿Quieres desactivar los datos móviles?"</string>
     <string name="sim_selection_required_pref" msgid="6985901872978341314">"Debes seleccionar una opción"</string>
     <string name="sim_change_data_title" msgid="9142726786345906606">"¿Cambiar la SIM de datos?"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Categoría múltiple"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Categoría múltiple habilitada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Categoría múltiple inhabilitada"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Mundial"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminando número de marcación fija..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Se ha eliminado el número de marcación fija."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"No se ha actualizado FDN porque el código PIN que has introducido es incorrecto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"No se ha podido actualizar FDN porque el número tiene más de 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"No se ha podido actualizar FDN porque el número tiene más de <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN no actualizado. El código PIN2 era incorrecto o se ha rechazado el número de teléfono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Error de funcionamiento de número de marcación fija."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Leyendo desde tarjeta SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"No se puede establecer la llamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no es un número de emergencia."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"No se puede establecer la llamada. Marca un número de emergencia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"No se pueden hacer llamadas de emergencia"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Solo el propietario del dispositivo puede introducir el código PIN o PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policía"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bomberos"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Llamada de texto en tiempo real (TTR)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir mensajes en una llamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La función TTR (texto en tiempo real) ofrece asistencia a las personas sordas o con discapacidades auditivas, que tienen algún trastorno del habla o que necesitan una transcripción además de la voz para comunicarse.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Más información&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Las llamadas de TTR se guardan como la transcripción de un mensaje.\n       &lt;br&gt; - La función TTR no está disponible en videollamadas."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: TTR no está disponible en itinerancia"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,9 +637,15 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Cerrar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"El teléfono está en modo de devolución de llamada de emergencia"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hasta las <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\n¿Quieres salir ahora?</item>
+      <item quantity="one">El teléfono estará en modo de devolución de llamada de emergencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\n¿Quieres salir ahora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servicio"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuración"</string>
-    <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;No definido&gt;"</string>
+    <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Sin establecer&gt;"</string>
     <string name="other_settings" msgid="8895088007393598447">"Otras opciones de llamada"</string>
     <string name="calling_via_template" msgid="1791323450703751750">"Llamada vía <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="7885089213135154834">"foto de contacto"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Se ha desactivado el bloqueo de llamadas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Cambiar contraseña"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Cambiar la contraseña de bloqueo de llamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"No se puede cambiar la contraseña de bloqueo de llamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"No se puede cambiar la contraseña de bloqueo de llamadas"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Las contraseñas no coinciden"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introduce una contraseña con 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Se ha cambiado la contraseña"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar contraseña"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Introduce la contraseña"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Ajustes de bloqueo de llamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"¿Quieres desactivar todos los ajustes de bloqueo de llamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La red está ocupada. Intenta llamar de nuevo más tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La red está saturada. Ponte en contacto con tu operador de telefonía móvil para solicitar ayuda."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Se ha derivado la llamada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para utilizar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, los datos móviles deben estar activados en la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esta opción en los ajustes de red móvil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para utilizar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, los datos móviles y la itinerancia de datos deben estar activados en la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar estas opciones en los ajustes de red móvil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Cerrar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Habilitar conexión de datos"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inhabilitar conexión de datos"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE preparado"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videollamada preparada"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Llamada Wi-Fi preparada"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence preparados"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Datos de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Habilitar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"¿Quieres reiniciar el dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar el dispositivo para cambiar este ajuste."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potencia de la señal móvil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de tarjeta SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado del servicio IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado de IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"No registrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"No disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registro en IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz a través de LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz a través de Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideollamadas: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfaz UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servicio"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fuera de servicio"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Solo llamadas de emergencia"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Señal móvil desactivada"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinerancia"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sin itinerancia"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Llamada en curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendido"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconocido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pqts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID secundario actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID secundario de la SIM de datos predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Ancho de banda de bajada (Kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Ancho de banda de subida (Kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Información sobre la ubicación del teléfono (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración del canal físico de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frecuencia de actualización de la información del teléfono:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Información sobre las dimensiones de los teléfonos:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servicio de datos:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinerancia:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirección de llamadas:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de PPP restablecido desde el inicio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Red actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Datos recibidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servicio de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensidad de la señal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado de la llamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Datos enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensaje en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de teléfono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleccionar banda de señal móvil"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de red de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de red de datos:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleccionar guía telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Establecer tipo de red preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Hacer ping a IPv4 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Hacer ping a IPv6 de nombre de host (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prueba de cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ejecutar prueba de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activar o desactivar comprobación de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Ajustes o información específica de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Establecer modo de banda de señal móvil"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Cargando lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Seleccionar"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecto"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcto"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Información del tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Información sobre el teléfono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Información de servicios del operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activar servicios del operador"</string>
 </resources>
diff --git a/res/values-et/config.xml b/res/values-et/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-et/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index fc9cdf0..5d6a837 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Varjatud number"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefoniautomaat"</string>
     <string name="onHold" msgid="6132725550015899006">"Ootel"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Sõnum operaatorilt <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operaatori sõnum"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kood käivitus"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kood töötab ..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kood tühistatud"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Ainult NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Eelistatud võrgurežiim: eelistatud WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Eelistatud võrgurežiim: ainult GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Eelistatud võrgurežiim: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Eelistatud võrgurežiim: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Eelistatud võrgurežiim: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Eelistatud võrgurežiim: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Eelistatud võrgurežiim: globaalne"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Eelistatud võrgurežiim: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Eelistatud võrgurežiim: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Eelistatud võrgurežiim: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Eelistatud võrgurežiim: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Eelistatud võrgurežiim: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Eelistatud võrgurežiim: ainult NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Eelistatud võrgurežiim: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Eelistatud võrgurežiim: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Eelistatud võrgurežiim: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Eelistatud võrgurežiim: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Eelistatud võrgurežiim: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Eelistatud võrgurežiim: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Helistamine"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Võrk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Tõhustatud 4G LTE režiim"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multikategooria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-kategooria lubatud"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategooria keelatud"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (soovitatud)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (soovitatav)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (soovitatav)"</string>
     <string name="network_global" msgid="3289646154407617631">"Üldine"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Fikseeritud valimisnumbri kustutamine…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fikseeritud valimisnumber kustutatud."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN-i ei värskendatud, sest sisestasite vale PIN-koodi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN-i ei värskendatud, sest number ületab 20 kohta."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN-i ei värskendatud, sest number ületab <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> kohta."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-i ei värskendatud. PIN2 oli vale või lükati telefoninumber tagasi."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-i toiming ebaõnnestus."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-kaardilt lugemine ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ei saa helistada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ei ole hädaabikõne number."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ei saa helistada. Valige hädaabinumber."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hädaabikõned pole saadaval"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN-/PUK-koode saab sisestada ainult seadme omanik."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politsei"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Kiirabi"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Tuletõrje"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Reaalajas teksti saatmise (RTT) kõne"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Häälkõnes sõnumside lubamine"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT aitab kurte, kuulmis- või kõnepuudega helistajaid või neid, kes vajavad lisaks häälele muud abi.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Lisateave&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-kõned salvestatakse sõnumi trankriptsioonina\n       &lt;br&gt; – RTT pole saadaval videokõnede puhul"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Märkus. RTT pole rändluse ajal saadaval"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY väljas"</item>
     <item msgid="1449091874731375214">"TTY-täisrežiim"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Jah"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Loobu"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon on hädaolukorra tagasihelistusrežiimis"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Kuni <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon on hädaolukorra tagasihelistusrežiimis <xliff:g id="COUNT_1">%s</xliff:g> minutit.\nKas soovite kohe väljuda?</item>
+      <item quantity="one">Telefon on hädaolukorra tagasihelistusrežiimis <xliff:g id="COUNT_0">%s</xliff:g> minut.\nKas soovite kohe väljuda?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Teenus"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Seadistus"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Määramata&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Kõnede blokeerimine on inaktiveeritud"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Parooli muutmine"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Kõnede blokeerimise parooli muutmine"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Kõnede blokeerimise parooli ei saa muuta."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Kõnede blokeerimise parooli ei saa muuta"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Paroolid ei kattu"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Neljanumbrilise parooli sisestamine"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parool on muudetud"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Parooli kinnitamine"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Parooli sisestamine"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Kõnede blokeerimise seaded"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Kas inaktiveerida kõik kõnede blokeerimise seaded?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Võrk on hõivatud. Proovige hiljem uuesti helistada."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Võrk on hõivatud. Võtke abi saamiseks ühendust mobiilioperaatoriga."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Kõne suunati ümber."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Teenuse <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside oleks SIM-kaardil <xliff:g id="SIM_NUMBER">%2$d</xliff:g> sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Teenuse <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside ja andmesiderändlus oleks SIM-kaardil <xliff:g id="SIM_NUMBER">%2$d</xliff:g> sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Loobu"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Luba andmesideühendus"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Keela andmesideühendus"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE on ette valmistatud"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videokõne on ette valmistatud"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"WiFi-kõne on ette valmistatud"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence on ette valmistatud"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-i andmed"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Luba DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Kas taaskäivitada seade?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Selle seade muutmiseks peate seadme taaskäivitama."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Taaskäivita"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Tühista"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiiliraadio toide"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Kuva SIM-i aadressiraamat"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kuva fikseeritud valimisnumbrid"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Kuva teenuse valimise numbrid"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-teenuse olek"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-i olek"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registreeritud"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ei ole registreeritud"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Saadaval"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Pole saadaval"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-i registreerimine: <xliff:g id="STATUS">%1$s</xliff:g>\nHäälvestlus LTE kaudu: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHäälvestlus WiFi kaudu: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideokõne: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-liides: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Teenus toimib"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Teenus ei toimi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Ainult hädaabikõned"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Raadio on väljas"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Rändlus"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Rändlus puudub"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Tegevusetu"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Helisemine"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Kõne on pooleli"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Pole ühendatud"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ühendamine"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ühendatud"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Peatatud"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Teadmata"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"baiti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Praegune alam-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Andmete vaike-SIM-kaardi alam-ID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-i ribalaius (kbit/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-i ribalaius (kbit/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Kärje asukohateave (tugi on katkestatud):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE füüsilise kanali konfiguratsioon:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kärje teabe värskendamissagedus:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Kõik kärje mõõteandmed:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Andmesideteenus:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Rändlus:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Kõne ümbersuunamine:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP lähtestuste arv alates käivitumisest:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Praegune võrk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Vastuvõetud andmed:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Häälteenus:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signaali tugevus:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Häälkõne olek:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Saadetud andmed:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Ootel sõnum:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefoninumber:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Raadioriba valimine"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Häälvõrgu tüüp:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Andmesidevõrgu tüüp:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefoni registri valimine"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Eelistatud võrgutüübi määramine:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pingi hosti nimi (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pingi hosti nimi (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-kliendi test:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingimistesti käitamine"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Värskendamine"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Värskendamine"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-i kontrolli sisse- või väljalülitamine"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-i teave/seaded"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Raadio ribarežiimi määramine"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ribaloendi laadimine …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Määra"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Ebaõnnestus"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Õnnestus"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Teave tahvelarvuti kohta"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoniteave"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operaatori ettevalmistamise teave"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operaatori ettevalmistamise päästik"</string>
 </resources>
diff --git a/res/values-eu/config.xml b/res/values-eu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-eu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index b4062f6..be86654 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Zenbaki pribatua"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefono publikoa"</string>
     <string name="onHold" msgid="6132725550015899006">"Zain"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mezua"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operadorearen mezua"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodea hasi da"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kodea abiarazten…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodea bertan behera utzi da"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR soilik"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Sare modu hobetsia: WCDMA nahiago"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Sare modu hobetsia: GSM soilik"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Sare modu hobetsia: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Sare modu hobetsia: GSM / WCDMA / LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Sare modu hobetsia: CDMA + LTE / EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Sare modu hobetsia: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Sare modu hobetsia: orokorra"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Sare modu hobetsia: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Sareko modu hobetsia: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Sareko modu hobetsia: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Sareko modu hobetsia: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Sareko modu hobetsia: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Sare modu hobetsia: NR soilik"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Sare modu hobetsia: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Sare modu hobetsia: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Sare modu hobetsia: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Sare modu hobetsia: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Sare modu hobetsia: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Sare modu hobetsia: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Sare modu hobetsia: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Sare modu hobetsia: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Sare modu hobetsia: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Sare modu hobetsia: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Deiak"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Sarea"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"4G LTE modu hobetua"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Askotariko kategoriak"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Askotariko kategoriak gaituta"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Askotariko kategoriak desgaituta"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (gomendatua)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (gomendatua)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (gomendatua)"</string>
     <string name="network_global" msgid="3289646154407617631">"Orokorra"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Markatze finkoko zenbakia ezabatzen…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Markatze finkoko zenbakia ezabatu da."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Ez da eguneratu markatze finkoko zenbakia, PIN kode okerra idatzi duzulako."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Ez da eguneratu markatze finkoko zenbakia, 20 digitu baino gehiago dituelako."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Ez da eguneratu markatze finkoko zenbakia, zenbakiak <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digitu baino gehiago dituelako."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Ez da eguneratu markatze finkoko zenbakia. PIN2 kodea ez da zuzena edo telefono-zenbakia baztertu da."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Markatze finkoko zenbakiaren eragiketak huts egin du."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM txarteletik irakurtzen…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ezin da deitu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ez da larrialdietarako zenbakia."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ezin da deitu. Markatu larrialdietarako zenbakia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Ezin da egin larrialdi-deirik"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Gailuaren jabeak bakarrik idatz ditzake PIN/PUK kodeak."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polizia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Anbulantzia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Sua"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Deietan testua bidaltzeko eginbidea"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Baimendu mezuak bidali eta jasotzea ahots-deien barruan"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Deietan testua bidaltzeko eginbideak deitzaile gorrei, entzumen-arazoak dituztenei, hitz egiteko ezintasunen bat dutenei edota ahotsaz gain beste makuluren bat behar dutenei laguntzen die.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Lortu informazio gehiago&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Deietan testua bidaltzeko eginbidearekin egindako deiak mezu-transkripzio gisa gordetzen dira.\n       &lt;br&gt; - Deietan testua bidaltzeko eginbidea ez da bateragarria bideo-deiekin."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Oharra: Deietan testua bidaltzeko eginbidea ez dago erabilgarri ibiltaritzan"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desaktibatuta"</item>
     <item msgid="1449091874731375214">"TTY osoa"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Bai"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ez"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Baztertu"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Larrialdi-zerbitzuen deiak jasotzeko moduan dago telefonoa"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> arte"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefonoa <xliff:g id="COUNT_1">%s</xliff:g> minutuz egongo da larrialdi-zerbitzuen deiak jasotzeko moduan.\nIrten nahi duzu?</item>
+      <item quantity="one">Telefonoa <xliff:g id="COUNT_0">%s</xliff:g> minutuz egongo da larrialdi-zerbitzuen deiak jasotzeko moduan.\nIrten nahi duzu?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Zerbitzua"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurazioa"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ezarri gabe&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Desaktibatu dira deiak debekatzeko ezarpenak"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Aldatu pasahitza"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Aldatu deiak debekatzeko pasahitza"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ezin da aldatu deiak debekatzeko pasahitza."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ezin da aldatu deiak debekatzeko pasahitza"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Pasahitzak ez datoz bat"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Idatzi 4 zenbakiko pasahitz bat"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Aldatu da pasahitza"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Berretsi pasahitza"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Idatzi pasahitza"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Deiak debekatzeko ezarpenak"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deiak debekatzeko ezarpen guztiak desaktibatu nahi dituzu?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Sarea okupatuta dago. Saiatu berriro deitzen geroago."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Sareak gainezka egin du. Laguntza lortzeko, jarri mugikorraren operadorearekin harremanetan."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Automatikoki desbideratu da deia."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> erabiltzeko, ziurtatu datu-konexioa aktibatuta dagoela <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM txartelean. Sare mugikorren ezarpenetan alda dezakezu aukera hori."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> erabiltzeko, ziurtatu datu-konexioa eta datu-ibiltaritza aktibatuta daudela <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM txartelean. Sare mugikorren ezarpenetan alda ditzakezu aukera horiek."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Baztertu"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Gaitu datu-konexioa"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desgaitu datu-konexioa"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE hornituta"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Bideo-deiak aktibatuta"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi bidezko deiak aktibatuta"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence hornitu da"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS datuak"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Gaitu DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Gailua berrabiarazi nahi duzu?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ezarpen hau aldatzeko, gailua berrabiarazi egin behar duzu."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Berrabiarazi"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Utzi"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Sare mugikor bidezko irratiaren indarra"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ikusi SIMeko kontaktuak"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ikusi markatze finkoko zenbakiak"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ikusi zerbitzuaren markatze-zenbakiak"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS zerbitzuaren egoera"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS egoera"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Erregistratuta"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Erregistratu gabe"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Libre"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ez dago erabilgarri"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS erregistroa: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE bidezko ahots-deiak: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWifi bidezko ahots-deiak: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nBideo-deiak: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfazea: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Erabilgarri"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ez erabilgarri"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Larrialdi-deiak soilik"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Itzali irratia"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Ibiltaritza"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ez dago ibiltaritzan"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktibo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Tonua jotzen"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Deia abian da"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Deskonektatuta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Konektatzen"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Konektatuta"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Behin-behinean itxitakoak"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ezezaguna"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Uneko azpiIDa:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Datu-konexioetarako SIM lehenetsiaren azpiIDa:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Deskargatzeko banda-zabalera (Kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Kargen banda-zabalera (Kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Sare mugikorraren kokapenaren informazioa (zaharkitua):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE kanal fisikoaren konfigurazioa:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Sare mugikorraren informazioa eguneratzeko maiztasuna:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sare mugikorraren neurketa guztien informazioa:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datu-zerbitzua:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Ibiltaritza:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Dei-desbideratzea:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP berrezarpen kopurua abiarazi ezkero:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Uneko sarea:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Jasotako datuak:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ahots-deien zerbitzua:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Seinalearen indarra:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Ahots-deiaren egoera:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Bidalitako datuak:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mezua zain:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefono-zenbakia:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Hautatu irrati-banda"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Ahots-deien sare mota:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datu-sare mota:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Hautatu telefonoaren indizea"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ezarri sare mota hobetsia:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping egiteko ostalari-izena (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping egiteko ostalari-izena (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP bezeroaren proba:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Egin ping-proba"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Eguneratu"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Freskatu"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Aldatu DNS egiaztapenaren egoera"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Jatorrizko fabrikatzailearen berariazko informazioa edota ezarpenak"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Ezarri irrati-bandaren modua"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Banden zerrenda kargatzen…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ezarri"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Entregatu gabe"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Ongi"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletaren informazioa"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefonoaren informazioa"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operadorearen hornikuntza-informazioa"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Abiarazi operadorearen hornikuntza"</string>
 </resources>
diff --git a/res/values-fa/config.xml b/res/values-fa/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fa/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 02d5400..196c75b 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"شماره خصوصی"</string>
     <string name="payphone" msgid="7936735771836716941">"تلفن عمومی"</string>
     <string name="onHold" msgid="6132725550015899006">"در انتظار"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"پیام <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"پیام شرکت مخابراتی"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏کد MMI راه‌اندازی شد"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏در حال اجرای کد USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏کد MMI لغو شد"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏فقط NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏حالت شبکه برگزیده: WCDMA برگزیده"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏حالت شبکه برگزیده: فقط GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏حالت شبکه برگزیده: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏حالت شبکه برگزیده: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏حالت شبکه برگزیده: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏حالت شبکه برگزیده: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"حالت شبکه برگزیده: سراسری"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏حالت شبکه برگزیده: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏حالت شبکه برگزیده: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏حالت شبکه برگزیده: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏حالت شبکه برگزیده: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏حالت شبکه برگزیده: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏حالت شبکه برگزیده: فقط NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏حالت شبکه برگزیده: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏حالت شبکه برگزیده: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏حالت شبکه برگزیده: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏حالت شبکه برگزیده: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏حالت شبکه برگزیده: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏حالت شبکه برگزیده: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"درحال تماس"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"شبکه"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏حالت پیشرفته 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"دسته‌های متعدد"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"دسته‌های متعدد فعال شد"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"دسته‌های متعدد غیر فعال شد"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (توصیه‌شده)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (توصیه شده)"</string>
     <string name="network_4G" msgid="6800527815504223913">"‏4G (توصیه شده)"</string>
     <string name="network_global" msgid="3289646154407617631">"سراسری"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"در حال حذف شماره شماره گیری ثابت..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"شماره شماره گیری ثابت حذف شد."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‏FDN به‌روز نشد زیرا یک پین نادرست تایپ کردید."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏FDN به‌روزرسانی نشد زیرا شماره نمی‌تواند بیش از ۲۰ رقم داشته باشد."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏FDN به‌روزرسانی نشد، زیرا شماره از <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> رقم بیشتر است."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‏FDN به‌روز نشد. پین۲ اشتباه بود یا شماره تلفن رد شد."</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏عملیات FDN ناموفق بود."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"در حال خواندن سیم کارت..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"نمی‌توانید تماس بگیرید. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> یک شماره اضطراری نیست."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"نمی‌ توانید تماس بگیرید. یک شماره اضطراری را شماره‌گیری کنید."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"تماس اضطراری دردسترس نیست"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏فقط مالک دستگاه می‌تواند کدهای پین/PUK را وارد کند."</string>
     <string name="police_type_description" msgid="2819533883972081757">"پلیس"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"آمبولانس"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"آتش"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‏تماس نوشتار هم‌زمان (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"پیام‌رسانی در تماس صوتی مجاز است"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏«نوشتار هم‌زمان» به تماس گیرندگان ناشنوا، دارای مشکل شنوایی، دارای ناتوانی گفتاری یا افرادی که به چیزی بیش از صدا نیاز دارند کمک می‌کند.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;بیشتر بدانید&lt;/a&gt;\n       ‏&lt;br&gt;&lt;br&gt; تماس‌های «نوشتار هم‌زمان» به‌صورت ترانویسی پیام ذخیره می‌شود\n       &lt;br&gt; «نوشتار هم‌زمان» برای تماس‌های ویدیویی دردسترس نیست"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"نکته: «نوشتار هم‌زمان» در هنگام فراگردی دردسترس نیست"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY خاموش"</item>
     <item msgid="1449091874731375214">"‏TTY پر است"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"بله"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"نه"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"رد کردن"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"تلفن در حالت «تماس اضطراری» است"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"تا<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">تلفن به مدت <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در حالت «تماس اضطراری» خواهد بود.\nمی‌خواهید اکنون خارج شوید؟</item>
+      <item quantity="other">تلفن به مدت <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در حالت «تماس اضطراری» خواهد بود.\nمی‌خواهید اکنون خارج شوید؟</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"سرویس"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"تنظیم"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‏&lt;تنظیم نشده&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"محدودیت تماس غیرفعال شد"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"تغییر گذرواژه"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"تغییر گذرواژه محدودیت تماس"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"نمی‌توان گذرواژه محدودیت تماس را تغییر داد."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"نمی‌توان گذرواژه محدودیت تماس را تغییر داد"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"گذرواژه‌ها مطابقت ندارند"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"گذرواژه‌ای با ۴ رقم وارد کنید"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"گذرواژه تغییر کرد"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"تأیید گذرواژه"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"گذرواژه را وارد کنید"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"تنظیمات محدودیت تماس"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"همه تنظیمات محدودیت تماس غیرفعال شود؟"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"شبکه مشغول است. لطفاً بعداً دوباره تماس بگیرید."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"شبکه شلوغ است. برای کمک، با اپراتور دستگاه همراه تماس بگیرید."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"تماس برگردانده شد."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"برای استفاده از <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، مطمئن شوید داده تلفن همراه برای سیم‌کارت <xliff:g id="SIM_NUMBER">%2$d</xliff:g> روشن باشد. می‌توانید در تنظیمات شبکه تلفن همراه این تنظیم را تغییر دهید."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"برای استفاده از <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، مطمئن شوید داده تلفن همراه و فراگردی داده برای سیم‌کارت <xliff:g id="SIM_NUMBER">%2$d</xliff:g> روشن باشد. می‌توانید در تنظیمات شبکه تلفن همراه این تنظیمات را تغییر دهید."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"رد کردن"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"فعال کردن اتصال داده"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"غیرفعال کردن اتصال داده"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏مشروط به VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"مجوز تماس تصویری داده شد"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏مجوز تماس با Wifi داده شد"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏EAB/حضور مشروط است"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏داده‌های Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏فعال کردن DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"دستگاه بازراه‌اندازی شود؟"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"برای تغییر این تنظیم، باید دستگاه را بازراه‌اندازی کنید."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"بازراه‌اندازی"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"لغو"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"توان رادیوی تلفن همراه"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"مشاهده دفترچه نشانی سیم‌کارت"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"مشاهده شماره‌های شماره‌گیری ثابت"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"مشاهده شماره‌های شماره‌گیری سرویس"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‏وضعیت سرویس IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‏وضعیت IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ثبت‌شده"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ثبت‌نشده"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"دردسترس"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"دردسترس نیست"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏ثبت IMS:‏ <xliff:g id="STATUS">%1$s</xliff:g>\nصدا ازطریق LTE‏: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nصدا ازطریق WiFi‏: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n‏تماس ویدیویی: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nواسط UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"سرویس دارد"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"خارج از سرویس"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"فقط تماس‌های اضطراری"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"رادیو خاموش"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"فراگردی"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"بدون فراگردی"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"راکد"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"درحال زنگ خوردن"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"تماس درحال انجام"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"اتصال قطع است"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"درحال اتصال"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"متصل"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"تعلیق‌شده"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"نامشخص"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"بایت"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"‏subId کنونی:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏SubId مربوط به سیم‌کارت داده پیش‌فرض:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏پهنای باند DL (کیلوبیت بر ثانیه):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏پهنای باند UL (کیلوبیت بر ثانیه):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"اطلاعات مکان شبکه همراه (منسوخ شده):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏پیکربندی کانال فیزیکی LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"نرخ بازخوانی اطلاعات شبکه همراه:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"همه اطلاعات اندازه‌گیری شبکه همراه:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"سرویس داده:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"فراگردی:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"هدایت تماس:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏تعداد بازنشانی PPP از زمان راه‌اندازی:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"شبکه کنونی:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"داده دریافت‌شده:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"سرویس صوتی:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"قدرت سیگنال:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"وضعیت تماس صوتی:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"داده ارسال‌شده:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"پیام در انتظار:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"شماره تلفن:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"انتخاب باند رادیو"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"نوع شبکه صوتی:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"نوع شبکه داده:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"انتخاب نمایه تلفن"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"تنظیم نوع شبکه برگزیده:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏پینگ کردن نام میزبان (www.google.com)‏ IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏پینگ کردن نام میزبان (www.google.com)‏ IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏آزمایش کارخواه HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"اجرای آزمایش پینگ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"به‌روزرسانی"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"بازخوانی"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‏تغییر وضعیت علامت DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‏تنظیمات/اطلاعات خاص OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"تنظیم حالت باند رادیو"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"درحال بار کردن فهرست باند…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"تنظیم"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ناموفق"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"موفقیت‌آمیز"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"اطلاعات رایانه لوحی"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"اطلاعات تلفن"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"اطلاعات ارائه شرکت مخابراتی"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"شروع ارائه شرکت مخابراتی"</string>
 </resources>
diff --git a/res/values-fi/config.xml b/res/values-fi/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fi/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index cd1b962..1a3c49f 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Salainen numero"</string>
     <string name="payphone" msgid="7936735771836716941">"Maksupuhelin"</string>
     <string name="onHold" msgid="6132725550015899006">"Pidossa"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-viesti"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operaattorin viesti"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-koodi aloitettu"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-koodi käytössä..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-koodi peruutettu"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Vain NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Ensisijainen verkkotila: ensisijaisesti WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Ensisijainen verkkotila: vain GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Ensisijainen verkkotila: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Ensisijainen verkkotila: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Ensisijainen verkkotila: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Ensisijainen verkkotila: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Ensisijainen verkkotila: Maailmanlaajuinen"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Ensisijainen verkkotila: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Ensisijainen verkkotila: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Ensisijainen verkkotila: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Ensisijainen verkkotila: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Ensisijainen verkkotila: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Ensisijainen verkkotila: vain NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Ensisijainen verkkotila: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Ensisijainen verkkotila: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Ensisijainen verkkotila: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Ensisijainen verkkotila: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Ensisijainen verkkotila: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Ensisijainen verkkotila: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Ensisijainen verkkotila: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Soitetaan"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Verkko"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE -tila"</string>
@@ -249,8 +274,8 @@
     <string name="data_enable_summary" msgid="696860063456536557">"Salli tiedonsiirto"</string>
     <string name="dialog_alert_title" msgid="5260471806940268478">"Huomio"</string>
     <string name="roaming" msgid="1576180772877858949">"Roaming"</string>
-    <string name="roaming_enable" msgid="6853685214521494819">"Yhdistä verkkoon roaming-tilassa."</string>
-    <string name="roaming_disable" msgid="8856224638624592681">"Yhdistä verkkoon roaming-tilassa."</string>
+    <string name="roaming_enable" msgid="6853685214521494819">"Yhdistä verkkoon roaming-tilassa"</string>
+    <string name="roaming_disable" msgid="8856224638624592681">"Yhdistä verkkoon roaming-tilassa"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Roaming ei ole käytössä. Ota käyttöön napauttamalla."</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"Puhelusta saatetaan periä roaming-maksuja. Muokkaa napauttamalla."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Mobiilidatayhteys katkesi"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Useat luokat"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Useat luokat käytössä"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Useat luokat pois käytöstä"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (suositeltu)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (suositus)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (suositus)"</string>
     <string name="network_global" msgid="3289646154407617631">"Maailmanlaajuinen"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Poistetaan sallittua numeroa…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Sallittu numero poistettu."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Sallittuja numeroita ei päivitetty, koska annoit väärän PIN-koodin."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Sallittuja numeroita ei päivitetty, koska numerossa oli yli 20 merkkiä."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Sallittuja numeroita ei päivitetty, koska numerossa oli yli <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> merkkiä."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-numeroa ei päivitetty. PIN2 on virheellinen tai puhelinnumero hylättiin."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-toiminto epäonnistui."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Luetaan SIM-korttia…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Puhelua ei voi soittaa. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ei ole hätänumero."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Puhelua ei voi soittaa. Valitse hätänumero."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hätäpuhelut eivät ole käytettävissä"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Vain laitteen omistaja voi lisätä PIN- ja PUK-koodeja."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Poliisi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanssi"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Palokunta"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-puhelu (puhelusta lähetettävä teksti)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Salli viestit äänipuheluissa"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT-toiminto auttaa kuuroja sekä käyttäjiä, joilla on kuulo‑ tai puhehäiriöitä tai jotka tarvitsevat muuta tukea pelkän puheen lisäksi.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Lisätietoja&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-puhelut tallennetaan litterointiviestinä.\n       &lt;br&gt; – RTT ei ole käytettävissä videopuheluissa."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Huom. Puhelusta lähetettävä teksti (RTT) ei ole käytettävissä roaming-tilassa"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY pois käytöstä"</item>
     <item msgid="1449091874731375214">"TTY täynnä"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Kyllä"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Hylkää"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Puhelin on hätäpuhelujen takaisinsoittotilassa."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> asti"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Puhelin on hätäpuhelujen takaisinsoittotilassa <xliff:g id="COUNT_1">%s</xliff:g> minuutin ajan.\nHaluatko poistua nyt?</item>
+      <item quantity="one">Puhelin on hätäpuhelujen takaisinsoittotilassa <xliff:g id="COUNT_0">%s</xliff:g> minuutin ajan.\nHaluatko poistua nyt?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Palveluntarjoaja"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Asetukset"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ei asetettu&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Puhelunesto poistettu käytöstä"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Vaihda salasana"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Vaihda puheluneston salasana"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Puheluneston salasanaa ei voi vaihtaa."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Puheluneston salasanaa ei voi vaihtaa"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Salasanat eivät täsmää"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Anna nelinumeroinen salasana"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Salasana vaihdettu"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Vahvista salasana"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Lisää salasana"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Puhelunestoasetukset"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Poistetaanko kaikki puhelunestoasetukset käytöstä?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Verkko on varattu. Yritä soittaa myöhemmin uudelleen."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Verkossa on ruuhkaa. Kysy ohjeita operaattoriltasi."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Puhelu siirretty automaattisesti."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> toimii, jos mobiilidata on käytössä SIM-kortilla <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Voit ottaa mobiilidatan käyttöön mobiiliverkkoasetuksista."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> toimii, jos mobiilidata ja roaming ovat käytössä SIM-kortilla <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Voit ottaa ne käyttöön mobiiliverkkoasetuksista."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ohita"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ota tiedonsiirto käyttöön"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Poista tiedonsiirto käytöstä"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTEn hallinnoima"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videopuhelukäyttäjiä hallitaan"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-puhelukäyttäjiä hallitaan"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/läsnäolo hallinnoitu"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ota DSDS käyttöön"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Käynnistä uudelleen?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Laite on käynnistettävä uudelleen asetuksen muuttamiseksi."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Käynnistä uudelleen"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Peruuta"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiiliradion voimakkuus"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Näytä SIM-kortin osoitekirja"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Näytä sallitut numerot"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Näytä sallitut palvelunumerot"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-palvelun tila"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-tila"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Rekisteröity"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ei rekisteröitynyt"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Saatavilla"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ei käytettävissä"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-rekisteröinti: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE-äänipuhelut: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWi-Fi-äänipuhelut: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideopuhelut: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-käyttöliittymä: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Kuuluvuusalueella"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Katvealueella"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Vain hätäpuhelut"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio pois päältä"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ei roaming-tilassa"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Epäaktiivinen"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Soi"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Puhelu kesken"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Yhteys katkaistu"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Yhdistetään"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Yhdistetty"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Jäädytetty"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Tuntematon"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakettia"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"tavua"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nykyinen alitunnus:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Oletusarvoisen data-SIM-kortin alitunnus:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-kaistanleveys (kt/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-kaistanleveys (kt/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Matkapuhelimen sijaintitiedot (poistettu käytöstä):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fyysisen LTE-kanavan kokoonpano:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Matkapuhelintietojen päivitysaikaväli:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Matkapuhelimen kaikki mittaustiedot:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datapalvelu:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI-koodi:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Puhelujen uudelleenohjaus:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP-palautuksien lukumäärä käynnistyksen jälkeen:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Nykyinen verkko:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Vastaanotetut tiedot:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Puhelupalvelu:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signaalin vahvuus:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Äänipuhelun tila:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Lähetetyt tiedot:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Viesti odottaa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Puhelinnumero:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Valitse radiotaajuus"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Äänipuhelujen verkon tyyppi:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tietoverkon tyyppi:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Valitse puhelimen hakemisto"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Aseta ensisijainen verkon tyyppi:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping-kutsu isäntänimelle (www.google.com), IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping-kutsu isäntänimelle (www.google.com), IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-asiakastesti:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Suorita ping-testi"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Päivitä"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Päivitä"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ota DNS-tarkistus käyttöön tai poista se käytöstä"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-kohtaiset tiedot/asetukset"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radion taajuustilan valinta"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ladataan taajuusluetteloa…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Aseta"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Epäonnistui"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Onnistui"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletin tiedot"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Puhelimen tiedot"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operaattorin hallintatiedot"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Ota operaattorin hallinta käyttöön"</string>
 </resources>
diff --git a/res/values-fr-rCA/config.xml b/res/values-fr-rCA/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fr-rCA/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index f7a98fa..0842224 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numéro privé"</string>
     <string name="payphone" msgid="7936735771836716941">"Cabine téléphonique"</string>
     <string name="onHold" msgid="6132725550015899006">"En attente"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Message <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Message d\'opérateur"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Le code IHM a été lancé."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Exécution du code USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Code IHM annulé"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR seulement"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode réseau préféré : WCDMA de préférence"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode réseau préféré : GSM uniquement"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode réseau préféré : LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode réseau préféré : GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode réseau préféré : CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode réseau préféré : LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode réseau préféré : général"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode réseau préféré : LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modes réseaux préférés : LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode réseau préféré : LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode réseau préféré : TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode réseau préféré : LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode réseau préféré : NR seulement"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode réseau préféré : NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode réseau préféré : NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode réseau préféré : NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode réseau préféré : NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode réseau préféré : NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode réseau préféré : NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode réseau préféré : NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode réseau préféré : NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode réseau préféré : NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode réseau préféré : NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Appels"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Réseau"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode LTE 4G avancé"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-catégories"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Option \"Multi-catégories\" activée"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Option \"Multi-catégories\" désactivée"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (conseillé)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommandé)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommandé)"</string>
     <string name="network_global" msgid="3289646154407617631">"International"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Suppression du numéro autorisé…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numéro autorisé supprimé"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Le numéro autorisé n\'a pas été mis à jour, car vous avez saisi un NIP incorrect."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Le NAF n\'a pas été mis à jour, car le numéro comporte plus de 20 chiffres."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Le NAF n\'a pas été mis à jour, car le numéro comporte plus de <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> chiffres."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Le numéro autorisé n\'a pas été mis à jour. Soit le NIP2 est incorrect, soit le numéro de téléphone a été rejeté."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Échec de l\'opération FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lecture de la carte SIM…"</string>
@@ -496,7 +522,7 @@
     <string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Numéro de messagerie vocale inconnu"</string>
     <string name="notification_network_selection_title" msgid="255595526707809121">"Aucun service"</string>
     <string name="notification_network_selection_text" msgid="553288408722427659">"Réseau sélectionné<xliff:g id="OPERATOR_NAME">%s</xliff:g> non disponible"</string>
-    <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activez le réseau cellulaire ou désactivez le mode Avion ou le mode Économie d\'énergie pour faire un appel."</string>
+    <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activez le réseau cellulaire ou désactivez le mode Avion ou le mode Économiseur de pile pour faire un appel."</string>
     <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Désactivez le mode Avion pour faire un appel."</string>
     <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Désactivez le mode Avion ou connectez-vous à un réseau Wi-Fi pour faire un appel."</string>
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Quittez le mode de rappel d\'urgence pour effectuer un appel non urgent."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Appel impossible. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> n\'est pas un numéro d\'urgence."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Appel impossible. Composez un numéro d\'urgence."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Appels d\'urgence non disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Seul le propriétaire de l\'appareil peut entrer un NIP ou un code PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Incendie"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Appel texte en temps réel (TTR)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Autoriser l\'utilisation de la messagerie lors des appels vocaux"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La fonctionnalité TTR aide les appelants qui sont sourds ou malentendants, qui ont un trouble de la parole ou pour qui la voix ne suffit pas.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;En savoir plus&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Les appels TTR sont enregistrés en tant que transcriptions de messages\n       &lt;br&gt; - La fonctionnalité TTR n\'est pas disponible pour les appels vidéo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Remarque : Les messages TTR ne sont pas disponibles en itinérance"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY désactivé"</item>
     <item msgid="1449091874731375214">"TTY complet"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oui"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Non"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignorer"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Le téléphone est en mode de rappel d\'urgence"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Jusqu\'à <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Le mode de rappel d\'urgence sera activé sur le téléphone pour une durée de <xliff:g id="COUNT_1">%s</xliff:g> minute.\nVoulez-vous quitter ce mode maintenant?</item>
+      <item quantity="other">Le mode de rappel d\'urgence sera activé sur le téléphone pour une durée de <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nVoulez-vous quitter ce mode maintenant?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Non défini&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Interdiction d\'appel désactivée"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Modifiez le mot de passe"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Modifiez le mot de passe d\'interdiction d\'appel"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Impossible de modifier le mot de passe d\'interdiction d\'appel."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Impossible de modifier le mot de passe d\'interdiction d\'appel"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Les mots de passe ne concordent pas"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Entrez un mot de passe à quatre chiffres"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Mot de passe modifié"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmez le mot de passe"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Entrez le mot de passe"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Paramètres d\'interdiction d\'appel"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Désactiver tous les paramètres d\'interdiction d\'appel?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Le réseau est saturé. Veuillez rappeler plus tard."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Le réseau est saturé. Communiquez avec votre fournisseur de services mobiles pour obtenir de l\'assistance."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Appel redirigé."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données cellulaires sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres du réseau cellulaire."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données cellulaires et l\'itinérance des données sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier ces options dans les paramètres du réseau cellulaire."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorer"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activer la connexion de données"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Désactiver la connexion de données"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE approvisionné"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Appel vidéo approvisionné"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Appel Wi-Fi approvisionné"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Présence approvisionné"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Données CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activer DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Redémarrer l\'appareil?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Vous devez redémarrer votre appareil pour modifier ce paramètre."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Redémarrer"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuler"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentation de radio cellulaire"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros d\'appel fixes"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"État du service IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"État IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Enregistré"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non enregistré"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Enregistrement IMS : <xliff:g id="STATUS">%1$s</xliff:g>\nVoix sur LTE : <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoix sur Wi-Fi : <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nAppels vidéo : <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT : <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hors service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Appels d\'urgence seulement"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Signal radio désactivé"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinérance"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Pas en itinérance"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactif"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonnerie en cours…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Appel en cours"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Déconnecté"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connexion en cours…"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connecté"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendu"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Inconnu"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquets"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"octets"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID ou IDC"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Sous-identifiant actuel :"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Sous-identifiant de la carte SIM par défaut :"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bande passante de téléchargement (kb/s) :"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bande passante de téléversement (kb/s) :"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Données de la position de la cellule (obsolètes) :"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration du canal physique LTE :"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taux d\'actualisation des données de la cellule :"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Données des mesures de toutes les cellules :"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Service de données :"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinérance :"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"Code IIEM :"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Transfert d\'appel :"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Nombre de réinitialisations PPP depuis le démarrage :"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Réseau actuel :"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Données reçues :"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Service vocal :"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Force du signal :"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"État de l\'appel vocal :"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Données envoyées :"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message en attente :"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numéro de téléphone :"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Sélectionner la bande radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Type de réseau vocal :"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type de réseau de données :"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Sélectionner l\'indice du téléphone"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Définir le type de réseau préféré :"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Faire un ping de l\'IPv4 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Faire un ping de l\'IPv6 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test du client HTTP :"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Effectuer le test de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC :"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Mettre à jour"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualiser"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Basculer la vérification DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informations/paramètres OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Définir le mode de bande radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Chargement de la liste de bandes en cours…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Définir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Échec"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Opération effectuée"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informations sur le téléphone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Données d\'approvisionnement du fournisseur de services"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Déclencher l\'approvisionnement du fournisseur de services"</string>
 </resources>
diff --git a/res/values-fr/config.xml b/res/values-fr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-fr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 5ea4b7d..e3baed7 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numéro privé"</string>
     <string name="payphone" msgid="7936735771836716941">"Cabine téléphonique"</string>
     <string name="onHold" msgid="6132725550015899006">"En attente"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Message <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Message de l\'opérateur"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Le code IHM a été lancé."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Exécution du code USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Code IHM annulé"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR uniquement"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode réseau préféré : WCDMA de préférence"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode réseau préféré : GSM uniquement"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode réseau préféré : LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode réseau préféré : GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode réseau préféré : CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode de réseau préféré : LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode réseau préféré : général"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode réseau préféré : LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mode réseau préféré : LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode réseau préféré : LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode réseau préféré: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode réseau préféré : LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode de réseau préféré : NR uniquement"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode de réseau préféré : NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode de réseau préféré : NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode de réseau préféré : NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode de réseau préféré : NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode de réseau préféré : NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode de réseau préféré : NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode de réseau préféré : NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode de réseau préféré : NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode de réseau préféré : NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode de réseau préféré : NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Appels"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Réseau"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode LTE 4G avancé"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-catégories"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Option \"Multi-catégories\" activée"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Option \"Multi-catégories\" désactivée"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (option recommandée)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recommandé)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recommandé)"</string>
     <string name="network_global" msgid="3289646154407617631">"International"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Suppression du numéro autorisé…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numéro autorisé supprimé"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Le numéro autorisé n\'a pas été mis à jour, car vous avez saisi un code PIN incorrect."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Le numéro autorisé n\'a pas été mis à jour, car il comporte plus de 20 chiffres."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Le numéro autorisé n\'a pas été mis à jour, car il comporte plus de <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> chiffres."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Le numéro autorisé n\'a pas été mis à jour. Soit le code PIN2 est incorrect, soit le numéro de téléphone a été rejeté."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Échec de l\'opération liée aux numéros autorisés."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lecture de la carte SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Impossible d\'émettre l\'appel. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> n\'est pas un numéro d\'urgence."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Impossible d\'émettre l\'appel. Veuillez composer un numéro d\'urgence."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Appels d\'urgence non disponibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Seul le propriétaire de l\'appareil peut saisir le code PIN ou la clé PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Police"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Pompiers"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Appel texte en temps réel"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Autoriser l\'échange de messages pendant les appels vocaux"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"La fonctionnalité de texte en temps réel vient en aide aux personnes sourdes, malentendantes, qui ont un trouble de la parole, ou qui ont besoin d\'une transcription en plus de la voix.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;En savoir plus&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Les appels texte en temps réel sont enregistrés sous forme transcrite\n       &lt;br&gt; - Le mode texte en temps réel n\'est pas disponible pour les appels vidéo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Remarque : La fonctionnalité de texte en temps réel n\'est pas disponible en itinérance"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Mode TTY désactivé"</item>
     <item msgid="1449091874731375214">"TTY complet"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oui"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Non"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignorer"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Le téléphone est en mode de rappel d\'urgence"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Jusqu\'à <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Le téléphone sera en mode de rappel d\'urgence pendant <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nSouhaitez-vous quitter ce mode maintenant ?</item>
+      <item quantity="other">Le téléphone sera en mode de rappel d\'urgence pendant <xliff:g id="COUNT_1">%s</xliff:g> minutes.\nSouhaitez-vous quitter ce mode maintenant ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Non défini&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Interdiction d\'appel désactivée"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Modifier le mot de passe"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Modifier le mot de passe de l\'interdiction d\'appel"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Impossible de modifier le mot de passe de l\'interdiction d\'appel."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Impossible de modifier le mot de passe de l\'interdiction d\'appel"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Les mots de passe ne concordent pas"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Saisissez un mot de passe à quatre chiffres"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Mot de passe modifié"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmer le mot de passe"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Saisissez un mot de passe"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Paramètres d\'interdiction d\'appel"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Désactiver tous les paramètres d\'interdiction d\'appel ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Le réseau est occupé. Veuillez réessayer plus tard."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Le réseau est saturé. Contactez votre opérateur mobile pour obtenir de l\'aide."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Appel redirigé."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pour utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données mobiles sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pour utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données mobiles et l\'itinérance des données sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorer"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activer la connexion de données"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Désactiver la connexion de données"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Configuré par VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Appel vidéo géré"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Appel Wi-Fi géré"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Provisionnement EAB/Presence effectué"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Données CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activer DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Redémarrer l\'appareil ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Vous devez redémarrer l\'appareil pour modifier ce paramètre."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Redémarrer"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuler"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentation radio mobile"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros autorisés"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"État du service IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"État IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Enregistré"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non enregistré"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Non disponible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Enregistrement IMS : <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE : <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWiFi : <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nAppels vidéo : <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT : <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En service"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hors service"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Appels d\'urgence uniquement"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Signal radio désactivé"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinérance"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sans itinérance"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactif"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sonnerie"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Appel en cours"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Déconnecté"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connexion en cours"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connecté"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendu"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Inconnu"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paquets"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"octets"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Sous-identifiant actuel :"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Sous-identifiant de la carte SIM par défaut pour les données :"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bande passante de téléchargement (kbit/s) :"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bande passante d\'importation (kbit/s) :"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informations de géolocalisation mobiles (obsolètes) :"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration de la chaîne physique LTE :"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Fréquence d\'actualisation des informations mobiles :"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toutes les informations mobiles liées aux mesures :"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Service de données :"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinérance :"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"Code IMEI :"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirection des appels :"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Nombre de réinitialisations PPP depuis le démarrage :"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Réseau actuel :"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Données reçues :"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Service vocal :"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensité du signal :"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"État de l\'appel vocal :"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Données envoyées :"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Message en attente :"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numéro de téléphone :"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Sélectionner une bande radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Type de réseau vocal :"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type de réseau de données :"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Sélectionner l\'identifiant du téléphone"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Définir le type de réseau préféré :"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinguer l\'IPv4 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinguer l\'IPv6 du nom d\'hôte (www.google.com) :"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test du client HTTP :"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Effectuer un test de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC :"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Mise à jour"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualiser"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activer/Désactiver le contrôle DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Infos/paramètres OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Définir le mode de bande radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Chargement de la liste de bandes…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Définir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Échec"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"OK"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informations sur la tablette"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informations sur le téléphone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informations de gestion des comptes opérateur"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Déclencher la gestion des comptes opérateur"</string>
 </resources>
diff --git a/res/values-gl/config.xml b/res/values-gl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-gl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 388a018..61321c8 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Teléfono público"</string>
     <string name="onHold" msgid="6132725550015899006">"En espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensaxe de <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensaxe do operador"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Código USSD en execución..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código MMI cancelado"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TD-SCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Só NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de rede preferido: WCDMA preferido"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de rede preferido: só GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de rede preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de rede preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de rede preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de rede preferido: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de rede preferido: global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de rede preferido: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de rede preferida: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de rede preferido: LTE/TD-SCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de rede preferido: TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de rede preferido: LTE/TD-SCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de rede preferido: só NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de rede preferido: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de rede preferido: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de rede preferido: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de rede preferido: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de rede preferido: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de rede preferido: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de rede preferido: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de rede preferido: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chamando"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rede"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo LTE 4G mellorado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Múltiples categorías"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multicategoría activada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multicategoría desactivada"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (modo recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminando número de marcación fixa..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Eliminouse o número de marcación fixa."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Non se actualizaron os NMF porque escribiches un PIN incorrecto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Non se puido actualizar o NMP porque o número supera os 20 díxitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Non se puido actualizar o NMF porque o número supera os <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> díxitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Non se actualizaron os NMF. O PIN2 era incorrecto ou rexeitouse o número de teléfono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Produciuse un fallo no funcionamento dos NMF."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lendo da tarxeta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Non se pode chamar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non é un número de emerxencia."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Non se pode chamar. Marcar un número de emerxencia."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"As chamadas de emerxencia non están dispoñibles"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Só o propietario do dispositivo pode introducir os códigos PIN ou PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policía"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bombeiros"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chamada RTT (texto en tempo real)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir uso de mensaxes durante unha chamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"A función RTT constitúe unha axuda para todos aqueles emisores de chamadas que padezan xordeira ou outros problemas auditivos, teñan algún trastorno da fala ou necesiten algo máis que a voz para comunicarse.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Máis información&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - As chamadas RTT gárdanse como transcricións de mensaxes\n       &lt;br&gt; - Non se pode utilizar a función RTT nas videochamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: A función RTT non está dispoñible en itinerancia"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desactivado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Si"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Non"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Rexeitar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"O teléfono está no modo de devolución de chamadas de emerxencia"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Ata: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">O teléfono estará no modo de devolución de chamadas de emerxencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\nQueres saír agora?</item>
+      <item quantity="one">O teléfono estará no modo de devolución de chamadas de emerxencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nQueres saír agora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servizo"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Sen configurar&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Desactivouse a restrición de chamadas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Cambiar contrasinal"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Cambiar contrasinal de restrición de chamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Non se puido cambiar o contrasinal de restrición de chamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Non se puido cambiar o contrasinal de restrición de chamadas."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Os contrasinais non coinciden"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introducir un contrasinal con 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Cambiouse o contrasinal"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar contrasinal"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Insire un contrasinal"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configuración de restrición de chamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Queres desactivar a configuración de restrición de chamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A rede está ocupada. Proba a chamar de novo máis tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A rede está conxestionada. Ponte en contacto co teu operador móbil para obter asistencia."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Derivouse a chamada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que os datos móbiles da SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que os datos móbiles e a itinerancia de datos da SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activar conexión de datos"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desactivar conexión de datos"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Fornecemento VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochamadas activadas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chamadas por wifi activadas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB ou presenza fornecidos"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Datos de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Queres reiniciar o dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar o dispositivo para cambiar esta opción"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentación da radio móbil"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver axenda de enderezos da SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fixa"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servizo"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado do servizo de IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado de IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Rexistrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non rexistrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dispoñible"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Non dispoñible"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Rexistro de IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz por LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz por wifi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochamada: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface de UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"En servizo"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fóra de servizo"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Só chamadas de emerxencia"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Desactivar a radio"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Itinerancia"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Non está en itinerancia"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Chamando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chamada en curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectada"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendido"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Descoñecido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Código de identificación secundario actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Código de identificación secundario da SIM de datos predeterminada:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda de descarga (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda de carga (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Información da localización para móbiles (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración de canle física de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de actualización da información para móbiles:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toda a información de medición para móbiles:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servizo de datos:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Itinerancia:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirección da chamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de restablecementos PPP desde o inicio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rede actual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Datos recibidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servizo de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensidade do sinal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado da chamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Datos enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensaxe en espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de teléfono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleccionar banda de radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de rede de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de rede de datos:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleccionar unha guía telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Definir o tipo de rede preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Facer ping ao IPv4 do nome do servidor (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Facer ping ao IPv6 do nome do servidor (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Proba de cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executar proba de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Alternar comprobación de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Información ou configuración específica de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Definir modo de banda de radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Cargando lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Incorrecto"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Correcto"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Información da tableta"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Información do teléfono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Información de aprovisionamento do operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aprovisionamento do operador do activador"</string>
 </resources>
diff --git a/res/values-gu/config.xml b/res/values-gu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-gu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index e468079..2421ac6 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ખાનગી નંબર"</string>
     <string name="payphone" msgid="7936735771836716941">"પેફોન"</string>
     <string name="onHold" msgid="6132725550015899006">"હોલ્ડ પર"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> સંદેશ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"કૅરિઅરનો સંદેશ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI કોડ પ્રારંભ કર્યો"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD કોડ ચાલે છે…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI કોડ રદ કર્યો"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"માત્ર NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"પસંદગીનો નેટવર્ક મોડ: WCDMA પસંદ કરેલ છે"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"પસંદગીનો નેટવર્ક મોડ: ફક્ત GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"પસંદગીનો નેટવર્ક મોડ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"પસંદગીનો નેટવર્ક મોડ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"પસંદગીનો નેટવર્ક મોડ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"પસંદગીનો નેટવર્ક મોડ: વૈશ્વિક"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"પસંદગીનો નેટવર્ક મોડ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"પસંદગીનો નેટવર્ક મોડ: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"પસંદગીનો નેટવર્ક મોડ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"પસંદગીનો નેટવર્ક મોડ: માત્ર NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"પસંદગીનો નેટવર્ક મોડ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/CDME/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"કૉલિંગ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"નેટવર્ક"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"વિસ્તૃત 4G LTE મોડ"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"બહુ-કૅટેગરી"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"બહુ-કૅટેગરી સક્ષમ કરેલ છે"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"બહુ-કૅટેગરી અક્ષમ કરેલ છે"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (સુઝાવ આપેલ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ભલામણ કરેલ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ભલામણ કરેલ)"</string>
     <string name="network_global" msgid="3289646154407617631">"વૈશ્વિક"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ફિક્સ્ડ ડાયલિંગ નંબર કાઢી રહ્યાં છે..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ફિક્સ્ડ ડાયલિંગ નંબર કાઢી નાખ્યો."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN અપડેટ થયો ન હતો કારણ કે તમે ખોટો PIN લખ્યો છે."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDNને 20 અંકને ઓળંગતો હોવાથી અપડેટ કરી શકાયો નથી."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDNમાં <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> કરતા વધુ અંક હોવાથી તેને અપડેટ કરી શકાયો ન હતો."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN અપડેટ થયો ન હતો. PIN2 ખોટો હતો અથવા ફોન નંબર નકારેલ હતો."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ઓપરેશન નિષ્ફળ થયું."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM કાર્ડમાંથી વાંચી રહ્યાં છે…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"કૉલ કરી શકાતો નથી. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> એ કટોકટીનો નંબર નથી."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"કૉલ કરી શકાતો નથી. કટોકટીનો નંબર ડાયલ કરો!"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"કટોકટીમાં કૉલ કરવાની સુવિધા ઉપલબ્ધ નથી"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"માત્ર ડિવાઇસના માલિક જ પિન/PUK કોડ દાખલ કરી શકે છે."</string>
     <string name="police_type_description" msgid="2819533883972081757">"પોલીસ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"એમ્બ્યુલન્સ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"આગ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"રિઅલ-ટાઇમ ટેક્સ્ટ(RTT) કૉલ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"વૉઇસ કૉલ અંતર્ગત સંદેશ મોકલવાની મંજૂરી આપો"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT બહેરા, સાંભળવા અને બોલવામાં મુશ્કેલી પડતી હોય અથવા વૉઇસ કરતાં પણ વધુ કંઈકની જરૂર હોય એવા કૉલરની સહાય કરે છે.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;વધુ જાણો&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT કૉલને સંદેશ ટ્રાન્સક્રિપ્ટ તરીકે સાચવવામાં આવે છે\n       &lt;br&gt; - RTT વીડિઓ કૉલ માટે ઉપલબ્ધ નથી"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"નોંધ: રોમિંગ વખતે RTT ઉપલબ્ધ નથી"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY બંધ"</item>
     <item msgid="1449091874731375214">"TTY સંપૂર્ણ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"હા"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"નહીં"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"છોડી દો"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ફોન ઇમર્જન્સી કૉલબૅક મોડમાં છે"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> સુધી"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ માટે ઇમર્જન્સી કૉલબૅક મોડમાં રહેશે.\nશું તમે હમણાં બહાર નીકળવા માગો છો?</item>
+      <item quantity="other">ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ માટે ઇમર્જન્સી કૉલબૅક મોડમાં રહેશે.\nશું તમે હમણાં બહાર નીકળવા માગો છો?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"સેવા"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"સેટઅપ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;સેટ કરેલ નથી&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"કૉલ બારિંગ નિષ્ક્રિય કરવામાં સફળ રહ્યાં"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"પાસવર્ડ બદલો"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"કૉલ બારિંગનો પાસવર્ડ બદલો"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"કૉલ બારિંગનો પાસવર્ડ બદલી શકાતો નથી."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"કૉલ અવરોધવાનો પાસવર્ડ બદલી શકાતો નથી"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"પાસવર્ડ મેળ ખાતા નથી"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 અંકોનો પાસવર્ડ દાખલ કરો"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"પાસવર્ડ બદલવામાં સફળ રહ્યાં"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"પાસવર્ડની પુષ્ટિ કરો"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"પાસવર્ડ દાખલ કરો"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"કૉલ બારિંગની સેટિંગ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"કૉલ બારિંગની બધી સેટિંગ નિષ્ક્રિય કરીએ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"નેટવર્ક વ્યસ્ત છે. કૃપા કરીને કૉલ કરવાનો પછીથી ફરી પ્રયાસ કરો."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"નેટવર્ક ખૂબ ભરાયેલું છે. સહાય માટે મોબાઇલ ઑપરેટરનો સંપર્ક કરો."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"કૉલ બીજે વાળ્યો."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>નો ઉપયોગ કરવા માટે, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> માટે મોબાઇલ ડેટા ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>નો ઉપયોગ કરવા માટે, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> માટે મોબાઇલ ડેટા અને ડેટા રોમિંગ ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"છોડી દો"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ડેટા કનેક્શન ચાલુ કરો"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ડેટા કનેક્શન બંધ કરો"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTEની જોગવાઈ કરી"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"વીડિયો કૉલિંગની જોગવાઈ કરી"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"વાઇ-ફાઇ કૉલિંગની જોગવાઈ કરી"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ઉપસ્થિતિની જોગવાઈ કરી"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ડેટા"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ચાલુ કરો"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ડિવાઇસ ફરી શરૂ કરીએ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"આ સેટિંગમાં ફેરફાર કરવા માટે તમારા ડિવાઇસને ફરી શરૂ કરો."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ફરી શરૂ કરો"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"રદ કરો"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"મોબાઇલ રેડિયો પાવર"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"સિમમાં સરનામા પુસ્તિકા જુઓ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ફિક્સ્ડ ડાયલિંગ નંબર જુઓ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"સર્વિસ ડાયલિંગ નંબર જુઓ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS સેવા સ્ટેટસ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS સ્ટેટસ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"રજિસ્ટર કરેલો"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"રજિસ્ટર કરેલો નથી"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ઉપલબ્ધ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ઉપલબ્ધ નથી"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS નોંધણી: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE પર વૉઇસ: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nવાઇ-ફાઇ પર વૉઇસ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nવીડિયો કૉલિંગ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ઇન્ટરફેસ: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"સેવામાં"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"કાર્યરત્ નથી"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ફક્ત ઇમર્જન્સી કૉલ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"રેડિયો બંધ કરો"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"રોમિંગ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"રોમિંગ નહીં"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"નિષ્ક્રિય"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"રિંગ વગાડીએ છીએ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"કૉલ ચાલુ છે"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ડિસ્કનેક્ટ કર્યું"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"કનેક્ટ કરી રહ્યાં છીએ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"કનેક્ટેડ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"સસ્પેન્ડ કરી"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"અજાણ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"બાઇટ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"હાલનું subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ડિફૉલ્ટ ડેટા સિમનું SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL બૅન્ડવિડ્થ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL બૅન્ડવિડ્થ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"સેલ સ્થાન માહિતી (ટાળેલ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ભૌતિક ચૅનલની ગોઠવણી:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"સેલ માહિતી રિફ્રેશ થવાનો રેટ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"તમામ સેલ માપ માહિતી:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ડેટા સેવા:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"રોમિંગ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"કૉલ રીડાયરેક્ટ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"બૂટ કર્યા સુધીમાં PPP ફરીથી સેટ કરોની સંખ્યા:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"વર્તમાન નેટવર્ક:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ડેટા પ્રાપ્ત થયો:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"વૉઇસ સેવા:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"સિગ્નલની પ્રબળતા:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"વૉઇસ કૉલનું સ્ટેટસ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ડેટા મોકલ્યો:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"સંદેશ ઉપલબ્ધ છે:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ફોન નંબર:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"રેડિયો બૅન્ડ પસંદ કરો"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"વૉઇસ નેટવર્ક પ્રકાર:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ડેટા નેટવર્કનો પ્રકાર:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ફોનની અનુક્રમણિકા પસંદ કરો"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"પસંદગીનો નેટવર્ક પ્રકાર સેટ કરો:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"હોસ્ટનું નામ પિંગ કરો(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"હોસ્ટનું નામ પિંગ કરો(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ક્લાઇન્ટ પરીક્ષણ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"પિંગ પરીક્ષણ શરૂ કરો"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"અપડેટ કરો"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"રિફ્રેશ કરો"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS તપાસ ટૉગલ કરો"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-વિશિષ્ટ માહિતી/સેટિંગ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"રેડિયો બૅન્ડ મોડ સેટ કરો"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"બૅન્ડની સૂચિ લોડ કરી રહ્યું છે…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"સેટ કરો"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"અસફળ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"સફળ થયાં"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ટૅબ્લેટ વિશે માહિતી"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ફોનની માહિતી"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"કૅરિઅરની જોગવાઈ વિશે માહિતી"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"કૅરિઅરની જોગવાઈ ટ્રિગર કરો"</string>
 </resources>
diff --git a/res/values-h500dp/dimens.xml b/res/values-h500dp/dimens.xml
index 2c7c797..d74f0a1 100644
--- a/res/values-h500dp/dimens.xml
+++ b/res/values-h500dp/dimens.xml
@@ -16,5 +16,5 @@
   -->
 
 <resources>
-    <dimen name="dialpad_bottom_padding">36dp</dimen>
+    <dimen name="dialpad_bottom_padding">16dp</dimen>
 </resources>
\ No newline at end of file
diff --git a/res/values-hi/config.xml b/res/values-hi/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hi/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index f7d50da..96aa5f0 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"निजी नंबर"</string>
     <string name="payphone" msgid="7936735771836716941">"पे-फ़ोन"</string>
     <string name="onHold" msgid="6132725550015899006">"होल्ड पर"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> मैसेज"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी का मैसेज"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI कोड प्रारंभ किया गया"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD कोड चल रहा है…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI कोड रद्द किया गया"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"सिर्फ़ NR मोड"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"पसंदीदा नेटवर्क मोड: WCDMA को प्राथमिकता"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"पसंदीदा नेटवर्क मोड: केवल GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"पसंदीदा नेटवर्क मोड: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"पसंदीदा नेटवर्क मोड: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"पसंदीदा नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"पसंदीदा नेटवर्क मोड: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"पसंदीदा नेटवर्क मोड: वैश्विक"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"पसंदीदा नेटवर्क मोड: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"पसंदीदा नेटवर्क मोड: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"पसंदीदा नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"पसंदीदा नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"पसंदीदा नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"पसंदीदा नेटवर्क मोड: सिर्फ़ NR मोड"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"पसंदीदा नेटवर्क मोड: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"पसंदीदा नेटवर्क मोड: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"पसंदीदा नेटवर्क मोड: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"पसंदीदा नेटवर्क मोड: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"पसंदीदा नेटवर्क मोड: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"पसंदीदा नेटवर्क मोड: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"कॉलिंग"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"नेटवर्क"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"बेहतर 4G LTE मोड"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"बहु-श्रेणी"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"बहु-श्रेणी सक्षम की गई"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"बहु-श्रेणी अक्षम की गई"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (सुझाए गए)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (सुझाये गये)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (सुझाये गये)"</string>
     <string name="network_global" msgid="3289646154407617631">"वैश्विक"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"फ़िक्स्ड डायलिंग नंबर हटा रहा है..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"फ़िक्स्ड डायलिंग नंबर हटाया गया."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN पे नई जानकारी नहीं है क्योंकि आपने गलत पिन लिखा है."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN अपडेट नहीं किया जा सका, क्योंकि नंबर में 20 से ज़्यादा अंक हैं."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN अपडेट नहीं किया जा सका, क्योंकि नंबर में <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> से ज़्यादा अंक हैं."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN पे नई जानकारी नहीं है. PIN2 गलत था, या फ़ोन नंबर नामंजूर था."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN की कार्यवाही विफल रही."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"सिम कार्ड से पढ़ रहा है…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"कॉल नहीं किया जा सकता. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> एक आपातकालीन नंबर नहीं है."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"कॉल नहीं किया जा सकता. आपातकालीन नबर डायल करें."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"आपातकालीन कॉल करने की सुविधा उपलब्ध नहीं है"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"सिर्फ़ डिवाइस का मालिक ही PIN/PUK कोड दर्ज कर सकता है."</string>
     <string name="police_type_description" msgid="2819533883972081757">"पुलिस"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"एम्बुलेंस"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"आग"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"(आरटीटी) कॉल से रीयल-टाइम में मैसेज भेजें"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"वॉइस कॉल में मैसेज भेजने की अनुमति दें"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"आरटीटी उन कॉल करने वालों की मदद करता है, जो सुन नहीं सकते हैं, ऊंचा सुनते हैं, जिन्हें बोलने में दिक्कत है या जिनके लिए सिर्फ़ आवाज़ काफ़ी नहीं होती.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ज़्यादा  जानें&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - आरटीटी कॉल, मैसेज लेख के रूप में सेव किए जाते हैं\n       &lt;br&gt; - वीडियो कॉल के लिए आरटीटी उपलब्ध नहीं है"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ध्यान दें: आरटीटी (रीयल-टाइम में मैसेज भेजना) की सुविधा रोमिंग के दौरान नहीं दी जाती"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY बंद"</item>
     <item msgid="1449091874731375214">"TTY पूरा हुआ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"हां"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"नहीं"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"खारिज करें"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"फ़ोन आपातकालीन कॉलबैक मोड में है"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> तक"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट के लिए आपातकालीन कॉलबैक मोड में रहेगा.\nक्या आप अभी बाहर निकलना चाहते हैं?</item>
+      <item quantity="other">फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट के लिए आपातकालीन कॉलबैक मोड में रहेगा.\nक्या आप अभी बाहर निकलना चाहते हैं?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"सेवा"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;सेट नहीं है&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"कॉल रोकें सुविधा निष्क्रिय की गई"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"पासवर्ड बदलें"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"कॉल रोकें सुविधा का पासवर्ड बदलें"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"कॉल रोकें सुविधा का पासवर्ड बदला नहीं जा सकता."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"कॉल रोकने की सुविधा का पासवर्ड बदला नहीं जा सकता"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"पासवर्ड मेल नहीं खाते"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 संख्याओं वाला एक पासवर्ड डालें"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"पासवर्ड बदल दिया गया"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"पासवर्ड की पुष्टि करें"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"पासवर्ड डालें"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"कॉल रोकें सुविधा की सेटिंग"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"कॉल रोकें सुविधा की सभी सेटिंग निष्क्रिय करें?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"नेटवर्क व्यस्त है. कृपया बाद में दोबारा कॉल करें."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"नेटवर्क व्यस्त है. मदद के लिए अपने मोबाइल ऑपरेटर से संपर्क करें."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"कॉल दूसरे नंबर पर भेजे जाने के बजाय खुद को आ गया."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> का उपयोग करने के लिए पक्का करें कि सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> का डेटा चालू है. आप मोबाइल नेटवर्क सेटिंग में जाकर इसे बदल सकते हैं."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> का उपयोग करने के लिए पक्का करें कि सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> का मोबाइल डेटा और डेटा रोमिंग चालू हैं. आप मोबाइल नेटवर्क सेटिंग में जाकर इन्हें बदल सकते हैं."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"खारिज करें"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"डेटा कनेक्शन चालू करें"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"डेटा कनेक्शन बंद करें"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE काम कर रहा है"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"वीडियो कॉलिंग की सुविधा काम कर रही है"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"वाई-फ़ाई कॉलिंग की सुविधा काम कर रही है"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"ईएएबी/मौजूदगी सुविधा काम कर रही है"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"सीबीआरएस डेटा"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"डीएसडीएस चालू करें"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"डिवाइस रीस्टार्ट करना चाहते हैं?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"इस सेटिंग को बदलने के लिए आपको अपना डिवाइस रीस्टार्ट करना होगा."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"रीस्टार्ट करें"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द करें"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडियो पावर"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम में संपर्कों के पते की सूची देखें"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"फ़िक्स्ड डायलिंग नंबर देखें"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवा के डायलिंग नंबर देखें"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"आईएमएस की सेवा की स्थिति"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"आईएमएस की स्थिति"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"रजिस्टर किया गया"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"रजिस्टर नहीं किया हुआ है"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"उपलब्ध है"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"उपलब्ध नहीं है"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"आईएमएस रजिस्ट्रेशन: <xliff:g id="STATUS">%1$s</xliff:g>\nवॉइस ओवर एलटीई: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nवॉइस ओवर वाई-फ़ाई: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nवीडियो कॉलिंग: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nयूटी इंटरफ़ेस: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"सेवा में है"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"सेवा में नहीं"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"सिर्फ़ आपातकालीन कॉल"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"रेडियो बंद"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"रोमिंग"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"रोमिंग में नहीं है"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"इस्तेमाल नहीं किया जा रहा है"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"घंटी बज रही है"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"कॉल चल रहा है"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"डिसकनेक्ट किया गया"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"कनेक्ट हो रहा है"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"कनेक्ट किया गया"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"थोड़ी देर के लिए रोक लगी है"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"अज्ञात"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"बाइट"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"एलएसी"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"सीआईडी"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"मौजूदा सब-आईडी:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"डिफ़ॉल्ट डेटा सिम का सब-आईडी:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"डीएल बैंडविड्थ (केबीपीएस):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"यूएल बैंडविड्थ (केबीपीएस):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेल की जगह की जानकारी (रोकी गयी है):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"एलटीई की फ़िज़िकल चैनल कॉन्फ़िगरेशन:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेल की जानकारी रीफ़्रेश होने की दर:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सभी सेल के माप की पूरी जानकारी:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"डेटा सेवा:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"रोमिंग:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"कॉल को दूसरे नंबर पर भेजें:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"चालू करने के बाद से पीपीपी रीसेट की संख्या:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"मौजूदा नेटवर्क:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"मिलने वाला डेटा :"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice की सेवा:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"सिग्नल कितना अच्छा है:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice कॉल की स्थिति:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"भेजा गया डेटा :"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"मैसेज वेटिंग:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"फ़ोन नंबर:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"रेडियो का बैंड चुनें"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice के नेटवर्क प्रकार:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"डेटा नेटवर्क प्रकार:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"फ़ोन इंडेक्स चुनें"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"पसंदीदा नेटवर्क प्रकार सेट करें:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"होस्टनाम(www.google.com) IPv4 पिंग करें:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"होस्टनाम(www.google.com) IPv6 पिंग करें:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"एचटीटीपी क्लाइंट जांच:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"पिंग जांच चलाएं"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"एसएमएससी:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"अपडेट करें"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"रीफ़्रेश करें"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"डीएनएस जांच टॉगल करें"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ओईएम-खास जानकारी/सेटिंग"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"\'रेडियो बैंड\' मोड सेट करें"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"बैंड सूची लोड की जा रही है…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"सेट करें"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"\'बैंड मोड\' चालू नहीं हो सका"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"\'बैंड मोड\' चालू हो गया"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"टैबलेट की जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"फ़ोन की जानकारी"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्रावधान की जानकारी"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्रावधान चालू करें"</string>
 </resources>
diff --git a/res/values-hr/config.xml b/res/values-hr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 5e74378..07e4e80 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatni broj"</string>
     <string name="payphone" msgid="7936735771836716941">"Javna telefonska govornica"</string>
     <string name="onHold" msgid="6132725550015899006">"Na čekanju"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> – poruka"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Poruka operatera"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Pokrenut je MMI kôd"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Pokrenut je USSD kôd…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Otkazan je MMI kôd"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Način željene mreže: Preferirano WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Način željene mreže: Samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferirani mrežni način: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferirani mrežni način: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferirani mrežni način: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preporučeni mrežni način: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferirani mrežni način: globalni"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferirani mrežni način: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferirani način mreže: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preporučeni mrežni način: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preporučeni mrežni način: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preporučeni mrežni način: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preporučeni mrežni način: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preporučeni mrežni način: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preporučeni mrežni način: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preporučeni mrežni način: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preporučeni mrežni način: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preporučeni mrežni način: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preporučeni mrežni način: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preporučeni mrežni način: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preporučeni mrežni način: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preporučeni mrežni način: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preporučeni mrežni način: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Pozivanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mreža"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Poboljšan 4G LTE način"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Višestruka kategorija"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Omogućena je višestruka kategorija"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Onemogućena je višestruka kategorija"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (preporučeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (preporučeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (preporučeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje broja za fiksno biranje…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Izbrisan je broj za fiksno biranje."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN nije ažuriran jer ste upisali pogrešan PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN nije ažuriran jer broj premašuje 20 znamenki."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN nije ažuriran jer broj premašuje sljedeći broj znamenki: <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nije ažuriran. PIN2 nije točan ili je telefonski broj odbijen."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operacija FDN nije uspjela."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Čitanje sa SIM kartice…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Pozivanje nije moguće. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj hitne službe."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Pozivanje nije moguće. Nazovite broj hitne službe."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hitni pozivi nisu dostupni"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo vlasnik uređaja može unijeti kodove PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Hitna pomoć"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vatrogasci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT (tekst u stvarnom vremenu) poziv"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Omogućavanje slanja poruka u glasovnom pozivu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT pomaže pozivateljima koji su gluhi, imaju oštećenje sluha, govornu manu ili im treba više od samo glasa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saznajte više&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT pozivi spremaju se kao prijepis poruke\n       &lt;br&gt; – RTT nije dostupan za videopozive"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Napomena: RTT nije dostupan u roamingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Isključen je TTY"</item>
     <item msgid="1449091874731375214">"TTY je pun"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Odbaci"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je u načinu rada hitnog povratnog poziva"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minutu.\nŽelite li sada izaći?</item>
+      <item quantity="few">Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minute.\nŽelite li sada izaći?</item>
+      <item quantity="other">Telefon će biti u načinu rada hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minuta.\nŽelite li sada izaći?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Usluga"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Postavljanje"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nije postavljeno&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zabrana poziva deaktivirana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Promjena zaporke"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Promjena zaporke za zabranu poziva"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Zaporka za zabranu poziva ne može se promijeniti."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Zaporka za zabranu poziva ne može se promijeniti"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Zaporke se ne podudaraju"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Unesite zaporku s 4 brojke"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Zaporka promijenjena"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrda zaporke"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Unesite zaporku"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Postavke za zabranu poziva"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Želite li deaktivirati sve postavke za zabranu poziva?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mreža je zauzeta. Pokušajte ponovno uputiti poziv kasnije."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mreža je zauzeta. Za pomoć se obratite svom mobilnom operateru."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Poziv odbačen."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li mobilni podaci za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li mobilni podaci i roaming podataka za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Odbaci"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogući podatkovnu vezu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogući podatkovnu vezu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE omogućen"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Pružena usluga videopoziva"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Pružena usluga poziva putem Wi-Fija"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Pruža se usluga EAB-a/prisutnosti"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Podaci CBRS-a"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogući DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Ponovo pokrenuti?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ponovo pokrenite uređaj da biste promijenili tu postavku."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Ponovno pokretanje"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Odustani"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Snaga mobilnog radija"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik SIM-a"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status usluge IMS-a"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS-a"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrirano"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niste registrirani"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostupno"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nije dostupno"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registracija IMS-a: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideopozivi: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT sučelje: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Upotrebljava se"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne radi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo hitni pozivi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio je isključen"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez roaminga"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"U mirovanju"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvonjenje"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Razgovor u tijeku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Nije povezano"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Povezivanje"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Obustavljeno"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nepoznato"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajtovi"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Trenutačni SUBID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SUBID zadanog SIM-a za podatkovni promet:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusnost (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusnost (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji ćelije (obustavljeno):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Stopa osvježavanja informacija u ćeliji:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije ćelija o mjerenju:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Podatkovna usluga:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmjeravanje poziva:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Broj PPP poništavanja od pokretanja:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Trenutačna mreža:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Primljeni podaci:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Glasovna usluga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jačina signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status glasovnog poziva:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Podaci poslani:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Poruka na čekanju:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonski broj:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Odaberite radijsku frekvenciju"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Vrsta glasovne mreže:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Vrsta podatkovne mreže:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Odaberite telefonski indeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Postavite željenu vrstu mreže:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinganje naziva hosta (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinganje naziva hosta (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test HTTP klijenta:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pokreni ping test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ažuriraj"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osvježi"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Uključi/isključi provjeru DNS-a"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacije/postavke koje se posebno odnose na OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Postavi način radijske frekvencije"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Učitavanje popisa frekvencija…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Postavi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neuspješno"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspješno"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacije o tabletnom uređaju"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacije o uslugama mobilnog operatera"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Pokretanje usluga mobilnog operatera"</string>
 </resources>
diff --git a/res/values-hu/config.xml b/res/values-hu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 47b102f..f69e5b1 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Magántelefonszám"</string>
     <string name="payphone" msgid="7936735771836716941">"Nyilvános telefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Tartásban"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-üzenet"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Szolgáltatói üzenet"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kód elindítva"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kód futtatása..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kód megszakítva"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Csak NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferált hálózati mód: preferált WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferált hálózati mód: csak GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferált hálózati mód: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferált hálózati mód: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferált hálózati mód: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Előnyben részesített hálózati mód: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferált hálózati mód: globális"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferált hálózati mód: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Előnyben részesített hálózati mód: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferált hálózati mód: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferált hálózati mód: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferált hálózati mód: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Előnyben részesített hálózati mód: csak NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Előnyben részesített hálózati mód: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Előnyben részesített hálózati mód: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Előnyben részesített hálózati mód: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Előnyben részesített hálózati mód: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Előnyben részesített hálózati mód: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Előnyben részesített hálózati mód: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Hívás"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Hálózat"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Javított 4G LTE mód"</string>
@@ -248,16 +273,16 @@
     <string name="data_enabled" msgid="22525832097434368">"Adatok engedélyezése"</string>
     <string name="data_enable_summary" msgid="696860063456536557">"Adatforgalom engedélyezése"</string>
     <string name="dialog_alert_title" msgid="5260471806940268478">"Figyelem"</string>
-    <string name="roaming" msgid="1576180772877858949">"Barangolás"</string>
-    <string name="roaming_enable" msgid="6853685214521494819">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
-    <string name="roaming_disable" msgid="8856224638624592681">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
+    <string name="roaming" msgid="1576180772877858949">"Roaming"</string>
+    <string name="roaming_enable" msgid="6853685214521494819">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
+    <string name="roaming_disable" msgid="8856224638624592681">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Az adatbarangolás ki van kapcsolva. Koppintson a bekapcsolásához."</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"A szolgáltató adatroamingdíjat számíthat fel. Koppintson a módosításhoz."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Nincs mobiladat-kapcsolat"</string>
     <string name="roaming_on_notification_title" msgid="7451473196411559173">"Az adatroaming be van kapcsolva"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"Lehet, hogy jelentős összeget számítanak fel érte."</string>
     <string name="roaming_check_price_warning" msgid="8212484083990570215">"Az árakat a szolgáltatótól tudhatja meg."</string>
-    <string name="roaming_alert_title" msgid="5689615818220960940">"Engedélyezi az adatbarangolást?"</string>
+    <string name="roaming_alert_title" msgid="5689615818220960940">"Engedélyezi az adatroamingot?"</string>
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"Korlátozott SIM-funkció"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"A(z) <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> szám használatakor előfordulhat, hogy a(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-hívások és az adatszolgáltatások nem működnek."</string>
     <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Másik SIM esetén lehet, hogy a(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-hívások és -adatszolgáltatások nem működnek."</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Több kategória"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Több kategória engedélyezve"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Több kategória letiltva"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ajánlott)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (javasolt)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (javasolt)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globális"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Fix hívószám törlése..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"A fix hívószám törölve."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"A fix hívószám nincs frissítve, mert hibás PIN kódot írt be."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Az FDN nem lett frissítve, mert az érték több mint 20 számjegyből áll."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Az FDN nem frissült, mert az érték több mint <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> számjegyből áll."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"A fix hívószám nem lett frissítve. Hibás a PIN2 kód, vagy a telefonszámot elutasították."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Sikertelen a fix hívószámmal végzett művelet."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Beolvasás a SIM kártyáról..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"A hívás sikertelen. A(z) <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> szám nem segélyhívószám."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"A hívás sikertelen. Tárcsázzon segélyhívószámot."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"A segélyhívási funkció nem áll rendelkezésre"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Csak az eszköz tulajdonosa adhatja meg a PIN-kódot és a PUK-kódot."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Rendőrség"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Mentők"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Tűzoltóság"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Valós idejű szöveg (RTT) típusú hívás"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Üzenetküldés engedélyezése a hangalapú hívásokban"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Az RTT funkció a siket, hallássérült, beszédzavaros vagy a hangalapú kommunikáción kívül más kommunikációt is igénylő hívóknak lehet segítségére.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;További információ.&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Az RTT-hívásokat a rendszer üzenetátiratként menti.\n       &lt;br&gt; - Az RTT funkció nem áll rendelkezésre videohívásokban."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Megjegyzés: az RTT nem áll rendelkezésre roaming közben"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY kikapcsolva"</item>
     <item msgid="1449091874731375214">"Teljes TTY"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Igen"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nem"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Elvetés"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"A telefon sürgősségi visszahívás módban van."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Eddig: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">A telefon <xliff:g id="COUNT_1">%s</xliff:g> percig sürgősségi visszahívás módban lesz.\nKilép?</item>
+      <item quantity="one">A telefon <xliff:g id="COUNT_0">%s</xliff:g> percig sürgősségi visszahívás módban lesz.\nKilép?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Szolgáltatás"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Beállítás"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nincs megadva&gt;"</string>
@@ -735,20 +769,20 @@
     <string name="call_barring_baoic_enabled" msgid="1203758092657630123">"Megszünteti a kimenő nemzetközi hívások letiltását?"</string>
     <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"Letiltja a kimenő nemzetközi hívásokat?"</string>
     <string name="call_barring_baoicr" msgid="8566167764432343487">"Kimenő hívások nemzetközi barangoláskor"</string>
-    <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Megszünteti a nemzetközi barangolás során kimenő hívások letiltását?"</string>
+    <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Megszünteti a nemzetközi roaming során kimenő hívások letiltását?"</string>
     <string name="call_barring_baoicr_disabled" msgid="172010175248142831">"Letiltja a kimenő hívásokat nemzetközi barangoláskor?"</string>
     <string name="call_barring_baic" msgid="7941393541678658566">"Minden bejövő hívás"</string>
     <string name="call_barring_baic_enabled" msgid="4357332358020337470">"Megszünteti az összes bejövő hívás letiltását?"</string>
     <string name="call_barring_baic_disabled" msgid="2355945245938240958">"Letiltja az összes bejövő hívást?"</string>
     <string name="call_barring_baicr" msgid="8712249337313034226">"Bejövő hívások nemzetközi barangoláskor"</string>
-    <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Megszünteti a nemzetközi barangolás során bejövő összes hívás letiltását?"</string>
+    <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Megszünteti a nemzetközi roaming során bejövő összes hívás letiltását?"</string>
     <string name="call_barring_baicr_disabled" msgid="3488129262744027262">"Letiltja a bejövő hívásokat nemzetközi barangoláskor?"</string>
     <string name="call_barring_deactivate_all" msgid="7837931580047157328">"Az összes deaktiválása"</string>
     <string name="call_barring_deactivate_all_description" msgid="4474119585042121604">"Az összes híváskorlátozási beállítás deaktiválása"</string>
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Híváskorlátozás deaktiválva"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Jelszó módosítása"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Híváskorlátozási jelszó módosítása"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nem sikerült módosítani a híváskorlátozási jelszót."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nem sikerült módosítani a híváskorlátozási jelszót"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"A jelszavak nem egyeznek"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Adjon meg egy 4 számból álló jelszót"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Jelszó módosítva"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Jelszó megerősítése"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Adja meg a jelszót"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Híváskorlátozási beállítások"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktiválja az összes híváskorlátozási beállítást?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A hálózat túlterhelt. Próbálkozzon a hívással később."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A hálózat túlterhelt. Ha segítségre van szüksége, forduljon a mobilszolgáltatóhoz."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Hívás átirányítva egy másik számra."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"A(z) <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat be van kapcsolva a SIM-kártyán (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>). Ezt a mobilhálózat beállításainál módosíthatja."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"A(z) <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat és az adatbarangolás be van kapcsolva a SIM-kártyán (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>). Ezt a mobilhálózat beállításainál módosíthatja."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Elvetés"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Adatkapcsolat engedélyezése"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Adatkapcsolat letiltása"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-jelző"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videohívás beütemezve"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-hívás beütemezve"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Engedélyezett jelenlét"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-adatok"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS engedélyezése"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Újraindítja az eszközt?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"A beállítás módosításához újra kell indítania az eszközt."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Újraindítás"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Mégse"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil rádióadó teljesítménye"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-kártya telefonkönyvének megtekintése"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Fix hívószámok megtekintése"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Szolgáltatásszámok megtekintése"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-szolgáltatás állapota"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-állapot"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Regisztrált"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nem regisztrált"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Rendelkezésre áll"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nem áll rendelkezésre"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-regisztráció: <xliff:g id="STATUS">%1$s</xliff:g>\nHanghívás LTE-adatkapcsolaton keresztül: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHanghívás Wi-Fi-kapcsolaton keresztül: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideohívás: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-felület: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Szolgáltatás"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Nem működik"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Csak segélyhívások"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádió kikapcsolva"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nem barangol"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Tétlen"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Csörgés"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Hívás folyamatban"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Leválasztva"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Csatlakozás"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Csatlakoztatva"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Felfüggesztve"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ismeretlen"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"csomag"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bájt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Jelenlegi alazonosító:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Alapértelmezett adatok SIM-alazonosítója:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Letöltési sávszélesség (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Feltöltési sávszélesség (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobilos helyadatok (megszűnt):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fizikai csatorna konfigurációja:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Cellainformáció frissítési gyakorisága:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Minden cellamérési információ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Adatszolgáltatás:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Hívásátirányítás:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP-visszaállítások száma a legutolsó rendszerindítás óta:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Jelenlegi hálózat:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Fogadott adatok:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Hangszolgáltatás:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Jelerősség:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Hanghívás állapota:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Elküldött adatok:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Üzenetek várakozása:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonszám:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Rádióhullámsáv kiválasztása"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Hanghálózat típusa:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Adathálózat típusa:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefonkönyv kiválasztása"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Preferált hálózattípus beállítása:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pingelt gazdagépnév (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pingelt gazdagépnév (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-kliens tesztje:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingteszt futtatása"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Frissítés"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Frissítés"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-ellenőrzés váltása"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifikus adatok és beállítások:"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Rádióhullámsáv mód beállítása"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Sávlista betöltése…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Beállítás"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Sikertelen"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Sikeres"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Táblagép adatai"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon adatai"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Információ a szolgáltatói ellátásról"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Szolgáltatói ellátás aktiválása"</string>
 </resources>
diff --git a/res/values-hy/config.xml b/res/values-hy/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-hy/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 677b862..fba555f 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Գաղտնի համար"</string>
     <string name="payphone" msgid="7936735771836716941">"Բջջային տերմինալ"</string>
     <string name="onHold" msgid="6132725550015899006">"Սպասում"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Հաղորդագրություն (<xliff:g id="MMICARRIER">%s</xliff:g>)"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Հաղորդագրություն օպերատորից"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI կոդը մեկնարկել է"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD կոդը գործարկվում է..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI կոդը չեղարկված է"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Միայն NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Նախընտրելի ցանցի ռեժիմը՝ WCDMA նախընտրելի"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Նախընտրելի ցանցի ռեժիմը՝ միայն GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Նախընտրելի ցանցի ռեժիմը՝ LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Նախընտրելի ցանցի ռեժիմը՝ GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Նախընտրելի ցանցի ռեժիմը՝ CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Ցանցի նախընտրելի ռեժիմը՝ LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Նախընտրելի ցանցի ռեժիմը՝ Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Նախընտրելի ցանցի ռեժիմը՝ LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Ցանցի նախընտրելի ռեժիմը՝ LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Ցանցի նախընտրելի ռեժիմը՝ TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Ցանցի նախընտրելի ռեժիմը՝ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Ցանցի նախընտրելի ռեժիմը՝ միայն NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Ցանցի նախընտրելի ռեժիմը՝ NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Զանգ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Ցանց"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Ընդլայնված 4G LTE ռեժիմ"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Բազմակարգ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Բազմակարգը միացված է"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Բազմակարգն անջատված է"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (խորհուրդ է տրվում)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (խորհուրդ է տրվում)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (խորհուրդ է տրվում)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Ջնջվում է ամրակայված հեռախոսահամարը ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Թույլատրված հեռախոսահամարը ջնջված է:"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN-ը չի թարմացվել, քանի որ դուք մուտքագրել եք սխալ PIN:"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN-ը չթարմացվեց, քանի որ համարը գերազանցում է 20 նիշը:"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN-ը չթարմացվեց, քանի որ համարը գերազանցում է <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> նիշը:"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-ը չի թարմացվել: PIN2-ը սխալ է կամ հեռախոսահամարը մերժված է:"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN գործողությունը ձախողվեց:"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Ընթերցում է SIM քարտից..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Հնարավոր չէ զանգել: <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> համարը արտակարգ իրավիճակի համար չէ:"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Հնարավոր չէ զանգել: Հավաքեք արտակարգ իրավիճակի որևէ համար:"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Շտապ կանչերը հասանելի չեն"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Միայն սարքի սեփականատերը կարող է մուտքագրել PIN/PUK կոդերը:"</string>
     <string name="police_type_description" msgid="2819533883972081757">"Ոստիկանություն"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Շտապ օգնություն"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Հրշեջ ծառայություն"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT զանգ (հաղորդագրություն զանգի միջոցով)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Թույլատրել հաղորդագրությունների ուղարկումն ու ստացումը զանգի միջոցով"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT-ն օգնում է այն բաժանորդներին, ովքեր լսողության և խոսքի դժվարություններ ունեն, կամ ովքեր լոկ ձայնով չեն բավարարվում:&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Իմանալ ավելին&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT զանգերը պահվում են որպես հաղորդագրության տառադրումներ\n       &lt;br&gt; – RTT-ն հասանելի չէ տեսազանգի ժամանակ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"RTT գործառույթը հասանելի չէ ռոումինգում"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY-ն անջատված է"</item>
     <item msgid="1449091874731375214">"Լիարժեք TTY"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Այո"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ոչ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Անտեսել"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Հեռախոսը շտապ հետզանգի ռեժիմում է"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Մինչև <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Շտապ հետզանգի ռեժիմը կգործի դեռ <xliff:g id="COUNT_1">%s</xliff:g> րոպե։\nԴո՞ւրս գալ։</item>
+      <item quantity="other">Շտապ հետզանգի ռեժիմը կգործի դեռ <xliff:g id="COUNT_1">%s</xliff:g> րոպե։\nԴո՞ւրս գալ։</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Ծառայություն"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Կարգավորում"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Նշված չէ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Զանգերի արգելափակման կարգավորումներն անջատվեցին"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Փոխել գաղտնաբառը"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Փոխել զանգերի արգելափակման գաղտնաբառը"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Չհաջողվեց փոխել զանգերի արգելափակման գաղտնաբառը:"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Չհաջողվեց փոխել զանգերի արգելափակման գաղտնաբառը"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Գաղտնաբառերը չեն համընկնում"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Մուտքագրեք 4 թվից բաղկացած գաղտնաբառ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Գաղտնաբառը փոխվեց"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Հաստատել գաղտնաբառը"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Մուտքագրեք գաղտնաբառը"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Զանգերի արգելափակման կարգավորումներ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Անջատե՞լ զանգերի արգելափակման բոլոր կարգավորումները"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Ցանցը զբաղված է: Ավելի ուշ նորից փորձեք զանգել:"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Ցանցը ծանրաբեռնված է: Օգնության համար դիմեք ձեր բջջային օպերատորին:"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Զանգը վերահասցեավորվեց:"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> քարտի համար բջջային ինտերնետը միացված է: Սա կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> քարտի համար բջջային ինտերնետը և ինտերնետը ռոումինգում միացված են: Սրանք կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Փակել"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Միացնել տվյալների կապը"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Անջատել տվյալների կապը"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-ի տրամադրում"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Տեսազանգերի նախապատրաստում"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi զանգերի նախապատրաստում"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ներկայության տրամադրում"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS տվյալներ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Միացրեք DSDS-ը"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Վերագործարկե՞լ սարքը"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Վերագործարկեք սարքը՝ այս կարգավորումը փոխելու համար:"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Վերագործարկել"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Չեղարկել"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Բջջային ռադիոազդանշանի հզորությունը"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Դիտել SIM քարտի հասցեագիրքը"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Տեսնել ամրակցված հեռախոսահամարները"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Տեսնել ծառայությունների հեռախոսահամարները"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ծառայության կարգավիճակը"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-ի կարգավիճակը"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Գրանցված է"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Գրանցված չէ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Հասանելի"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Հասանելի չէ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-ի գրանցում՝ <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE՝ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over WiFi՝ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nՏեսազանգ՝ <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT միջերես՝ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Շահագործման մեջ է"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Չի շահագործվում"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Միայն շտապ կանչեր"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Ռադիոն անջատված է"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Ռոումինգ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ռոումինգում չէ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Անգործուն ռեժիմ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Զանգ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Զանգն ընթանում է"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Անջատված է"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Միացում"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Միացված է"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Անջատված է"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Անհայտ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"բայթ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Ընթացիկ հավելյալ ID՝"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SIM քարտի հավելյալ ID կանխադրված բջջային ինտերնետի համար՝"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL թողունակությունը (կբ/վ)՝"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL թողունակությունը (կբ/վ)՝"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Բջիջի տեղադրության տվյալներ (հնացած)՝"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ֆիզիկական ալիքի կարգավորում՝"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Բջիջի տվյալների թարմացման հաճախականությունը՝"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Բոլոր բջիջների չափման տվյալները՝"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Տվյալների ծառայություն՝"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Ռոումինգ`"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Զանգի վերահասցեավորում՝"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP վերակայումների քանակը նախորդ բեռնումից հետո`"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Ընթացիկ ցանցը`"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Ստացված տվյալները`"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ձայնային ծառայություն՝"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Ազդանշանի հզորությունը`"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Ձայնային զանգի կարգավիճակը՝"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Ուղարկված տվյալները՝"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Հաղորդագրության սպասում՝"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Հեռախոսահամար`"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Ընտրել հաճախությունների շերտը"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Ձայնային ցանցի տեսակը՝"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Տվյալների ցանցի տեսակը՝"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Ընտրեք հեռախոսային կոդ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Կարգավորեք ցանկալի ցանցի տեսակը՝"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Փինգ հանգույցի անուն(www.google.com) IPv4՝"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Փինգ հանգույցի անուն(www.google.com) IPv6՝"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP սպասառուի թեստ՝"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Գործարկել փինգ թեստը"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC`"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Թարմացնել"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Թարմացնել"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Փոխարկել DNS ստուգումը"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-հատուկ տեղեկություններ/կարգավորումներ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Կարգավորել հաճախությունների շերտի ռեժիմը"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Շերտերի ցուցակը բեռնվում է…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Կարգավորել"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Խափանում"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Հաջող"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Պլանշետի տեղեկություններ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Հեռախոսի տեղեկություններ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Օպերատորի նախապատրաստման տվյալներ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Գործարկել օպերատորի նախապատրաստումը"</string>
 </resources>
diff --git a/res/values-in/config.xml b/res/values-in/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-in/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index eb4871d..e6eddfc 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Nomor pribadi"</string>
     <string name="payphone" msgid="7936735771836716941">"Telepon Umum"</string>
     <string name="onHold" msgid="6132725550015899006">"Ditangguhkan"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Message"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Pesan Operator"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kode MMI dimulai"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kode USSD sedang berjalan…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kode MMI dibatalkan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Khusus NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mode jaringan pilihan: WCDMA lebih disukai"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mode jaringan pilihan: GSM saja"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mode jaringan yang disukai: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mode jaringan yang disukai: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mode jaringan yang disukai: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mode jaringan pilihan: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mode jaringan yang disukai: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mode jaringan yang disukai: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mode jaringan pilihan: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mode jaringan pilihan: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mode jaringan pilihan: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mode jaringan pilihan: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mode jaringan pilihan: khusus NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mode jaringan pilihan: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mode jaringan pilihan: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mode jaringan pilihan: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mode jaringan pilihan: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mode jaringan pilihan: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mode jaringan pilihan: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mode jaringan pilihan: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mode jaringan pilihan: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mode jaringan pilihan: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mode jaringan pilihan: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Memanggil"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Jaringan"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mode LTE 4G yang Ditingkatkan"</string>
@@ -261,7 +286,7 @@
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"Fungsi SIM terbatas"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"Layanan data dan panggilan <xliff:g id="CARRIER_NAME">%1$s</xliff:g> dapat diblokir saat menggunakan <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>."</string>
     <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Layanan data dan panggilan <xliff:g id="CARRIER_NAME">%1$s</xliff:g> dapat diblokir saat menggunakan SIM lain."</string>
-    <string name="data_usage_title" msgid="8438592133893837464">"Penggunaan kuota aplikasi"</string>
+    <string name="data_usage_title" msgid="8438592133893837464">"Penggunaan data aplikasi"</string>
     <string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_1">%1$s</xliff:g> data seluler digunakan pada <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="advanced_options_title" msgid="9208195294513520934">"Lanjutan"</string>
     <string name="carrier_settings_euicc" msgid="1190237227261337749">"Operator"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multi-kategori diaktifkan"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multi-kategori dinonaktifkan"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (direkomendasikan)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (disarankan)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (disarankan)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Menghapus nomor panggilan tetap..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nomor panggilan tetap dihapus."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN tidak diperbarui karena Anda memasukkan PIN yang salah."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN tidak diupdate karena nomor melebihi 20 digit."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN tidak diupdate karena nomor melebihi <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digit."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN tidak diperbarui. PIN2 salah, atau nomor telepon ditolak."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operasi FDN gagal."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Membaca dari kartu SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Tidak dapat menelepon. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nomor darurat."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Tidak dapat menelepon. Panggil nomor darurat."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Panggilan darurat tidak tersedia"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Hanya pemilik perangkat yang dapat memasukkan kode PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Kantor Polisi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Pemadam Kebakaran"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Panggilan pesan real-time (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Izinkan pengiriman pesan pada saat panggilan suara berlangsung"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT membantu penelepon yang tunarungu, kesulitan mendengar, memiliki gangguan berbicara, atau memerlukan lebih dari sekadar suara.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Pelajari lebih lanjut&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Panggilan RTT disimpan sebagai transkrip pesan\n       &lt;br&gt; - RTT tidak tersedia untuk video call"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Catatan: RTT tidak tersedia saat melakukan roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Nonaktif"</item>
     <item msgid="1449091874731375214">"TTY Penuh"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ya"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Tidak"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Tutup"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Ponsel berada dalam mode telepon balik darurat."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Sampai <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Ponsel akan berada dalam mode telepon balik darurat selama <xliff:g id="COUNT_1">%s</xliff:g> menit.\nApakah Anda ingin keluar sekarang?</item>
+      <item quantity="one">Ponsel akan berada dalam mode telepon balik darurat selama <xliff:g id="COUNT_0">%s</xliff:g> menit.\nApakah Anda ingin keluar sekarang?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Layanan"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Penyiapan"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Tidak disetel&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Pemblokiran panggilan dinonaktifkan"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Ubah sandi"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Ubah sandi pemblokiran panggilan"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Tidak dapat mengubah sandi pemblokiran panggilan."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Tidak dapat mengubah sandi pemblokiran panggilan"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Sandi tidak cocok"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Masukkan sandi dengan 4 angka"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Sandi diubah"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Konfirmasi sandi"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Masukkan sandi"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Setelan pemblokiran panggilan"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Nonaktifkan semua setelan pemblokiran panggilan?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Jaringan sedang sibuk. Coba hubungi lagi di lain waktu."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Jaringan sedang padat. Hubungi operator seluler Anda untuk mendapatkan bantuan."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Panggilan dialihkan."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan kuota internet diaktifkan untuk SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda dapat mengubahnya di setelan jaringan seluler."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan kuota internet dan roaming data diaktifkan untuk SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda dapat mengubahnya di setelan jaringan seluler."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Tutup"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktifkan Koneksi Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Nonaktifkan Koneksi Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Disediakan"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video Call Disediakan"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Panggilan Wi-Fi Disediakan"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence Disediakan"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktifkan DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Mulai Ulang Perangkat?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Anda perlu memulai ulang perangkat untuk mengubah setelan."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Mulai ulang"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Batal"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Daya Radio Seluler"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Panggilan Terbatas"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nomor Panggilan Layanan"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status Layanan IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Terdaftar"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Tidak Terdaftar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tersedia"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Tidak tersedia"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Pendaftaran IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nSuara melalui LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nSuara melalui Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo Call: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nAntarmuka UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Dalam Layanan"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Di Luar Area Layanan"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Panggilan Darurat Saja"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio Nonaktif"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Tidak Roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Tidak ada aktivitas"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Berdering"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Panggilan sedang Berlangsung"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Terputus"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Menghubungkan"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Terhubung"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Ditangguhkan"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Tidak diketahui"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId saat ini:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId SIM data default:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bandwidth DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bandwidth UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Info Lokasi Sel (tidak digunakan lagi):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurasi Saluran Fisik LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rasio Pembaruan Info Sel"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Semua Info Pengukuran Sel:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Layanan Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Pengalihan Panggilan:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Jumlah Setel Ulang PPP Sejak Boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Jaringan Saat Ini:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data Diterima:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Layanan Suara:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Kekuatan Sinyal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status Panggilan Suara:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data Terkirim:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Pesan Menunggu:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Nomor Telepon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pilih Band Radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Jenis Jaringan Suara:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Jenis Jaringan Data:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pilih indeks ponsel"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Setel Jenis Jaringan yang Disukai:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Uji Klien HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Jalankan Uji Ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Perbarui"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Aktifkan Pemeriksaan DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Info spesifik OEM/Setelan"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Setel Mode Band Radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Memuat Daftar Band…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Setel"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Gagal"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Berhasil"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Info telepon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Info Provisioning Operator"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Memicu Provisioning Operator"</string>
 </resources>
diff --git a/res/values-is/config.xml b/res/values-is/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-is/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 2d88ceb..2beb290 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Leyninúmer"</string>
     <string name="payphone" msgid="7936735771836716941">"Símasjálfsali"</string>
     <string name="onHold" msgid="6132725550015899006">"Í bið"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Skilaboð"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Skilaboð frá símafyrirtæki"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kóðaskipun ræst"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kóðaskipun í gangi…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Hætt við MMI-kóðaskipun"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Aðeins NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Valin símkerfisstilling: WCDMA fyrsta val"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Valin símkerfisstilling: GSM eingöngu"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Valin símkerfisstilling: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Valin símkerfisstilling: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Valin símkerfisstilling: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Valin símkerfisstilling: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Valin símkerfisstilling: Alþjóðleg"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Valin símkerfisstilling: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Valið símkerfi: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Valin símkerfisstilling: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Valin símkerfisstilling: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Valin símkerfisstilling: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Valin símkerfisstilling: Aðeins NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Valin símkerfisstilling: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Valin símkerfisstilling: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Valin símkerfisstilling: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Valin símkerfisstilling: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Valin símkerfisstilling: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Valin símkerfisstilling: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Valin símkerfisstilling: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Valin símkerfisstilling: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Valin símkerfisstilling: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Valin símkerfisstilling: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Hringir"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netkerfi"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"endurbætt 4G LTE-stilling"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Margir flokkar"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Kveikt á birtingu úr mörgum flokkum"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Slökkt á birtingu úr mörgum flokkum"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ráðlagt)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ráðlagt)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ráðlagt)"</string>
     <string name="network_global" msgid="3289646154407617631">"Alþjóðlegt"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eyða föstu númeravali…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Föstu númeravali eytt."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Fast númeraval var ekki uppfært því að þú slóst inn rangt PIN-númer."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Fast númeraval var ekki uppfært vegna þess að númerið er lengra en 20 tölustafir."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Fast númeraval var ekki uppfært vegna þess að númerið er lengra en <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> tölustafir."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Fast númeraval var ekki uppfært. PIN2-númerið var rangt eða símanúmerinu var hafnað."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Aðgerð fasts númeravals mistókst."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Les af SIM-korti…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ekki hægt að hringja. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ekki neyðarnúmer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ekki hægt að hringja. Hringdu í neyðarnúmer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Neyðarsímtöl eru ekki í boði"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Aðeins eigandi tækisins getur slegið inn PIN/PUK-kóða."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Lögregla"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Sjúkrabíll"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Eldur"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-símtal (með texta í rauntíma)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Leyfa skilaboðasendingar í símtölum"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT (símtöl með texta í rauntíma) aðstoðar heyrnarlausa og fólk með heyrnarskerðingu eða skerta talgetu og þá sem þurfa að styðja sig við meira en bara hljóð.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Frekari upplýsingar&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-símtöl eru vistuð í umrituðum skilaboðum\n       &lt;br&gt; - RTT er ekki í boði fyrir myndsímtöl"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Athugaðu: RTT er ekki í boði í reiki"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Slökkt á TTY"</item>
     <item msgid="1449091874731375214">"TTY að fullu"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Já"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Hunsa"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Síminn er í stillingu fyrir svarhringingu neyðarsímtala"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Til <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Síminn verður í stillingu fyrir svarhringingu neyðarsímtala í <xliff:g id="COUNT_1">%s</xliff:g> mínútu.\nViltu hætta núna?</item>
+      <item quantity="other">Síminn verður í stillingu fyrir svarhringingu neyðarsímtala í <xliff:g id="COUNT_1">%s</xliff:g> mínútur.\nViltu hætta núna?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Þjónusta"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Uppsetning"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ekki valið&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Slökkt á útilokun símtala"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Breyta aðgangsorði"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Breyta aðgangsorði fyrir útilokun símtala"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ekki var hægt að breyta aðgangsorði fyrir útilokun símtala."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ekki var hægt að breyta aðgangsorði fyrir útilokun símtala"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Aðgangsorðin stemma ekki."</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Sláðu inn aðgangsorð sem inniheldur fjóra tölustafi."</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Aðgangsorði breytt"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Staðfesta aðgangsorð"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Slá inn aðgangsorð"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Stillingar fyrir útilokun símtala"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Slökkva á öllum stillingum fyrir útilokun símtala?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Símkerfið er upptekið. Reyndu að hringja aftur síðar."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Símkerfið er upptekið. Fáðu aðstoð hjá símafyrirtækinu þínu."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Símtal flutt."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Til að nota <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum fyrir SIM-kortið <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Þú getur breytt þessu í stillingum farsímakerfis."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Til að nota <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum og gagnareiki fyrir SIM-kortið <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Þú getur breytt þessu í stillingum farsímakerfis."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Hunsa"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Kveikja á gagnatengingu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Slökkva á gagnatengingu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-úthlutun"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Myndsímtali úthlutað"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi símtali úthlutað"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/viðveru úthlutað"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-gögn"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Virkja DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Endurræsa tæki?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Endurræsa þarf tækið til að breyta þessari stillingu."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Endurræsa"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Hætta við"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Loftnetsstyrkur farsíma"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skoða símaskrá SIM-korts"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skoða læst númeraval"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Skoða þjónustunúmer"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Þjónustustaða IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Staða IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Skráð"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ekki skráð"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Viðlátin(n)"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ekki í boði"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Skráning IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nRödd með LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nRödd með Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nMyndsímtöl: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT viðmót: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Innan þjónustusvæðis"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Utan þjónustusvæðis"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Aðeins neyðarsímtöl"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Slökkt á loftneti"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Reiki"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ekki í reiki"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Óvirkt"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Hringir"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Símtal í gangi"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Aftengt"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Tengist"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Tengt"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Lokað tímabundið"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Óþekkt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pk."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bæti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Núverandi undirauðkenni:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Undirauðkenni sjálfgefins SIM-korts fyrir gögn:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Niðurhalsbandvídd (kb/sek.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Upphleðslubandvídd (kb/sek.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Staðsetningarupplýsingar loftneta (úrelt):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE-rásarstilling:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Endurnýjunartíðni loftnetaupplýsinga:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Allar mælingarupplýsingar loftneta:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Gagnaþjónusta:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Reiki:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Símtalsflutningur:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Fjöldi PPP-endurstillinga frá ræsingu:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Núverandi kerfi:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Gögn móttekin:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Raddþjónusta:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Sendistyrkur:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Staða símtals:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Gögn send:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Skilaboð í bið:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Símanúmer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Velja útvarpstíðni"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Netkerfi raddþjónustu:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tegund gagnanets:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Velja atriðaskrá síma"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Veldu kjörsímkerfi:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Prófun HTTP-biðlara:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Keyra ping-próf"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Uppfæra"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Endurnýja"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Kveikja/slökkva á DNS-prófun"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Upplýsingar/stillingar framleiðanda"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Velja útvarpstíðni"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Hleður lista yfir tíðnisvið…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Stilla"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mistókst"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Heppnaðist"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Upplýsingar um spjaldtölvu"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Upplýsingar um síma"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Úthlutunarupplýsingar símafyrirtækis"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Kveikja á úthlutun símafyrirtækis"</string>
 </resources>
diff --git a/res/values-it/config.xml b/res/values-it/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-it/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 58488ff..9f53607 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numero privato"</string>
     <string name="payphone" msgid="7936735771836716941">"Cabina telefonica"</string>
     <string name="onHold" msgid="6132725550015899006">"In attesa"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Messaggio <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Messaggio dell\'operatore"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Codice MMI avviato"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Esecuzione codice USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Codice MMI annullato"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Solo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modalità di rete preferita: WCDMA (preferita)"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modalità di rete preferita: solo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modalità di rete preferita: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modalità di rete preferita: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modalità di rete preferita: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modalità di rete preferita: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modalità di rete preferita: globale"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modalità di rete preferita: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modalità di rete preferita: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modalità di rete preferita: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modalità di rete preferita: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modalità di rete preferita: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modalità di rete preferita: solo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modalità di rete preferita: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modalità di rete preferita: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modalità di rete preferita: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modalità di rete preferita: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modalità di rete preferita: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modalità di rete preferita: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modalità di rete preferita: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modalità di rete preferita: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modalità di rete preferita: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modalità di rete preferita: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chiamata in corso"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rete"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modalità 4G LTE avanzata"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multicategoria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multicategoria attivata"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multicategoria disattivata"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (consigliata)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (opzione consigliata)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (opzione consigliata)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globale"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Eliminazione numero selezione fissa..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numero di selezione fissa eliminato."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Numeri consentiti non aggiornati perché il PIN inserito non è corretto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"I numeri consentiti non sono stati aggiornati perché il numero supera le 20 cifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"I numeri consentiti non sono stati aggiornati perché il numero supera le <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Numeri consentiti non aggiornati. Il codice PIN2 non era corretto o il numero di telefono è stato rifiutato."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operazione numeri consentiti non riuscita."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lettura da SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Impossibile chiamare. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non è un numero di emergenza."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Impossibile chiamare. Componi un numero di emergenza."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Chiamate di emergenza non disponibili"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Solo il proprietario del dispositivo può inserire i codici PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polizia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanza"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Vigili del fuoco"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chiamate con Real-time text (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Consenti l\'utilizzo di messaggi durante le chiamate vocali"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT aiuta i chiamanti con disabilità uditive o del linguaggio e le persone che hanno bisogno di un supporto scritto oltre alla voce.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ulteriori informazioni&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - Le chiamate RTT vengono salvate come una trascrizione in messaggi\n &lt;br&gt; - RTT non è disponibile per le videochiamate"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: la funzionalità RTT non è disponibile in roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY disattivato"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sì"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignora"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Il telefono è in modalità di richiamata di emergenza"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Fino alle ore <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT_1">%s</xliff:g> minuti.\nVuoi uscire ora?</item>
+      <item quantity="one">Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nVuoi uscire ora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Servizio"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configurazione"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Non impostato&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blocco chiamate disattivato"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Modifica password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Modifica la password di blocco chiamate"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Impossibile modificare la password di blocco chiamate."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Impossibile modificare la password di blocco chiamate"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Le password non corrispondono"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Inserisci una password con 4 numeri"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Password modificata"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Conferma password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Inserisci password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Impostazioni di blocco chiamate"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Disattivare tutte le impostazioni di blocco chiamate?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La rete è occupata. Riprova a chiamare di nuovo più tardi."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La rete è congestionata. Contatta il tuo gestore di telefonia mobile per ricevere assistenza."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Chiamata deviata."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Per utilizzare <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assicurati che i dati mobili siano attivi per la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puoi modificare questa opzione nelle impostazioni della rete mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Per utilizzare <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assicurati che i dati mobili e il roaming dei dati siano attivi per la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puoi modificare queste opzioni nelle impostazioni della rete mobile."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignora"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Abilita connessione dati"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Disabilita connessione dati"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Provisioning VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochiamate fornite"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chiamate tramite Wi-Fi fornite"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Provisioning EAB/Presence completato"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dati CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Abilita DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Riavviare il dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Riavvia il dispositivo per modificare questa impostazione."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Riavvia"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annulla"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potenza del segnale radio mobile"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visualizza rubrica SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visualizza numeri consentiti"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visualizza numeri dell\'elenco dei numeri di servizio"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stato del servizio IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stato IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrato"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Non registrato"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponibile"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Non disponibile"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registrazione IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nChiamate tramite LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nChiamate tramite Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochiamata: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfaccia UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In servizio"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fuori servizio"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Solo chiamate di emergenza"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Segnale radio off"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"In roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Non in roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inattivo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Squillo in corso"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chiamata in corso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Disconnesso"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Connessione"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Connesso"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Sospeso"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Sconosciuto"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"Sistema di identificazione contenuti"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID secondario corrente:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID secondario della SIM dati predefinita:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Larghezza di banda DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Larghezza di banda UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informazioni sulla posizione delle celle (obsoleto):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configurazione canale fisico LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frequenza di aggiornamento delle informazioni sulle celle:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Informazioni sulla misurazione di tutte le celle:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Servizio dati:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Reindirizzamento chiamate:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Numero di PPP reimpostati dall\'avvio:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rete corrente:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dati ricevuti:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Servizio vocale:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensità del segnale:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stato della chiamata vocale:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dati inviati:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Messaggio in attesa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numero di telefono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Seleziona banda radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo di rete vocale:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo di rete di dati:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Seleziona indice telefonico"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Imposta tipo di rete preferito:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping nome host (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping nome host (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test client HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Invia ping di test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aggiorna"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Aggiorna"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Attiva o disattiva verifica DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Info/impostazioni specifiche OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Imposta modalità banda radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Caricamento elenco bande…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Imposta"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Operazione non riuscita"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Operazione riuscita"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Info tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Info telefono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informazioni sul provisioning operatore"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Attiva provisioning operatore"</string>
 </resources>
diff --git a/res/values-iw/config.xml b/res/values-iw/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-iw/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 4f42376..a2a2f69 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"מספר פרטי"</string>
     <string name="payphone" msgid="7936735771836716941">"טלפון ציבורי"</string>
     <string name="onHold" msgid="6132725550015899006">"בהמתנה"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"הודעה דרך <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"הודעה מהספק הסלולרי"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏קוד MMI הופעל"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏קוד USSD פועל…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏קוד MMI מבוטל"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏NR בלבד"</item>
+    <item msgid="2935877729588775187">"‏NR‏/LTE"</item>
+    <item msgid="8967513231424970529">"‏NR‏/LTE‏/CDMA‏/EvDo"</item>
+    <item msgid="1542643426479755015">"‏NR‏/LTE‏/GSM‏/WCDMA"</item>
+    <item msgid="5778162260258129841">"‏NR‏/LTE‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</item>
+    <item msgid="8088614845214545367">"‏NR‏/LTE‏/WCDMA"</item>
+    <item msgid="6517428040626326776">"‏NR‏/LTE‏/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"‏NR‏/LTE‏/TDSCDMA‏/GSM"</item>
+    <item msgid="4130965694947056705">"‏NR/‏LTE/‏TDSCDMA‏/WCDMA"</item>
+    <item msgid="3869566732842046032">"‏NR‏/LTE‏/TDSCDMA‏/GSM‏/WCDMA"</item>
+    <item msgid="3942770927563146543">"‏NR‏/LTE‏/TDSCDMA‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏מצב רשת מועדפת: WCDMA מועדף"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏מצב רשת מועדפת: GSM בלבד"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏מצב רשת מועדף: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏מצב רשת מועדף: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏מצב רשת מועדף: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏מצב רשת מועדפת: LTE‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"מצב רשת מועדף: גלובלי"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏מצב רשת מועדף: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏מצב רשת מועדף: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏מצב רשת מועדף: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏מצב רשת מועדף: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏מצב רשת מועדף: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏מצב רשת מועדפת: NR בלבד"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏מצב רשת מועדפת: NR ‏/ LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏מצב רשת מועדפת: NR‏/LTE‏/CDMA‏/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏מצב רשת מועדפת: NR‏/LTE‏/GSM‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏מצב רשת מועדפת: NR‏/LTE‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏מצב רשת מועדפת: NR‏/LTE‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/GSM‏/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏מצב רשת מועדפת: NR‏/LTE‏/TDSCDMA‏/CDMA‏/EvDo‏/GSM‏/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"שיחות"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"רשת"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏מצב 4G LTE משופר"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ריבוי קטגוריות"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ריבוי קטגוריות מופעל"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ריבוי קטגוריות מושבת"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (מומלץ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (מומלץ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"‏4G (מומלץ)"</string>
     <string name="network_global" msgid="3289646154407617631">"גלובלי"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"מוחק מספר חיוג קבוע..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"מספר חיוג קבוע נמחק."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"רשימת מספרי חיוג קבועים לא עודכנה מכיוון שקוד הגישה שגוי."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏ה-FDN לא עודכן בגלל שהמספר ארוך מ-20 תווים."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏מספר ה-FDN לא עודכן כי הוא מכיל יותר מ-<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ספרות."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"רשימת מספרי החיוג הקבועים לא עודכנה. קוד הגישה היה שגוי או שמספר הטלפון נדחה."</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏פעולת FDN נכשלה."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‏קורא מכרטיס SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"לא ניתן להתקשר. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> אינו מספר חירום."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"לא ניתן להתקשר. חייג למספר חירום."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"אי אפשר לבצע שיחות חירום"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏רק הבעלים של המכשיר יכול להזין קודי אימות/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"משטרה"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"אמבולנס"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"אש"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‏שיחת RTT (טקסט בזמן אמת)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"אפשר לשלוח הודעות טקסט בזמן שיחה"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏RTT (טקסט בזמן אמת) היא תכונת נגישות שעוזרת לחרשים, לקויי שמיעה, לקויי דיבור או אנשים שלא יכולים להסתפק רק בשיחות קוליות.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;למידע נוסף&lt;/a&gt;‏\n      &lt;br&gt;&lt;br&gt; - שיחות RTT מתומללות ונשמרות כהודעות\n &lt;br&gt; - אי אפשר להשתמש ב-RTT לשיחות וידאו"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"‏הערה: אי אפשר להשתמש ב-RTT בזמן נדידה"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY כבוי"</item>
     <item msgid="1449091874731375214">"‏TTY מלא"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"כן"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"לא"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"סגור"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"הטלפון במצב \'התקשרות בחזרה בחירום\'"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"עד <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="two">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' ל-<xliff:g id="COUNT_1">%s</xliff:g> דקות.\nרוצה לצאת מהמצב הזה?</item>
+      <item quantity="many">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' ל-<xliff:g id="COUNT_1">%s</xliff:g> דקות.\nרוצה לצאת מהמצב הזה?</item>
+      <item quantity="other">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' ל-<xliff:g id="COUNT_1">%s</xliff:g> דקות.\nרוצה לצאת מהמצב הזה?</item>
+      <item quantity="one">הטלפון יהיה במצב \'התקשרות בחזרה בחירום\' לדקה אחת (<xliff:g id="COUNT_0">%s</xliff:g>).\nרוצה לצאת מהמצב הזה?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"שירות"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"הגדרות"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;לא מוגדר&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"חסימת השיחות הושבתה"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"שינוי הסיסמה"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"שינוי הסיסמה לחסימת שיחות"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"אי אפשר לשנות את הסיסמה לחסימת שיחות."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"אי אפשר לשנות את הסיסמה לחסימת שיחות"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"הסיסמאות לא תואמות"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"צריך להזין סיסמה בת 4 ספרות"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"הסיסמה שונתה"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"אישור הסיסמה"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"זה המקום להזין סיסמה"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ההגדרות של חסימת שיחות"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"להשבית את כל ההגדרות של חסימת שיחות?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"יש עומס על הרשת. אפשר לנסות להתקשר שוב מאוחר יותר."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"יש עומס על הרשת. אפשר לפנות לספק הסלולרי לקבלת עזרה."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"השיחה נותבה למספר אחר."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‏כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה מופעל בכרטיס ה-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. אפשר להפעיל אותו בהגדרות של הרשת הסלולרית."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‏כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה והנדידה מופעלים בכרטיס ה-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. אפשר להפעיל אותם בהגדרות של הרשת הסלולרית."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"סגירה"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"הפעלת חיבור נתונים"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"השבת חיבור נתונים"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏ניהול התצורה של VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ניהול תצורה של שיחות וידאו"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏ניהול תצורה של שיחות Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏ניהול תצורה של נוכחות/EAB מופעל"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏נתוני CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏הפעלת DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"להפעיל מכשיר מחדש?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"עליך להפעיל מחדש את המכשיר כדי לשנות הגדרה זו."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"הפעלה מחדש"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ביטול"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"הפעלה של רדיו סלולרי"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏הצגת פנקס כתובות של SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"הצגת מספרי חיוג קבועים"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"מספרי חיוג לשירות"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‏סטטוס שירות IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‏סטטוס IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"רשום"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"לא רשום"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"זמין"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ההגדרה לא זמינה"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏הרשמה ל-IMS:‏ <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE:‏ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi:‏ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nשיחות וידאו: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nממשק UT:‏ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"בשירות"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"לא תקין"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"שיחות חירום בלבד"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"כיבוי הרדיו"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"נדידה"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"לא בנדידה"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"לא פעיל"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"מושמע צלצול"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"שיחה מתבצעת"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"מנותק"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"מתבצעת התחברות"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"מקושר"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"בהשעיה"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"לא ידוע"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"בייטים"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"תת-מזהה נוכחי:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏תת-מזהה של כרטיס ה-SIM עם חבילת גלישה המוגדר כברירת מחדל:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏רוחב פס DL (ב-kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏רוחב פס UL (ב-kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"מידע על מיקום סלולרי (הוצא משימוש):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏תצורת ערוץ פיזי של LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"קצב רענון של מידע סלולרי:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"כל המידע של מדידה סלולרית:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"שירות נתונים:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"נדידה:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"הפניה מחדש של שיחה:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏מספר איפוסי PPP מאז ההפעלה:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"רשת נוכחית:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"הנתונים שהתקבלו:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"שירות קולי:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"עוצמת אות:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"סטטוס שיחה קולית:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"הנתונים נשלחו:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"הודעה ממתינה:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"מספר טלפון:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"בחירת תדר רדיו"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"סוג רשת קולית:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"סוג רשת נתונים:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"בחירת אינדקס טלפון"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"הגדרת סוג רשת מועדף:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏נדנד לשם המארח (www.google.com) מסוג IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏נדנוד לשם המארח (www.google.com) מסוג IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏בדיקת לקוח HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"הפעלת בדיקת פינג"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"עדכון"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"רענון"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‏החלפת מצב של בדיקת DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‏מידע/הגדרות ספציפיים ל-OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"הגדרת מצב תדרים של רדיו"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"טוען רשימת תדרים…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"הגדרה"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"נכשל"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"עבר בהצלחה"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"פרטי טאבלט"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"פרטי טלפון"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"פרטי ניהול תצורה של ספק סלולרי"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"הפעלת ניהול תצורה של ספק סלולרי"</string>
 </resources>
diff --git a/res/values-ja/config.xml b/res/values-ja/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ja/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index f286c38..e6e04d7 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"非通知設定"</string>
     <string name="payphone" msgid="7936735771836716941">"公衆電話"</string>
     <string name="onHold" msgid="6132725550015899006">"保留中"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> からのメッセージ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"携帯通信会社独自のメッセージ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMIコードの開始"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSDコードを実行中..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMIコードはキャンセルされました"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE / TDSCDMA / GSM / WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
     <item msgid="6284311629324843506">"LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
+    <item msgid="4738087170533378966">"NR のみ"</item>
+    <item msgid="2935877729588775187">"NR / LTE"</item>
+    <item msgid="8967513231424970529">"NR / LTE / CDMA / EV-DO"</item>
+    <item msgid="1542643426479755015">"NR / LTE / GSM / WCDMA"</item>
+    <item msgid="5778162260258129841">"NR / LTE / CDMA / EV-DO / GSM / WCDMA"</item>
+    <item msgid="8088614845214545367">"NR / LTE / WCDMA"</item>
+    <item msgid="6517428040626326776">"NR / LTE / TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR / LTE / TDSCDMA / GSM"</item>
+    <item msgid="4130965694947056705">"NR / LTE / TDSCDMA / WCDMA"</item>
+    <item msgid="3869566732842046032">"NR / LTE / TDSCDMA / GSM / WCDMA"</item>
+    <item msgid="3942770927563146543">"NR / LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"優先ネットワークモード: WCDMA優先"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"優先ネットワークモード: GSMのみ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"優先ネットワークモード: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"優先ネットワークモード: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"優先ネットワークモード: CDMA+LTE/EV-DO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"優先ネットワーク モード: LTE / CDMA / CDMA / EV-DO / GSM / WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"優先ネットワークモード: グローバル"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"優先ネットワークモード: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"推奨ネットワークモード: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"優先ネットワーク モード: LTE / TDSCDMA / GSM / WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"優先ネットワーク モード: TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"優先ネットワーク モード: LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"優先ネットワーク モード: NR のみ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"優先ネットワーク モード: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"優先ネットワーク モード: NR / LTE / CDMA / EV-DO"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"優先ネットワーク モード: NR / LTE / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"優先ネットワーク モード: NR / LTE / CDMA / EV-DO / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"優先ネットワーク モード: NR / LTE / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"優先ネットワーク モード: NR / LTE / TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"優先ネットワーク モード: NR / LTE / TDSCDMA / GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"優先ネットワーク モード: NR / LTE / TDSCDMA / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"優先ネットワーク モード: NR / LTE / TDSCDMA / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"優先ネットワーク モード: NR / LTE / TDSCDMA / CDMA / EV-DO / GSM / WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通話"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ネットワーク"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"4G LTE拡張モード"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"複数カテゴリ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"複数カテゴリは有効になっています"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"複数カテゴリは無効になっています"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" （推奨）"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE（推奨）"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G（推奨）"</string>
     <string name="network_global" msgid="3289646154407617631">"グローバル"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"発信番号制限を削除しています..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"発信番号制限を削除しました。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"発信番号制限は更新されませんでした。入力したPINは正しくありません。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN は更新されませんでした。20 桁を超える番号は指定できません。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"この電話番号の桁数が <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 桁を超えているため、FDN を更新できませんでした。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"発信番号制限は更新されませんでした。PIN2が正しくないか、電話番号が拒否されました。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"発信番号制限操作に失敗しました。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIMカードから読み取り中..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"発信できません。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>は緊急通報番号ではありません。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"発信できません。緊急通報番号におかけください。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"緊急通報はご利用いただけません"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN コードと PUK コードを入力できるのはデバイスの所有者のみとなります。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警察"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救急車"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"消防車"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"リアルタイム テキスト（RTT）通話"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"音声通話中のメッセージ送信を許可する"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT は、聴覚障害や言語障害があるなど、音声だけではコミュニケーションを取ることが困難なユーザーをサポートする機能です。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;詳細&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT 通話は文字に変換して保存されます\n       &lt;br&gt; - RTT はビデオ通話ではご利用いただけません"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注: ローミング中に RTT を利用することはできません"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY OFF"</item>
     <item msgid="1449091874731375214">"TTY フル"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"はい"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"いいえ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"解除"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"スマートフォンが緊急通報待機モードになっています"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> まで"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">スマートフォンが <xliff:g id="COUNT_1">%s</xliff:g> 分間にわたって緊急通報待機モードになります。\n今すぐ終了してもよろしいですか？</item>
+      <item quantity="one">スマートフォンが <xliff:g id="COUNT_0">%s</xliff:g> 分間にわたって緊急通報待機モードになります。\n今すぐ終了してもよろしいですか？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"サービス"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"セットアップ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未設定&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"通話制限が無効になりました"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"パスワードを変更"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"通話制限パスワードを変更"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"通話制限パスワードを変更できません。"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"通話制限パスワードを変更することはできません"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"パスワードが一致しません"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 桁の数字のパスワードを入力"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"パスワードが変更されました"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"パスワードを確認"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"パスワードを入力"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通話制限設定"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"通話制限設定をすべて無効にしますか？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ネットワークがビジー状態です。しばらくしてからもう一度通話を発信してみてください。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ネットワークが混雑しています。サポートが必要な場合は携帯通信会社にお問い合わせください。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"通話が転送されました。"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>を利用するには、SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> のモバイルデータが ON になっている必要があります。モバイルデータの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>を利用するには、SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> のモバイルデータとデータ ローミングが ON になっている必要があります。これらの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"閉じる"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"データ接続を有効にする"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"データ接続を無効にする"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE プロビジョニング有効"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ビデオ通話プロビジョニング有効"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi 通話プロビジョニング有効"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB / プレゼンス プロビジョニング有効"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS データ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS を有効にする"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"デバイスを再起動しますか？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"この設定を変更するには、デバイスの再起動が必要です。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"再起動"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"キャンセル"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"モバイル無線電力"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM のアドレス帳を表示"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"発信番号制限を表示"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"サービス電話番号を表示"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS サービスのステータス"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ステータス"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"登録済み"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未登録"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"使用可能"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"使用不可"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 登録: <xliff:g id="STATUS">%1$s</xliff:g>\nボイスオーバー LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nボイスオーバー WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nビデオ通話: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT インターフェース: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"圏内"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"圏外"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"緊急通報のみ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"無線通信 OFF"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ローミング"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ローミングなし"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"アイドル状態"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"着信中"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"通話中"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"未接続"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"接続しています"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"接続済み"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"停止中"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"不明"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"バイト"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"現在の SUBID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"デフォルトのデータ SIM の SUBID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 帯域幅（kbps）:"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 帯域幅（kbps）:"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"セルの位置情報（サポート終了）:"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE の物理チャネル設定:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"セル情報の更新間隔:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"すべてのセルの測定情報:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"データサービス:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ローミング:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"通話のリダイレクト:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"起動後の PPP リセット回数:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"現在のネットワーク:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"受信データ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"音声サービス:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"電波強度:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"音声通話のステータス:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"送信データ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"メッセージ待機中:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"電話番号:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"無線バンドを選択"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"音声ネットワークの種類:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"データ ネットワークの種類:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"スマートフォンのインデックスを選択"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"優先ネットワークの種類を設定:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ホスト名（www.google.com）の ping（IPv4）:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ホスト名（www.google.com）の ping（IPv6）:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP クライアント テスト:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ping テストの実行"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"更新"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS チェックを切り替え"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM 固有の情報 / 設定"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"無線バンドモードの設定"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"バンドリストを読み込み中…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失敗"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"タブレット情報"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"スマートフォン情報"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"携帯通信会社のプロビジョニング情報"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"携帯通信会社のプロビジョニングをトリガー"</string>
 </resources>
diff --git a/res/values-ka/config.xml b/res/values-ka/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ka/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index a779637..7a87211 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"დაფარული ნომერი"</string>
     <string name="payphone" msgid="7936735771836716941">"გადახდის ტელეფონი"</string>
     <string name="onHold" msgid="6132725550015899006">"შეყოვნების რეჟიმში"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-ის შეტყობინება"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ოპერატორის შეტყობინება"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI კოდი დაიწყო"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD კოდი გაშვებულია…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI კოდი გაუქმდა"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"მხოლოდ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ქსელის სასურველი რეჟიმი: WCDMA უპირატესობა"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ქსელის სასურველი რეჟიმი: მხოლოდ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ქსელის სასურველი რეჟიმი: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ქსელის სასურველი რეჟიმი: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ქსელის სასურველი რეჟიმი: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ქსელის სასურველი რეჟიმი: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ქსელის სასურველი რეჟიმი: გლობალური"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ქსელის სასურველი რეჟიმი: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"სასურველი ქსელის რეჟიმი: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ქსელის უპირატესი რეჟიმი: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ქსელის უპირატესი რეჟიმი: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ქსელის უპირატესი რეჟიმი: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ქსელის სასურველი რეჟიმი: მხოლოდ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ქსელის სასურველი რეჟიმი: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ქსელის სასურველი რეჟიმი: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ქსელის სასურველი რეჟიმი: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ქსელის სასურველი რეჟიმი: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ქსელის სასურველი რეჟიმი: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ქსელის სასურველი რეჟიმი: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"დარეკვა"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ქსელი"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"გაუმჯობესებული 4G LTE რეჟიმი"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"მრავალკატეგორიანი"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"მრავალი კატეგორია ჩართულია"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"მრავალი კატეგორია გამორთულია"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (რეკომენდებული)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (რეკომენდებული)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (რეკომენდებული)"</string>
     <string name="network_global" msgid="3289646154407617631">"გლობალური"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"დაშვებული დარეკვის კონტაქტის წაშლა…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"დაშვებული ნომერი წაიშალა."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN არ განახლდა, რადგან არასწორი PIN შეიყვანეთ."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN არ განახლებულა, რადგან რიცხვი 20 ციფრზე მეტს შეიცავს."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN არ განახლებულა, რადგან ნომერი <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ციფრზე მეტს შეიცავს."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN არ განახლდა. PIN2 არასწორია ან ტელეფონის ნომერი უარყოფილია."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ოპერაცია ვერ განხორციელდა."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"მიმდინარეობს SIM ბარათიდან წაკითხვა…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"არ ირეკება. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> არ არის საგანგებო ნომერი."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"დარეკვა ვერ ხორციელდება. აკრიფეთ საგანგებო ნომერი."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"გადაუდებელი ზარი მიუწვდომელია"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK კოდების შეყვანა მხოლოდ მოწყობილობის მფლობელს შეუძლია."</string>
     <string name="police_type_description" msgid="2819533883972081757">"პოლიცია"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"სასწრაფო"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"სახანძრო"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ზარი შეტყობინებით რეალურ დროში (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"შეტყობინებების დაშვება ხმოვან ზარში"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT დახმარებას უწევს ყრუ, სმენადაქვეითებულ, შეზღუდული მეტყველების მქონე აბონენტებს, ან მათ, ვისაც სჭირდება მეტი, ვიდრე მხოლოდ ხმაა.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;შეიტყვეთ მეტი&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; — RTT ზარები ინახება შეტყობინების ტრანსკრიპტის სახით\n       &lt;br&gt; — RTT არ არის ხელმისაწვდომი ვიდეოზარებისთვის"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"შენიშვნა: RTT მიუწვდომელია როუმინგის დროს"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY გამორთულია"</item>
     <item msgid="1449091874731375214">"TTY სრული"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"დიახ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"არა"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"იგნორირება"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ტელეფონი გადაუდებელი გადმორეკვის რეჟიმშია"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g>-მდე"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ტელეფონი <xliff:g id="COUNT_1">%s</xliff:g> წუთის განმავლობაში გადაუდებელი გადმორეკვის რეჟიმში იქნება.\nგსურთ გასვლა ახლავე?</item>
+      <item quantity="one">ტელეფონი <xliff:g id="COUNT_0">%s</xliff:g> წუთის განმავლობაში გადაუდებელი გადმორეკვის რეჟიმში იქნება.\nგსურთ გასვლა ახლავე?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"სერვისი"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"დაყენება"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;არ არის დაყენებული&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ზარების აკრძალვის დეაქტივაცია"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"პაროლის შეცვლა"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ზარების აკრძალვის პაროლის შეცვლა"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ზარების აკრძალვის პაროლის შეცვლა შეუძლებელია."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ზარების აკრძალვის პაროლის შეცვლა შეუძლებელია"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"პაროლები არ ემთხვევა"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"შეიყვანეთ პაროლი 4 ციფრით"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"პაროლი შეიცვალა"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"დაადასტურეთ პაროლი"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"შეიყვანეთ პაროლი"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ზარების აკრძალვის პარამეტრები"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"გსურთ ზარების აკრძალვის ყველა პარამეტრის დეაქტივაცია?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ქსელი დაკავებულია. გთხოვთ, სცადოთ დარეკვა მოგვიანებით."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ქსელი დატვირთულია. დახმარებისთვის დაუკავშირდით თქვენს მობილურ ოპერატორს."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"მოხდა ზარის აცილება."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი ჩართულია SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-სთვის. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი და ინტერნეტის როუმინგი ჩართულია SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-სთვის. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"დახურვა"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"მონაცემთა კავშირის ჩართვა"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"მობილური ინტერნეტის გათიშვა"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE უზრუნველყოფილია"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ვიდეოზარი უზრუნველყოფილია"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi დარეკვა უზრუნველყოფილია"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence უზრუნველყოფილია"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS მონაცემები"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS-ის ჩართვა"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"გსურთ მოწყობილობის გადატვირთვა?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ამ პარამეტრის შესაცვლელად საჭიროა მოწყობილობის გადატვირთვა."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"გადატვირთვა"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"გაუქმება"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"მობილური რადიოკავშირის ელკვება"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-ის მისამართების წიგნის ნახვა"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"დაშვებული ნომრების ნახვა"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"სერვისის დარეკილი ნომრების ნახვა"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS სერვისის სტატუსი"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-ის სტატუსი"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"რეგისტრირებული"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"არარეგისტრირებული"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ხელმისაწვდომი"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"მიუწვდომელია"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-ის რეგისტრაცია: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nვიდეოზარი: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ინტერფეისი: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"მომსახურების არეში"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"გასულია მომსახურების არიდან"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"მხოლოდ გადაუდებელი ზარები"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"რადიოკავშირი გამორთულია"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"როუმინგი"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"როუმინგის გარეშე"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"უმოქმედო"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ირეკება"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"მიმდინარეობს ზარი"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"კავშირი გაწყდა"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"მიმდინარეობს დაკავშირება"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"დაკავშირებულია"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"შეჩერებულია"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"უცნობი"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"პკტ."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ბაიტი"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ახლანდელი subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"მონაცემების ნაგულისხმევი SIM-ის subId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-არხის გამტარუნარიანობა (კბიტ/წმ):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-არხის გამტარუნარიანობა (კბიტ/წმ):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ფიჭური მდებარეობის ინფორმაცია (მოძველდა):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ფიზიკური არხის კონფიგურაცია:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ფიჭური ინფორმაციის განახლების სიხშირე:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"სრული ინფორმაცია ფიჭური ქსელის შესახებ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"მობილური ინტერნეტის სერვისი:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"როუმინგი:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ზარების გადამისამართება:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP ჩამოყრების რაოდენობა ჩატვირთვის შემდეგ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"გამოყენებული ქსელი:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"მიღებული მონაცემები:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ხმოვანი კავშირის სერვისი:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"სიგნალის სიმძლავრე:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ხმოვანი ზარის სტატუსი:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"გაგზავნილი მონაცემები:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"მომლოდინე შეტყობინება:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ტელეფონის ნომერი:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"რადიოდიაპაზონის არჩევა"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ხმოვანი კავშირის ტიპი:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"მობილური ინტერნეტის ტიპი:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"სატელეფონო ინდექსის არჩევა"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"მიუთითეთ ქსელის სასურველი ტიპი:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping-ის მოთხოვნა ჰოსტის სახელისთვის(www.google.com), IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping-ის მოთხოვნა ჰოსტის სახელისთვის(www.google.com), IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP კლიენტის ტესტი:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping ტესტის გაშვება"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"განახლება"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"განახლება"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS შემოწმების გადართვა"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ინფორმაცია/პარამეტრები სპეციალურად OEM-ისთვის"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"რადიოდიაპაზონის რეჟიმის დაყენება"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"მიმდინარეობს დიაპაზონთა სიის ჩატვირთვა…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"დაყენება"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"წარუმატებლად დასრულდა"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"წარმატებით შესრულდა"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ინფორმაცია ტაბლეტის შესახებ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ტელეფონის ინფორმაცია"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ოპერატორის უზრუნველყოფის ინფორმაცია"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ოპერატორის უზრუნველყოფის გააქტიურება"</string>
 </resources>
diff --git a/res/values-kk/config.xml b/res/values-kk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-kk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 9bd6347..f41b4bd 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Жеке нөмір"</string>
     <string name="payphone" msgid="7936735771836716941">"Автомат-телефон"</string>
     <string name="onHold" msgid="6132725550015899006">"Күтуде"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> хабары"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Оператордың хабары"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI коды басталды"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD коды қосулы…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI коды жарамсыздандырылған"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Тек NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Қалаулы желі режимі: WCDMA таңдалды"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Қалаулы желі режимі: GSM ғана"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Қалаулы желі режимі: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Қалаулы желі режимі: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Қалаулы желі режимі: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Оңтайлы желі режимі: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Қалаулы желі режимі: Жаһандық"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Қалаулы желі режимі: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Таңдаулы желі режимі: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Таңдалған желі режимі: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Таңдалған желі режимі: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Таңдалған желі режимі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Оңтайлы желі режимі: тек NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Оңтайлы желі режимі: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Оңтайлы желі режимі: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Оңтайлы желі режимі: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Оңтайлы желі режимі: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Оңтайлы желі режимі: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Оңтайлы желі режимі: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Оңтайлы желі режимі: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Қоңырау"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Желі"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Жақсартылған 4G LTE режимі"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Бірнеше категориялы"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Бірнеше категория қосылған"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Бірнеше категория өшірілген"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ұсынылады)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ұсынылған)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4Г (ұсынылған)"</string>
     <string name="network_global" msgid="3289646154407617631">"Жаһандық"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Тұрақты теру нөмірін өшіруде…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Тұрақты теру нөмірі жойылды."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ТТН жаңартылмады, себебі қате PIN код терілді."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN жаңартылмады, себебі нөмір 20 саннан аспауы тиіс."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Рұқсат нөмірлер жаңартылмады, себебі нөмір <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> саннан аспауы тиіс."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"ТТН жаңартылмады. PIN2 қате болды немесе телефон нөмірі қабылданбады."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Тұрақты теру нөмірлерінің жұмысы орындалмады."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM картасынан оқу…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Қоңырау шалу мүмкін емес. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> жедел нөмір емес."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Қоңырау шалу мүмкін емес. Жедел нөмірді теріңіз."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Төтенше жағдай қызметіне қоңырау шалу мүмкіндігі жоқ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK кодтарын осы құрылғының иесі ғана енгізе алады."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Жедел жәрдем"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Өрт қызметі"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Хабар жіберу функциясы бар қоңырау (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дауыстық қоңырау кезінде хабар жіберу мүмкіндігін қосу"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT функциясы керең немесе есту не сөйлеу қабілеті төмен адамдарға көмек ретінде не дауысқа қосымша функциялар қажет болғанда қолданылады. <xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>Толығырақ ақпарат\n RTT қоңыраулары хабар транскрипциясы ретінде сақталады\nRTT функциясы бейне қоңыраулар үшін қолданылмайды"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Ескертпе: роумингте RTT мүмкіндігі қолжетімсіз"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Tелетайп өшірулі"</item>
     <item msgid="1449091874731375214">"Tелетайп толық функциялы"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Иә"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Жоқ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Бас тарту"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон шұғыл кері қоңырау шалу режимінде"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> дейін"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Телефон <xliff:g id="COUNT_1">%s</xliff:g> минут бойы шұғыл кері қоңырау шалу режимінде болады.\nҚазір шыққыңыз келе ме?</item>
+      <item quantity="one">Телефон <xliff:g id="COUNT_0">%s</xliff:g> минут бойы шұғыл кері қоңырау шалу режимінде болады.\nҚазір шыққыңыз келе ме?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Қызмет"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Орнату"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Реттелген жоқ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Қоңырау шектеу параметрлері өшірілді"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Кұпия сөзді өзгерту"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Қоңырау шектеу құпия сөзін өзгерту"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Қоңырау шектеу құпия сөзі өзгертілмеді"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Қоңырауды шектеу құпия сөзін өзгерту мүмкін емес."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Құпия сөз сәйкес емес"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Құпия сөзде 4 сан болуы тиіс"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Құпия сөз өзгертілді"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Құпия сөзді растау"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Құпия сөзді енгізу"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Қоңырау шектеу параметрлері"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Қоңырау шектеу параметрлерінің барлығын өшіру қажет пе?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Желі бос емес. Кейінірек қайта қоңырау шалып көріңіз."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Желінің жүктемесі шамадан тыс. Көмек алу үшін операторыңызға хабарласыңыз."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Қоңырау басқа нөмірге жіберілді."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> пайдалану үшін SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> картасында мобильді интернеттің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> пайдалану үшін SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> картасында мобильді интернет пен деректер роумингінің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Жабу"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Деректер байланысын қосу"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Деректер байланысын өшіру"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE қарастырылған"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Бейнеқоңырау шалу қарастырылған"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi арқылы қоңырау шалу қарастырылған"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence қарастырылған"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS деректері"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS режимін іске қосу"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Құрылғыны қайта қосу қажет пе?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Бұл параметрді өзгерту үшін құрылғыны қайта қосу қажет."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Қайта қосу"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Өшіру"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Радиосигнал күші"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM мекенжай кітапшасын көру"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Рұқсат нөмірлерді көру"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Қызметтік теру нөмірлерін көру"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS қызметінің күйі"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS күйі"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Тіркелген"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Тіркелмеген"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Қолжетімді"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Қолжетімді емес"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS тіркеу: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE арқылы дауыстық қоңырау: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi арқылы дауыстық қоңырау: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nБейнеқоңырау: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT интерфейсі: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Істеп тұр"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Істен шыққан"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Құтқару қызметіне ғана қоңырау шалынады"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио өшірулі"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Роуминг істеп тұрған жоқ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Бос"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Шылдырлауда"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Қоңырау шалынуда"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ажыратылған"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Қосылуда"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Жалғанған"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Уақытша тоқтатылған"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Белгісіз"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Ағымдағы қосалқы идентификатор:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Әдепкі деректер SIM картасының қосалқы идентификаторы:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL өткізу мүмкіндігі (кбит/сек):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL өткізу мүмкіндігі (кбит/сек):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Ұялы желінің орналасқан жері туралы ақпарат (қолданыстан шығарылды):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE физикалық арна конфигурациясы:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Ұялы желі туралы ақпаратты жаңарту жиілігі:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Барлық ұялы желі өлшемдері туралы ақпарат:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Деректер қызметі:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Қоңырауды басқа нөмірге бағыттау:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Қосылғаннан бергі PPP протоколын қайтару саны:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Ағымдағы желі:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Қабылданған деректер:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Дауыстық қызмет:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Сигнал күші:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Дауыстық қоңырау күйі:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Жіберілген деректер:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Хабар күтуде:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефон нөмірі:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Радио жолағын таңдау"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Дауыс желісінің түрі:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Деректер желісінің түрі:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Телефон индексін таңдау"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Қалаулы желі түрін реттеу:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping хост атауы (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping хоста атауы (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP клиентін тексеру:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping тексеруін іске қосу"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Жаңарту"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Жаңарту"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS тексерісін қосу/өшіру"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Өндірушіге қатысты ақпарат/параметрлер"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Радиожолақ режимін орнату"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Жолақтар тізімі жүктелуде…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Орнату"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Сәтсіз"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Сәтті"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Планшет ақпараты"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Телефон ақпараты"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Операторды инициализациялау туралы ақпарат"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Операторды инциализациялауды іске қосу"</string>
 </resources>
diff --git a/res/values-km/config.xml b/res/values-km/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-km/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 04fc9f0..b58ca12 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"លេខ​ឯកជន"</string>
     <string name="payphone" msgid="7936735771836716941">"ទូរស័ព្ទសាធារណៈ"</string>
     <string name="onHold" msgid="6132725550015899006">"រង់ចាំ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"សារ <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"សារ​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"បាន​ចាប់ផ្ដើម​កូដ MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"កូដ USSD កំពុង​ដំណើរការ…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"បាន​បោះបង់​កូដ MMI"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR តែ​ប៉ុណ្ណោះ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ WCDMA ដែល​ចូលចិត្ត"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ តែ GSM ប៉ុណ្ណោះ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"មុខងារ​បណ្ដាញ​អាទិភាព៖ LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ សកល"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"របៀប​បណ្ដាញ​ដែល​ចូលចិត្ត៖ LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ប្រភេទបណ្តាញដែលពេញចិត្ត៖ LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"មុខងារ​បណ្ដាញ​ដែល​ប្រើ​ជា​អាទិភាព៖ LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"មុខងារ​បណ្ដាញ​ដែល​ប្រើ​ជា​អាទិភាព៖ TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"មុខងារ​បណ្ដាញ​ដែល​ប្រើ​ជា​អាទិភាព៖ LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR តែប៉ុណ្ណោះ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"មុខងារ​បណ្ដាញអាទិភាព៖ NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"មុខងារបណ្ដាញ​អាទិភាព៖ NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"មុខងារ​បណ្ដាញ​អាទិភាព៖ NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"កំពុង​ហៅ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"បណ្ដាញ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"​របៀប 4G LTE ធ្វើឲ្យ​ប្រសើរ​ឡើង"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ប្រភេទ​ច្រើន"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"បាន​បើក​ប្រភេទ​ច្រើន"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"បាន​បិទ​ប្រភេទ​ច្រើន"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (បានណែនាំ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (បានណែនាំ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (បាន​ផ្ដល់​អនុសាសន៍)"</string>
     <string name="network_global" msgid="3289646154407617631">"សកល"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"កំពុង​លុប​លេខ​​ហៅ​ថេរ…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"បាន​លុប​លេខ​ហៅ​ថេរ។"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"មិន​បាន​ធ្វើ​បច្ចុប្បន្នភាព FDN ពី​ព្រោះ​អ្នក​បាន​វាយ​បញ្ចូល​កូដ PIN មិន​ត្រឹមត្រូវ។"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN មិន​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព​ទេ ដោយ​សារ​លេខ​លើស​ពី 20 ខ្ទង់។"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN មិន​ត្រូវ​បាន​ធ្វើ​បច្ចុប្បន្នភាព​ទេ ដោយ​សារ​លេខ​លើស​ពី <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ខ្ទង់។"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"មិន​បាន​ធ្វើ​បច្ចុប្បន្នភាព។ កូដ PIN2 មិន​ត្រឹមត្រូវ ឬ​លេខ​ទូរស័ព្ទ​ត្រូវ​បាន​ច្រានចោល។"</string>
     <string name="fdn_failed" msgid="216592346853420250">"បាន​បរាជ័យ​ក្នុង​ការ​ប្រតិបត្តិការ FDN ។"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"កំពុង​អាន​ពី​ស៊ីមកាត…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"មិនអាចហៅបានទេ។ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> មិនមានជាលេខអាសន្នទេ។"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"មិនអាចហៅបានទេ។ ចុចហៅលេខអាសន្ន។"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"មិន​អាច​ហៅ​បន្ទាន់​បាន​ទេ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"មាន​តែ​ម្ចាស់​ឧបករណ៍​ប៉ុណ្ណោះ ដែល​អាច​បញ្ចូល​កូដ PIN/PUK បាន។"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ប៉ូលិស"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"រថយន្ត​សង្គ្រោះ​បន្ទាន់"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"អគ្គិភ័យ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ការហៅ​តាម​សារ​ជា​អក្សរ​ក្នុង​ពេល​ជាក់ស្ដែង"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"អនុញ្ញាត​ការផ្ញើសារ​នៅ​ក្នុង​ការហៅ​ជា​សំឡេង"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ជួយ​អ្នក​ហៅ​ទូរសព្ទ​ដែល​​ថ្លង់ ពិបាក​ក្នុង​ការស្ដាប់ មិន​អាច​និយាយ​បាន ឬ​​មាន​តម្រូវការ​ក្រៅ​ពី​សំឡេង។&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ស្វែងយល់​បន្ថែម&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - ការហៅ​ទូរសព្ទតាម RTT ត្រូវ​បាន​រក្សាទុក​ជា​ប្រតិចារឹក​សារ\n       &lt;br&gt; - RTT មិន​មានសម្រាប់ការហៅ​ជា​វីដេអូ​​ទេ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ចំណាំ៖ RTT មិន​អាច​ប្រើ​បាន​ទេ ពេល​រ៉ូមីង"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"បិទ TTY"</item>
     <item msgid="1449091874731375214">"TTY ពេញ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"បាទ/ចាស"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ទេ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"បោះបង់"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ទូរសព្ទ​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ទៅ​វិញ​ពេល​មាន​អាសន្ន"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"រហូត​ដល់​ម៉ោង <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ទៅ​វិញ​ពេល​មាន​អាសន្ន​រយៈ​ពេល <xliff:g id="COUNT_1">%s</xliff:g> នាទី។\nតើ​អ្នក​ចង់​ចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?</item>
+      <item quantity="one">ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ទៅ​វិញ​ពេល​មាន​អាសន្ន​រយៈ​ពេល <xliff:g id="COUNT_0">%s</xliff:g> នាទី។\nតើ​អ្នក​ចង់​ចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"សេវា"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"រៀបចំ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt; មិន​កំណត់ &gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"បាន​បិទ​ដំណើរការ​នៃការរារាំង​​ការហៅ​ទូរសព្ទ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ប្ដូរ​ពាក្យ​សម្ងាត់"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ប្ដូរ​ពាក្យ​សម្ងាត់​រារាំង​ការហៅ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​រារាំង​ការហៅ​បាន​ទេ"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​ដែល​រារាំង​ការហៅ​ទូរសព្ទ​បាន​ទេ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ពាក្យ​សម្ងាត់​មិន​ដូច​គ្នា"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"បញ្ចូល​ពាក្យ​សម្ងាត់​​​មាន 4 លេខ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"បានប្តូរពាក្យសម្ងាត់"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"បញ្ជាក់ពាក្យសម្ងាត់"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"បញ្ចូល​ពាក្យសម្ងាត់"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ការកំណត់​​ការរារាំង​ការហៅ​ទូរសព្ទ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"បិទ​ដំណើរការ​នៃការកំណត់​ការរារាំង​ការហៅ​​ទូរសព្ទទាំងអស់​ដែរ​​ទេ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"បណ្ដាញ​កំពុង​រវល់។ សូម​ព្យាយាម​​ការ​ហៅ​ទូរសព្ទ​របស់​អ្នក​ម្ដង​ទៀត​នៅ​ពេល​ក្រោយ។"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"បណ្ដាញ​មាន​ការកក​ស្ទះ។ ទាក់ទង​ទៅ​ប្រតិបត្តិករ​ឧបករណ៍​ចល័ត​របស់​អ្នក​សម្រាប់​ជំនួយ។"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"បាន​ហៅ​ទៅ​លេខ​ផ្សេង។"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"ដើម្បី​ប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> សូម​ប្រាកដថា​ទិន្នន័យទូរសព្ទ​​ចល័ត​ត្រូវ​បាន​បើក​សម្រាប់​ស៊ីម <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ។ អ្នក​អាចផ្លាស់​ប្ដូរ​​ជម្រើស​នេះ​​នៅ​ក្នុង​ការ​កំណត់​បណ្ដាញ​​ទូរសព្ទ​ចល័ត។"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"ដើម្បី​ប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> សូម​ប្រាកដថា​ទិន្នន័យ​ទូរសព្ទ​ចល័ត និង​ការ​រ៉ូមីង​ទិន្នន័យ​ត្រូវ​បាន​បើក​សម្រាប់​ស៊ីម <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ។ អ្នក​អាចផ្លាស់​ប្ដូរ​​ជម្រើស​ទាំង​នេះ​នៅ​ក្នុង​ការ​កំណត់​បណ្ដាញ​​ទូរសព្ទ​ចល័ត។"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"បដិសេធ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"បើក​ការតភ្ជាប់ទិន្នន័យ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"បិទការតភ្ជាប់ទិន្នន័យ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"បានផ្តល់ VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"បានផ្តល់​ការហៅជាវីដេអូ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"បាន​ផ្តល់​ការហៅ​ទូរសព្ទ​តាម Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"បាន​ផ្តល់ជូន EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"ទិន្នន័យ Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"បើក DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ចាប់ផ្តើមឧបករណ៍ឡើងវិញ​ឬ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"អ្នក​ត្រូវ​ចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នកឡើងវិញ ដើម្បី​ផ្លាស់ប្ដូរ​ការកំណត់​នេះ។"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ចាប់ផ្ដើមឡើងវិញ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"បោះបង់"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ថាមពល​វិទ្យុ​ទូរសព្ទ​ចល័ត"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"មើលសៀវភៅអាសយដ្ឋានក្នុងស៊ីមកាត"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"មើល​លេខ​ហៅ​ថេរ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"មើល​លេខ​ហៅ​សេវាកម្ម"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"សា្ថនភាពសេវាកម្ម IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"ស្ថានភាព IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"បានចុះឈ្មោះ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"មិន​បាន​ចុះឈ្មោះ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ទំនេរ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"មិន​ទំនេរ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"ការចុះឈ្មោះ IMS៖ <xliff:g id="STATUS">%1$s</xliff:g>\nការហៅ​ជា​សំឡេង​តាម LTE៖ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nការហៅ​ជា​សំឡេង​តាម WiFi៖ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nការហៅជាវីដេអូ៖ <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nផ្ទៃ UT ៖ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"កំពុង​ដំណើរការ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"មិនដំណើរការ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"សម្រាប់​តែ​ការហៅទៅលេខសង្គ្រោះបន្ទាន់​ប៉ុណ្ណោះ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"វិទ្យុ​បាន​បិទ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"រ៉ូមីង"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"មិនរ៉ូមីងទេ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"អសកម្ម"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"កំពុងរោទ៍"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ការហៅ​ទូរសព្ទ​កំពុងដំណើរការ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"បាន​ផ្ដាច់"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"កំពុងភ្ជាប់"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"បានភ្ជាប់"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"បាន​ផ្អាក"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"មិន​ស្គាល់"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"បៃ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"លេខសម្គាល់រង​បច្ចុប្បន្ន៖"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"លេខសម្គាល់រង​របស់​ស៊ីម​ទិន្នន័យ​លំនាំដើម៖"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"កម្រិត​បញ្ជូន DL (kbps) ៖"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"កម្រិត​បញ្ជូន UL (kbps) ៖"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ព័ត៌មាន​ទីតាំង​ទូរសព្ទ​ចល័ត (បានបញ្ឈប់)៖"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"ការកំណត់​រចនាសម្ព័ន្ធបណ្ដាញរូបវ័ន្ត LTE ៖"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"អត្រា​ផ្ទុក​ឡើង​វិញ​នៃ​ព័ត៌មាន​ទូរសព្ទ​ចល័ត៖"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ព័ត៌មាន​វាស់​ទូរសព្ទ​ចល័ត​ទាំងអស់៖"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"សេវាកម្មទិន្នន័យ៖"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"រ៉ូមីង៖"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI ៖"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"បញ្ជូនការហៅ​ទូរសព្ទ​បន្ត៖"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ចំនួននៃការកំណត់ PPP ឡើងវិញតាំងពីពេលចាប់ផ្ដើម៖"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"បណ្ដាញបច្ចុប្បន្ន៖"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"បានទទួលទិន្នន័យ៖"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"សេវាកម្មសំឡេង៖"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"កម្លាំងរលកសញ្ញា៖"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ស្ថានភាព​ការហៅ​ជា​សំឡេង៖"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"បានផ្ញើទិន្នន័យ៖"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"រង់ចាំសារ៖"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"លេខទូរសព្ទ៖"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ជ្រើសរើស​កម្រិត​បញ្ជូន​វិទ្យុ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ប្រភេទបណ្តាញសំឡេង៖"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ប្រភេទបណ្តាញទិន្នន័យ៖"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ជ្រើសរើស​សន្ទស្សន៍​ទូរសព្ទ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"កំណត់ប្រភេទបណ្ដាញដែលពេញចិត្ត៖"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ភីង​ឈ្មោះ​ម៉ាស៊ីន (www.google.com) IPv4 ៖"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ភីង​ឈ្មោះ​ម៉ាស៊ីន (www.google.com) IPv6 ៖"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"តេស្ត​កម្មវិធី​ភ្ញៀវ HTTP ៖"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ដំណើរការ​តេស្ត​ភីង"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC ៖"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ធ្វើ​បច្ចុប្បន្នភាព"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ផ្ទុកឡើងវិញ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"បិទ/បើកការពិនិត្យ DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ការ​កំណត់/ព័ត៌មាន​ជាក់លាក់ OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"កំណត់​មុខងារ​កម្រិត​បញ្ជូន​វិទ្យុ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"កំពុងដំណើរការបញ្ជីក្រុម…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"កំណត់"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"មិនបាន​សម្រេច"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ជោគជ័យ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ព័ត៌មាន​ថេប្លេត"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ព័ត៌មាន​ទូរសព្ទ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ព័ត៌មាន​អំពី​ការផ្តល់​ទិន្នន័យ​របស់​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"នាំ​ឱ្យ​មាន​ការផ្តល់​ទិន្នន័យ​ពី​ក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
 </resources>
diff --git a/res/values-kn/config.xml b/res/values-kn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-kn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 6ef1eeb..fcbcf3d 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ಖಾಸಗಿ ಸಂಖ್ಯೆ"</string>
     <string name="payphone" msgid="7936735771836716941">"ಪೇಫೋನ್"</string>
     <string name="onHold" msgid="6132725550015899006">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> ಸಂದೇಶ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ವಾಹಕದ ಸಂದೇಶ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI ಕೋಡ್‌ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ಕೋಡ್‌ ಚಾಲನೆಯಲ್ಲಿದೆ…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI ಕೋಡ್‌ ರದ್ದು ಮಾಡಲಾಗಿದೆ"</string>
@@ -139,7 +141,7 @@
     <string name="close_dialog" msgid="1074977476136119408">"ಸರಿ"</string>
     <string name="enable" msgid="2636552299455477603">"ಆನ್‌ ಮಾಡಿ"</string>
     <string name="disable" msgid="1122698860799462116">"ಆಫ್ ಮಾಡು"</string>
-    <string name="change_num" msgid="6982164494063109334">"ಅಪ್‌ಡೇಟ್‌ ಮಾಡು"</string>
+    <string name="change_num" msgid="6982164494063109334">"ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"</string>
   <string-array name="clir_display_values">
     <item msgid="8477364191403806960">"ನೆಟ್‌ವರ್ಕ್ ಡಿಫಾಲ್ಟ್"</item>
     <item msgid="6813323051965618926">"ಸಂಖ್ಯೆಯನ್ನು ಮರೆಮಾಡು"</item>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR ಮಾತ್ರ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: WCDMA ಗೆ ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಲಾಗಿದೆ"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: GSM ಮಾತ್ರ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌: ಜಾಗತಿಕ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ಬಯಸಿದ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌‌: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR ಮಾತ್ರ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ಕರೆಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ನೆಟ್‌ವರ್ಕ್"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ವರ್ಧಿಸಲಾದ 4G LTE ಮೋಡ್"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ಬಹು-ವರ್ಗ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ಬಹು ವರ್ಗವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ಬಹು ವರ್ಗವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ಜಾಗತಿಕ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ಸ್ಥಿರ ಡಯಲಿಂಗ್‌‌ ಸಂಖ್ಯೆಯನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ಸ್ಥಿರ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಯನ್ನು ಅಳಿಸಲಾಗಿದೆ."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ನೀವು ತಪ್ಪಾದ ಪಿನ್‌ ಟೈಪ್‌ ಮಾಡಿರುವ ಕಾರಣ ಎಫ್‌ಡಿಎನ್‌ ಅನ್ನು ನವೀಕರಿಸಲಾಗಲಿಲ್ಲ."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"ಸಂಖ್ಯೆಯು 20 ಅಂಕೆಗಳನ್ನು ಮೀರಿರುವುದರಿಂದ FDN ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿಲ್ಲ."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ಸಂಖ್ಯೆಯು <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ಅಂಕಿಗಳನ್ನು ಮೀರುತ್ತಿರುವ ಕಾರಣ FDN ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಲಿಲ್ಲ."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"ಎಫ್‌ಡಿಎನ್‌ ಅನ್ನು ನವೀಕರಿಸಲಾಗಲಿಲ್ಲ. PIN2 ತಪ್ಪಾಗಿದೆ ಅಥವಾ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ."</string>
     <string name="fdn_failed" msgid="216592346853420250">"ಎಫ್‌ಡಿಎನ್‌ ಕಾರ್ಯಾಚರಣೆ ವಿಫಲವಾಗಿದೆ."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಓದಲಾಗುತ್ತಿದೆ…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ಇದು ತುರ್ತು ಸಂಖ್ಯೆಯಲ್ಲ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ತುರ್ತು ಸಂಖ್ಯೆಯನ್ನು ಡಯಲ್ ಮಾಡಿ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ತುರ್ತು ಕರೆ ಮಾಡುವಿಕೆ ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ಸಾಧನದ ಮಾಲೀಕರು ಮಾತ್ರ PIN/PUK ಕೋಡ್‌ಗಳನ್ನು ನಮೂದಿಸಬಹುದು."</string>
     <string name="police_type_description" msgid="2819533883972081757">"ಪೊಲೀಸ್"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ಆಂಬುಲೆನ್ಸ್"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ಬೆಂಕಿ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ನೈಜ-ಸಮಯ ಪಠ್ಯ (RTT) ಕರೆ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ಧ್ವನಿ ಕರೆಯ ಒಳಗೆ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಗೆ ಅನುಮತಿಸಿ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"ಕಿವುಡರು, ಆಲಿಸುವಿಕೆಯ ದೋಷಗಳನ್ನು ಹೊಂದಿದವರು, ಮಾತನಾಡುವಿಕೆಯಲ್ಲಿ ದೋಷಗಳನ್ನು ಹೊಂದಿದವರು ಅಥವಾ ಧ್ವನಿ ಮೀರಿ ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಕರೆ ಮಾಡಲು ಕಠಿಣರಾಗಿರುವವರಿಗೆ RTT ಮೋಡ್ ಸಹಾಯ ಮಾಡುತ್ತದೆ.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;\n   &lt;br&gt;&lt;br&gt; - RTT ಕರೆಗಳನ್ನು ಸಂದೇಶ ಪ್ರತಿಲಿಪಿಗಳಂತೆ ಉಳಿಸಲಾಗಿದೆ \n    &lt;br&gt; - ವೀಡಿಯೊ ಕರೆಗಳಿಗೆ RTT ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ಗಮನಿಸಿ: ರೋಮಿಂಗ್‌ನಲ್ಲಿ RTT ಲಭ್ಯವಿಲ್ಲ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ಆಫ್"</item>
     <item msgid="1449091874731375214">"TTY ಪೂರ್ಣ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ಹೌದು"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ಇಲ್ಲ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ವಜಾಗೊಳಿಸಿ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ಫೋನ್‌‌, ತುರ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಮೋಡ್‌ನಲ್ಲಿದೆ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> ವರೆಗೆ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ಫೋನ್‌‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳವರೆಗೆ ತುರ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ.\n ನೀವು ಈಗಲೇ ನಿರ್ಗಮಿಸಲು ಬಯಸುತ್ತೀರಾ?</item>
+      <item quantity="other">ಫೋನ್‌‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳವರೆಗೆ ತುರ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ.\n ನೀವು ಈಗಲೇ ನಿರ್ಗಮಿಸಲು ಬಯಸುತ್ತೀರಾ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ಸೇವೆ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ಸೆಟಪ್"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ಪಾಸ್‌ವರ್ಡ್ ಬದಲಿಸಿ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಿ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ಸಂಖ್ಯೆಯ ಪಾಸ್‌ವರ್ಡ್‌ ನಮೂದಿಸಿ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾವಣೆಯಾಗಿದೆ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ಪಾಸ್‌ವರ್ಡ್‌ ದೃಢೀಕರಿಸಿ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ಎಲ್ಲಾ ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದೇ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ನೆಟ್‌ವರ್ಕ್ ಕಾರ್ಯನಿರತವಾಗಿದೆ ನಿಮ್ಮ ಕರೆಯನ್ನು ಪುನಃ ನಂತರ ಪ್ರಯತ್ನಿಸಿ"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ನೆಟ್‌ವರ್ಕ್ ದಟ್ಟಣೆಯಿದೆ. ಸಹಾಯಕ್ಕಾಗಿ ನಿಮ್ಮ ಮೊಬೈಲ್ ಆಪರೇಟರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ಕರೆ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗಿದೆ."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ಸಿಮ್‌ಗಾಗಿ ಮೊಬೈಲ್ ಡೇಟಾ ಆನ್‌ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ಸಿಮ್ ಗಾಗಿ ಮೊಬೈಲ್ ಡೇಟಾ ಮತ್ತು ಡೇಟಾ ರೋಮಿಂಗ್ ಆನ್‌ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ವಜಾಗೊಳಿಸಿ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ಡೇಟಾ ಸಂಪರ್ಕ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ಡೇಟಾ ಸಂಪರ್ಕ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ಕಲ್ಪಿಸಲಾಗಿದೆ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ವೀಡಿಯೊ ಕರೆ ಸೌಲಭ್ಯ ಕಲ್ಪಿಸಲಾಗಿದೆ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ವೈಫೈ ಕರೆ ಸೌಲಭ್ಯ ಕಲ್ಪಿಸಲಾಗಿದೆ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ಪ್ರಸ್ತುತ ಸಿದ್ಧವಾಗಿದೆ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ಡೇಟಾ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ನೀವು ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ಮೊಬೈಲ್ ರೇಡಿಯೋ ಪವರ್"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ಸಿಮ್ ವಿಳಾಸ ಪುಸ್ತಕವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ಸ್ಥಿರ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ಸೇವಾ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ಸೇವೆ ಸ್ಥಿತಿ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ಸ್ಥಿತಿ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ನೋಂದಾಯಿಸಲಾಗಿದೆ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ನೋಂದಣಿಯಾಗಿಲ್ಲ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ಲಭ್ಯವಿದೆ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ಲಭ್ಯವಿಲ್ಲ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ನೋಂದಣಿ: <xliff:g id="STATUS">%1$s</xliff:g>\nವಾಯ್ಸ್ ಓವರ್ LTE:<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nವಾಯ್ಸ್ ಓವರ್ ವೈ-ಫೈ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nವೀಡಿಯೊ ಕರೆ ಮಾಡುವಿಕೆ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ಇಂಟರ್ಫೇಸ್: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ಸೇವೆಯಲ್ಲಿದೆ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ಸೇವೆಯಲ್ಲಿಲ್ಲ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ತುರ್ತು ಕರೆಗಳು ಮಾತ್ರ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ರೇಡಿಯೋ ಆಫ್ ಮಾಡಿ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ರೋಮಿಂಗ್"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ರೋಮಿಂಗ್‌ನಲ್ಲಿ ಇಲ್ಲ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ತಟಸ್ಥ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ರಿಂಗ್‌ ಆಗುತ್ತಿದೆ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ಕರೆ ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ಸಂಪರ್ಕ ಕಡಿತಗೊಂಡಿದೆ"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ಕನೆಕ್ಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ಅಮಾನತುಗೊಳಿಸಲಾಗಿದೆ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ಅಪರಿಚಿತ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ಬೈಟ್‌ಗಳು"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ಪ್ರಸ್ತುತ ವಿಷಯಐಡಿ:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ಡೀಫಾಲ್ಟ್ ಡೇಟಾ ಸಿಮ್‌ನ ವಿಷಯಐಡಿ:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ಸೆಲ್ ಸ್ಥಳ ಮಾಹಿತಿ (ತಡೆಹಿಡಿಯಲಾಗಿದೆ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ಭೌತಿಕ ಚಾನೆಲ್ ಕಾನ್ಫಿಗರೇಶನ್:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ಸೆಲ್ ಮಾಹಿತಿ ರಿಫ್ರೆಶ್ ದರ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ಎಲ್ಲಾ ಸೆಲ್ ಮಾಪನ ಮಾಹಿತಿ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ಡೇಟಾ ಸೇವೆ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ರೋಮಿಂಗ್:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ಕರೆ ಮರುನಿರ್ದೇಶನ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ಬೂಟ್ ಆದಾಗಿನಿಂದ PPP ಮರುಹೊಂದಿಕೆಯ ಸಂಖ್ಯೆ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ಪ್ರಸ್ತುತ ನೆಟ್‌ವರ್ಕ್‌:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ಡೇಟಾ ಸ್ವೀಕರಿಸಲಾಗಿದೆ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ಧ್ವನಿ ಸೇವೆ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ಧ್ವನಿ ಕರೆ ಸ್ಥಿತಿ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ಡೇಟಾ ಕಳುಹಿಸಲಾಗಿದೆ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ಸಂದೇಶ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ಫೋನ್ ಸಂಖ್ಯೆ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ಧ್ವನಿ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ಡೇಟಾ ನೆಟ್‌ವರ್ಕ್ ಪ್ರಕಾರ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ಫೋನ್ ಸೂಚಿಕೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರವನ್ನು ಹೊಂದಿಸಿ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ಹೋಸ್ಟ್‌ ಹೆಸರನ್ನು ಪಿಂಗ್ ಮಾಡಿ(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ಹೋಸ್ಟ್‌ ಹೆಸರನ್ನು ಪಿಂಗ್ ಮಾಡಿ(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ಕ್ಲೈಂಟ್ ಪರೀಕ್ಷೆ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ಪಿಂಗ್ ಪರೀಕ್ಷೆಯನ್ನು ರನ್ ಮಾಡಿ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ಅಪ್‌ಡೇಟ್ ಮಾಡಿ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ರಿಫ್ರೆಶ್ ಮಾಡಿ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS ಪರಿಶೀಲನೆ ಟಾಗಲ್ ಮಾಡಿ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-ನಿರ್ದಿಷ್ಟ ಮಾಹಿತಿ/ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಮೋಡ್ ಹೊಂದಿಸಿ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ಬ್ಯಾಂಡ್ ಪಟ್ಟಿಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ಹೊಂದಿಸಿ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ವಿಫಲಗೊಂಡಿದೆ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ಯಶಸ್ವಿಯಾಗಿದೆ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ಟ್ಯಾಬ್ಲೆಟ್ ಮಾಹಿತಿ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ಫೋನ್ ಮಾಹಿತಿ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ವಾಹಕ ಪೂರೈಕೆಯ ಮಾಹಿತಿ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ಟ್ರಿಗರ್‌ ವಾಹಕ ಪೂರೈಕೆ"</string>
 </resources>
diff --git a/res/values-ko/config.xml b/res/values-ko/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ko/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index a0ad341..c68ffa4 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"비공개 번호"</string>
     <string name="payphone" msgid="7936735771836716941">"공중전화"</string>
     <string name="onHold" msgid="6132725550015899006">"대기 중"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> 메시지"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"이동통신사 메시지"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 코드 시작됨"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD 코드 실행 중..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 코드 취소됨"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR 전용"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"기본 네트워크 모드: WCDMA 선호"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"기본 네트워크 모드: GSM 전용"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"기본 네트워크 모드: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"기본 네트워크 모드: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"기본 네트워크 모드: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"기본 네트워크 모드: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"기본 네트워크 모드: 글로벌"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"기본 네트워크 모드: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"기본 네트워크 모드: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"기본 네트워크 모드: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"기본 네트워크 모드: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"기본 네트워크 모드: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"기본 네트워크 모드: NR 전용"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"기본 네트워크 모드: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"기본 네트워크 모드: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"기본 네트워크 모드: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"기본 네트워크 모드: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"기본 네트워크 모드: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"기본 네트워크 모드: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"기본 네트워크 모드: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"기본 네트워크 모드: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"기본 네트워크 모드: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"기본 네트워크 모드: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"통화"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"네트워크"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"향상된 4G LTE 모드"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"다중 카테고리"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"다중 카테고리 사용"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"다중 카테고리 사용 중지"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (권장)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE(권장)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G(권장)"</string>
     <string name="network_global" msgid="3289646154407617631">"전체"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"발신 허용 번호를 삭제하는 중..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"발신 허용 번호가 삭제되었습니다."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"잘못된 PIN을 입력하여 FDN 업데이트 안됨"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"숫자가 20자리를 초과하여 FDN을 업데이트하지 못했습니다."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"숫자가 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>자리를 초과하여 FDN을 업데이트하지 못했습니다."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN이 업데이트되지 않았습니다. PIN2가 잘못되었거나 전화번호가 거부되었습니다."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN 작업이 실패했습니다."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM 카드에서 읽는 중..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"전화를 걸 수 없습니다. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g>은(는) 긴급 번호가 아닙니다."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"전화를 걸 수 없습니다. 긴급 번호를 사용하세요."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"긴급 전화를 사용할 수 없음"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"기기 소유자만 PIN/PUK 코드를 입력할 수 있습니다."</string>
     <string name="police_type_description" msgid="2819533883972081757">"경찰서"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"구급차"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"화재"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"실시간 문자 메시지(RTT) 통화"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"음성 통화 중 메시지 허용"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT는 청각 장애, 난청, 언어 장애가 있거나 음성 이외의 의사소통 수단이 필요한 발신자에게 도움이 됩니다.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;자세히 알아보기&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT 통화는 메시지 스크립트로 저장됩니다.\n       &lt;br&gt; - 화상 통화에서는 RTT를 사용할 수 없습니다."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"참고: 로밍 중에는 RTT를 사용할 수 없습니다."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY 사용 안함"</item>
     <item msgid="1449091874731375214">"TTY 전체"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"예"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"아니요"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"해제"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"휴대전화가 긴급 콜백 모드입니다."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g>까지"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">휴대전화가 <xliff:g id="COUNT_1">%s</xliff:g>분간 긴급 콜백 모드로 유지됩니다.\n지금 종료하시겠습니까?</item>
+      <item quantity="one">휴대전화가 <xliff:g id="COUNT_0">%s</xliff:g>분간 긴급 콜백 모드로 유지됩니다.\n지금 종료하시겠습니까?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"서비스"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"설정"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;설정 안됨&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"착발신 제한 비활성화됨"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"비밀번호 변경"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"착발신 제한 비밀번호 변경"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"착발신 제한 비밀번호를 변경할 수 없습니다."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"착발신 제한 비밀번호를 변경할 수 없습니다."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"비밀번호가 일치하지 않습니다."</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4자리 숫자로 비밀번호를 입력하세요."</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"비밀번호 변경됨"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"비밀번호 확인"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"비밀번호 입력"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"착발신 제한 설정"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"모든 착발신 제한 설정을 비활성화하시겠습니까?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"네트워크 사용량이 많습니다. 나중에 다시 전화해 주세요."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"네트워크 사용량이 많습니다. 이동통신사에 지원을 요청해 보세요."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"통화가 착신전환되었습니다."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>을(를) 사용하려면 SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>에 모바일 데이터가 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>을(를) 사용하려면 SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>에 모바일 데이터 및 데이터 로밍이 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"닫기"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"데이터 연결 사용"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"데이터 연결 사용 안함"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE 프로비저닝됨"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"화상 통화 프로비저닝됨"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi 통화 프로비저닝됨"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/상태 프로비저닝됨"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 데이터"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS 사용 설정"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"기기 다시 시작"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"설정을 변경하려면 기기를 다시 시작해야 합니다."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"다시 시작"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"취소"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"모바일 무선 전력"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM 주소록 보기"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"발신 허용 번호 보기"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"SDN(Service Dialing Numbers) 보기"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 서비스 상태"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 상태"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"등록됨"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"등록 안됨"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"사용 가능"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"사용할 수 없음"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 등록: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n화상 통화: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 인터페이스: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"서비스 중"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"서비스 지역 벗어남"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"긴급 통화만 허용"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"무선 연결 끊김"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"로밍"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"로밍 안함"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"없음"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"전화 수신 중"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"통화 진행 중"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"연결 끊김"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"연결 중"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"연결됨"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"정지됨"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"알 수 없음"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"패킷"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"바이트"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"현재 subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"기본 데이터 SIM의 subId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 대역폭(kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 대역폭(kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"셀 위치 정보(사용 중단됨):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 물리적 채널 구성:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"셀 정보 새로고침 빈도:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"모든 셀 측정 정보:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"데이터 서비스:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"로밍:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"통화 리디렉션:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"부팅 후 PPP 재설정 횟수:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"현재 네트워크:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"받은 데이터:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"음성 서비스:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"신호 강도:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"음성 통화 상태:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"보낸 데이터:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"메시지 대기 중:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"전화번호:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"무선 주파수 대역 선택"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"음성 네트워크 유형:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"데이터 네트워크 유형:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"휴대전화 색인 선택"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"기본 네트워크 유형 설정:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"핑 호스트 이름(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"핑 호스트 이름(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 클라이언트 테스트:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"핑 테스트 실행"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"업데이트"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"새로고침"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS 확인 전환"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM별 정보/설정"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"무선 주파수 대역 모드 설정"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"대역 목록 로드 중…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"설정"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"실패"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"성공"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"태블릿 정보"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"휴대전화 정보"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"이동통신사 프로비저닝 정보"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"이동통신사 프로비저닝 실행"</string>
 </resources>
diff --git a/res/values-ky/config.xml b/res/values-ky/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ky/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 34d7dfa..3928204 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Купуя номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Таксофон"</string>
     <string name="onHold" msgid="6132725550015899006">"Күтүлүүдө"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Билдирүү"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Байланыш операторунун билдирүүсү"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI код иштетилди"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD коду иштеп жатат…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI код жокко чыгарылды"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR гана"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Тандалган тармак режими: WCDMA тандалган"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Тандалган тармак режими: GSM гана"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Артыкчылыктуу желе тартиби: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Артыкчылыктуу желе тартиби: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Артыкчылыктуу желе тартиби: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Тандалган тармак режими: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Тандалган тармак режими: Дүйнө жүзү"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Артыкчылыктуу желе тартиби: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Жаккан режим: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Тандалган тармак режими: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Тандалган тармак режими: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Тандалган тармак режими: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Тандалган тармак режими: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Тандалган тармак режими: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Тандалган тармак режими: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Тандалган тармак режими: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Тандалган тармак режими: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Тандалган тармак режими: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Тандалган тармак режими: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Тандалган тармак режими: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Тандалган тармак режими: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Тандалган тармак режими: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Тандалган тармак режими: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Чалуулар"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Тармак"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Жакшыртылган 4G LTE режими"</string>
@@ -249,8 +274,8 @@
     <string name="data_enable_summary" msgid="696860063456536557">"Дайындарды пайдаланууга уруксат берүү"</string>
     <string name="dialog_alert_title" msgid="5260471806940268478">"Көңүл буруңуз"</string>
     <string name="roaming" msgid="1576180772877858949">"Роуминг"</string>
-    <string name="roaming_enable" msgid="6853685214521494819">"Роуминг учурунда мобилдик Интернетке туташат"</string>
-    <string name="roaming_disable" msgid="8856224638624592681">"Роуминг учурунда мобилдик Интернетке туташат"</string>
+    <string name="roaming_enable" msgid="6853685214521494819">"Роуминг учурунда дайын-даректерди өткөрүүчү кызматтарга туташуу"</string>
+    <string name="roaming_disable" msgid="8856224638624592681">"Роуминг учурунда дайын-даректерди өткөрүүчү кызматтарга туташуу"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Интернет-роуминг өчүрүлгөн. Күйгүзүү үчүн басыңыз."</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"Роуминг акысын төлөп калышыңыз мүмкүн. Өзгөртүү үчүн таптап коюңуз."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Мобилдик интернет туташуусу үзүлдү"</string>
@@ -260,7 +285,7 @@
     <string name="roaming_alert_title" msgid="5689615818220960940">"Интернет-роумингди иштетесизби?"</string>
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"SIM-картанын функциялары чектелген"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"<xliff:g id="PHONE_NUMBER">%2$s</xliff:g> номерин колдонгондо <xliff:g id="CARRIER_NAME">%1$s</xliff:g> чалуулары жана дайындар кызматтары бөгөттөлүшү мүмкүн."</string>
-    <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Башка SIM-картаны колднгндо <xliff:g id="CARRIER_NAME">%1$s</xliff:g> чалуулары жана дайындар кызмттары бөгөттлшү мүмкүн."</string>
+    <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Башка SIM картаны колднгндо <xliff:g id="CARRIER_NAME">%1$s</xliff:g> чалуулары жана дайындар кызмттары бөгөттлшү мүмкүн."</string>
     <string name="data_usage_title" msgid="8438592133893837464">"Колдонмолордун трафиги"</string>
     <string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_2">%2$s</xliff:g> аралыгында <xliff:g id="ID_1">%1$s</xliff:g> мобилдик трафик колдонулду"</string>
     <string name="advanced_options_title" msgid="9208195294513520934">"Өркүндөтүлгөн"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мульти-категория"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мульти-категория иштетилген"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мульти-категория өчүрүлгөн"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (сунушталган)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (сунушталат)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (сунушталат)"</string>
     <string name="network_global" msgid="3289646154407617631">"Дүйнө жүзү"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Туруктуу терүү номери жок кылынууда…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Туруктуу терүү номери өчүрүлдү."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"БНТ жаңыртылган жок, анткени туура эмес PIN-код киргизилди."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Уруксат берилген номер жаңыртылган жок, себеби жазылган номердин саны 20дан ашпашы керек."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Уруксат берилген номер жаңыртылган жок, себеби жазылган номердин саны <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ашпашы керек."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"БНТ жаңыртылган жок. PIN2 туура эмес, же телефон номуру жараксыз."</string>
     <string name="fdn_failed" msgid="216592346853420250">"БНТ иши кыйрады."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-картадан окулууда…"</string>
@@ -517,7 +543,7 @@
     <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Чалууну кармап туруу мүмкүн эмес."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Чалуу үчүн зымсыз тармакка туташыңыз."</string>
     <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Wi-Fi аркылуу чалыңыз."</string>
-    <string name="emergency_information_hint" msgid="9208897544917793012">"Өзгөчө кырдаал маалыматы"</string>
+    <string name="emergency_information_hint" msgid="9208897544917793012">"Кырсыктаганда керек болчу маалымат"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"Ээси"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Маалыматты көрүү үчүн кайра таптап коюңуз"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Шашылыш чалуу"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Чалынбай жатат. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> өзгөчө кырдаал номери эмес."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Чалынбай жатат. Өзгөчө кырдаалдар кызматынын номерин териңиз."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Шашылыш чалуу жеткиликсиз"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Түзмөктүн ээси гана PIN/PUK коддорун киргизе алат."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Тез жардам машинасы"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Өрт"</string>
@@ -548,7 +575,7 @@
     <string name="onscreenVideoCallText" msgid="1743992456126258698">"Видео чалуу"</string>
     <string name="importSimEntry" msgid="3892354284082689894">"Импорттоо"</string>
     <string name="importAllSimEntries" msgid="2628391505643564007">"Баарын импорттоо"</string>
-    <string name="importingSimContacts" msgid="4995457122107888932">"SIM-картадагы байланыштардан импорттоо"</string>
+    <string name="importingSimContacts" msgid="4995457122107888932">"SIM картадагы байланыштардан импорттоо"</string>
     <string name="importToFDNfromContacts" msgid="5068664870738407341">"Байланыштардан импорттоо"</string>
     <string name="singleContactImportedMsg" msgid="3619804066300998934">"Байланыш импорттолду"</string>
     <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"Байланыш импорттолбой калды"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Чалуу учурунда анык убакыттагы билдирүү (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Үн чалуунун учурунда жазышууга уруксат берүү"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT функциясы угуу жана сүйлөө жөндөмдүүлүгү бузулган адамдарга арналат.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Кеңири маалымат&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT функциясында чалуулар транскрипциялар катары сакталат\n       &lt;br&gt; - RTT функациясы видео чалууда жеткиликсиз болот"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Эскертүү: Роуминг учурунда RTT жеткиликсиз"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Телетайп түзмөгү өчүк"</item>
     <item msgid="1449091874731375214">"Телетайп түзмөгү толуп калды"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ооба"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Жок"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Этибарга албоо"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон шашылыш кайра чалуу режиминде"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> чейин"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Телефон шашылыш кайра чалуу режиминде <xliff:g id="COUNT_1">%s</xliff:g> мүнөт бою болот.\nАзыр чыгып кетесизби?</item>
+      <item quantity="one">Телефон шашылыш кайра чалуу режиминде <xliff:g id="COUNT_0">%s</xliff:g> мүнөт бою болот.\nАзыр чыгып кетесизби?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Кызмат"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Жөндөө"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Коюлган эмес&gt;"</string>
@@ -640,7 +674,7 @@
     <string name="message_decode_error" msgid="1061856591500290887">"Билдирүү дешифрленип жатканда ката кеткен."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-карта кызматыңызды жандырып, телефонуңуздун роуминг мүмкүнчүлүктөрүн жаңыртты."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Учурда жигердүү чалуулар өтө көп. Чалуу үчүн учурдагы чалууларды бүтүрүңүз же бириктириңиз."</string>
-    <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Байланышуу мумкүн эмес. Жарактуу SIM-картаны салыңыз."</string>
+    <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Байланышуу мумкүн эмес. Жарактуу SIM картаны салыңыз."</string>
     <string name="callFailed_wifi_lost" msgid="1788036730589163141">"Wi-Fi туташуусу үзүлүп калды. Чалуу аяктады."</string>
     <string name="dialFailed_low_battery" msgid="6857904237423407056">"Батареянын заряды төмөн болгондуктан, видео режиминде чала албайсыз."</string>
     <string name="callFailed_low_battery" msgid="4056828320214416182">"Батареянын заряды төмөн болгондуктан, видео чалуу аяктады."</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Чалууларга тыюу салуу функциясы өчүрүлдү"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Сызсөздү өзгөртүү"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Чалууларга тыюу салуу функциясынын сырсөзүн өзгөртүү"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Чалууларга тыюу салуу функциясынын сырсөзү өзгөртүлбөй койду"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Чалууларга тыюу салуу сырсөзү өзгөртүлбөй койду"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Сырсөздөр дал келбейт"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 сандан турагн сырсөздү киргизиңиз"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Сырсөз өзгөртүлдү"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Сырсөздү ырастоо"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Сырсөздү киргизиңиз"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Чалууларга тыюу салуу функциясынын жөндөөлөрү"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Чалууларга тыюу салуу функциясынын жөндөөлөрү өчүрүлсүнбү?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Тармак бош эмес. Кийинчерээк кайра чалыңыз."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Тармак ашыкча жүктөлгөн. Жардам алуу үчүн мобилдик операторуңуз менен байланышыңыз."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Чалуу кабыл алынган жок."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> колдонуу үчүн <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM-картасында мобилдик Интернет күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> колдонуу үчүн <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM-картасында мобилдик Интернет жана Интернет-роуминг күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Жабуу"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Мобилдик туташууну иштетүү"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Мобилдик туташууну өчүрүү"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE камсыздалган"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видео чалуу камсыздалган"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi аркылуу чалуу камсыздалган"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Катышуу камсыздалган"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Жарандык радио кызматынын дайындары"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS\'ти иштетүү"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Түзмөк өчүп күйсүнбү?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Бул жөндөөнү өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Өчүрүп-күйгүзүү"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Жокко чыгаруу"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мобилдик радионун кубаты"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM картадагы дарек китепчесин көрүү"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Туруктуу терүү номерлерин көрүү"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Кызматтык терүү номерлерин көрүү"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS кызматынын абалы"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS абалы"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Катталды"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Катталган эмес"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Жеткиликтүү"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Жеткиликсиз"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS каттоосу: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE аркылуу аудио чалуу: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi аркылуу аудио чалуу: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидео чалуу: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT интерфейс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Тейлөө аймагында"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Тейлөө аймагынын сыртында"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Кырсыктаганда гана чалууга болот"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио өчүк"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Роумингде эмес"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Күтүү режиминде"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Шыңгыроодо"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Чалуу аткарылууда"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ажыратылган"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Туташууда"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Туташты"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Убактылуу токтотулду"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Белгисиз"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байттар"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Учурдагы көз салуу идентификатору:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Демейки оператордун SIM картасынын көз салуу идентификатору:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Уюлдук тармакта жайгашкан жери тууралуу маалымат (жоюлган):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE физикалык каналынын конфигурациясы:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Уюлдук маалыматты жаңылоо ылдамдыгы:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Уюлдук чен-өлчөм маалыматтары:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Мобилдик туташуу кызматы:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Чалуу багытын буруу:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Күйгүзгөндөн бери баштапкы абалга келтирилген PPP саны:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Учурдагы тармак:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Дайындар алынды:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Үн кызматы:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Сигналдын күчү:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Үн менен чалуунун абалы:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Дайындар жөнөтүлдү:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Күтүүдөгү билдирүү:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефон номери:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Радио жыштыгын тандоо"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Үн кызматынын тармагы:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Мобилдик тармагынын түрү:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Телефондун индексин тандоо"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Тандалган тармак түрүн коюу:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"www.google.com, IPv4 үчүн ping сурамы:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"www.google.com, IPv6 үчүн ping сурамы:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP кардарын сыноо:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Түйүн байланышын текшерүү каражатын иштетүү"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Жаңыртуу"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Жаңылоо"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS текшерүүнү которуштуруу"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM\'ге тиешелүү Маалымат/Жөндөөлөр"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Радио жыштыгынын режимин коюу"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Жыштык режиминин тизмеси жүктөлүүдө…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Жөндөө"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Ийгиликсиз"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Ийгиликтүү"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Планшеттин маалыматы"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Телефондун маалыматы"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Байланыш оператору жөнүндө маалымат"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Байланыш операторун өзгөртүү"</string>
 </resources>
diff --git a/res/values-lo/config.xml b/res/values-lo/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-lo/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 16892b0..0534a5f 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ເບີສ່ວນໂຕ"</string>
     <string name="payphone" msgid="7936735771836716941">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
     <string name="onHold" msgid="6132725550015899006">"ພັກສາຍຊົ່ວຄາວ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"ຂໍ້ຄວາມ <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ຂໍ້ຄວາມຜູ້ໃຫ້ບໍລິການ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"ເລີ່ມລະຫັດ MMI ແລ້ວ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"ກຳລັງແລ່ນລະຫັດ USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"ຍົກເລີກລະຫັດ MMI ແລ້ວ"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR ເທົ່ານັ້ນ"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: ຕ້ອງການ WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: GSM ເທົ່ານັ້ນ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: ທົ່ວໂລກ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ຮູບແບບເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ໂໝດ​ເຄືອ​ຂ່າຍ​ທີ່​ເລືອກ: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR ເທົ່ານັ້ນ"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ໂໝດເຄືອຂ່າຍທີ່ຕ້ອງການ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ກຳລັງໂທ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ເຄືອຂ່າຍ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ໂໝດ Enhanced 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ຫຼາຍໝວດໝູ່"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ເປີດການນຳໃຊ້ຫຼາຍໝວດໝູ່ແລ້ວ"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ປິດການນຳໃຊ້ຫຼາຍໝວດໝູ່ແລ້ວ"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ແນະນຳ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ແນະ​ນໍາ​)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ແນະ​ນໍາ​)"</string>
     <string name="network_global" msgid="3289646154407617631">"ທົ່ວໂລກ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ກຳລັງລຶບເບີໂທຈຳກັດການໂທອອກ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ລຶບໝາຍເລກຈຳກັດການໂທອອກແລ້ວ."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ບໍ່ໄດ້ອັບເດດເທື່ອ ເນື່ອງຈາກທ່ານໃສ່ລະຫັດ PIN ບໍ່ຖືກຕ້ອງ."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"ບໍ່ໄດ້ອັບເດດ FDN ເນື່ອງຈາກເບີໂທເກີນ 20 ຕົວເລກ."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ບໍ່ໄດ້ອັບເດດ FDN ເນື່ອງຈາກເບີໂທເກີນ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ຕົວເລກ."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ບໍ່ໄດ້ອັບເດດເທື່ອ. ລະຫັດ PIN2 ບໍ່ຖືກຕ້ອງ ຫຼືເບີໂທລະສັບຖືກປະຕິເສດ."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ເຮັດວຽກລົ້ມເຫຼວ!"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ກຳລັງອ່ານຈາກ SIM card..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ້. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ບໍ່​ແມ່ນ​ເບີ​ໂທ​ສຸກ​ເສີນ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ້. ກົດ​ເບີ​ໂທ​ສຸກ​ເສີນ."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ບໍ່ສາມາດໂທສຸກເສີນໄດ້"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ມີພຽງເຈົ້າຂອງອຸປະກອນທີ່ສາມາດໃສ່ລະຫັດ PIN/PUK ໄດ້."</string>
     <string name="police_type_description" msgid="2819533883972081757">"ຕຳຫຼວດ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ລົດໂຮງໝໍ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ໄຟ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ການໂທ Real-time text (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ອະນຸຍາດໃຫ້ສົ່ງຂໍ້ຄວາມພາຍໃນການໂທສຽງໄດ້"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ຈະຊ່ວຍຜູ້ໂທທີ່ຫູໜວກ, ມີບັນຫາໃນການໄດ້ຍິນ, ຂາດຄວາມສາມາດໃນການເວົ້າ ຫຼື ຕ້ອງການຫຼາຍກວ່າສຽງ.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ສຶກສາເພີ່ມເຕີມ&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - ການໂທ RTT ຈະຖືກບັນທຶກເປັນການຖອດຂໍ້ຄວາມ\n       &lt;br&gt; - RTT ບໍ່ສາມາດໃຊ້ກັບການໂທວິດີໂອໄດ້"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ໝາຍເຫດ: ບໍ່ສາມາດໃຊ້ RTT ໃນເວລາໂຣມມິງໄດ້"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ປິດ"</item>
     <item msgid="1449091874731375214">"TTY ເຕັມ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ຕົກລົງ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ບໍ່"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ປິດໄວ້"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ໂທລະສັບຢູ່ໃນໂໝດໂທກັບສຸກເສີນ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"ຈົນຮອດ <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ໂທລະສັບຈະຢູ່ໃນໂໝດໂທກັບສຸກເສີນເປັນເວລາ <xliff:g id="COUNT_1">%s</xliff:g> ນາທີ.\nທ່ານຕ້ອງການອອກຕອນນີ້ເລີຍບໍ?</item>
+      <item quantity="one">ໂທລະສັບຈະຢູ່ໃນໂໝດໂທກັບສຸກເສີນເປັນເວລາ <xliff:g id="COUNT_0">%s</xliff:g> ນາທີ.\nທ່ານຕ້ອງການອອກຕອນນີ້ເລີຍບໍ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ບໍລິການ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ຕັ້ງຄ່າ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ຍັງບໍ່ໄດ້ຕັ້ງ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ປິດການຍົກເລີກການໂທແລ້ວ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ປ່ຽນລະຫັດຜ່ານ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ປ່ຽນລະຫັດຜ່ານການຍົກເວັ້ນການໂທ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ບໍ່ສາມາດປ່ຽນລະຫັດຜ່ານການຍົກເວັ້ນການໂທໄດ້."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ບໍ່ສາມາດປ່ຽນລະຫັດຜ່ານການຍົກເວັ້ນການໂທໄດ້"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ລະຫັດຜ່ານບ່ກົງກັນ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"ໃສ່ລະຫັດຜ່ານ 4 ຕົວເລກ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ປ່ຽນລະຫັດຜ່ານແລ້ວ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ຢືນຢັນລະຫັດຜ່ານ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ໃສ່ລະຫັດຜ່ານ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ການຕັ້ງຄ່າການຍົກເລີກການໂທ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ປິດການຕັ້ງຄ່າການຍົກເລີກການໂທທັງໝົດບໍ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ເຄືອຂ່າຍບໍ່ຫວ່າງ. ກະລຸນາລອງໂທໃໝ່ໃນພາຍຫຼັງ."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ເຄືອຂ່າຍແອອັດ. ກະລຸນາຕິດຕໍ່ຜູ້ໃຫ້ບໍລິການມືຖືຂອງທ່ານສຳລັບຄວາມຊ່ວຍເຫຼືອ."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ໂອນສາຍມາແລ້ວ."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖືສຳລັບຊິມ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖື ແລະ ການໂຣມມິງອິນເຕີເນັດສຳລັບຊິມ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ປິດໄວ້"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ເປີດການເຊື່ອມຕໍ່ຂໍ້ມູນ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ປິດການເຊື່ອມຕໍ່ຂໍ້ມູນ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"ນຳໃຊ້ VoLTE ແລ້ວ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ຈັດຫາການໂທດ້ວຍວິດີໂອແລ້ວ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ຈັດຫາການໂທດ້ວຍ Wi-Fi ແລ້ວ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"ຈັດຫາ EAB/Presence ແລ້ວ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"ຂໍ້ມູນ Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"ເປີດໃຊ້ DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ຣີສະຕາດອຸປະກອນບໍ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ທ່ານຕ້ອງຣີສະຕາດອຸປະກອນຂອງທ່ານເພື່ອປ່ຽນການຕັ້ງຄ່ານີ້."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ປິດເປີດຄືນໃໝ່"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ຍົກເລີກ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ພະລັງງານວິທະຍຸມືຖື"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ເບິ່ງສະໝຸດທີ່ຢູ່ໃນຊິມ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ເບິ່ງໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ເບິ່ງໝາຍເລກບໍລິການໂທອອກ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"ສະຖານະບໍລິການ IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"ສະຖານະ IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ລົງທະບຽນແລ້ວ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ບໍ່ໄດ້ລົງທະບຽນ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ຫວ່າງ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ບໍ່ສາມາດໃຊ້ໄດ້"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"ການລົງທະບຽນ IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nການໂທຜ່ານ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nການໂທຜ່ານ WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nການໂທວິດີໂອ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nສ່ວນຕິດຕໍ່ UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ກຳລັງໃຫ້ບໍລິການ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ນອກເຂດໃຫ້ບໍລິການ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ໂທສຸກເສີນເທົ່ານັ້ນ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ສັນຍານປິດຢູ່"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ໂຣມມິງ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ບໍ່ໄດ້ໂຣມມິງ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ບໍ່ເຮັດວຽກ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ກຳລັງດັງ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ກຳລັງຢູ່ໃນສາຍ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ຕັດການເຊື່ອມຕໍ່ແລ້ວ"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ກຳລັງເຊື່ອມຕໍ່"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ເຊື່ອມຕໍ່ແລ້ວ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ລະງັບໄວ້ແລ້ວ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ບໍ່ຮູ້ຈັກ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ໄບຕ໌"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"subId ປັດຈຸບັນ:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ຂອງຊິມອິນເຕີເນັດເລີ່ມຕົ້ນ:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"ແບນວິດ DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"ແບນວິດ UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ຂໍ້ມູນສະຖານທີ່ມືຖື (ສິ້ນສຸດການສະໜັບສະໜຸນແລ້ວ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"ການຕັ້ງຄ່າຊ່ອງ LTE ກາຍະພາບ:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ອັດຕາການໂຫຼດຄືນໃໝ່ຂອງຂໍ້ມູນມືຖື:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ຂໍ້ມູນການວັດແທກມືຖືທັງໝົດ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ບໍລິການຂໍ້ມູນ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ໂຣມມິງ​:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI​:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ການປ່ຽນເສັ້ນທາງການໂທ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ຈຳນວນການຣີເຊັດຂອງ PPP ຕັ້ງແຕ່ເປີດເຄື່ອງມາ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ເຄືອຂ່າຍປັດຈຸບັນ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ຂໍ້ມູນທີ່ໄດ້ຮັບ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ບໍລິການສຽງ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ຄວາມແຮງສັນຍານ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ສະຖານະການໂທ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ຂໍ້ມູນສົ່ງໄປແລ້ວ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ຂໍ້ຄວາມທີ່ຖ້າຢູ່:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ເບີໂທລະສັບ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ເລືອກແຖບຄວາມຖີ່ວິທະຍຸ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ປະເພດເຄືອຂ່າຍສຽງ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ປະເພດເຄືອຂ່າຍຂໍ້ມູນ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ເລືອກດັດຊະນີໂທລະສັບ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ເລືອກປະເພດເຄືອຂ່າຍທີ່ຕ້ອງການໃຊ້:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"ທົດສອບລູກຂ່າຍ HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ເລີ່ມທົດສອບ ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ອັບເດດ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ໂຫຼດຂໍ້ມູນໃໝ່"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"ເປີດ/ປິດ ການກວດ DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ຂໍ້ມູນ/ການຕັ້ງຄ່າສະເພາະ OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ຕັ້ງໂໝດແຖບຄວາມຖີ່ວິທະຍຸ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ກຳລັງດາວໂຫລດລາຍຊື່ແຖບຄວາມຖີ່..."</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ກຳນົດ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ບໍ່ສຳເລັດ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ສຳເລັດ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ຂໍ້​ມູນ​ແທັບເລັດ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ຂໍ້​ມູນ​ໂທລະ​ສັບ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ຂໍ້ມູນການເປີດນຳໃຊ້ເຄືອຂ່າຍ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ກະຕຸ້ນການຈັດຫາຜູ້ໃຫ້ບໍລິການ"</string>
 </resources>
diff --git a/res/values-lt/config.xml b/res/values-lt/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-lt/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 6c7b1b6..15a9e35 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privatus numeris"</string>
     <string name="payphone" msgid="7936735771836716941">"Taksofonas"</string>
     <string name="onHold" msgid="6132725550015899006">"Sulaikyta"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"„<xliff:g id="MMICARRIER">%s</xliff:g>“ pranešimas"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatoriaus pranešimas"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Paleistas MMI kodas"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Paleistas USSD kodas..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Atšauktas MMI kodas"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE / TDSCDMA / GSM / WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA / CDMA / EVDO / GSM / WCDMA"</item>
     <item msgid="6284311629324843506">"LTE / TDSCDMA / CDMA / EVDO / GSM / WCDMA"</item>
+    <item msgid="4738087170533378966">"Tik NR"</item>
+    <item msgid="2935877729588775187">"NR / LTE"</item>
+    <item msgid="8967513231424970529">"NR / LTE / CDMA / „EvDo“"</item>
+    <item msgid="1542643426479755015">"NR / LTE / GSM / WCDMA"</item>
+    <item msgid="5778162260258129841">"NR / LTE / CDMA / „EvDo“ / GSM / WCDMA"</item>
+    <item msgid="8088614845214545367">"NR / LTE / WCDMA"</item>
+    <item msgid="6517428040626326776">"NR / LTE / TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR / LTE / TDSCDMA / GSM"</item>
+    <item msgid="4130965694947056705">"NR / LTE / TDSCDMA / WCDMA"</item>
+    <item msgid="3869566732842046032">"NR / LTE / TDSCDMA / GSM / WCDMA"</item>
+    <item msgid="3942770927563146543">"NR / LTE / TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Pageidaujamas tinklo režimas: pageidautina WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Pageidaujamas tinklo režimas: tik GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Pageidaujamas tinklo režimas: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Pageidaujamas tinklo režimas: GSM / WCDMA / LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Pageidaujamas tinklo režimas: CDMA ir LTE / EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Pageidaujamas tinklo režimas: LTE / CDMA / „EvDo“ / GSM / WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Pageidaujamas tinklo režimas: pasaulinis"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Pageidaujamas tinklo režimas: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Pageidautinas tinklo režimas: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Pageidaujamas tinklo režimas: LTE / TDSCDMA / GSM / WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Pageidaujamas tinklo režimas: TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Pageidaujamas tinklo režimas: LTE / TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Pageidaujamas tinklo režimas: tik NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Pageidaujamas tinklo režimas: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Pageidaujamas tinklo režimas: NR / LTE / CDMA / „EvDo“"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Pageidaujamas tinklo režimas: NR / LTE / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Pageidaujamas tinklo režimas: NR / LTE / CDMA / „EvDo“ / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Pageidaujamas tinklo režimas: NR / LTE / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / GSM / WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Pageidaujamas tinklo režimas: NR / LTE / TDSCDMA / CDMA / „EvDo“ / GSM / WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Skambinama"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Tinklas"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Patobulintas 4G LTE režimas"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Kelios kategorijos"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Įgalintos kelios kategorijos"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Išjungtos kelios kategorijos"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (rekomenduojama)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (rekomenduojamas)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (rekomenduojamas)"</string>
     <string name="network_global" msgid="3289646154407617631">"Visuotinis"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Trinamas fiksuoto rinkimo numeris..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Ištrintas fiksuoto rinkimo numeris."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN neatnaujintas, nes įvedėte neteisingą PIN kodą."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN neatnaujintas, nes numeris viršija 20 skaitmenų apribojimą."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FRN neatnaujintas, nes numeris viršija <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> skaitm. apribojimą."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN nebuvo atnaujintas. Įvestas PIN2 kodas buvo netinkamas arba telefono numeris buvo atmestas."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Nepavyko atlikti FDN operacijos."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Skaitoma iš SIM kortelės..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nepavyko paskambinti. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nėra pagalbos numeris."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nepavyko paskambinti. Surinkite pagalbos numerį."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Skambučių pagalbos numeriu paslauga nepasiekiama"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Tik įrenginio savininkas gali įvesti PIN / PUK kodus."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Greitoji medicinos pagalba"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Gaisras"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Tikralaikių teksto pranešimų (RTT) skambutis"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Leisti susirašinėti dalyvaujant balso skambutyje"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT padeda skambintojams, kurie yra kurti, neprigirdintys, sunkiai kalba arba kuriems reikia ne tik kalbėti.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Sužinokite daugiau&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT skambučiai išsaugomi kaip pranešimų nuorašai\n       &lt;br&gt; – RTT paslauga nepasiekiama dalyvaujant vaizdo skambučiuose"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Pastaba: RTT paslauga nepasiekiama, kai naudojamas tarptinklinis ryšys"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY išjungta"</item>
     <item msgid="1449091874731375214">"TTY pilnas"</item>
@@ -615,6 +643,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Taip"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Atsisakyti"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefone veikia atgalinio skambinimo pagalbos numeriu režimas"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Iki <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minutę veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+      <item quantity="few">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minutes veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+      <item quantity="many">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minutės veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+      <item quantity="other">Telefone <xliff:g id="COUNT_1">%s</xliff:g> minučių veiks atgalinio skambinimo pagalbos numeriu režimas.\nAr norite jį išjungti dabar?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Paslaugos teikėjas"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Sąranka"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nenustatyta&gt;"</string>
@@ -754,7 +790,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Skambučių blokavimas išaktyvintas"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Pakeisti slaptažodį"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Pakeisti skambučių blokavimo slaptažodį"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nepavyko pakeisti skambučių blokavimo slaptažodžio."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nepavyko pakeisti skambučių blokavimo slaptažodžio"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Slaptažodžiai neatitinka"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Įveskite 4 skaičių slaptažodį"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Slaptažodis pakeistas"</string>
@@ -763,7 +799,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Patvirtinti slaptažodį"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Įveskite slaptažodį"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Skambučių blokavimo nustatymai"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Išaktyvinti visus skambučių blokavimo nustatymus?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tinklas užimtas. Vėliau pabandykite dar kartą paskambinti."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Tinklas perpildytas. Dėl pagalbos susisiekite su mobiliojo ryšio operatoriumi."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Skambutis nukreiptas."</string>
@@ -793,4 +828,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>0, įsitikinkite, kad <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM kortelės mobiliojo ryšio duomenys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio tinklo nustatymuose."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>), įsitikinkite, kad <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM kortelės mobiliojo ryšio duomenys ir tarptinklinis duomenų ryšys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio nustatymuose."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Atsisakyti"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Įgalinti duomenų ryšį"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Išjungti duomenų ryšį"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"„VoLTE“ aprūpinimas"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Vaizdo skambučių aprūpinimas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Skambinimo naudojant „Wi-Fi“ ryšį aprūpinimas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB / veiklos aprūpinimas"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS duomenys"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Įgalinti DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Paleisti įrenginį iš naujo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Turite paleisti įrenginį iš naujo, kad galėtumėte pakeisti šį nustatymą."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Paleisti iš naujo"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Atšaukti"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiliojo ryšio radijo signalas"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Žiūrėti SIM kortelės adresų knygą"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Žiūrėti fiksuotojo rinkimo numerius"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Žiūrėti paslaugos renkamus numerius"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS paslaugos būsena"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS būsena"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Užregistruota"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Neregistruoti naudotojai"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Pasiekiama"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nepasiekiama"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registracija: <xliff:g id="STATUS">%1$s</xliff:g>\nBalso skambučiai naudojant LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nBalso skambučiai naudojant „Wi-Fi“: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVaizdo skambučiai: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT sąsaja: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Aptarnaujama"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Paslaugos neteikiamos"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Tik skambučiai pagalbos numeriu"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radijas išjungtas"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Tarptinklinis ryšys"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Neveikia tarptinklinis ryšys"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Neaktyvus"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Skambinama"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Skambutis vykdomas"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Atsijungta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Prisijungiama"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Prisijungta"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Laikinai sustabdyta"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nežinoma"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakuot."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Dabartinis papildomas ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Numatytųjų duomenų SIM kortelės papildomas ID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL pralaidumas (Kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL pralaidumas (Kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobiliojo ryšio vietovės informacija (nebenaudojama):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fizinio kanalo konfigūracija:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobiliojo ryšio informacijos atnaujinimo dažnis:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Visų mobiliųjų ryšių įvertinimo informacija:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Duomenų paslauga:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Tarptinklinis ryšys:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Skambučio peradresavimas:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP nustatymų iš naujo skaičius po įkrovos:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Dabartinis tinklas:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Gauti duomenys:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Balso paslauga:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalo stiprumas:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Balso skambučio būsena:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Duomenys išsiųsti:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Laukiantis pranešimas:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefono numeris:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pasirinkti radijo dažnių juostą"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Balso tinklo tipas:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Duomenų tinklo tipas:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pasirinkti telefono indeksą"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nustatyti pageidaujamą tinklo tipą:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ryšio patikros prieglobos serverio pavadinimas (www.google.com) „IPv4“:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ryšio patikros prieglobos serverio pavadinimas (www.google.com) „IPv6“:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP kliento bandymas:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Paleisti ryšio patikros bandymą"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atnaujinti"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atnaujinti"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Kaitalioti DNS tikrinimą"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM būdinga informacija / nustatymai"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nustatyti radijo dažnių režimą"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Įkeliamas dažnių sąrašas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nustatyti"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nepavyko"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Pavyko"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Planšetinio kompiuterio informacija"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefono informacija"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operatoriaus aprūpinimo informacija"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktyviklio operatoriaus aprūpinimas"</string>
 </resources>
diff --git a/res/values-lv/config.xml b/res/values-lv/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-lv/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 89195a0..eea7b3a 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privāts numurs"</string>
     <string name="payphone" msgid="7936735771836716941">"Maksas tālrunis"</string>
     <string name="onHold" msgid="6132725550015899006">"Aizturēts"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Īsziņa"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mobilo sakaru operatora ziņojums"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kods ir startēts."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kods darbojas…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kods ir atcelts"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Tikai NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Ieteicamais tīkla režīms: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Ieteicamais tīkla režīms: tikai GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Vēlamais tīkla režīms: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Vēlamais tīkla režīms: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Vēlamais tīkla režīms: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Ieteicamais tīkla režīms: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Vēlamais tīkla režīms: Globāls"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Vēlamais tīkla režīms: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Vēlamais tīkla režīms: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Ieteicamais tīkla režīms: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Ieteicamais tīkla režīms: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Ieteicamais tīkla režīms: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Ieteicamais tīkla režīms: tikai NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Ieteicamais tīkla režīms: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Ieteicamais tīkla režīms: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Ieteicamais tīkla režīms: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Ieteicamais tīkla režīms: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Ieteicamais tīkla režīms: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Ieteicamais tīkla režīms: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Zvanīšana"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Tīkls"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Uzlabota 4G LTE režīms"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Vairākas kategorijas"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Vairāku kategoriju režīms ir iespējots."</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Vairāku kategoriju režīms ir atspējots."</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ieteicams)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ieteicams)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ieteicams)"</string>
     <string name="network_global" msgid="3289646154407617631">"Visā pasaulē"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Notiek fiksētā numuru sastādīšanas numura dzēšana…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Fiksētais numuru sastādīšanas numurs ir atspējots."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"IZSN nav atjaunināts, jo tika ievadīts nepareizs PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"IZSN netika atjaunināts, jo numurā ir vairāk par 20 cipariem."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"IZSN netika atjaunināts, jo numurā ir vairāk par <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cipariem."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"IZSN netika atjaunināts. Ievadītais PIN2 nebija pareizs, vai tālruņa numurs tika noraidīts."</string>
     <string name="fdn_failed" msgid="216592346853420250">"IZSN ievadīšana neizdevās."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Notiek lasīšana no SIM kartes..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nevar veikt zvanu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nav ārkārtas numurs."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nevar veikt zvanu. Zvaniet ārkārtas numuram."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Ārkārtas izsaukumi nav pieejami"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Tikai ierīces īpašnieks var ievadīt PIN/PUK kodu."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ātrā palīdzība"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Ugunsgrēks"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Reāllaika teksta (RTT) zvans"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Atļaut ziņojumapmaiņu balss zvanā"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT funkcionalitāte palīdz nedzirdīgiem un vājdzirdīgiem zvanītājiem, kā arī zvanītājiem, kuriem ir runas traucējumi vai ir nepieciešama ne tikai balss skaņa.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Uzzināt vairāk&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT zvani tiek saglabāti ziņojumu transkripcijas formātā.\n       &lt;br&gt; - RTT funkcionalitāte nav pieejama videozvaniem."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Piezīme. RTT nav pieejams viesabonēšanas laikā."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletaips ir izslēgts"</item>
     <item msgid="1449091874731375214">"Viss teletaips"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Jā"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nē"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Noraidīt"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Tālrunis atrodas ārkārtas atzvana režīmā."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Līdz plkst. <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="zero">Tālrunis atradīsies ārkārtas atzvana režīmā <xliff:g id="COUNT_1">%s</xliff:g> minūtes.\nVai vēlaties iziet tūlīt?</item>
+      <item quantity="one">Tālrunis atradīsies ārkārtas atzvana režīmā <xliff:g id="COUNT_1">%s</xliff:g> minūti.\nVai vēlaties iziet tūlīt?</item>
+      <item quantity="other">Tālrunis atradīsies ārkārtas atzvana režīmā <xliff:g id="COUNT_1">%s</xliff:g> minūtes.\nVai vēlaties iziet tūlīt?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Pakalpojums"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Iestatīšana"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nav iestatīts&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zvanu aizliegšana deaktivizēta"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Mainīt paroli"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Mainīt zvanu aizliegšanas paroli"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nevar mainīt zvanu aizliegšanas paroli."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nevar mainīt zvanu aizliegšanas paroli"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Paroles neatbilst"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Ievadiet paroli, kas sastāv no 4 cipariem"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parole nomainīta"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Apstiprināt paroli"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ievadiet paroli"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Zvanu aizliegšanas iestatījumi"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vai deaktivizēt visus zvanu aizliegšanas iestatījumus?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tīkls ir aizņemts. Lūdzu, vēlāk mēģiniet zvanīt vēlreiz."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Tīkls ir pārpildīts. Lai saņemtu palīdzību, sazinieties ar savu mobilo sakaru operatoru."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Zvans novirzīts."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, jāieslēdz mobilie dati SIM kartei <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, jāieslēdz mobilie dati un datu viesabonēšana SIM kartei <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Nerādīt"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Iespējot datu savienojumu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Atspējot datu savienojumu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE nodrošināts"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videozvani nodrošināti"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi zvani nodrošināti"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/klātbūtne nodrošināta"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS dati"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Iespējot DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vai restartēt ierīci?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Lai mainītu šo iestatījumu, jums jārestartē ierīce."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartēt"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Atcelt"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilā tālruņa radio signāla stiprums"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skatīt SIM adrešu grāmatu"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skatīt ierobežotā zvanu saraksta numurus"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Pakalpojuma iezvanes numuru skatīšana"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Tūlītējās ziņojumapmaiņas pakalpojuma statuss"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Tūlītējās ziņojumapmaiņas statuss"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Reģistrēts"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nav reģistrēts"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Pieejams"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nav pieejama"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Tūlītējās ziņojumapmaiņas reģistrācija: <xliff:g id="STATUS">%1$s</xliff:g>\nBalss pārraide ar LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nBalss pārraide ar Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideozvani: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT saskarne: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Darbojas"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Nedarbojas"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Tikai ārkārtas izsaukumi"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio izslēgts"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Viesabonēšana"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez viesabonēšanas"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Dīkstāvē"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Notiek zvanīšana"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Notiek zvans"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Savienojums pārtraukts"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Notiek savienojuma izveide"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Savienojums izveidots"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Darbība apturēta"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Nezināms"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"baiti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Pašreizējais papildu ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Noklusējuma datu SIM kartes papildu ID:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL joslas platums (kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL joslas platums (kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobilā tālruņa atrašanās vietas informācija (novecojusi):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fiziskā kanāla konfigurācija:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobilā tīkla informācijas atsvaidzināšanas biežums:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Visa mobilā tīkla mērījumu informācija:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datu pakalpojums:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Viesabonēšana:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Zvana novirzīšana:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Protokola PPP atiestatīšanas reižu skaits kopš palaišanas:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Pašreizējais tīkls:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Saņemtie dati:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Balss pakalpojums:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signāla stiprums:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Balss zvana statuss:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dati nosūtīti:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Ziņojums gaida:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Tālruņa numurs:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Atlasīt radio frekvenču joslu"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Balss pakalpojumu tīkla veids:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Datu tīkla veids:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Atlasīt tālruņa kodu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Iestatiet ieteicamo tīkla veidu:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ehotestēšanas saimniekdatora nosaukuma (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ehotestēšanas saimniekdatora nosaukuma (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP klienta tests:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Veikt ehotestēšanu"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atjaunināt"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atsvaidzināt"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Pārslēgt DNS pārbaudi"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM raksturīga informācija/iestatījumi"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radio frekvenču joslu režīma iestatīšana"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Notiek joslu saraksta ielāde…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Iestatīt"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neizdevās"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Izdevās"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informācija par planšetdatoru"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Tālruņa informācija"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informācija par mobilo sakaru operatora nodrošināšanu"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivizēt operatora nodrošināšanu"</string>
 </resources>
diff --git a/res/values-mcc208-mnc10-fr/strings.xml b/res/values-mcc208-mnc10-fr/strings.xml
index ac5ef59..eae41e9 100644
--- a/res/values-mcc208-mnc10-fr/strings.xml
+++ b/res/values-mcc208-mnc10-fr/strings.xml
@@ -3,4 +3,5 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="enhanced_4g_lte_mode_summary">Utiliser la fonction Voix 4G (HD) lorsqu\'elle est disponible</string>
     <string name="enhanced_4g_lte_mode_title">Activer Voix 4G (HD)</string>
+    <string name="wifi_calling">Activer Appels Wi-Fi</string>
 </resources>
diff --git a/res/values-mk/config.xml b/res/values-mk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-mk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index da177d0..accd87e 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Приватен број"</string>
     <string name="payphone" msgid="7936735771836716941">"Говорница"</string>
     <string name="onHold" msgid="6132725550015899006">"На чекање"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Порака на <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Порака од оператор"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI кодот е стартуван"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD кодот се извршува..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI кодот е откажан"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Само NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Претпочитан режим на мрежа: се претпочита WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Претпочитан режим на мрежа: само GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Претпочитан режим на мрежа: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Претпочитан режим на мрежа: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Претпочитан режим на мрежа: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Претпочитан режим на мрежа: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Претпочитан режим на мрежа: глобален"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Претпочитан режим на мрежа: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Претпочитан режим на мрежа: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Претпочитан режим на мрежа: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Претпочитан режим на мрежа: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Претпочитан режим на мрежа: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Претпочитан режим на мрежа: само NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Претпочитан режим на мрежа: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Претпочитан режим на мрежа: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Претпочитан режим на мрежа: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Претпочитан режим на мрежа: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Претпочитан режим на мрежа: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Претпочитан режим на мрежа: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Повикување"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мрежа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Режим на подобрени 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мултикатегорија"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мултикатегоријата е овозможена"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мултикатегоријата е оневозможена"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (препорачано)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (препорачано)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (препорачано)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобална"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Бришење број на фиксно бирање..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Бројот на фиксно бирање е избришан."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN не се ажурираше зашто внесовте погрешен PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN не е ажуриран затоа што бројот содржи повеќе од 20 цифри."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN не е ажуриран затоа што бројот содржи повеќе од <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифри."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN не се ажурираше. PIN2 кодот е неточен или телефонскиот број е одбиен."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Операцијата со FDN не успеа."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Се чита од SIM картичка..."</string>
@@ -517,7 +543,7 @@
     <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Не може да се задржат повици."</string>
     <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Поврзете се на безжична мрежа за да повикате."</string>
     <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Овозможете повикување преку Wi-Fi за воспоставување повик."</string>
-    <string name="emergency_information_hint" msgid="9208897544917793012">"Информации за итни случаи"</string>
+    <string name="emergency_information_hint" msgid="9208897544917793012">"Податоци за итни случаи"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"Сопственик"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Допрете повторно за приказ на информации"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Повик за итни случаи"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Не може да повика. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е број за итни повици."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Не може да повика. Бирајте го бројот за итни повици."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Итните повици не се достапни"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Само сопственикот на уредот може да внесува кодови PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиција"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Брза помош"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожарна"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Повик со „Текст во реално време“ (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дозволете пораки во текот на гласовен повик"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функцијата RTT им помага на повикувачи коишто се глуви, слабо слушаат, имаат говорна мана или пак, им е потребно многу повеќе од глас.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Дознајте повеќе&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Повиците со RTT се зачувуваат како препис на порака\n       &lt;br&gt; - Функцијата RTT не е достапна за видеоповици"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Напомена: RTT не е достапна во роаминг"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY исклучени"</item>
     <item msgid="1449091874731375214">"TTY целосни"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Отфрли"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефонот е во режим на итни повратни повици"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефонот ќе биде во режим на итни повратни повици <xliff:g id="COUNT_1">%s</xliff:g> минута.\n Дали сакате да излезете сега?</item>
+      <item quantity="other">Телефонот ќе биде во режим на итни повратни повици <xliff:g id="COUNT_1">%s</xliff:g> минути.\n Дали сакате да излезете сега?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Услуга"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Поставување"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не е поставен&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Забраната на повици е деактивирана"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Променете ја лозинката"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Променете ја лозинката за забрана на повици"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не може да се промени лозинката за забрана на повици."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не може да се промени лозинката за забрана на повици"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Лозинките не се совпаѓаат"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Внесете лозинка со 4 броеви"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Лозинката е променета"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Потврдете ја лозинката"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Внесете лозинка"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Поставки за забрана на повици"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Да се деактивираат сите поставки за забрана на повици?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мрежата е зафатена. Обидете се да повикате повторно подоцна."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мрежата е презафатена. Контактирајте со вашиот мобилен оператор за помош."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Повикот е пренасочен."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"За користење <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверете се дека мобилниот интернет е вклучен за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Тоа може да го промените во поставките за мобилна мрежа."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"За користење <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверете се дека мобилниот интернет и интернет роамингот се вклучени за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Овие може да ги промените во поставките за мобилна мрежа."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Отфрли"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Овозможете врска со податоците"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Оневозможете врска со податоците"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Обезбедување на VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Овозможено е видеоповикување"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Овозможено е повикување преку Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Овозможен е подобрен адресар"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Податоци на Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Овозможете DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Да се рестартира уредот?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Треба да го рестартирате уредот за да ја промените поставкава."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартирај"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Откажи"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Радио-напојување на мобилен"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи именик на SIM-картичката"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи броеви со ограничено бирање"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи броеви за бирање служби"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус на услугата IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус на IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Регистриран"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не е регистриран"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Достапен"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недостапно"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-регистрација: <xliff:g id="STATUS">%1$s</xliff:g>\nКомуникација преку LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nКомуникација преку Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидеоповикување: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-интерфејс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Во употреба"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Надвор од употреба"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Само итни повици"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радиото е исклучено"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роаминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Надвор од роаминг"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Мирување"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ѕвонење"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Повик во тек"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Исклучен"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Се поврзува"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Поврзан"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Суспендиран"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Непознат"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"бајти"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Тековен SUBID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SUBID на стандардната SIM за мобилен интернет:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Брзина на пренос при преземање (кбит/с):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Брзина на пренос при прикачување (кбит/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информации за локација на мобилен (неподдржано):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурација на физички канал на LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Стапка на освежување на информациите за мобилниот:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Сите информации за мерењата на мобилниот:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Услуга за мобилен интернет:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роаминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Пренасочен повик:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Број на ресетирања PPP од подигање:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Тековна мрежа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Примени податоци:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Гласовна услуга:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Јачина на сигнал:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус на гласовен повик:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Испратени податоци:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Порака на чекање:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Телефонски број:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Избери појас на радио"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип гласовна мрежа:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип мрежа на податоци:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Изберете индекс на телефонот"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Поставете претпочитан тип мрежа:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Пингај го хостот (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Пингај го хостот (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тестирање HTTP-клиент:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Изврши тест со пингање"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ажурирање"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Освежи"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Префрли на DNS-проверка"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информации/Поставки карактеристични за ОЕМ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Поставете режим на појас на радио"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Се вчитува список на појаси…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Постави"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Неуспешно"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успешно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информации за таблет"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информации за телефонот"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Информации за обезбедување оператор"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Активирајте обезбедување оператор"</string>
 </resources>
diff --git a/res/values-ml/config.xml b/res/values-ml/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ml/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 2d94f67..d2d03e5 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"സ്വകാര്യ നമ്പർ"</string>
     <string name="payphone" msgid="7936735771836716941">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
     <string name="onHold" msgid="6132725550015899006">"ഹോള്‍ഡിലാണ്"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> സന്ദേശം"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"സേവനദാതാവിന്റെ സന്ദേശം"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI കോഡ് ആരംഭിച്ചു"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD കോഡ് പ്രവർത്തിക്കുന്നു…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI കോഡ് റദ്ദാക്കി"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR മാത്രം"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: WCDMA തിരഞ്ഞെടുത്തു"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: GSM മാത്രം"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: ഗ്ലോബൽ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് മോഡ്: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR only"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് മോഡ്: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"കോൾചെയ്യുന്നു"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"നെറ്റ്‌വർക്ക്"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"മെച്ചപ്പെടുത്തിയ 4G LTE മോഡ്"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ഒന്നിലധികം വിഭാഗം"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ഒന്നിലധികം വിഭാഗം പ്രവർത്തനക്ഷമമാക്കി"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ഒന്നിലധികം വിഭാഗം പ്രവർത്തനരഹിതമാക്കി"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (നിർദ്ദേശിക്കുന്നത്)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ശുപാർശചെയ്‌തത്)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ശുപാർശചെയ്‌തത്)"</string>
     <string name="network_global" msgid="3289646154407617631">"ഗ്ലോബൽ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"സ്ഥിര ഡയലിംഗ് നമ്പർ ഇല്ലാതാക്കുന്നു…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"സ്ഥിര ഡയലിംഗ് നമ്പർ ഇല്ലാതാക്കി."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"നിങ്ങൾ തെറ്റായ പിൻ നൽകിയതിനാൽ FDN അപ്‌ഡേറ്റുചെയ്‌തില്ല."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"നമ്പർ 20 അക്കങ്ങൾ കവിഞ്ഞതിനാൽ FDN അപ്‌ഡേറ്റ് ചെയ്‌തില്ല."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> അക്കങ്ങൾ കവിഞ്ഞതിനാൽ FDN അപ്‌ഡേറ്റ് ചെയ്‌തില്ല."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN അപ്‌ഡേറ്റുചെയ്‌തില്ല. PIN2 തെറ്റായിരുന്നു, അല്ലെങ്കിൽ ഫോൺ നമ്പർ നിരസിച്ചു."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN പ്രവർത്തനം പരാജയപ്പെട്ടു."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"സിം കാർഡിൽ നിന്നും റീഡുചെയ്യുന്നു…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"കോൾ ചെയ്യാനാവില്ല. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> എന്നത് ഒരു അടിയന്തിര നമ്പരല്ല."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"കോൾ ചെയ്യാനാവില്ല. ഒരു അടിയന്തിര കോൾ നമ്പർ ഡയൽചെയ്യുക."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"എമർജൻസി കോളിംഗ് ലഭ്യമല്ല"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ഉപകരണത്തിന്റെ ഉടമയ്ക്ക് മാത്രമേ പിൻ/PUK കോഡുകൾ നൽകാനാകൂ."</string>
     <string name="police_type_description" msgid="2819533883972081757">"പോലീസ്"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ആംബുലൻസ്"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"തീ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"തത്സമയ ടെക്‌സ്‌റ്റ്(RTT) കോൾ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"വോയ്‌സ് കോളിൽ സന്ദേശമയയ്‌ക്കൽ അനുവദിക്കുക"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"ബധിരർ, കേൾവി ശക്തി കുറഞ്ഞവർ, സംഭാഷണ വൈകല്യമുള്ളവർ അല്ലെങ്കിൽ ശബ്‌ദത്തിന് പുറമേ മറ്റ് സഹായവും ആവശ്യമുള്ള, വിളിക്കുന്ന ആളുകളെ RTT സഹായിക്കുന്നു.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;കൂടുതലറിയുക&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT കോളുകൾ സന്ദേശ ട്രാൻസ്‌ക്രിപ്റ്റായി സംരക്ഷിക്കുന്നു\n       &lt;br&gt; - വീഡിയോ കോളുകൾക്കായി RTT ലഭ്യമല്ല"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"കുറിപ്പ്: റോമിംഗിലായിരിക്കുമ്പോൾ RTT ലഭ്യമല്ല"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ഓഫാണ്"</item>
     <item msgid="1449091874731375214">"TTY പൂർണ്ണം"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"വേണം"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"വേണ്ട"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"നിരസിക്കുക"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ഫോൺ അടിയന്തര കോൾബാക്ക് മോഡിലാണ്"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> വരെ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ഫോൺ <xliff:g id="COUNT_1">%s</xliff:g> മിനിറ്റ്, അടിയന്തര കോൾബാക്ക് മോഡിലായിരിക്കും.\nനിങ്ങൾക്ക് ഇപ്പോൾ പുറത്ത് കടക്കണോ?</item>
+      <item quantity="one">ഫോൺ <xliff:g id="COUNT_0">%s</xliff:g> മിനിറ്റ്, അടിയന്തര കോൾബാക്ക് മോഡിലായിരിക്കും.\nനിങ്ങൾക്ക് ഇപ്പോൾ പുറത്ത് കടക്കണോ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"സേവനം"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"സജ്ജമാക്കുക"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;സജ്ജീകരിച്ചിട്ടില്ല&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"കോൾ തടയൽ നിർജ്ജീവമാക്കി"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"പാസ്‌വേഡ് മാറ്റുക"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"കോൾ തടയൽ പാസ്‌വേഡ് മാറ്റുക"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"കോൾ തടയൽ പാസ്‌വേഡ് മാറ്റാനാവില്ല."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"കോൾ തടയൽ പാസ്‌വേഡ് മാറ്റാനാവില്ല"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"പാസ്‌വേഡുകള്‍ പൊരുത്തപ്പെടുന്നില്ല"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 അക്കങ്ങളുള്ള പാസ്‌വേഡ് നൽകുക"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"‍പാസ്‌വേഡ് മാറ്റി"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"പാസ്‌വേഡ് നൽകുക"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"കോൾ തടയൽ ക്രമീകരണം"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"എല്ലാ കോൾ തടയൽ ക്രമീകരണവും നിർജ്ജീവമാക്കണോ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"നെറ്റ്‌വർക്ക് തിരക്കിലാണ്. കോൾ ചെയ്യാൻ പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"നെറ്റ്‌വർക്ക് തിരക്കിലാണ്. സഹായത്തിനായി നിങ്ങളുടെ മൊബൈൽ ഓപ്പറേറ്ററെ ബന്ധപ്പെടുക."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"കോൾ വഴി തിരിച്ചുവിട്ടു."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ഉപയോഗിക്കാൻ, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> എന്നതിനായി മൊബൈൽ ഡാറ്റ ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്‌വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> എന്നത് ഉപയോഗിക്കാൻ, മൊബൈൽ ഡാറ്റയും ഡാറ്റ റോമിംഗും, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> എന്നതിനായി ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്‌വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"നിരസിക്കുക"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ഡാറ്റാ കണക്ഷൻ പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ഡാറ്റ കണക്ഷൻ പ്രവർത്തനരഹിതമാക്കുക"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ഏർപ്പെടുത്തി"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"വീഡിയോ കോളിംഗ് ഏർപ്പെടുത്തി"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"വൈഫൈ കോളിംഗ് ഏർപ്പെടുത്തി"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/സാന്നിധ്യം ഏർപ്പെടുത്തി"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ഡാറ്റ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്യണോ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ഈ ക്രമീകരണം മാറ്റാൻ നിങ്ങളുടെ ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"റീസ്റ്റാർട്ട് ചെയ്യുക"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"റദ്ദാക്കുക"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"മൊബൈൽ റേഡിയോ പവർ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"സിം വിലാസ പുസ്‌തകം കാണുക"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"സ്ഥിര ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"സർവീസ് ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS സേവന നില"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS നില"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"രജിസ്റ്റർ ചെയ്‌തു"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"രജിസ്‌റ്റർ ചെയ്‌തിട്ടില്ല"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ലഭ്യമാണ്"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ലഭ്യമല്ല"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS രജിസ്ട്രേഷൻ: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE വഴി ശബ്ദം: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nവൈഫൈ വഴി ശബ്ദം: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nവീഡിയോ കോളിംഗ്: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ഇന്റർഫേസ്: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"സേവനത്തിലാണ്"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"സേവനം ലഭ്യമല്ല"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"അടിയന്തര കോളുകൾ മാത്രം"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"റേഡിയോ ഓഫാണ്"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"റോമിംഗ്"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"റോമിംഗ് അല്ല"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"നിഷ്ക്രിയം"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"റിംഗ് ചെയ്യുന്നു"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"കോൾ പുരോഗതിയിലാണ്"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"വിച്ഛേദിച്ചു"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"കണക്‌റ്റ് ചെയ്യുന്നു"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"കണക്‌റ്റ് ചെയ്‌തു"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"താൽക്കാലികമായി റദ്ദാക്കി"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"അജ്ഞാതം"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ബൈറ്റുകൾ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"നിലവിലെ ഉപ‌ഐഡി:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ഡിഫോൾട്ട് ഡാറ്റാ സിമ്മിന്റെ ഉപഐഡി:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ബാൻഡ്‌വിത്ത് (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ബാൻഡ്‍വിത്ത് (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"സെൽ ലൊക്കേഷൻ വിവരങ്ങൾ (അവസാനിപ്പിച്ചു):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ഫിസിക്കൽ ചാനൽ കോൺഫിഗറേഷൻ:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"സെൽ വിവരങ്ങൾ പുതുക്കിയെടുക്കൽ നിരക്ക്:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"എല്ലാ സെൽ അളവ് വിവരങ്ങളും:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ഡാറ്റ സേവനം:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"റോമിംഗ്:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"കോൾ റീഡയറക്‌ട് ചെയ്യുക:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ബൂട്ട് ചെയ്‌തതിന് ശേഷമുള്ള PPP റീസെറ്റ് ചെയ്തതിന്റെ എണ്ണം:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"നിലവിലെ നെറ്റ്‌വർക്ക്:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ലഭിച്ച ഡാറ്റ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ശബ്ദ സേവനം:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"സിഗ്‌നൽ ശക്തി:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"വോയ്‌സ് കോൾ നില:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"അയച്ച ഡാറ്റ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"സന്ദേശം കാത്തിരിക്കുന്നു:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ഫോൺ നമ്പർ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"റേഡിയോ ബാൻഡ് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"വോയ്സ് നെറ്റ്‌വർക്ക് തരം:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ഡാറ്റ നെറ്റ്‌വർക്ക് തരം:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ഫോൺ സൂചിക തിരഞ്ഞെടുക്കുക"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് തരം സജ്ജീകരിക്കുക:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ഹോസ്റ്റുനാമം(www.google.com) IPv4 പിംഗ് ചെയ്യുക:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ഹോസ്റ്റുനാമം(www.google.com) IPv6 പിംഗ് ചെയ്യുക:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ക്ലയന്റ് പരിശോധന:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"പിംഗ് പരിശോധന റൺ ചെയ്യുക"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"അപ്ഡേറ്റ് ചെയ്യുക"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"പുതുക്കിയെടുക്കുക"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS പരിശോധന മാറ്റുക"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-നിർദ്ദിഷ്‌ട വിവരം/ക്രമീകരണം"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"റേഡിയോ ബാൻഡ് മോഡ് സജ്ജീകരിക്കുക"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ബാൻഡ് ലിസ്‌റ്റ് ലോഡ് ചെയ്യുന്നു…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"സജ്ജീകരിക്കുക"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"പരാജയപ്പെട്ടു"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"വിജയകരം"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ടാബ്‌ലെറ്റ് വിവരം"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ഫോൺ വിവരം"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"കാരിയർ പ്രൊവിഷനിംഗ് വിവരം"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"കാരിയർ പ്രൊവിഷനിംഗ് തുടങ്ങുക"</string>
 </resources>
diff --git a/res/values-mn/config.xml b/res/values-mn/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-mn/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index e966e06..ab3790c 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Нууцлагдсан дугаар"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"Хүлээлгэнд"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Мессеж"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Оператор компанийн мессеж"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI код эхэллээ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD код ажиллаж байна…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI код цуцлагдсан"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Зөвхөн NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Давуу сүлжээний төлөв: WCDMA давуутай"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Давуу сүлжээний төлөв: зөвхөн GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Давуу сүлжээний төлөв: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Давуу сүлжээний төлөв: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Давуу сүлжээний төлөв: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Давуу эрхтэй сүлжээний горим: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Давуу сүлжээний төлөв: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Давуу сүлжээний төлөв: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Хамгийн тохиромжтой горимууд: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Давуу сүлжээний горим: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Давуу сүлжээний төлөв: CDMA/EvDo/GSM/WCDMAj"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Давуу сүлжээний горим: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Давуу эрхтэй сүлжээний горим: зөвхөн NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Давуу эрхтэй сүлжээний горим: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Давуу эрхтэй сүлжээний горим: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Давуу эрхтэй сүлжээний горим: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Давуу эрхтэй сүлжээний горим: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Давуу эрхтэй сүлжээний горим: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Давуу эрхтэй сүлжээний горим: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Залгаж байна"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Сүлжээ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Сайжруулсан 4G LTE горим"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Олон ангилал"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Олон-ангилал идэвхжсэн"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Олон-ангилал идэвхгүйжсэн"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (санал болгосон)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (зөвлөмж болгосон)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (зөвлөмж болгосон)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобал"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Тогтвортой залгах дугаарыг устгаж байна…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Тогтвортой залгах дугаарыг устгав."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Та буруу PIN оруулсан учир FDN шинэчлэгдсэнгүй."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Дугаар 20 цифрээс хэтэрсэн учир FDN шинэчлэгдээгүй."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Дугаар <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифрээс хэтэрсэн тул FDN-г шинэчлээгүй."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN шинэчлэгдсэнгүй. PIN2 буруу байсан, эсхүл утасны дугаар зөвшөөрөгдсөнгүй."</string>
     <string name="fdn_failed" msgid="216592346853420250">"ФДН ажиллуулах амжилтгүй."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM картаас уншиж байна…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Дуудлага хийх боломжгүй. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> нь түргэн тусламжийн дугаар биш байна."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Дуудлага хийх боломжгүй. Түргэн тусламжийн дугаар луу залга."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Яаралтай тусламжийн дуудлага хийх боломжгүй"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Зөвхөн төхөөрөмжийн эзэмшигч ПИН/PUK код оруулах боломжтой."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Цагдаа"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Түргэн тусламж"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Гал"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Шууд мессежлэх (RTT) дуудлага"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дуудлагын дотор зурвас бичихийг зөвшөөрөх"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT нь дүлий, хатуу чихтэй, хэл ярианы хөгжлийн бэрхшээлтэй, эсвэл хэн нэгний тусламжтай ярьдаг дуудлага хийгчдэд тусладаг.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Дэлгэрэнгүй үзэх&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT дуудлага нь зурвасын сийрүүлэг хэлбэрээр хадгалагдана\n       &lt;br&gt; - RTT нь видео дуудлага хийхэд боломжгүй"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Санамж: RTT (Тухайн агшины текст) роуминг үйлчилгээний үед боломжгүй байна"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Унтраасан"</item>
     <item msgid="1449091874731375214">"TTY Дүүрэн"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Тийм"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Үгүй"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Алгасах"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Утас яаралтай буцаж холбоо барих горимд байна"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> хүртэл"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Утас <xliff:g id="COUNT_1">%s</xliff:g> минутын турш яаралтай буцаж холбоо барих горимд байх болно.\nТа одоо гарахыг хүсэж байна уу?</item>
+      <item quantity="one">Утас <xliff:g id="COUNT_0">%s</xliff:g> минутын турш яаралтай буцаж холбоо барих горимд байх болно.\nТа одоо гарахыг хүсэж байна уу?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Үйлчилгээ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Тохиргоо"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Тохируулаагүй&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Дуудлага хаахыг идэвхгүй болгосон"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Нууц үг солих"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Дуудлага хаах нууц үгийг өөрчлөх"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Дуудлага хаах нууц үгийг өөрчлөх боломжгүй."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Дуудлага хаах нууц үгийг өөрчлөх боломжгүй"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Нууц үг таарахгүй байна"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 дугаартай нууц үг оруулна уу"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Нууц үгийг өөрчилсөн"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Нууц үг баталгаажуулах"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Нууц үг оруулна уу"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Дуудлага хаах тохиргоо"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Бүх дуудлага хаах тохиргоог идэвхгүй болгох уу?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Сүлжээ завгүй байна. Та дуудлагаа дараа дахин оролдоно уу."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Сүлжээ ачаалалтай байна. Туслалцаа авахын тулд мобайл оператортойгоо холбогдоно уу."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Дуудлагыг шилжүүлсэн."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-г ашиглахын тулд SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-д мобайл датаг асаасан эсэхээ шалгана уу. Та үүнийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-г ашиглахын тулд SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-д мобайл дата болон дата роуминг асаасан эсэхээ шалгана уу. Та эдгээрийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Үл хэрэгсэх"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Дата холболтыг идэвхжүүлэх"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Дата холболтыг идэвхгүй болгох"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE хэлбэрт оруулсан"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видео дуудлагыг бэлтгэсэн"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi дуудлагыг бэлтгэсэн"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence-г бэлтгэсэн"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Дата"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS-г идэвхжүүлэх"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Төхөөрөмжийг дахин эхлүүлэх үү?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Та энэ тохиргоог өөрчлөхийн тулд төхөөрөмжөө дахин эхлүүлэх шаардлагатай."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Дахин эхлүүлэх"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Цуцлах"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мобайл радио цахилгаан"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM хаягийн лавлахыг харах"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Залгахаар тохируулсан дугаарыг харах"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Үйлчилгээний залгах дугаарыг харах"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS үйлчилгээний төлөв"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS төлөв"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Бүртгэсэн"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Бүртгээгүй"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Боломжтой"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Боломжгүй"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-н бүртгэл: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE-н дуу оруулалт: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi-н дуу оруулалт: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидео дуудлага: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT харагдах байдал: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Үйлчилгээнд байгаа"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Үйлчилгээнээс гадуур"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Зөвхөн яаралтай дуудлага"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио унтраалттай"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Роуминг биш"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Идэвхгүй"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Хонх дуугарч байна"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Дуудлага хийж байна"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Холболт салсан"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Холбогдож байна"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Холбогдсон"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Түр хаасан"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Тодорхойгүй"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Одоогийн subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Өгөгдмөл дата SIM-н SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DLзурвасын өргөн (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Зурвасын өргөн (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Үүрэн байршлын мэдээлэл (цуцалсан):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Сувгийн бодит тохиргоо:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Үүрэн мэдээлэл сэргээх тариф:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Бүх үүрэн хэмжилтийн мэдээлэл:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Дата үйлчилгээ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Дуудлагыг дахин чиглүүлэх:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Асааснаас хойш дахин шинэчилсэн PPP-н тоо:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Одоогийн сүлжээ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Хүлээн авсан дата:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Дуут үйлчилгээ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Дохионы хүч:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Дуут дуудлагын төлөв:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Дата илгээсэн:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Зурвасыг хүлээж байна:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Утасны дугаар:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Радио зурвасыг сонгох"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Дуут сүлжээний төрөл:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Дата сүлжээний төрөл:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Утасны индекс сонгох"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Сонгосон сүлжээний төрлийг тохируулна уу:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Пинг хостны нэр(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Пинг хостны нэр(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP Үйлчлүүлэгчийн тест:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Пинг тестийг ажиллуулах"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Шинэчлэх"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Сэргээх"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS шалгалтыг унтраах/асаах"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-тодорхой Мэдээлэл/Тохиргоо"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Радио зурвасын горимыг тохируулах"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Зурвасын жагсаалтыг ачаалж байна…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Тохируулах"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Амжилтгүй"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Амжилттай"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Таблетын мэдээлэл"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Утасны мэдээлэл"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Оператор компанийн хангалтын мэдээлэл"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Оператор компанийн хангалтыг эхлүүлэх"</string>
 </resources>
diff --git a/res/values-mr/config.xml b/res/values-mr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-mr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 0f8c2d2..ad4c351 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"खाजगी नंबर"</string>
     <string name="payphone" msgid="7936735771836716941">"सार्वजनिक फोन"</string>
     <string name="onHold" msgid="6132725550015899006">"होल्ड वर"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> मेसेज"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"वाहक मेसेज"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI कोड प्रारंभ केला"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD कोड चालू…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI कोड रद्द केला"</string>
@@ -35,7 +37,7 @@
     <string name="audio_mode_speaker" msgid="243689733219312360">"स्पीकर"</string>
     <string name="audio_mode_earpiece" msgid="2823700267171134282">"हँडसेट इअरपीस"</string>
     <string name="audio_mode_wired_headset" msgid="5028010823105817443">"वायर्ड हेडसेट"</string>
-    <string name="audio_mode_bluetooth" msgid="25732183428018809">"ब्लूटुथ"</string>
+    <string name="audio_mode_bluetooth" msgid="25732183428018809">"ब्लूटूथ"</string>
     <string name="wait_prompt_str" msgid="5136209532150094910">"खालील टोन पाठवायचे?\n"</string>
     <string name="pause_prompt_str" msgid="2308897950360272213">"टोन पाठवित आहे\n"</string>
     <string name="send_button" msgid="5070379600779031932">"पाठवा"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"फक्त NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"प्राधान्‍यकृत नेटवर्क मोड: WCDMA प्राधान्‍यकृत"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"प्राधान्‍यकृत नेटवर्क मोड: केवळ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"प्राधान्‍यकृत नेटवर्क मोड: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"प्राधान्‍यकृत नेटवर्क मोड: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"प्राधान्‍यकृत नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"प्राधान्‍यकृत नेटवर्क प्रकार: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"प्राधान्‍यकृत नेटवर्क मोड: जागतिक"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"प्राधान्‍यकृत नेटवर्क मोड: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"प्राधान्यीकृत नेटवर्क मोड: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"प्राधान्यकृत नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"प्राधान्यकृत नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"प्राधान्यकृत नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"प्राधान्‍यकृत नेटवर्क प्रकार: फक्त NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"प्राधान्‍यकृत नेटवर्क प्रकार: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/CDME/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"प्राधान्‍यकृत नेटवर्क प्रकार: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"प्राधान्‍यकृत नेटवर्क प्रकार: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"प्राधान्‍यकृत नेटवर्क प्रकार: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"कॉलिंग"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"नेटवर्क"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"वर्धित 4G LTE मोड"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"एकाधिक-वर्गवारी"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"एकाधिक-वर्गवारी सक्षम केली"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"एकाधिक-वर्गवारी अक्षम केली"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (शिफारस केलेले)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (शिफारस केलेले)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (शिफारस केलेले)"</string>
     <string name="network_global" msgid="3289646154407617631">"जागतिक"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"निश्चित डायलिंग नंबर हटवित आहे..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"निश्चित डायलिंग नंबर हटवला."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"तुम्ही चुकीचा पिन टाईप केल्‍याने FDN अपडेट केले नव्‍हते."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN अपडेट केलेले नाही, कारण क्रमांक २० अंकांनी जास्‍त होत आहेत."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN अपडेट केलेले नाही, कारण नंबर <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> अंकांपेक्षा जास्‍त आहेत."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN अपडेट केले नव्‍हते. PIN2 चुकीचा होता किंवा फोन नंबरला नकार दिला."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN कार्य अयशस्‍वी झाले."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"सिक कार्डमधून वाचत आहे..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"कॉल करू शकत नाही. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> हा आणीबाणी नंबर नाहीये."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"कॉल करू शकत नाही. आणीबाणी नंबर डायल करा."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"आणीबाणी कॉलिंग उपलब्‍ध नाही"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"फक्त या डिव्हाइसचा मालक पिन/PUK कोड एंटर करू शकतो."</string>
     <string name="police_type_description" msgid="2819533883972081757">"पोलीस"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"रुग्णवाहिका"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"आग"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"रीअल-टाइम टेक्‍स्‍ट (RTT) कॉल"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"व्‍हॉइस कॉल करताना मेसेजिंग करू शकतो"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT अशा कॉल करणार्‍यांना साहाय्य करते, ज्‍यांना बहिरेपणा आहे, ज्‍यांना कमी ऐकू येते किंवा बोलताना अडखळतात किंवा ज्‍यांना फक्‍त आवाज पुरेसा नसतो.&lt;br&gt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;अधिक जाणून घ्‍या&lt;a&gt;\n       &lt;br/&gt; - RTT cकॉल मेसेज प्रतिलेख म्‍हणून सेव्‍ह केले आहेत\n       &lt;br/&gt; - RTT व्हिडिओ कॉलसाठी उपलब्‍ध नाही"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"टीप: रोमिंगमध्ये RTT उपलब्ध नाही"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY बंद"</item>
     <item msgid="1449091874731375214">"TTY पूर्ण"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"होय"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"नाही"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"डिसमिस करा"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"फोन आणीबाणी कॉलबॅक मोडमध्ये आहे"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> पर्यंत"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटे आणीबाणी कॉलबॅक मोडमध्ये राहील.\nतुम्हाला आता बाहेर पडायचे आहे का?</item>
+      <item quantity="one">फोन <xliff:g id="COUNT_0">%s</xliff:g> मिनिट आणीबाणी कॉलबॅक मोडमध्ये राहील.\nतुम्हाला आता बाहेर पडायचे आहे का?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"सेवा"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;सेट नाही&gt;"</string>
@@ -673,7 +707,7 @@
     <string name="mobile_data_activate_button" msgid="1139792516354374612">"डेटा जोडा"</string>
     <string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"रद्द करा"</string>
     <string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"कॉल संपला"</string>
-    <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"विमान मोड चालू आहे"</string>
+    <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"विमान मोड सुरू आहे"</string>
     <string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"सिम कार्ड अ‍ॅक्सेस करू शकत नाही"</string>
     <string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"मोबाइल नेटवर्क उपलब्ध नाही"</string>
     <string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"तुम्ही डायल करायचा प्रयत्न करत असलेल्या फोन नंबरमध्ये समस्या आहे. एरर कोड 1."</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"कॉल बारिंग बंद केले"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"पासवर्ड बदला"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"कॉल बारिंगचा पासवर्ड बदला"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"कॉल बारिंगचा पासवर्ड बदलू शकत नाही."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"कॉल बारिंगचा पासवर्ड बदलू शकत नाही"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"पासवर्ड जुळत नाहीत"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 अंक असलेला एखादा पासवर्ड टाका"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"पासवर्ड बदलला"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"पासवर्ड निश्चित करा"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"पासवर्ड टाका"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"कॉल बारिंग सेटिंग्ज"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"सर्व कॉल बारिंग़ सेटिंग्ज बंद करायच्या का?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"नेटवर्क व्यस्त आहे कृपया तुमचा कॉल नंतर पुन्हा करण्याचा प्रयत्न करा."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"नेटवर्क उपलब्ध नाही. साहाय्यासाठी तुमच्या मोबाइल ऑपरेटरशी संपर्क साधा."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"कॉल वळवला."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> वापरण्यासाठी, सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> साठी मोबाइल डेटा सुरू केलेला आहे याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> वापरण्यासाठी, सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> साठी मोबाइल डेटा आणि डेटा रोमिंग सुरू केलेले आहेत याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"डिसमिस करा"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"डेटा कनेक्शन सुरू करा"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"डेटा कनेक्शन बंद करा"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ची सुविधा दिली आहे"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"व्हिडिओ कॉलिंगची सुविधा दिली आहे"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"वायफाय कॉलिंगची सुविधा दिली आहे"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/उपस्थितीची सुविधा दिली आहे"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs डेटा"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS सुरू करा"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"डिव्हाइस रीस्टार्ट करायचे आहे का?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ही सेटिंग बदलण्यासाठी तुम्ही तुमचे डिव्हाइस रीस्टार्ट करणे आवश्यक आहे."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"रीस्टार्ट करा"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द करा"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडिओ पॉवर"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम ॲड्रेस बुक पाहा"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"निश्चित डायलिंग नंबर पाहा"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सर्व्हिस डायलिंग नंबर पहा"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS सेवा स्थिती"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS स्थिती"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"नोंदणीकृत"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"नोंदणीकृत नाही"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"उपलब्ध आहे"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"उपलब्ध नाही"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS नोंदणी: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE वरून व्हॉइस: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\n वाय-फाय वरून व्हॉइस: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nव्हिडिओ कॉलिंग: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT इंटरफेस: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"सेवेमध्ये आहे"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"सेवा बंद आहे"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"फक्त आणीबाणी कॉल"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"रेडिओ बंद"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"रोमिंग"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"रोमिंग नाही"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"निष्क्रिय"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"रिंग होत आहे"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"कॉल सुरू आहे"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"डिस्कनेक्ट केले आहे"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"कनेक्ट करत आहे"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"कनेक्ट केले"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"निलंबित केले"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"अज्ञात"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"बाइट"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"सध्याचा subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"डीफॉल्ट डेटा सिम SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL बँडविड्थ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL बँडविड्थ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेल स्थान माहिती (कालबाह्य झाली):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE फिजिकल चॅनेल कॉंफिगरेशन:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेल माहिती रिफ्रेश रेट:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सर्व सेल परिमाण माहिती:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"डेटा सर्व्हिस:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"रोमिंग:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"कॉल रीडिरेक्ट करा:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"बूट केल्यापासून PPP रीसेटची संख्या:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"सध्याचे नेटवर्क:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"डेटा मिळाला:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"व्हॉइस सेवा:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"सिग्नल स्ट्रेंथ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"व्हॉइस कॉल स्थिती:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"डेटा पाठवला:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"मेसेज वेटिंग:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"फोन नंबर:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"रेडिओ बँड निवडा"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"व्हॉइस नेटवर्कचा प्रकार:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"डेटा नेटवर्कचा प्रकार:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"फोनची अनुक्रमणिका निवडा"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"प्राधान्य दिलेला नेटवर्कचा प्रकार सेट करा:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"पिंग होस्ट नाव(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"पिंग होस्ट नाव(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP क्लायंट चाचणी:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"पिंग चाचणी रन करा"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"अपडेट करा"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"रिफ्रेश करा"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS तपासणी टॉगल करा"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-विशिष्ट माहिती/सेटिंग्ज"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"रेडिओ बँड मोड सेट करा"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"बँड सूची लोड करत आहे…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"सेट करा"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"करता आले नाही"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"यशस्वी"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"टॅबलेट माहिती"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"फोनची माहिती"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"वाहक सुविधा माहिती"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"वाहक सुविधा ट्रिगर करा"</string>
 </resources>
diff --git a/res/values-ms/config.xml b/res/values-ms/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ms/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 9c2a8d2..121081f 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Nombor peribadi"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefon Awam"</string>
     <string name="onHold" msgid="6132725550015899006">"Ditunda"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mesej <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mesej Pembawa"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kod MMI dimulakan"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kod USSD dijalankan..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kod MMI dibatalkan"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR sahaja"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mod rangkaian pilihan: WCDMA diutamakan"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mod rangkaian pilihan: GSM sahaja"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mod rangkaian pilihan: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mod rangkaian pilihan: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mod rangkaian pilihan: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mod rangkaian pilihan: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mod rangkaian pilihan: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mod rangkaian pilihan: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mod rangkaian pilihan: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mod rangkaian pilihan: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mod rangkaian pilihan: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mod rangkaian pilihan: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mod rangkaian pilihan: NR sahaja"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mod rangkaian pilihan: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mod rangkaian pilihan: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mod rangkaian pilihan: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mod rangkaian pilihan: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mod rangkaian pilihan: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mod rangkaian pilihan: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mod rangkaian pilihan: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Memanggil"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rangkaian"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mod 4G LTE Dipertingkat"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Berbilang kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Berbilang kategori didayakan"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Berbilang kategori dilumpuhkan"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (disyorkan)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (disyorkan)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (disyorkan)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Memadamkan nombor dailan tetap..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nombor dailan tetap dipadamkan."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN tidak dikemaskini kerana anda telah menaip PIN yang salah."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN tidak dikemas kini kerana nombor melebihi 20 digit."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN tidak dikemas kini kerana nombornya melebihi <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digit."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN tidak dikemaskini. PIN2 salah atau nombor telefon telah ditolak."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operasi FDN gagal."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Membaca daripada kad SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Tidak dapat memanggil. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bukan nombor kecemasan."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Tidak dapat memanggil. Dail nombor kecemasan."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Panggilan kecemasan tidak tersedia"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Hanya pemilik peranti yang boleh memasukkan kod PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Bomba"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Panggilan teks masa nyata (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Benarkan pemesejan dalam panggilan suara"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Pemanggil dibantu RTT yang pekak, kurang pendengaran, mengalami kesukaran bertutur atau memerlukan ciri selain suara.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ketahui lebih lanjut&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Panggilan RTT disimpan sebagai transkrip mesej\n       &lt;br&gt; - RTT tidak tersedia untuk panggilan video"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: RTT tidak tersedia semasa dalam perayauan"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Dimatikan"</item>
     <item msgid="1449091874731375214">"TTY Penuh"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ya"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Tidak"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ketepikan"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon dalam mod panggil balik kecemasan"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hingga <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon akan berada dalam mod panggil balik kecemasan selama <xliff:g id="COUNT_1">%s</xliff:g> minit.\nAdakah anda mahu keluar sekarang?</item>
+      <item quantity="one">Telefon akan berada dalam mod panggil balik kecemasan selama <xliff:g id="COUNT_0">%s</xliff:g> minit.\nAdakah anda mahu keluar sekarang?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Perkhidmatan"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Persediaan"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Tidak ditetapkan&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Sekatan panggilan dinyahaktifkan"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Tukar kata laluan"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Tukar kata laluan sekatan panggilan"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Tidak boleh menukar kata laluan sekatan panggilan."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Tidak boleh menukar kata laluan sekatan panggilan"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Kata laluan tidak sepadan"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Masukkan kata laluan dengan 4 nombor"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Kata laluan ditukar"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Sahkan kata laluan"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Masukkan kata laluan"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Tetapan sekatan panggilan"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Nyahaktifkan semua tetapan sekatan panggilan?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rangkaian sibuk. Cuba buat panggilan sebentar lagi."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rangkaian sesak. Hubungi operator mudah alih anda untuk mendapatkan bantuan."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Panggilan dipesongkan."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan data mudah alih dihidupkan bagi SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan data mudah alih dan perayauan data dihidupkan bagi SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ketepikan"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Dayakan Sambungan Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Lumpuhkan Sambungan Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Diperuntukkan"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Panggilan Video Diperuntukkan"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Panggilan Wi-Fi Diperuntukkan"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Kehadiran Diperuntukkan"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Dayakan DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Mulakan Semula Peranti?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Anda perlu memulakan semula peranti untuk menukar tetapan ini."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Mulakan semula"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Batal"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Kuasa Radio Mudah Alih"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Nombor Dailan Tetap"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nombor Dailan Perkhidmatan"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status Perkhidmatan IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Berdaftar"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Tidak Berdaftar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tersedia"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Tidak tersedia"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Pendaftaran IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nSuara melalui LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nSuara melalui Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nPanggilan Video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nAntara Muka UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Berfungsi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Rosak"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Panggilan Kecemasan Sahaja"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio Dimatikan"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Perayauan"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Tidak Merayau"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Melahu"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Berdering"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Panggilan Sedang Berlangsung"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Diputuskan sambungan"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Menyambung"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Disambungkan"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Digantung"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Tidak diketahui"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"bgksn"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bait"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId semasa:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId SIM data lalai:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Lebar Jalur DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Lebar Jalur UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Maklumat Lokasi Selular (ditamatkan):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurasi Saluran Fizikal LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kadar Muat Semula Maklumat Selular:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Semua Maklumat Ukuran Selular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Perkhidmatan Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Perayauan:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Pengubahhalaan Panggilan:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Bilangan Tetapan Semula PPP Sejak Proses But:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rangkaian Semasa:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data Diterima:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Perkhidmatan Suara:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Kekuatan Isyarat:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status Panggilan Suara:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data Dihantar:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesej Menunggu:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Nombor Telefon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pilih Jalur Radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Jenis Rangkaian Suara:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Jenis Rangkaian Data:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pilih indeks telefon"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Tetapkan Jenis Rangkaian Pilihan:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Nama Hos(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Nama Hos(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Ujian Klien HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Jalankan Ujian Ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Kemas kini"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Muat semula"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Togol Semakan DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Maklumat/Tetapan khusus OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Tetapkan Mod Jalur Radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Memuatkan Senarai Jalur…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Tetapkan"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Tidak berjaya"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Berjaya"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Maklumat tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Maklumat telefon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Maklumat Peruntukan Pembawa"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Cetus Peruntukan Pembawa"</string>
 </resources>
diff --git a/res/values-my/config.xml b/res/values-my/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-my/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 3d8c5ab..60f2da8 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"လျို့ဝှက် နံပါတ်"</string>
     <string name="payphone" msgid="7936735771836716941">"ငွေပေးရသည့်ဖုန်း"</string>
     <string name="onHold" msgid="6132725550015899006">"ခဏ ကိုင်ထားစဉ်"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> မက်ဆေ့ဂျ်"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ဖုန်းလိုင်းဝန်ဆောင်မှု မက်ဆေ့ဂျ်"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMIကုတ်နံပါတ်ကို စတင်ပြီးပါပြီ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ကုဒ် လုပ်ဆောင်နေပါသည်…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMIကုတ်နံပါတ်ကို ပယ်ဖျက်ပြီးပါပြီ"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR သီးသန့်"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်-WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်-GSM သာ"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ပိုမိုကြိုက်သော ကွန်ယက်အခြေအနေ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်- GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်- CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ဦးစားပေး ကွန်ရက်စနစ်− LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်-တစ်ကမ်ဘာလုံးဆိုင်ရာ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ပိုမိုကြိုက်သော ကွန်ယက်စနစ်- LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ပိုနှစ်သက်သည့် ကွန်ရက်မုဒ်: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်− LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်− TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"အသုံးပြုလိုသော ကွန်ရက်မုဒ်− LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ဦးစားပေး ကွန်ရက်စနစ်− NR သီးသန့်"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ဦးစားပေး ကွန်ရက်စနစ်− NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ဦးစားပေး ကွန်ရက်မုဒ်- NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ဦးစားပေး ကွန်ရက်စနစ်− NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ခေါ်ဆိုခြင်း"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ကွန်ရက်"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"မြှင့်တင်ထား 4G LTE မုဒ်"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"များစွာသော အမျိုးအစားမျိုး"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"မျိုးစုံသောအတန်းအစားများကို  ရရှိနိုင်သည်"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"မျိုးစုံသောအတန်းအစားများကို ပိတ်ထားသည်"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (အကြံပြုထားသည်)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (အကြံပြုထား)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (အကြုံပြု)"</string>
     <string name="network_global" msgid="3289646154407617631">"တစ်ကမ္ဘာလုံးဆိုင်ရာ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ခေါ်ဆိုသည့်အခြေစိုက်နံပါတ်အားဖျက်နေသည်"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ပုံသေ ခေါ်ဆိုမှု နံပါတ် ဖျက်ပြီး"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ပင်နံပါတ် မမှန်သောကြောင့် FDNကို အဆင့်မြှင့်တင်ခြင်းမပြုလုပ်နိုင်ပါ"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"နံပါတ်တွင် ဂဏန်းအလုံး ၂၀ ကျော်နေသဖြင့် FDN ကို အပ်ဒိတ်လုပ်၍ မရပါ။"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"နံပါတ်တွင် ဂဏန်းအလုံးရေ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ကျော်နေပါသဖြင့် FDN ကို အပ်ဒိတ်လုပ်၍ မရပါ။"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ပြောင်းလဲမှု မဖြစ်ပါ။ ပင်နံပါတ် ၂ မှားယွင်းခြင်း သို့မဟုတ် ဖုန်းနံပါတ်ကို ငြင်းဖယ်ခံရခြင်း တစ်ခုခုဖြစ်ပါသည်"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN လုပ်ဆောင်ချက် မအောင်မြင်ပါ"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"ဆင်းမ်ကဒ်မှ ဖတ်နေပါသည်..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"မခေါ်ဆိုနိုင်ပါ။ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> က အရေးပေါ်နံပါတ် မဟုတ်ပါ။"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"မခေါ်ဆိုနိုင်ပါ။ အရေးပေါ်ဖုန်းနံပါတ်တစ်ခုကို နှိပ်ပါ။"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"အရေးပေါ် ခေါ်ဆို၍ မရပါ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ဤစက်ပစ္စည်း၏ ပိုင်ရှင်ကသာလျှင် ပင်နံပါတ်/ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ်များကို ထည့်နိုင်ပါသည်။"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ရဲ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"လူနာတင်ယာဉ်"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"မီး"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"အချိန်နှင့်တစ်ပြေးညီ စာသား(RTT) ခေါ်ဆိုမှု"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ဖုန်းပြောနေစဉ် မက်ဆေ့ဂျ်ပို့ခွင့်ပြုပါ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT သည် နားမကြားသူ၊ နားလေးသူ၊ စကားချို့ယွင်းသူ (သို့) အသံတစ်မျိုးတည်းထက် ပိုမို၍ လိုအပ်သူများကို ကူညီပေးပါသည်။&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ပိုမိုလေ့လာရန်&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - RTT ခေါ်ဆိုမှုများကို မက်ဆေ့ဂျ်စာသားမှတ်တမ်းအဖြစ် သိမ်းဆည်းပါသည်\n &lt;br&gt; - RTT ကို ဗီဒီယိုခေါ်ဆိုမှုများအတွက် အသုံးမပြုနိုင်ပါ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"သတိပြုရန် - ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်ထားစဉ် RTT ကို အသုံးမပြုနိုင်ပါ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ပိတ်ထားသည်"</item>
     <item msgid="1449091874731375214">"TTY အပြည့်"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"No"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ပယ်ရန်"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ဤဖုန်းသည် အရေးပေါ် ပြန်ခေါ်ရန်မုဒ်တွင် ရှိနေသည်"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> အထိ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ဤဖုန်းသည် အရေးပေါ် ပြန်ခေါ်ရန်မုဒ်တွင် <xliff:g id="COUNT_1">%s</xliff:g> မိနစ်ကြာ ရှိနေပါမည်။ \nယခု ထွက်လိုပါသလား။</item>
+      <item quantity="one">ဤဖုန်းသည် အရေးပေါ် ပြန်ခေါ်ရန်မုဒ်တွင် <xliff:g id="COUNT_0">%s</xliff:g> မိနစ်ကြာ ရှိနေပါမည်။ \nယခု ထွက်လိုပါသလား။</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ဝန်ဆောင်မှု"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"စနစ်သတ်မှတ်ခြင်း"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"သတ်မှတ်မထားပါ"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ခေါ်ဆိုမှုပိတ်ပင်ခြင်းကို ပယ်ဖျက်ပြီးပါပြီ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"စကားဝှက် ပြောင်းရန်"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ခေါ်ဆိုမှုပိတ်ပင်သော စကားဝှက်ကို ပြောင်းပါ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ခေါ်ဆိုမှုပိတ်ပင်သော စကားဝှက်ကို မပြောင်းနိုင်ပါ။"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ခေါ်ဆိုမှုပိတ်ပင်သော စကားဝှက်ကို မပြောင်းနိုင်ပါ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"စကားဝှက်များက ထပ်တူမကျပါ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"နံပါတ် ၄ လုံးနှင့် စကားဝှက် ထည့်ရန်"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"စကားဝှက်ကို ပြောင်းလိုက်ပါပြီ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"စကားဝှက်ကို အတည်ပြုရန်"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"စကားဝှက် ထည့်ရန်"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ခေါ်ဆိုမှုပိတ်ပင်သော ဆက်တင်များ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ခေါ်ဆိုမှုပိတ်ပင်သော  ဆက်တင်အားလုံးကို ပယ်ဖျက်မလား။"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ကွန်ရက် မအားပါ။ ဖုန်းခေါ်ဆိုမှုကို နောက်မှ ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ကွန်ရက် ပြည့်ကျပ်နေသည်။ အကူအညီရယူရန် သင်၏ မိုဘိုင်း အော်ပရေတာကို ဆက်သွယ်ပါ။"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ခေါ်ဆိုမှုကို လွှဲထားပါသည်။"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> အသုံးပြုရန် ဆင်းမ်ကတ် <xliff:g id="SIM_NUMBER">%2$d</xliff:g> အတွက် မိုဘိုင်းဒေတာကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> အသုံးပြုရန် ဆင်းမ်ကတ် <xliff:g id="SIM_NUMBER">%2$d</xliff:g> အတွက် မိုဘိုင်းဒေတာနှင့် ကွန်ရက်ပြင်ပဒေတာ အသုံးပြုခြင်းတို့ကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာများကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ပယ်ရန်"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ဒေတာချိတ်ဆက်မှုကို ဖွင့်ပါ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ဒေတာချိတ်ဆက်မှုကို ပိတ်ပါ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ထောက်ပံ့ထားသည်"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ဗီဒီယိုခေါ်ဆိုမှု ပံ့ပိုးထားပါသည်"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi ဖြင့် ခေါ်ဆိုမှုကို ပံ့ပိုးထားပါသည်"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/လက်ရှိ ထောက်ပံ့ပေးခြင်း"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ဒေတာ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ကို ဖွင့်ရန်"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"စက်ကို ပြန်စမလား။"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ဤဆက်တင်ကိုပြောင်းရန် သင့်စက်ကို ပြန်စတင်ရပါမည်။"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ပြန်စရန်"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"မလုပ်တော့ပါ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"မိုဘိုင်း ရေဒီယိုစွမ်းအား"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ထဲရှိ လိပ်စာ စာအုပ်ကိုကြည့်ပါ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ခေါ်ဆိုရန် ကန့်သတ် နံပါတ်ကို ကြည့်မည်"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ခေါ်ဆိုသည့်ဝန်ဆောင်မှုနံပါတ်အားကြည့်မည်"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ဝန်ဆောင်မှု အခြေအနေ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS အခြေအနေ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"မှတ်ပုံတင်ထားသည်"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"မှတ်ပုံတင်ထားခြင်း မရှိပါ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"အသုံးပြုနိုင်သည်"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"မရနိုင်ပါ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS မှတ်ပုံတင်ခြင်း− <xliff:g id="STATUS">%1$s</xliff:g>\nLTE ကို အသုံးပြု၍ ခေါ်ဆိုခြင်း − <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi ကို အသုံးပြု၍ ခေါ်ဆိုခြင်း − <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nဗီဒီယို ခေါ်ဆိုမှု − <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT အသုံးပြုမှု အင်တာဖေ့စ် − <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ဝန်ဆောင်မှုရှိပါသည်"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ဆက်သွယ်မှုဧရိယာပြင်ပ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"အရေးပေါ်ခေါ်ဆိုမှုများသာ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ရေဒီယို ပိတ်ထားသည်"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ပြင်ပကွန်ရက်သို့ ချိတ်ဆက်ခြင်း"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်မထားပါ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"အလုပ်မလုပ်"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"အသံမြည်နေသည်"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ခေါ်ဆိုနေဆဲ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ချိတ်ဆက်မှုပြတ်တောက်သွားသည်"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ချိတ်ဆက်နေသည်"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ချိတ်ဆက်ထားသည်"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ဆိုင်းငံ့ထားသည်"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"မသိရသေးပါ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ဘိုက်"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"လက်ရှိ Id အခွဲ−"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"မူရင်း ဒေတာဆင်းမ်ကဒ်အတွက် Id အခွဲ −"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL မြန်နှုန်း (kbps)−"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL မြန်နှုန်း (kbps)−"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ဆဲလ်လူလာတည်နေရာ အချက်အလက် (ကန့်ကွက်ထားသည်) −"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ရုပ်ပိုင်းဆိုင်ရာ ချန်နယ်စီစဉ်သတ်မှတ်မှု−"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ဆဲလ်လူလာ အချက်အလက် ရယူမှုနှုန်း −"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ဆဲလ်လူလာတိုင်းတာမှု အချက်အလက် အားလုံး −"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ဒေတာ ဝန်ဆောင်မှု −"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်ခြင်း"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ခေါ်ဆိုမှု လမ်းကြောင်းလွှဲပေးခြင်း −"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"စတင်သည့်အချိန်မှစ၍ PPP ပြန်လည်သတ်မှတ်သည့် အခေါက်ရေ −"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"လက်ရှိ ကွန်ရက် −"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"လက်ခံရရှိထားသော ဒေတာ −"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"အသံဝန်ဆောင်မှု −"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"လိုင်းဆွဲအား −"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"အသံခေါ်ဆိုမှု အခြေအနေ −"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ဒေတာ ပို့လိုက်ပါပြီ −"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"မက်ဆေ့ဂျ်ကို စောင့်နေသည် −"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ဖုန်းနံပါတ် −"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ရေဒီယိုလိုင်း ရွေးချယ်ပါ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"အသံကွန်ရက် အမျိုးအစား −"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ဒေတာကွန်ရက် အမျိုးအစား −"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ဖုန်းအညွှန်း ရွေးရန်"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ပိုနှစ်သက်သည့် ကွန်ရက်အမျိုးအစားကို သတ်မှတ်ပါ −"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ပင်ကို လက်ခံဝန်ဆောင်ပေးသူအမည်(www.google.com) မှာ IPv4 -"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ပင်ကို လက်ခံဝန်ဆောင်ပေးသူအမည် (www.google.com) IPv6 -"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ကလိုင်းယင့် စမ်းသပ်မှု −"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ပင်စမ်းသပ်ချက် လုပ်ဆောင်ပါ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC -"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"အပ်ဒိတ်လုပ်ရန်"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ပြန်စရန်"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS စစ်ဆေးမှုခလုတ်ကို နှိပ်ပါ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ထုတ်လုပ်သူနှင့် သက်ဆိုင်သော အချက်အလက်/ဆက်တင်များ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ရေဒီယိုလိုင်းမုဒ်အဖြစ် သတ်မှတ်ပါ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ရေဒီယိုလိုင်းစာရင်းကို ဖွင့်နေသည်…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"သတ်မှတ်ရန်"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ပို့၍မရပါ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"အောင်မြင်ပါသည်"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"တက်ဘလက် အချက်အလက်"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ဖုန်းအချက်အလက်"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ဝန်ဆောင်မှုပေးသူက ပေးထားသည့် အချက်အလက်များ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"အစပျိုးပေးသော ဖုန်းကုမ္ပဏီ ပံ့ပိုးမှု"</string>
 </resources>
diff --git a/res/values-nb/config.xml b/res/values-nb/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-nb/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 12049cc..6629893 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Hemmelig nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonkiosk"</string>
     <string name="onHold" msgid="6132725550015899006">"Parkert"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-melding"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatørmelding"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kode påbegynt"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kode kjører…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-kode avbrutt"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Bare NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Foretrukket nettverksmodus: WCDMA foretrekkes"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Foretrukket nettverksmodus: kun GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Foretrukket nettverksmodus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Foretrukket nettverksmodus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Foretrukket nettverksmodus: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Foretrukket nettverksmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Foretrukket nettverksmodus: Overordnet"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Foretrukket nettverksmodus: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Foretrukket nettverksmodus: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Foretrukket nettverksmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Foretrukket nettverksmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Foretrukket nettverksmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Foretrukket nettverksmodus: bare NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Foretrukket nettverksmodus: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Foretrukket nettverksmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Foretrukket nettverksmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Foretrukket nettverksmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Foretrukket nettverksmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Foretrukket nettverksmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Anrop"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Nettverk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Forbedret 4G LTE-modus"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multikategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multikategori aktivert"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategori deaktivert"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (anbefalt)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (anbefales)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (anbefales)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalt"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sletter programmert telefonnummer ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Programmert telefonnummer er slettet."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN er ikke oppdatert fordi du skrev inn feil PIN-kode."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ble ikke oppdatert fordi tallet er lengre enn 20 sifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ble ikke oppdatert fordi tallet er lengre enn <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> sifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Fast nummer ble ikke oppdatert. PIN2 var feil, eller telefonnummeret ble avvist."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-handlingen mislyktes."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Leser fra SIM-kort …"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan ikke ringe. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> er ikke et nødnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Kan ikke ringe. Ring et nødnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Nødanrop er ikke tilgjengelig"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Det er bare eieren av enheten som kan skrive inn PIN-/PUK-koder."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanse"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brann"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Sanntidstekst-anrop (STT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Tillat meldingsutveksling i talesamtaler"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"STT er til hjelp for brukere som er døve, tunghørte, har talefunksjonshemning eller trenger mer enn bare tale.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Finn ut mer&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – STT-anrop lagres som meldingstranskripsjoner\n       &lt;br&gt; – STT er ikke tilgjengelig for videoanrop"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Merk: RTT er ikke tilgjengelig ved roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY av"</item>
     <item msgid="1449091874731375214">"TTY full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nei"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Lukk"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonen er i modus for tilbakeringing av nødanrop"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Til <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefonen kommer til å være i modus for tilbakeringing av nødanrop i <xliff:g id="COUNT_1">%s</xliff:g> minutter.\nVil du avslutte nå?</item>
+      <item quantity="one">Telefonen kommer til å være i modus for tilbakeringing av nødanrop i <xliff:g id="COUNT_0">%s</xliff:g> minutt.\nVil du avslutte nå?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Tjeneste"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurering"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ikke angitt&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Anropsblokkering er deaktivert"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Endre passord"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Endre passord for anropsblokkering"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Kan ikke endre passordet for anropsblokkering."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Kan ikke endre passordet for anropsblokkering"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Passordene stemmer ikke overens"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Skriv inn et passord med fire sifre"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Passordet er endret"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bekreft passordet"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Skriv inn passordet"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Innstillinger for anropsblokkering"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Vil du deaktivere alle innstillinger for anropsblokkering?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Nettverket er opptatt. Prøv å ringe på nytt senere."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Nettverket er for travelt. Kontakt mobiloperatøren din for å få hjelp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Anropet er omdirigert."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Før du bruker <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, må du sørge for at mobildata er slått på for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan endre dette i mobilnettverksinnstillingene."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Før du bruker <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, må du sørge for at mobildata og data-roaming er slått på for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan endre dette i mobilnettverksinnstillingene."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Lukk"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Slå på datatilkobling"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Slå av datatilkobling"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-tildelt"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Identitetshåndtering aktiv for videoanrop"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Identitetshåndtering aktiv for Wi-Fi-anrop"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence er klargjort"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Slå på DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Start enhet på nytt?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Du må starte enheten din på nytt for å endre innstillingen."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Start på nytt"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Avbryt"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Strømforsyning for mobilradio"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Se adressebok for SIM-kort"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis forhåndsbestemte numre"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestenumre"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status for IMS-tjeneste"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrert"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ikke registrert"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tilgjengelig"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Utilgjengelig"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nTale over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nTale over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoanrop: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-grensesnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Fungerer som normalt"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ute av drift"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Bare nødanrop"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radioen er av"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ingen roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Ledig"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringer"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Anrop pågår …"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Frakoblet"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Kobler til"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Tilkoblet"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Sperret midlertidig"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Ukjent"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakker"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nåværende under-ID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Under-ID for standard-SIM-kort for data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Båndbredde for nedlasting (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Båndbredde for opplasting (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informasjon om celleposisjonen (avviklet):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurering av fysisk LTE-kanal:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Oppdateringsfrekvens for celleinformasjon:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All informasjon for cellemåling:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datatjeneste:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Viderekobling av anrop:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Antall PPP-tilbakestillinger siden oppstart:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Nåværende nettverk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data mottatt:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Taletjeneste:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstyrke:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status på taleanrop:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data sendt:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Melding venter:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Velg radiobånd"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Nettverkstype for tale:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type datanettverk:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Velg telefonindeks"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Velg foretrukket nettverkstype:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping vertsnavn(www.google.no) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping vertsnavn(www.google.no) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test av HTTP-klient:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Kjør ping-test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Oppdater"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Last inn på nytt"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Slå av/på DNS-sjekk"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Produsentspesfikk informasjon og innstillinger"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Angi båndmodus for radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Laster inn båndlisten …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Angi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mislykket"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Vellykket"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informasjon om nettbrettet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoninformasjon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informasjon om operatørhåndtering"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Utløs operatørhåndtering"</string>
 </resources>
diff --git a/res/values-ne/config.xml b/res/values-ne/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ne/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index aeb2592..2daf8a8 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"निजी नम्बर"</string>
     <string name="payphone" msgid="7936735771836716941">"पेफोन"</string>
     <string name="onHold" msgid="6132725550015899006">"होल्डमा"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> को सन्देश"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"सेवा प्रदायकको सन्देश"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI कोड सुरु भयो"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD कोड चल्दै..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI कोड रद्द गरियो।"</string>
@@ -134,7 +136,7 @@
     <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"SS अनुरोध USSD अनुरोधमा परिवर्तन गरियो"</string>
     <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"नयाँ SS अनुरोधमा परिवर्तन गरियो"</string>
     <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS अनुरोध भिडियो कलमा परिवर्तन गरियो"</string>
-    <string name="fdn_check_failure" msgid="1833769746374185247">"तपाईंको फोन अनुप्रयोग स्थिर डायल गर्ने नम्बर सेटिङहरू खोलिएको छ। केही कल-सम्बन्धित विशेषताहरूले कार्य गरिरहेका छैनन्।"</string>
+    <string name="fdn_check_failure" msgid="1833769746374185247">"तपाईंको फोन एप स्थिर डायल गर्ने नम्बर सेटिङहरू खोलिएको छ। केही कल-सम्बन्धित विशेषताहरूले कार्य गरिरहेका छैनन्।"</string>
     <string name="radio_off_error" msgid="8321564164914232181">"यी सेटिङहरू हेर्नु पहिले रेडियो खोल्नुहोस्।"</string>
     <string name="close_dialog" msgid="1074977476136119408">"ठिक छ"</string>
     <string name="enable" msgid="2636552299455477603">"सकृय पार्नुहोस्"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR मात्र"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"रुचाइएको नेटवर्क मोड: WCDMA रुचाइएको"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"रुचाइएको नेटवर्क मोड: GSM मात्र"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"रुचाइएको नेटवर्क मोड: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"रुचाइएको नेटवर्क मोड: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"रुचाइएको नेटवर्क मोड: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"रुचाइएको नेटवर्क मोड: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"रुचाइएको नेटवर्क मोड: विश्वव्यापी"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"रुचाइएको नेटवर्क मोड: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"रुचाइएको सञ्जाल मोड: LTE /GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"रुचाइएको नेटवर्क मोड: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"रुचाइएको नेटवर्क मोड: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"रुचाइएको नेटवर्क मोड: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"रुचाइएको नेटवर्क मोड: NR मात्र"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"रुचाइएको नेटवर्क मोड: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"रुचाइएको नेटवर्क मोड: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"रुचाइएको नेटवर्क मोड: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"रुचाइएको नेटवर्क मोड: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"रुचाइएको नेटवर्क मोड: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"कल गर्दै"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"नेटवर्क"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"बहु-श्रेणी"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"बहुप्रकार सक्षम भयो"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"बहु-कोटी अक्षम भयो"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (सिफारिस गरिएको)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (सिफारिस गरिएको)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (सिफारिस गरिएको)"</string>
     <string name="network_global" msgid="3289646154407617631">"विश्वव्यापी"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"स्थिर डायल गर्ने नम्बर मेट्दै..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"स्थिर डायल गर्ने नम्बर मेटियो।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN अद्यावधिक भएको थिएन किनकि तपाईंले गलत PIN टाइप गर्नुभयो।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"उक्त सङ्ख्याले २० अङ्कको अधिकतम सीमा नाघेकाले FDN अद्यावधिक गरिएन।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"उक्त सङ्ख्याले <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> अङ्कको अधिकतम सीमा नाघेकाले FDN अद्यावधिक गरिएन।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN अद्यावधिक भएको थिएन। PIN2 गलत थियो वा फोन नम्बर अस्वीकार भएको थियो।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN कार्य बिफल भयो।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM कार्ड पढ्दै..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"कल गर्न सकिँदैन। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> आपतकालीन नम्बर होइन।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"कल गर्न सकिँदैन। आपतकालीन नम्बर डायल गर्नुहोस्।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"आपतकालीन कल सेवा उपलब्ध छैन"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"यन्त्रका मालिक मात्र PIN/PUK कोडहरू प्रविष्टि गर्न सक्नुहुन्छ।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"प्रहरी"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"एम्बुलेन्स सेवा"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"दमकल सेवा"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"द्रुत पाठ सन्देश (RTT) कल"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"भ्वाइस कलभित्रै सन्देश प्रवाह गर्ने अनुमति दिनुहोस्"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ले बहिरा, सुन्नमा कठिन हुने, बोल्न नसक्ने र आवाज मात्र नभई कल गर्दा थप कुराहरू चाहिने  मान्छेहरूलाई सहायता गर्छ!&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;थप जान्नुहोस्&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT कलहरूलाई सन्देशसम्बन्धी ट्रान्सक्रिप्टका रूपमा सुरक्षित गरिन्छ\n      &lt;br&gt; - RTT भिडियो कलहरूमा उपलब्ध छैन"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"टिपोट: रोमिङमा हुँदा RTT उपलब्ध हुँदैन"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY बन्द"</item>
     <item msgid="1449091874731375214">"TTY भरी"</item>
@@ -597,8 +625,8 @@
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"डेटा जडान अक्षम भयो"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"<xliff:g id="COMPLETETIME">%s</xliff:g> सम्म डेटा जडान भएको छैन"</string>
     <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_1">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको अवस्थामा एक डेटा जडान प्रयोग गरेर कुनै पनि अनुप्रयोगहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
-      <item quantity="one"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_0">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको समयमा एक डेटा जडान प्रयोग गरेर कुनै पनि अनुप्रयोगहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
+      <item quantity="other"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_1">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको अवस्थामा एक डेटा जडान प्रयोग गरेर कुनै पनि एपहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
+      <item quantity="one"> फोन आपतकालीन कलब्याक मोडमा <xliff:g id="COUNT_0">%s</xliff:g> मिनेटको लागि हुनेछ। यस मोडको समयमा एक डेटा जडान प्रयोग गरेर कुनै पनि एपहरू प्रयोग गर्न सकिँदैन। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
     </plurals>
     <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
       <item quantity="other"> आपतकालीन कलब्याक मोडको समयमा चयनित कार्य उपलब्ध छैन। फोन यस मोडमा <xliff:g id="COUNT_1">%s</xliff:g> मिनेटको लागि हुनेछ। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"हो"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"होइन"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"खारेज गर्नुहोस्"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"यो फोन आपत्‌कालीन कलब्याक मोडमा छ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> सम्म"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">यो फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनेटका लागि आपत्‌कालीन कलब्याक मोडमा हुने छ।\nतपाईं अहिले नै बाहिर निस्कन चाहनुहुन्छ?</item>
+      <item quantity="one">यो फोन <xliff:g id="COUNT_0">%s</xliff:g> मिनेटका लागि आपत्‌कालीन कलब्याक मोडमा हुने छ।\nतपाईं अहिले नै बाहिर निस्कन चाहनुहुन्छ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"सेवा"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"सेट गरेको छैन"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"कल ब्यारिङ निष्क्रिय पारियो"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"पासवर्ड परिवर्तन गर्नुहोस्‌"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"कल ब्यारिङको पासवर्ड परिवर्तन गर्नुहोस्"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"कल ब्यारिङको पासवर्ड परिवर्तन गर्न सकिएन।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"कल ब्यारिङको पासवर्ड परिवर्तन गर्न सकिँदैन"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"पासवर्डहरू मेल खाँदैनन्"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"कुनै ४ अङ्कको पासवर्ड प्रविष्टि गर्नुहोस्"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"पासवर्ड परिवर्तन गरियो"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"पासवर्ड निश्चित गर्नुहोस्"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"पासवर्ड प्रविष्टि गर्नुहोस्"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"कल ब्यारिङसम्बन्धी सेटिङहरू"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"कल ब्यारिङसम्बन्धी सबै सेटिङहरू निष्क्रिय पार्ने हो?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"नेटवर्क व्यस्त छ। कृपया पछि फेरि कल गरी हेर्नुहोस्।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"नेटवर्कका पर्याप्त स्रोतहरू छैनन्। सहायताका लागि आफ्नो मोबाइल अपरेटरसँग सम्पर्क गर्नुहोस्।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"कल अर्को नम्बरमा स्थानान्तरण गरियो।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> प्रयोग गर्न SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> मा मोबाइल डेटा सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यसलाई बदल्न सक्नुहुन्छ।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> प्रयोग गर्न SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> मा मोबाइल डेटा र डेटा रोमिङ सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यी कुराहरू बदल्न सक्नुहुन्छ।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"खारेज गर्नुहोस्"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"डेटा जडान सक्षम पार्नुहोस्"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"डेटा जडानलाई असक्षम पार्नुहोस्"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE को प्रावधान सक्रिय गरिएको छ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"भिडियो कलिङसम्बन्धी प्रावधानलाई सक्रिय गरिएको छ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi कलिङसम्बन्धी प्रावधानलाई सक्रिय गरिएको छ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/उपस्थितिको प्रावधानलाई सक्रिय गरिएको छ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs डेटा"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS सक्षम पार्नुहोस्"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"यन्त्र पुनः सुरु गर्ने हो?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"यो सेटिङ परिवर्तन गर्न तपाईंले आफ्नो यन्त्र पुनः सुरु गर्नु पर्छ।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"पुनः सुरु गर्नुहोस्"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द गर्नुहोस्"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडियोको पावर"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM को ठेगाना पुस्तिका हेर्नुहोस्"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"स्थिर डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवामा डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS सेवाको स्थिति"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS को स्थिति"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"दर्ता गरियो"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"दर्ता नगरिएको"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"उपलब्ध छ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"उपलब्ध छैन"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS को दर्ता: <xliff:g id="STATUS">%1$s</xliff:g>\nभ्वाइस ओभर LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nभ्वाइस ओभर WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nभिडियो कलिङ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT को इन्टरफेस: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"सेवामा"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"सेवा उपलब्ध छैन"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"आपतकालीन कल मात्र"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"रेडियो निष्क्रिय छ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"रोमिङ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"रोमिङमा छैन"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"निष्क्रिय"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"घन्टी बज्दै छ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"कल जारी छ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"विच्छेद गरियो"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"जोडिँदै"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"जडान गरियो"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"निलम्बित"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"अज्ञात"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"बाइटहरू"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"हालको subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"पूर्वनिर्धारित डेटा SIM को SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ब्यान्डविथ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL व्यान्डविथ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेलको स्थानबारे जानकारी (चल्तीबाट हटाइएको):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE को भौतिक च्यानलको कन्फिगरेसन:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेलसम्बन्धी जानकारीलाई पुनः ताजा गरिने दर:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सेलको मापनसम्बन्धी सबै जानकारी:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"डेटा सम्बन्धी सेवा:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"रोमिङ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"कल रिडिरेक्ट:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"बुट गरेदेखि PPP रिसेट गरिएको संख्या:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"हालको नेटवर्क:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"प्राप्त गरिएको डेटा:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice सम्बन्धी सेवा:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"सिग्नलको क्षमता:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice कलको स्थिति:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"डेटा पठाइयो:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"सन्देशलाई कुर्दै:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"फोन नम्बर:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"रेडियोको ब्यान्ड चयन गर्नुहोस्"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice नेटवर्कको प्रकार:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"डेटा नेटवर्कको प्रकार:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"फोनको सूचक चयन गर्नुहोस्"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"रुचाइएको नेटवर्कको प्रकार सेट गर्नुहोस्:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"होस्टनाम (www.google.com) IPv4 मा पिङ गर्नुहोस्:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"होस्टनाम (www.google.com) IPv6 पिङ गर्नुहोस्:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP क्लाइन्टको परीक्षण:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"पिङसम्बन्धी परीक्षण सञ्चालन गर्नुहोस्"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"अद्यावधिक गर्नुहोस्"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"पुनः ताजा गर्नुहोस्"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS को जाँचलाई टगल गर्नुहोस्"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-विशिष्ट जानकारी/सेटिङ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"रेडियोको ब्यान्डसम्बन्धी मोडलाई सेट गर्नुहोस्"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ब्यान्डको सूची लोड गर्दै…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"सेट गर्नुहोस्"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"असफल"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"सफल"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ट्याब्लेटको जानकारी"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"फोनसम्बन्धी जानकारी"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"सेवा प्रदायकको प्रावधानसम्बन्धी जानकारी"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"सेवा प्रदायकको प्रावधानलाई ट्रिगर गर्नुहोस्"</string>
 </resources>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
index fa5c8a1..f7d831b 100644
--- a/res/values-night/styles.xml
+++ b/res/values-night/styles.xml
@@ -27,31 +27,31 @@
         <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
     </style>
 
-    <style name="EmergencyInfoNameTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoNameTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_info_name_text_size</item>
     </style>
 
-    <style name="EmergencyInfoHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@color/white_70_percent</item>
         <item name="android:textSize">@dimen/emergency_info_hint_text_size</item>
     </style>
 
-    <style name="EmergencyInfoTapHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoTapHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_info_tap_hint_text_size</item>
     </style>
 
-    <style name="ShortcutViewHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="ShortcutViewHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
     </style>
 
-    <style name="PhoneNumberTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="PhoneNumberTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_shortcut_number_text_size</item>
     </style>
@@ -62,8 +62,8 @@
         <item name="android:textSize">@dimen/emergency_shortcut_type_text_size</item>
     </style>
 
-    <style name="PhoneNumberTapHintAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="PhoneNumberTapHintAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_shortcut_tap_hint_text_size</item>
     </style>
diff --git a/res/values-nl/config.xml b/res/values-nl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-nl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 5459c85..7bb79d2 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privénummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefooncel"</string>
     <string name="onHold" msgid="6132725550015899006">"In de wacht"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Bericht van <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Bericht van provider"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-code gestart"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-code uitvoeren..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-code geannuleerd"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Alleen NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Voorkeursnetwerkmodus: voorkeur voor WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Voorkeursnetwerkmodus: alleen GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Voorkeursnetwerkmodus: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Voorkeursnetwerkmodus: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Voorkeursnetwerkmodus: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Voorkeursnetwerkmodus: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Voorkeursnetwerkmodus: Wereldwijd"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Voorkeursnetwerkmodus: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Voorkeursmodus voor netwerk: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Voorkeursnetwerkmodus: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Voorkeursnetwerkmodus: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Voorkeursnetwerkmodus: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Voorkeursnetwerkmodus: alleen NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Voorkeursnetwerkmodus: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Voorkeursnetwerkmodus: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Voorkeursnetwerkmodus: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Voorkeursnetwerkmodus: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Voorkeursnetwerkmodus: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Voorkeursnetwerkmodus: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Bellen"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Netwerk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Geoptimaliseerde 4G LTE-modus"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Meerdere categorieën"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Meerdere categorieën ingeschakeld"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Meerdere categorieën uitgeschakeld"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (aanbevolen)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (aanbevolen)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (aanbevolen)"</string>
     <string name="network_global" msgid="3289646154407617631">"Algemeen"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Vast nummer verwijderen..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Vast nummer verwijderd."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN is niet bijgewerkt omdat je een onjuiste pincode hebt ingevoerd."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN is niet geüpdatet omdat het nummer langer is dan twintig tekens."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN is niet geüpdatet omdat het nummer langer is dan <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> tekens."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN is niet bijgewerkt. De PIN2 was onjuist of het telefoonnummer is geweigerd."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN-bewerking mislukt."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lezen vanaf simkaart..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Kan niet bellen. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is geen alarmnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Bellen niet mogelijk. Bel een alarmnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Noodoproepen niet beschikbaar"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Alleen de eigenaar van het apparaat kan pin-/pukcodes invoeren."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politie"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulance"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Realtime tekstoproep (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Berichten in een audiogesprek toestaan"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT helpt bellers die doof of slechthorend zijn, een spraakbeperking hebben of meer dan alleen een stem nodig hebben.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Meer informatie&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-gesprekken worden opgeslagen als berichttranscript.\n       &lt;br&gt; - RTT is niet beschikbaar voor videogesprekken"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Let op: RTT is niet beschikbaar tijdens roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY uit"</item>
     <item msgid="1449091874731375214">"TTY vol"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nee"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Negeren"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"De modus voor noodoproepen is geactiveerd voor de telefoon"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Tot <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">De telefoon blijft <xliff:g id="COUNT_1">%s</xliff:g> minuten in de modus voor noodoproepen.\nWil je nu afsluiten?</item>
+      <item quantity="one">De telefoon blijft <xliff:g id="COUNT_0">%s</xliff:g> minuut in de modus voor noodoproepen.\nWil je nu afsluiten?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Service"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Instellen"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Niet ingesteld&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokkering van gesprekken gedeactiveerd"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Wachtwoord wijzigen"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Wachtwoord voor blokkering van gesprekken wijzigen"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Wachtwoord voor blokkering van gesprekken kan niet worden gewijzigd."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Wachtwoord voor blokkering van gesprekken kan niet worden gewijzigd"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"De wachtwoorden komen niet overeen"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Geef een wachtwoord van vier cijfers op"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Wachtwoord gewijzigd"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Wachtwoord bevestigen"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Wachtwoord invoeren"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Blokkeerinstellingen voor gesprekken"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Alle blokkeerinstellingen voor gesprekken deactiveren?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Netwerk is bezet. Probeer je gesprek later opnieuw uit te voeren."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Het netwerk is overbelast. Neem contact op met je mobiele provider voor hulp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Gesprek doorgeschakeld naar ander nummer."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data en dataroaming hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Sluiten"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Dataverbinding inschakelen"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Dataverbinding uitschakelen"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-registratie"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videogesprekken geregistreerd"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi-gesprekken geregistreerd"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/aanwezigheid geregistreerd"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-gegevens"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS inschakelen"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Apparaat opnieuw opstarten?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Start het apparaat opnieuw op om de instelling te wijzigen."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Opnieuw opstarten"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuleren"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiel radiovermogen"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Adresboek op simkaart weergeven"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vaste nummers weergeven"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicenummers weergeven"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-servicestatus"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Geregistreerd"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niet geregistreerd"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Beschikbaar"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Niet beschikbaar"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registratie: <xliff:g id="STATUS">%1$s</xliff:g>\nBellen via LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nBellen via wifi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideogesprekken: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"In gebruik"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Niet in gebruik"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Alleen noodoproepen"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio uit"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Geen roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactief"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Telefoon gaat over"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Actief gesprek"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Verbinding verbroken"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Verbinding maken"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Verbonden"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Opgeschort"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Onbekend"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakketten"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Huidige subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId van standaard simkaart voor data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-bandbreedte (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-bandbreedte (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobiele locatiegegevens (beëindigd):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysieke LTE-kanaalconfiguratie:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Vernieuwingsfrequentie van mobiele data:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle mobiele meetgegevens:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Gegevensservice:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Gesprek omleiden:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Aantal PPP-resets sinds opstarten:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Huidig netwerk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Ontvangen gegevens:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Spraakservice:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signaalsterkte:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status van audiogesprek:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Gegevens verzonden:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Wachtend bericht:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefoonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radioband selecteren"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Type spraaknetwerk:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Type gegevensnetwerk:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefoonindex selecteren"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Voorkeursnetwerktype instellen:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"IPv4 van hostnaam (www.google.com) pingen:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"IPv6 van hostnaam (www.google.com) pingen:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-client testen:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Pingtest uitvoeren"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Updaten"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Vernieuwen"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-controle in-/uitschakelen"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifieke gegevens/instellingen"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Modus voor radioband instellen"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Bandlijst laden…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Instellen"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Mislukt"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Geslaagd"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tabletinformatie"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefooninformatie"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Gegevens voor providerregistratie"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Providerregistratie activeren"</string>
 </resources>
diff --git a/res/values-or/config.xml b/res/values-or/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-or/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index c8bb14c..338c253 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ବ୍ୟକ୍ତିଗତ ନମ୍ବର୍"</string>
     <string name="payphone" msgid="7936735771836716941">"ପେ-ଫୋନ୍"</string>
     <string name="onHold" msgid="6132725550015899006">"ହୋଲ୍ଡରେ ଅଛି"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> ମେସେଜ୍"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ବାହକ ମେସେଜ୍"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI କୋଡ୍‌କୁ ଆରମ୍ଭ କରାଯାଇଛି"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD କୋଡ୍ ରନ୍ କରୁଛି…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI କୋଡ୍‌କୁ କ୍ୟାନ୍ସଲ୍ କରାଯାଇଛି"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"କେବଳ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: WCDMAକୁ ପସନ୍ଦ କରାଯାଇଛି"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: କେବଳ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: ଗ୍ଲୋବାଲ୍"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ପସନ୍ଦର ନେଟ୍‌ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: କେବଳ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/CDME/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ମୋଡ୍: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"କଲ୍ କରାଯାଉଛି"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ନେଟ୍‌ୱର୍କ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ଉନ୍ନତ 4G LTE ମୋଡ୍‍"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ବିବିଧ ଶ୍ରେଣୀ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ବିବିଧ ଶ୍ରେଣୀକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ବିବିଧ ଶ୍ରେଣୀକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ସୁପାରିଶ କରାଯାଇଛି)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ପ୍ରସ୍ତାବିତ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (ପ୍ରସ୍ତାବିତ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ଗ୍ଲୋବାଲ୍"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍‌ ଡିଲିଟ୍ ହେଉଛି…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍‌କୁ ଡିଲିଟ୍ କରାଗଲା।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ଅପଡେଟ୍ ହେଲା ନାହିଁ କାରଣ ଆପଣ ଗୋଟିଏ ଭୁଲ୍ PIN ଟାଇପ୍ କରିଥିଲେ।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ଅପଡେଟ୍ ହେଲା ନାହିଁ କାରଣ ନମ୍ବର୍ 20ଟି ସଂଖ୍ୟାରୁ ଅଧିକ ଅଛି।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ନମ୍ବରରେ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>ଟିରୁ ଅଧିକ ଅଙ୍କ ଥିବା ଯୋଗୁଁ FDN ଅପ୍‌ଡେଟ୍ କରାଯାଇନଥିଲା।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ଅପଡେଟ୍ ହୋ‌ଇନଥିଲା। PIN2 ଭୁଲ୍ ଥିଲା କିମ୍ବା ଫୋନ୍ ନମ୍ବର୍‌କୁ ଗ୍ରହଣ କରାଗଲା ନାହିଁ।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ଅପରେଶନ୍ ବିଫଳ ହେଲା।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM କାର୍ଡରୁ ପଢ଼ାଯାଉଛି…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"କଲ୍ କରିପାରିବେ ନାହିଁ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ଗୋଟିଏ ଜରୁରିକାଳୀନ ନମ୍ବର୍ ନୁହେଁ।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"କଲ୍ କରିପାରିବେ ନାହିଁ। ଗୋଟିଏ ଜରୁରିକାଳୀନ ନମ୍ବର୍ ଡାଏଲ୍ କରନ୍ତୁ।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ଜରୁରିକାଳୀନ କଲ୍ କରିବା ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ଡିଭାଇସ୍‍ର ମାଲିକ କେବଳ PIN/PUK କୋଡ୍ ଲେଖିପାରିବେ।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ପୋଲିସ୍‍"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ଆମ୍ବୁଲେନ୍ସ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ନିଆଁ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ରିଅଲ୍-ଟାଇମ୍ ଟେକ୍ସଟ୍ (RTT) କଲ୍"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ଭଏସ୍ କଲ୍ କରିବା ମଧ୍ୟରେ ମେସେଜ୍ କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ସେହି କଲର୍‌ମାନଙ୍କୁ ସହାୟତା କରିଥାଏ, ଯେଉଁମାନେ ବଧିର, କ୍ଷୀଣ ଶ୍ରବଣଶକ୍ତି, ମୂକ କିମ୍ବା ଭଏସ୍ ଅପେକ୍ଷା ଅଧିକ କିଛି ଆବଶ୍ୟକ କରନ୍ତି। &lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ଅଧିକ ଜାଣନ୍ତୁ&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - ମେସେଜ୍ ଟ୍ରାନସ୍କ୍ରିପ୍ଟ ଭାବେ RTT କଲ୍ ସେଭ୍ ହୋ‌ଇଛି\n       &lt;br&gt; - ଭିଡିଓ କଲ୍ ପାଇଁ RTT ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ଧ୍ୟାନ ଦିଅନ୍ତୁ: ରୋମିଂ ସମୟରେ RTT ଉପଲବ୍ଧ ନୁହେଁ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ବନ୍ଦ ଅଛି"</item>
     <item msgid="1449091874731375214">"TTY ପୂର୍ଣ୍ଣ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ହଁ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ନାହିଁ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ଖାରଜ କରନ୍ତୁ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ଫୋନଟି ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡରେ ଅଛି"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> ପର୍ଯ୍ୟନ୍ତ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ଫୋନଟି <xliff:g id="COUNT_1">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡରେ ରହିବ।\nଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି କି?</item>
+      <item quantity="one">ଫୋନଟି <xliff:g id="COUNT_0">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡରେ ରହିବ।\nଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି କି?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ସେବା"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ସେଟଅପ୍ କରନ୍ତୁ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ସେଟ୍ ହୋ‌ଇନାହିଁ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ସମସ୍ତ କଲ୍ ରୋକିବା ନିଷ୍କ୍ରିୟ ହୋ‌ଇଯାଇଛି"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ପାସ୍‌ୱର୍ଡ ବଦଳାନ୍ତୁ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"କଲ୍ ରୋକିବା ପାସ୍‌ୱର୍ଡକୁ ବଦଳାନ୍ତୁ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"କଲ୍ ରୋକିବା ପାସ୍‌ୱର୍ଡକୁ ବଦଳାଯାଇପାରିବ ନାହିଁ।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"କଲ୍ ବାରିଂ ପାସ୍‌ୱାର୍ଡକୁ ବଦଳା ଯାଇପାରିବ ନାହିଁ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ପାସ୍‌ୱର୍ଡ ମେଳ ହେଉ ନାହିଁ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ଅଙ୍କ ବିଶିଷ୍ଟ ଗୋଟିଏ ପାସ୍‌ୱର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ପାସ୍‌ୱର୍ଡ ବଦଳାଯାଇଛି"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ପାସ୍‌ୱର୍ଡ ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ପାସ୍‌ୱର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"କଲ୍ ରୋକିବା ସେଟିଙ୍ଗ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ସମସ୍ତ କଲ୍ ରୋକିବା ସେଟିଙ୍ଗକୁ ନିଷ୍କ୍ରିୟ କରିବେ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ନେଟ୍‌ୱର୍କ ବ୍ୟସ୍ତ ଅଛି। ଦୟାକରି ଆପଣ ପରେ ପୁଣି କଲ୍‌ ଚେଷ୍ଟା କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ନେଟ୍‌ୱର୍କ ବ୍ୟସ୍ତ ଅଛି। ସହାୟତା ପାଇଁ ଆପଣଙ୍କର ମୋବାଇଲ୍ ଅପରେଟର୍‍ଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"କଲ୍ ଅନ୍ୟ ପାଖକୁ ଯିବା ବଦଳରେ ନିଜ ପାଖକୁ ଆସିଯାଇଛି।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ସିମ୍ <xliff:g id="SIM_NUMBER">%2$d</xliff:g>ରେ ମୋବାଇଲ୍ ଡାଟା ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ସେଟିଂସ୍‌ରେ ବଦଳାଇପାରିବେ।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ସିମ୍ <xliff:g id="SIM_NUMBER">%2$d</xliff:g>ରେ ମୋବାଇଲ୍ ଡାଟା ଏବଂ ଡାଟା ରୋମିଂ ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ସେଟିଂସ୍‌ରେ ବଦଳାଇପାରିବେ।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ଖାରଜ କରନ୍ତୁ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ଡାଟା ସଂଯୋଗ ସକ୍ରିୟ କରନ୍ତୁ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ଡାଟା ସଂଯୋଗ ଅକ୍ଷମ ହୋଇଛି"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ଭିଡିଓ କଲିଂ ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi କଲିଂ ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ଉପସ୍ଥିତି ପ୍ରାବଧାନ କରାଯାଇଛି"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ଡାଟା"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ସକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରିବେ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ଏହି ସେଟିଂ ବଦଳାଇବାକୁ ଆପଣଙ୍କୁ ଆପଣଙ୍କର ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରିବାକୁ ହେବ।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ମୋବାଇଲ୍ ରେଡିଓ ପାୱାର୍"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ସିମ୍‌ରେ ଥିବା ଠିକଣା ପୁସ୍ତକ ଦେଖନ୍ତୁ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ସ୍ଥାୟୀ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ସର୍ଭିସ୍ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକ ଦେଖନ୍ତୁ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ସେବା ସ୍ଥିତି"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ସ୍ଥିତି"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ରେଜିଷ୍ଟ୍ରେସନ୍ ହୋଇଛି"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ରେଜିଷ୍ଟ୍ରେସନ୍ ହୋଇ ନାହିଁ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ଉପଲବ୍ଧ ଅଛି"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ଉପଲବ୍ଧ ନାହିଁ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ରେଜିଷ୍ଟ୍ରସନ୍: <xliff:g id="STATUS">%1$s</xliff:g>\nଭଏସ୍ ଓଭର୍ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nଭଏସ୍ ଓଭର୍ ୱାଇ-ଫାଇ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nଭିଡିଓ କଲିଙ୍ଗ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ଇଣ୍ଟର୍‌ଫେସ୍: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ସେବାରେ ଅଛି"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ଏବେ କାମ କରୁନାହିଁ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"କେବଳ ଜରୁରୀକାଳୀନ କଲ୍"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ରେଡିଓ ବନ୍ଦ କରନ୍ତୁ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ରୋମିଂ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ରୋମିଂରେ ନାହିଁ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ନିଷ୍କ୍ରିୟ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ରିଂ ହେଉଛି"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"କଲ୍ ଚାଲୁଛି"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ବିଚ୍ଛିନ୍ନ କରାଯାଇଛି"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ସଂଯୋଗ କରାଯାଉଛି"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ସଂଯୋଗ କରାଯାଇଛି"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ନିଲମ୍ବନ କରାଯାଇଛି"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ଅଜଣା"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"ପ୍ୟାକେଟ୍"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ବାଇଟ୍ସ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ବର୍ତ୍ତମାନର subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ଡିଫଲ୍ଟ ଡାଟା SIMର SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ବ୍ୟାଣ୍ଡୱିଡଥ୍ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ବ୍ୟାଣ୍ଡୱିଡଥ୍ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ସେଲ୍ ଲୋକେସନ୍ ସୂଚନା (ଅନୁରୋଧ କରାଯାଇଛି):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ଫିଜିକାଲ୍ ଚ୍ୟାନେଲ୍ କନ୍‌ଫିଗରେସନ୍:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ସେଲ୍ ସୂଚନା ରିଫ୍ରେସ୍ ଦର:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ସମସ୍ତ ସେଲ୍ ପରିମାପ ସୂଚନା:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ଡାଟା ସେବା:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ରୋମିଂ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"କଲ୍ ରିଡାଇରେକ୍ଟ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ବୁଟ୍ ପରଠାରୁ PPP ରିସେଟ୍‌ର ସଂଖ୍ୟା:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ବର୍ତ୍ତମାନର ନେଟ୍‌ୱାର୍କ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ଡାଟା ପ୍ରାପ୍ତ ହୋଇଛି:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ଭଏସ୍ ସେବା:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ସିଗ୍‌ନାଲ୍ ଦକ୍ଷତା:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ଭଏସ୍ କଲ୍ ସ୍ଥିତି:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ଡାଟା ପଠାଯାଇଛି:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ବାର୍ତ୍ତା ଅପକ୍ଷାରତ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ଫୋନ୍ ନମ୍ଵର"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ଚୟନ କରନ୍ତୁ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ଭଏସ୍ ନେଟ୍‌ୱାର୍କ ପ୍ରକାର:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ଡାଟା ନେଟ୍‌ୱାର୍କର ପ୍ରକାର:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ଫୋନ୍ ଇଣ୍ଡେକ୍ସ ବାଛନ୍ତୁ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ନିଜ ପସନ୍ଦର ନେଟ୍‌ୱାର୍କ ପ୍ରକାର ସେଟ୍‌ କରନ୍ତୁ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ହୋଷ୍ଟନାମ (www.google.com) IPv4 ପିଙ୍ଗ କରନ୍ତୁ:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ହୋଷ୍ଟନାମ (www.google.com) IP6 ପିଙ୍ଗ କରନ୍ତୁ:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP କ୍ଲାଏଣ୍ଟ ଟେଷ୍ଟ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ପିଂ ଟେଷ୍ଟ ଚଲାନ୍ତୁ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ଅପ୍‌ଡେଟ୍ କରନ୍ତୁ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ରିଫ୍ରେସ୍ କରନ୍ତୁ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS ଯାଞ୍ଚ ଟୋଗଲ୍ କରନ୍ତୁ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-ନିର୍ଦ୍ଦିଷ୍ଟ ସୂଚନା/ସେଟିଂସ୍"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ବ୍ୟାଣ୍ଡ ତାଲିକା ଲୋଡ୍ କରାଯାଉଛି…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ସେଟ୍ କରନ୍ତୁ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ଅସଫଳ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ସଫଳ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ଟାବ୍‌ଲେଟ୍ ସୂଚନା"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ଫୋନ୍ ସୂଚନା"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ମୋବାଇଲ୍ କମ୍ପାନୀ ପ୍ରାବଧାନ ସୂଚନା"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"କେରିଅର୍ ପ୍ରୋଭିଜନିଂ ଟ୍ରିଗର୍ କରନ୍ତୁ"</string>
 </resources>
diff --git a/res/values-pa/config.xml b/res/values-pa/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pa/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 66554b2..08d69b8 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ਨਿੱਜੀ ਨੰਬਰ"</string>
     <string name="payphone" msgid="7936735771836716941">"ਪੇਫੋਨ"</string>
     <string name="onHold" msgid="6132725550015899006">"ਹੋਲਡ ਤੇ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> ਸੁਨੇਹਾ"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ਕੈਰੀਅਰ ਸੁਨੇਹਾ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI ਕੋਡ ਚਾਲੂ ਕੀਤਾ"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD ਕੋਡ ਚੱਲ ਰਿਹਾ ਹੈ…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI ਕੋਡ ਰੱਦ ਕੀਤਾ"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"ਸਿਰਫ਼ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: ਤਰਜੀਹੀ WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: ਕੇਵਲ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: ਗਲੋਬਲ"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ਤਰਜੀਹੀ ਨੈਟਵਰਕ ਮੋਡ: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: ਸਿਰਫ਼ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਮੋਡ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"ਕਾਲਿੰਗ"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ਨੈੱਟਵਰਕ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"ਵਿਸਤ੍ਰਿਤ 4G LTE ਮੋਡ"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ ਸਮਰਥਿਤ"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ ਅਸਮਰਥਿਤ"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (ਸਿਫ਼ਾਰਸ਼ੀ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G ( ਸਿਫ਼ਾਰਸ਼  ਕੀਤਾ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ਗਲੋਬਲ"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਮਿਟਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਮਿਟਾਇਆ।"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਤੁਸੀਂ ਇੱਕ ਗ਼ਲਤ PIN ਟਾਈਪ ਕੀਤਾ ਸੀ।"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਕਿਉਂਕਿ ਨੰਬਰ 20 ਅੰਕਾਂ ਤੋਂ ਵੱਧ ਹੈ।"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ਨੂੰ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਕਿਉਂਕਿ ਨੰਬਰ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ਅੰਕਾਂ ਤੋਂ ਵੱਧ ਹੈ।"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ। PIN2 ਗ਼ਲਤ ਸੀ ਜਾਂ ਫ਼ੋਨ ਨੰਬਰ ਅਸਵੀਕਾਰ ਕੀਤਾ ਗਿਆ ਸੀ।"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ਓਪਰੇਸ਼ਨ ਅਸਫਲ।"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM ਕਾਰਡ ਤੋਂ ਪੜ੍ਹ ਰਿਹਾ ਹੈ…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨਹੀਂ ਹੈ।"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਡਾਇਲ ਕਰੋ।"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"ਸਿਰਫ਼ ਡੀਵਾਈਸ ਦਾ ਮਾਲਕ ਪਿੰਨ/PUK ਕੋਡ ਦਾਖਲ ਕਰ ਸਕਦਾ ਹੈ।"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ਪੁਲਿਸ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ਐਂਬੂਲੈਂਸ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ਅੱਗ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"ਨਾਲ-ਦੀ-ਨਾਲ ਦਿਸਦੀ ਲਿਖਤ (RTT) ਵਾਲੀ ਕਾਲ"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"ਕਿਸੇ ਵੌਇਸ ਕਾਲ ਦੌਰਾਨ ਸੁਨੇਹਾ ਭੇਜਣ ਦਿਓ"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ਅਜਿਹੇ ਕਾਲ ਕਰਨ ਵਾਲੇ ਲੋਕਾਂ ਦੀ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ ਜੋ ਬੋਲੇ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਬੋਲਣ ਵਿੱਚ ਅਸਮਰਥ ਜਾਂ ਜਿਨ੍ਹਾਂ ਲਈ ਸਿਰਫ਼ ਅਵਾਜ਼ ਕਾਫ਼ੀ ਨਹੀਂ ਹੁੰਦੀ।&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ਹੋਰ ਜਾਣੋ&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT ਕਾਲਾਂ ਨੂੰ ਇੱਕ ਪ੍ਰਤਿਲਿਪੀ ਸੁਨੇਹੇ ਵਜੋਂ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ\n       &lt;br&gt; - RTT ਵੀਡੀਓ ਕਾਲਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"ਨੋਟ ਕਥਨ:ਵੇਲੇ RTT ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ਬੰਦ"</item>
     <item msgid="1449091874731375214">"TTY ਪੂਰਾ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ਹਾਂ"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ਨਹੀਂ"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ਖਾਰਜ ਕਰੋ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ਫ਼ੋਨ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਮੋਡ ਵਿੱਚ ਹੈ"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> ਤੱਕ"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">ਫ਼ੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟ ਲਈ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਮੋਡ ਵਿੱਚ ਹੋਵੇਗਾ।\nਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
+      <item quantity="other">ਫ਼ੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟਾਂ ਲਈ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਮੋਡ ਵਿੱਚ ਹੋਵੇਗਾ।\nਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"ਸੇਵਾ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ਸੈੱਟਅੱਪ ਕਰੋ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ਕਾਲ ਬੈਰਿੰਗ ਨੂੰ ਅਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"ਪਾਸਵਰਡ ਬਦਲੋ"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ਕਾਲ ਬੈਰਿੰਗ ਦਾ ਪਾਸਵਰਡ ਬਦਲੋ"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ਕਾਲ ਬੈਰਿੰਗ ਦਾ ਪਾਸਵਰਡ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ।"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ਕਾਲ ਬੈਰਿੰਗ ਦਾ ਪਾਸਵਰਡ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"ਪਾਸਵਰਡ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ਨੰਬਰਾਂ ਵਾਲਾ ਕੋਈ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"ਪਾਸਵਰਡ ਬਦਲਿਆ ਗਿਆ"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ਪਾਸਵਰਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ਕਾਲ ਬੈਰਿੰਗ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ਕੀ ਸਾਰੀਆਂ ਕਾਲ ਬੈਰਿੰਗ ਸੈਟਿੰਗਾਂ ਅਕਿਰਿਆਸ਼ੀਲ ਕਰਨੀਆਂ ਹਨ?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ਨੈੱਟਵਰਕ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੀ ਕਾਲ ਲਈ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ਨੈੱਟਵਰਕ \'ਤੇ ਭਾਰੀ ਟ੍ਰਰੈਫ਼ਿਕ ਹੈ। ਸਹਾਇਤਾ ਲਈ ਆਪਣੇ ਮੋਬਾਈਲ ਓਪਰੇਟਰ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ਕਾਲ ਕਿਸੇ ਹੋਰ ਵਿਅਕਤੀ ਨੂੰ ਭੇਜੀ ਗਈ।"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਸਿਮ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਚਾਲੂ ਹੋਵੇ। ਤੁਸੀਂ ਇਸਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਸਿਮ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਅਤੇ ਡਾਟਾ ਰੋਮਿੰਗ ਦੋਨੋਂ ਚਾਲੂ ਹੋਣ। ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ਖਾਰਜ ਕਰੋ"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਬੰਦ ਕਰੋ"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ਵੀਡੀਓ ਕਾਲਿੰਗ ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ਮੌਜੂਦਗੀ ਪ੍ਰੋਵਿਜ਼ਨਡ"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs ਡਾਟਾ"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS ਚਾਲੂ ਕਰੋ"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"ਕੀ ਡੀਵਾਈਸ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"ਤੁਹਾਨੂੰ ਇਹ ਸੈਟਿੰਗ ਬਦਲਣ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ਰੱਦ ਕਰੋ"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ਮੋਬਾਈਲ ਰੇਡੀਓ ਪਾਵਰ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ਸਿਮ ਦੀ ਪਤਾ ਬੁੱਕ ਦੇਖੋ"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ਸੇਵਾ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS ਸੇਵਾ ਸਥਿਤੀ"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS ਸਥਿਤੀ"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ਰਜਿਸਟਰ ਕੀਤੀ ਗਈ"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤੀ ਗਈ"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ਉਪਲਬਧ"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ਅਣਉਪਲਬਧ"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ਰਜਿਸਟਰੇਸ਼ਨ: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE \'ਤੇ ਵੌਇਸ: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nਵਾਈ-ਫਾਈ \'ਤੇ ਵੌਇਸ: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nਵੀਡੀਓ ਕਾਲਿੰਗ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ਇੰਟਰਫੇਸ: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"ਸੇਵਾ ਵਿੱਚ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ਸੇਵਾ ਵਿੱਚ ਨਹੀਂ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"ਸਿਰਫ਼ ਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ਰੇਡੀਓ ਬੰਦ"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ਰੋਮਿੰਗ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ਰੋਮਿੰਗ ਨਹੀਂ"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ਨਿਸ਼ਕਿਰਿਆ"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ਘੰਟੀ ਵੱਜ ਰਹੀ ਹੈ"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ਕਾਲ ਜਾਰੀ ਹੈ"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"ਡਿਸਕਨੈਕਟ ਹੋਇਆ"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"ਕਨੈਕਟ ਹੈ"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ਮੁਅੱਤਲ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ਅਗਿਆਤ"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ਬਾਈਟਾਂ"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ਮੌਜੂਦਾ subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਡਾਟਾ ਸਿਮ ਦਾ SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ਬੈਂਡਵਿਡਥ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ਬੈਂਡਵਿਡਥ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ਸੈੱਲ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ (ਨਾਪਸੰਦ ਕੀਤੀ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ਭੌਤਿਕ ਚੈਨਲ ਸੰਰੂਪਣ:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ਸੈੱਲ ਦੀ ਜਾਣਕਾਰੀ ਦੀ ਰਿਫ੍ਰੈਸ਼ ਦਰ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ਸਾਰੀ ਸੈੱਲ ਮਾਪ ਜਾਣਕਾਰੀ:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ਡਾਟਾ ਸੇਵਾ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ਰੋਮਿੰਗ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ਇਸ \'ਤੇ ਕਾਲ ਰੀਡਾਇਰੈਕਟ ਕਰੋ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"ਬੂਟ ਤੋਂ ਬਾਅਦ PPP ਰੀਸੈੱਟ ਦੀ ਗਿਣਤੀ:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ਵਰਤਮਾਨ ਨੈੱਟਵਰਕ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ਡਾਟਾ ਪ੍ਰਾਪਤ ਹੋਇਆ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ਵੌਇਸ ਸੇਵਾ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"ਵੌਇਸ ਕਾਲ ਸਥਿਤੀ:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ਡਾਟਾ ਭੇਜਿਆ ਗਿਆ:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ਸੁਨੇਹੇ ਦੀ ਉਡੀਕ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ਫ਼ੋਨ ਨੰਬਰ:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ਰੇਡੀਓ ਬੈਂਡ ਚੁਣੋ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ਵੌਇਸ ਨੈੱਟਵਰਕ ਕਿਸਮ:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ਡਾਟਾ ਨੈੱਟਵਰਕ ਕਿਸਮ:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ਫ਼ੋਨ ਕ੍ਰਮ-ਸੂਚੀ ਚੁਣੋ"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਕਿਸਮ ਸੈੱਟ ਕਰੋ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ਹੋਸਟਨੇਮ (www.google.com) IPv4 ਪਿੰਗ ਕਰੋ:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ਹੋਸਟਨਾਮ (www.google.com) IPv6 ਪਿੰਗ ਕਰੋ:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP ਕਲਾਇੰਟ ਜਾਂਚ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ਪਿੰਗ ਟੈਸਟ ਚਲਾਓ"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"ਅੱਪਡੇਟ"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ਰਿਫ੍ਰੈਸ਼ ਕਰੋ"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS ਜਾਂਚ ਟੌਗਲ ਕਰੋ"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-ਵਿਸ਼ੇਸ਼ ਜਾਣਕਾਰੀ/ਸੈਟਿੰਗਾਂ"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ਰੇਡੀਓ ਬੈਂਡ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"ਬੈਂਡ ਸੂਚੀ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ਸੈੱਟ ਕਰੋ"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ਅਸਫਲ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"ਸਫਲ"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ਟੈਬਲੈੱਟ ਜਾਣਕਾਰੀ"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ਫ਼ੋਨ ਜਾਣਕਾਰੀ"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ਕੈਰੀਅਰ ਪ੍ਰੋਵਿਜ਼ਨਿੰਗ ਜਾਣਕਾਰੀ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ਕੈਰੀਅਰ ਪ੍ਰਵਿਜ਼ਨਿੰਗ ਨੂੰ ਟ੍ਰਿਗਰ ਕਰੋ"</string>
 </resources>
diff --git a/res/values-pl/config.xml b/res/values-pl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 027e34a..410887c 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numer prywatny"</string>
     <string name="payphone" msgid="7936735771836716941">"Automat telefoniczny"</string>
     <string name="onHold" msgid="6132725550015899006">"Oczekujące"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Wiadomość od operatora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Wiadomość od operatora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kod MMI został rozpoczęty"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Uruchomiony kod USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kod MMI został anulowany"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Tylko NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferowany tryb sieci: preferowany WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferowany tryb sieci: tylko GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferowany tryb sieci: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferowany tryb sieci: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferowany tryb sieci: CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferowany tryb sieci: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferowany tryb sieci: globalny"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferowany tryb sieci: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Preferowany tryb sieci: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferowany tryb sieci: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferowany tryb sieci: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferowany tryb sieci: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferowany tryb sieci: tylko NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferowany tryb sieci: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferowany tryb sieci: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferowany tryb sieci: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferowany tryb sieci: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferowany tryb sieci: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferowany tryb sieci: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferowany tryb sieci: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferowany tryb sieci: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferowany tryb sieci: LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferowany tryb sieci: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Połączenia"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Sieć"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Tryb rozszerzonego 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Obsługa wielu kategorii"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Obsługa wielu kategorii włączona"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Obsługa wielu kategorii wyłączona"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (zalecane)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (zalecana)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (zalecana)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalna"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Trwa usuwanie ustalonego numeru…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Usunięto ustalony numer."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Nie zaktualizowano usługi FDN, ponieważ wpisano nieprawidłowy kod PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Nie zaktualizowano usługi FDN, ponieważ numer zawiera ponad 20 cyfr."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Nie zaktualizowano usługi FDN, ponieważ numer zawiera powyżej <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cyfr."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Nie zaktualizowano FDN. PIN2 był niepoprawny lub numer telefonu został odrzucony."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operacja FDN nie udała się."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Czytanie z karty SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nie można dzwonić. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie jest numerem alarmowym."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nie można dzwonić. Wybierz numer alarmowy."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Połączenia alarmowe niedostępne"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Kody PIN/PUK może wpisać tylko właściciel urządzenia."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policja"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Karetka pogotowia"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Straż pożarna"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Połączenie RTT (wysyłanie SMS-ów w czasie rzeczywistym)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Zezwalaj na wymianę SMS-ów podczas rozmowy głosowej"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT pomaga osobom niesłyszącym, niedosłyszącym, mającym problemy z mówieniem oraz potrzebującym czegoś więcej oprócz głosu.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Więcej informacji&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Połączenia RTT są zapisywane jako transkrypcje\n       &lt;br&gt; – Funkcja RTT jest niedostępna w przypadku rozmów wideo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Uwaga: funkcja RTT jest niedostępna podczas roamingu"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY wyłączony"</item>
     <item msgid="1449091874731375214">"TTY pełny"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Tak"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nie"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Zamknij"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon jest w trybie alarmowego połączenia zwrotnego"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minuty.\nCzy chcesz teraz zakończyć ten tryb?</item>
+      <item quantity="many">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minut.\nCzy chcesz teraz zakończyć ten tryb?</item>
+      <item quantity="other">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minuty.\nCzy chcesz teraz zakończyć ten tryb?</item>
+      <item quantity="one">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_0">%s</xliff:g> minutę.\nCzy chcesz teraz zakończyć ten tryb?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Dostawca"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfiguracja"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nie ustawiono&gt;"</string>
@@ -659,7 +695,7 @@
     <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Ustaw nowy kod PIN"</string>
     <string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"Kod PIN musi zawierać od <xliff:g id="MIN">%1$d</xliff:g> do <xliff:g id="MAX">%2$d</xliff:g> cyfr."</string>
     <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"Potwierdź kod PIN"</string>
-    <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"Kody PIN nie są identyczne."</string>
+    <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"Kody PIN nie są takie same"</string>
     <string name="change_pin_succeeded" msgid="2504705600693014403">"Kod PIN poczty głosowej został zaktualizowany."</string>
     <string name="change_pin_system_error" msgid="7772788809875146873">"Nie udało się ustawić kodu PIN"</string>
     <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"Transmisja danych w roamingu jest wyłączona"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokada połączeń dezaktywowana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Zmień hasło"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Zmień hasło blokady połączeń"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nie można zmienić hasła blokady połączeń."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nie można zmienić hasła blokady połączeń"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Hasła nie są identyczne"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Wpisz hasło składające się z czterech cyfr"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Hasło zmienione"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potwierdź hasło"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Wpisz hasło"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Ustawienia blokady połączeń"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Dezaktywować wszystkie ustawienia blokady połączeń?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Sieć jest zajęta. Spróbuj zadzwonić później."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Sieć jest przeciążona. Skontaktuj się z operatorem i poproś o pomoc."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Połączenie przekazane na inny numer."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, włącz mobilną transmisję danych dla karty SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> w ustawieniach sieci komórkowej."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, włącz mobilną transmisję danych i roaming danych dla karty SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> w ustawieniach sieci komórkowej."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Zamknij"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Włącz transmisję danych"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Wyłącz transmisję danych"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Obsługa głosu przez LTE włączona"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Możliwość prowadzenia rozmów wideo"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Możliwość prowadzenia rozmów przez Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Obsługa EAB/obecności włączona"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dane CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Włącz DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Uruchomić urządzenie ponownie?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Musisz ponownie uruchomić urządzenie, by to zmienić."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Uruchom ponownie"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anuluj"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Moc sygnału komórkowego"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Wyświetl książkę adresową z karty SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Wyświetl ustalone numery"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Wyświetl numery usług"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stan usługi IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stan IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Zarejestrowane"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niezarejestrowane"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostępne"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Brak dostępu"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Rejestracja w usłudze IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nRozmowy wideo: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfejs UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Działa"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Nie działa"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Tylko połączenia alarmowe"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio wyłączone"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Brak roamingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Brak"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Dzwonię"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Połączenie w toku"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Odłączono"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Łączę"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Połączono"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Zawieszone"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Brak informacji"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"– pakiety"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktualny identyfikator:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Identyfikator domyślnej karty SIM do transmisji danych:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Przepustowość kanału DL (kb/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Przepustowość kanału UL (kb/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacje o lokalizacji z sieci komórkowej (wycofane):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracja kanału fizycznego LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Częstotliwość odświeżania informacji o sieci komórkowej:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Wszystkie informacje pomiarowe z sieci komórkowej:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Usługa transmisji danych:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Przekierowanie połączeń:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Liczba operacji resetowania PPP od momentu uruchomienia:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Obecna sieć:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dane odebrane:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Usługa połączeń głosowych:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Siła sygnału:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stan połączenia głosowego:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dane wysłane:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Wiadomość oczekująca:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numer telefonu:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Wybierz pasmo radiowe"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Typ sieci dla połączeń głosowych:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ sieci danych:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Wybierz indeks telefonu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ustaw preferowany typ sieci:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping nazwa_hosta(www.google.pl) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping nazwa_hosta(www.google.pl) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test klienta HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Przeprowadź test pingu"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aktualizacja"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Odśwież"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Przełącz sprawdzanie DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacje/ustawienia specyficzne dla producenta OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Ustawianie trybu pasma radiowego"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ładuję listę pasm…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ustaw"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nie udało się"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Udało się"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacje o tablecie"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacje o telefonie"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacje o obsłudze administracyjnej operatora"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Uruchom obsługę administracyjną operatora"</string>
 </resources>
diff --git a/res/values-pt-rPT/config.xml b/res/values-pt-rPT/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pt-rPT/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index bca2506..08217e4 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número particular"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefone público"</string>
     <string name="onHold" msgid="6132725550015899006">"Em espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensagem <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensagem do Operador"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código de MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"A executar código USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código de MMI cancelado"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Apenas NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de rede preferido: apenas WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de rede preferido: apenas GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de rede preferido: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de rede preferido: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de rede preferido: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de rede preferido: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de rede preferido: global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de rede preferido: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de rede preferido: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de rede preferido: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de rede preferido: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de rede preferido: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de rede preferido: apenas NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de rede preferido: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de rede preferido: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de rede preferido: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de rede preferido: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de rede preferido: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de rede preferido: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de rede preferido: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de rede preferido: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de rede preferido: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chamadas"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rede"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE avançado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Categoria múltipla"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Categoria múltipla activada"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Modo de categorias múltiplas desativado"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendado)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"A eliminar números autorizados..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Números autorizados eliminados."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Os números autorizados não foram atualizados porque introduziu um PIN incorreto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"O FDN não foi atualizado porque o número excede os 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"O FDN não foi atualizado porque o número excede <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Não foram atualizados os números autorizados. O PIN2 estava errado ou o número de telefone foi rejeitado."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Falha de FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"A ler a partir do cartão SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Não é possível telefonar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um número de emergência."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Não é possível telefonar. Marque um número de emergência."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Chamadas de emergência não disponíveis"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Apenas o proprietário do dispositivo pode introduzir os códigos PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polícia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulância"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Fogo"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chamada com Mensagens de texto em tempo real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir envio de mensagens numa chamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"A RTT assiste os autores de chamadas surdos, com deficiências auditivas, dificuldades da fala ou que precisem de mais do que apenas a voz.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saiba mais&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - As chamadas RTT são guardadas como transcrição de mensagem\n       &lt;br&gt; - A RTT não está disponível para videochamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Nota: a RTT não está disponível em roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletipo desativado"</item>
     <item msgid="1449091874731375214">"Teletipo completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sim"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Não"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ignorar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"O telemóvel está no modo de chamada de retorno de emergência."</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Até à(s) <xliff:g id="COMPLETETIME">%s</xliff:g>."</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">O telemóvel ficará no modo de chamada de retorno de emergência durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\nPretende sair agora?</item>
+      <item quantity="one">O telemóvel ficará no modo de chamada de retorno de emergência durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nPretende sair agora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serviço"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuração"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Não definido&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Barramento de chamadas desativado"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Alterar palavra-passe"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Alterar palavra-passe de barramento de chamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Não é possível alterar a palavra-passe de barramento de chamadas"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Não é possível alterar a palavra-passe de barramento de chamadas."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"As palavras-passe não correspondem"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introduza uma palavra-passe com 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"A palavra-passe foi alterada"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar palavra-passe"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Introduzir palavra-passe"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Definições de barramento de chamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Desativar todas as definições de barramento de chamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A rede está ocupada. Tente efetuar novamente a chamada mais tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A rede está congestionada. Contacte o seu operador móvel para obter assistência."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"A chamada foi desviada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, certifique-se de que os dados móveis estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Pode alterar esta definição nas definições de rede móvel."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, certifique-se de que os dados móveis e o roaming de dados estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Pode alterar estas definições nas definições de rede móvel."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ignorar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ativar ligação de dados"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desativar ligação de dados"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE fornecido"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochamadas fornecidas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chamadas Wi-Fi fornecidas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/presença aprovisionada"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dados de CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ativar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Pretende reiniciar o dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Tem de reiniciar o dispositivo para alterar esta definição."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potência do rádio móvel"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver livro de endereços do SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números autorizados"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcação de serviços"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Estado do serviço IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Estado IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Não registado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponível"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponível"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registo IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoz por LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoz por Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochamadas: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Em serviço"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fora de serviço"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Apenas chamadas de emergência"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádio desativado"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Sem roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inativo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"A tocar…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chamada em curso"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desligado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"A ligar…"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ligado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspenso"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconhecido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubID atual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID do SIM de dados predefinido:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda de transferência (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda de carregamento (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informações da localização da célula (descontinuadas):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuração do canal físico LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de atualização das informações da célula:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Todas as informações de medição de células:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serviço de dados:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecionar chamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de reposições de PPP desde o arranque:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rede atual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dados recebidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serviço de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Intensidade do sinal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Estado da chamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dados enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensagem em espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de telefone:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selecionar banda de rádio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de rede de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de rede de dados:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selecionar lista telefónica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Definir tipo de rede preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Nome de anfitrião de ping (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Nome de anfitrião de ping (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Teste de Cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executar teste de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ativar/desativar verificação de DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informações/definições específicas de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Definir modo de banda de rádio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"A carregar lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Sem êxito"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Bem sucedido"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informações do telefone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informações de fornecimento do operador"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Acionar fornecimento do operador"</string>
 </resources>
diff --git a/res/values-pt/config.xml b/res/values-pt/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-pt/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index dd394db..5e012a5 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Número privado"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefone público"</string>
     <string name="onHold" msgid="6132725550015899006">"Em espera"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensagem da operadora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensagem da operadora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Código MMI iniciado"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Código USSD em execução…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Código MMI cancelado"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Apenas NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modo de rede preferencial: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modo de rede preferencial: somente GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modo de rede preferencial: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modo de rede preferencial: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modo de rede preferencial: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modo de rede preferencial: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modo de rede preferencial: global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modo de rede preferencial: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modo de rede preferido: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modo de rede preferencial: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modo de rede preferencial: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modo de rede preferencial: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modo de rede preferencial: somente NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modo de rede preferencial: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modo de rede preferencial: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modo de rede preferencial: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modo de rede preferencial: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modo de rede preferencial: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modo de rede preferencial: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modo de rede preferencial: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modo de rede preferencial: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modo de rede preferencial: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modo de rede preferencial: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chamadas"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rede"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modo 4G LTE avançado"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Várias categorias"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Várias categorias ativadas"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Várias categorias desativadas"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomendado)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomendado)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomendável)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Excluindo número de discagem fixa…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Número de discagem fixa excluído."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"O FDN não foi atualizado porque você digitou um PIN incorreto."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"O FDN não foi atualizado porque o número excede 20 dígitos."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"O FDN não foi atualizado porque o número excede <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> dígitos."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"O FDN não foi atualizado. O PIN2 estava incorreto, ou o número de telefone foi rejeitado."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Falha na operação de FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Lendo a partir do chip…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Não é possível realizar chamadas. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> não é um telefone de emergência."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Não é possível realizar chamadas. Disque o número de telefone de emergência."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Chamada de emergência indisponível"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Somente o proprietário do dispositivo pode digitar os códigos PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polícia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulância"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Incêndio"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Chamada com mensagem de texto em tempo real (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir o envio de mensagens de texto em uma chamada de voz"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"A RTT ajuda os autores das chamadas com deficiências como surdez, dificuldade de audição ou fala ou que precisam de outros recursos além de voz.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Saiba mais&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; — As chamadas RTT são salvas como transcrições de mensagem\n       &lt;br&gt; — A RTT não está disponível para videochamadas"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Observação: a RTT não está disponível em roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY desativado"</item>
     <item msgid="1449091874731375214">"TTY completo"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sim"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Não"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Descartar"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"O smartphone está no modo de retorno de chamada de emergência"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Até <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minuto.\nVocê quer sair agora?</item>
+      <item quantity="other">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minutos.\nVocê quer sair agora?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serviço"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configuração"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Não definido&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"O bloqueio de chamadas foi desativado"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Alterar senha"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Alterar senha do bloqueio de chamadas"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Não é possível alterar a senha do bloqueio de chamadas."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Não é possível alterar a senha do bloqueio de chamadas"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"As senhas não correspondem"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Digite uma senha com 4 números"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"A senha foi alterada"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmar senha"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Digitar senha"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Configurações do bloqueio de chamadas"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Desativar todas as configurações do bloqueio de chamadas?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"A rede está ocupada. Ligue novamente mais tarde."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"A rede está congestionada. Entre em contato com sua operadora para receber ajuda."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Chamada desviada."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Verifique se os dados móveis estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> para usar este serviço: <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Verifique se os dados móveis e o roaming de dados estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> para usar este serviço: <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Dispensar"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Ativar conexão de dados"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desativar conexão de dados"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE provisionado"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videochamadas provisionadas"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Chamadas por Wi-Fi provisionadas"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/presença provisionados"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dados CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Ativar DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Reiniciar o dispositivo?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Reinicie o dispositivo para alterar essa configuração."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Potência do rádio celular"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver o catálogo de endereços do chip"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de discagem fixa"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de discagem do serviço"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status de serviço IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status do IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrado"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Não registrado"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponível"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponível"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registro IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideochamada: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterface UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Em serviço"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Fora de serviço"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Somente chamadas de emergência"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádio desativado"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Não está em roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inativo"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Tocando"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chamada em andamento"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Desconectado"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Conectando"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspenso"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Desconhecido"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Subcódigo atual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Subcódigo do chip de dados padrão:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informações de local do celular (uso suspenso):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuração do canal físico de LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de atualização das informações do celular:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Todas as informações de medição do celular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serviço de dados:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecionamento da chamada:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Número de redefinições PPP desde a inicialização:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rede atual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dados recebidos:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serviço de voz:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Potência do sinal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status da chamada de voz:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dados enviados:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensagem em espera:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de telefone:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selecionar frequência de rádio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipo de rede de voz:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipo de rede de dados:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selecionar lista telefônica"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Definir tipo de rede preferido:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Dar um ping no nome do host (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Dar um ping no nome do host (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Teste do cliente HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Executar teste de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Atualizar"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Atualizar"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ativar/desativar verificação do DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informações/configurações específicas de OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Definir modo de banda de rádio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Carregando a lista de bandas…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Falha"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Concluído"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informações do tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informações do telefone"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informações de provisionamento da operadora"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Acionar provisionamento da operadora"</string>
 </resources>
diff --git a/res/values-ro/config.xml b/res/values-ro/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ro/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 1748fba..358343b 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Număr privat"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefon public"</string>
     <string name="onHold" msgid="6132725550015899006">"În așteptare"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mesaj <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mesaj de la operator"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Cod MMI pornit"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Se rulează codul USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Cod MMI anulat"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Numai NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mod de rețea preferat: de preferat WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mod de rețea preferat: numai GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Mod de rețea preferat: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Mod de rețea preferat: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Mod de rețea preferat: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mod de rețea preferat: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Mod de rețea preferat: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Mod de rețea preferat: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mod de rețea preferat: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mod de rețea preferat: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mod de rețea preferat: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mod de rețea preferat: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mod de rețea preferat: numai NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mod de rețea preferat: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mod de rețea preferat: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mod de rețea preferat: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mod de rețea preferat: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mod de rețea preferat: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mod de rețea preferat: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mod de rețea preferat: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mod de rețea preferat: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mod de rețea preferat: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mod de rețea preferat: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Se apelează"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rețea"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mod 4G LTE îmbunătățit"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Categorii multiple"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Categorii multiple activate"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Categorii multiple dezactivate"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (recomandat)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (recomandat)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (recomandat)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Se șterge numărul cu apelări restricționate..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numărul cu apelări restricționate a fost șters."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"NAR nu a fost actualizat, deoarece ați introdus un cod PIN incorect."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"NAR nu a fost actualizat deoarece numărul depășește 20 de cifre."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"NAR nu a fost actualizat deoarece numărul depășește <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifre."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"NAR nu a fost actualizat. Codul PIN2 a fost incorect sau numărul de telefon a fost respins."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operațiunea NAR nu a reușit."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Se citește de pe cardul SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nu se poate apela. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nu este un număr de urgență."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nu se poate apela. Formați un număr de urgență."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Apelurile de urgență nu sunt disponibile."</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Numai proprietarul dispozitivului poate să introducă respectivele coduri PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Poliție"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanță"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Pompieri"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Apel de tipul Text în timp real (TTR)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Permiteți schimbul de mesaje în timpul unui apel vocal"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"TTR oferă asistență apelanților fără auz, cu deficiențe de auz, care au dizabilități de vorbire sau care au nevoie de mai mult decât de voce.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Aflați mai multe&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Apelurile RTT sunt salvate ca transcrierea unui mesaj\n       &lt;br&gt; - Serviciul TTR nu este disponibil pentru apelurile video."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Notă: funcția TTR nu este disponibilă când sunteți în roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY dezactivat"</item>
     <item msgid="1449091874731375214">"TTY integral"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nu"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Renunțați"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonul va fi în modul Apelare inversă de urgență"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Până la <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefonul va fi în modul Apelare inversă de urgență timp de <xliff:g id="COUNT_1">%s</xliff:g> minute.\nDoriți să ieșiți acum?</item>
+      <item quantity="other">Telefonul va fi în modul Apelare inversă de urgență timp de <xliff:g id="COUNT_1">%s</xliff:g> de minute.\nDoriți să ieșiți acum?</item>
+      <item quantity="one">Telefonul va fi în modul Apelare inversă de urgență timp de <xliff:g id="COUNT_0">%s</xliff:g> minut.\nDoriți să ieșiți acum?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serviciu"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Configurare"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nesetat&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Restricționarea apelurilor este dezactivată"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Schimbați parola"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Schimbați parola pentru restricționarea apelurilor"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Nu se poate schimba parola pentru restricționarea apelurilor."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nu se poate schimba parola pentru restricționarea apelurilor"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Parolele nu se potrivesc"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introduceți o parolă cu 4 cifre"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parola a fost modificată"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmați parola"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Introduceți parola"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Setări de restricționare a apelurilor"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Dezactivați toate setările de restricționare a apelurilor?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rețeaua este ocupată. Încercați să apelați din nou mai târziu."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rețeaua este aglomerată. Contactați operatorul de telefonie mobilă pentru a cere asistență."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Apelul a fost deviat."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Închideți"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activați conexiunea de date"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Dezactivați conexiunea de date"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Oferit de VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Apelarea video este configurată"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Apelarea prin Wi-Fi este configurată"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Setări configurate pentru EAB/prezență"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Date CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Activați DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Reporniți dispozitivul?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Trebuie să reporniți dispozitivul pentru a modifica setarea."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reporniți"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anulați"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentare radio celular"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afișați agenda de pe SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afișați numerele pentru apeluri restricționate"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vedeți numere de apelare de serviciu"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Starea serviciului IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stare IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Înregistrat"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Neînregistrat"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Disponibil"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Indisponibil"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Înregistrare IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice prin LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoce prin WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nApelare video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nInterfață UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"În aria de acoperire"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"În afara ariei de acoperire"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Numai apeluri de urgență"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio oprit"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Nu se utilizează roamingul"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inactiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Sună"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Apel în desfășurare"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Deconectat"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Se conectează"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Conectat"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Suspendat"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Necunoscut"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pachete"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byți"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId actual:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId pentru SIM-ul de date prestabilit:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Lățime de bandă de descărcare (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Lățime de bandă de încărcare (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informații despre localizarea celulei (învechite):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configurarea canalului fizic LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rata de actualizare a informațiilor despre celulă:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toate informațiile de măsurare despre celulă:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serviciu de date:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Redirecționarea apelului:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Numărul de resetări PPP de la pornire:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rețeaua actuală:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Date primite:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serviciu de voce:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Puterea semnalului:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stare apel vocal:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Date trimise:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesaj în așteptare:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Număr de telefon:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selectați banda radio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipul rețelei de voce:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipul rețelei de date:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Selectați indexul telefonului"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Setați tipul preferat de rețea:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Dați ping adresei IPv4 a numelui de gazdă (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Dați ping adresei IPv6 a numelui de gazdă (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test client HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Efectuați testul de ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizați"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizați"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activați/dezactivați verificarea DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informații/Setări caracteristice OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Setați Modul bandă radio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Se încarcă lista de benzi…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Setați"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Nereușit"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Reușit"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informații tabletă"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informații despre telefon"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informații despre provizionarea operatorului"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Declanșați provizionarea operatorului"</string>
 </resources>
diff --git a/res/values-ru/config.xml b/res/values-ru/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ru/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index c1f38f6..0421272 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Скрытый номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Телефон-автомат"</string>
     <string name="onHold" msgid="6132725550015899006">"Ждет ответа"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Сообщение через <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Сообщение оператора"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Код MMI запущен"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Выполняется запрос USSD…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Код MMI отменен"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Только NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Предпочтительная сеть: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Предпочтительная сеть: только GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Предпочтительный режим: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Предпочтительный режим: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Предпочтительный режим: CDMA и LTE/EvDo"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Предпочтительный сетевой режим: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Предпочтительный режим: весь мир"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Предпочтительный режим: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Предпочтительный режим: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Предпочтительный режим: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Предпочтительный режим: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Предпочтительный режим: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Предпочтительный сетевой режим: только NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Предпочтительный сетевой режим: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Предпочтительный сетевой режим: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Предпочтительный сетевой режим: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Предпочтительный сетевой режим: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Предпочтительный сетевой режим: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Предпочтительный сетевой режим: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Вызовы"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Сеть"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Режим 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Подборка из нескольких категорий"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Подборка из нескольких категорий включена"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Подборка из нескольких категорий отключена"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (рекомендуется)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (рекомендуется)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (рекомендуется)"</string>
     <string name="network_global" msgid="3289646154407617631">"Все"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Выполняется удаление номера ограниченного набора…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Номер ограниченного набора удален."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Разрешенный номер не обновлен, так как введен неверный PIN-код."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Разрешенный номер не обновлен, так как не может содержать более 20 цифр"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Разрешенный номер не обновлен, так как не может содержать более <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифр."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Список разрешенных номеров не обновлен. Указан неверный PIN2 или номер телефона."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Не удалось включить FDN"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Считывание с SIM-карты…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Не удалось позвонить. Номер <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не принадлежит экстренным службам."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Не удалось позвонить. Наберите номер экстренных служб."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Экстренные вызовы недоступны"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Ввести коды PIN/PUK может только владелец устройства."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиция"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Скорая помощь"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожарная служба"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Вызов RTT"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Разрешить обмен сообщениями во время голосового вызова"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функция RTT предназначена для пользователей с нарушениями слуха и речи.&lt;br&gt;&lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Подробнее…&lt;/a&gt;\n&lt;br&gt;&lt;br&gt;– Вызовы RTT сохраняются как транскрипции.\n&lt;br&gt;– Функция RTT недоступна при видеовызове."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Примечание. Функция RTT недоступна в роуминге."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Телетайп выключен"</item>
     <item msgid="1449091874731375214">"Полнофункциональный телетайп"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Нет"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Закрыть"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон находится в режиме экстренных обратных вызовов"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минуту.\nВыйти сейчас?</item>
+      <item quantity="few">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минуты.\nВыйти сейчас?</item>
+      <item quantity="many">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минут.\nВыйти сейчас?</item>
+      <item quantity="other">Телефон будет оставаться в режиме экстренных обратных вызовов <xliff:g id="COUNT_1">%s</xliff:g> минуты.\nВыйти сейчас?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Служба"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Настройка"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не задано&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Настройки запрета вызовов отключены"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Изменить пароль"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Изменить пароль для функции запрета вызовов"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не удалось изменить пароль"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не удалось изменить пароль для функции запрета вызовов"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Пароли не совпадают"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Введите пароль из 4 цифр"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Пароль изменен"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Подтвердите пароль"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Введите пароль"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Настройки запрета вызовов"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Отключить все настройки запрета вызовов?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Сеть занята. Попробуйте выполнить вызов позже."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Сеть перегружена. Обратитесь за помощью к своему оператору мобильной связи."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Абонент переадресовал вызов."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>) необходимо подключение к мобильному Интернету через SIM-карту <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Этот параметр можно изменить в настройках мобильной сети."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>) необходимо подключение к мобильному Интернету и доступ к интернет-роумингу через SIM-карту <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Эти параметры можно изменить в настройках мобильной сети."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Закрыть"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Включить передачу данных"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Отключить передачу данных"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Синхронизация VoLTE включена"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видеосвязь предоставлена"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Связь по Wi-Fi предоставлена"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Синхронизация EAB/Presence включена"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Данные CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Включить DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Перезапустить устройство?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Чтобы изменить эту настройку, перезапустите устройство."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перезапустить"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Отмена"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Мощность радиосигнала"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Посмотреть адресную книгу на SIM-карте"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Список разрешенных номеров"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Посмотреть номера служебного набора"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус сервиса IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус сервиса IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Зарегистрировано"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не зарегистрировано"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Доступно"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недоступно"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Статус регистрации сервиса IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидеовызовы: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-интерфейс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"В зоне обслуживания"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Вне зоны обслуживания"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Только экстренные вызовы"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио выключено"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роуминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Не в роуминге"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Вызов…"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Вызов"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Отключено"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Подключение"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Подключено"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Заблокировано"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Неизвестно"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Текущий доп. идентификатор:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Доп. идентификатор SIM-карты для мобильного Интернета по умолчанию:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускная способность DL-канала (кбит/c):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускная способность UL-канала (кбит/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информация о местоположении сети (устаревшее):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурация физического канала LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частота обновления данных о сетях:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Статистика сети:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Сервис для передачи данных:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роуминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Переадресация вызовов:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Количество сбросов PPP после загрузки:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Текущая сеть:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Получено данных:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Сервис голосовой связи:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Уровень сигнала:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус голосовых вызовов:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Отправлено данных:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Параллельное сообщение:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Номер телефона:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Выбрать радиостанцию"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип сети для голосовой связи:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип сети для передачи данных:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Выберите телефонный код"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Настроить предпочтительный тип сети:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Имя хоста запроса ping для www.google.com, IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Имя хоста запроса ping для www.google.com, IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Проверка клиента HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Выполнить проверку ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Обновить"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Обновить"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Включить/отключить проверку DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информация/настройки OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Настроить режим сети"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Загрузка списка частот…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Сохранить"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Сбой"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успешно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информация о планшетном ПК"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информация о телефоне"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Сведения о синхронизации оператора"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запустить синхронизацию оператора"</string>
 </resources>
diff --git a/res/values-si/config.xml b/res/values-si/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-si/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 9d8a3fb..b89b1d8 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"පුද්ගලික අංකය"</string>
     <string name="payphone" msgid="7936735771836716941">"පේෆෝනය"</string>
     <string name="onHold" msgid="6132725550015899006">"රඳවා ගනිමින්"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>පණිවිඩය"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"වාහක පණිවිඩය"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI කේතය ආරම්භ විය"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD කේතය ධාවනය වෙමින්…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI කේතය අවලංගු කෙරුණි"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR පමණි"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ප්‍රිය ජාල ආකාරය: WCDMA කැමතියි"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ප්‍රිය ජාල ආකාරය: GSM පමණි"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ප්‍රිය ජාල ආකාරය: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ප්‍රිය ජාල ආකාරය: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ප්‍රිය ජාල ආකාරය: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"වඩා කැමති ජාල ප්‍රකාරය: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ප්‍රිය ජාල ආකාරය: ගෝලීය"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ප්‍රිය ජාල ආකාරය: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"කැමති ජාල ආකාරය: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"වඩා කැමති ජාල ප්‍රකාරය: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"වඩා කැමති ජාල ප්‍රකාරය: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"වඩා කැමති ජාල ප්‍රකාරය: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"වඩා කැමති ජාල ප්‍රකාරය: NR පමණි"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"වඩා කැමති ජාල ප්‍රකාරය: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"වඩා කැමති ජාල ප්‍රකාරය: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"අමතමින්"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"ජාලය"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"දියුණු කරන ලද 4G LTE මෝඩය"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"බහු-ප්‍රවර්ග"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"බහු-ප්‍රවර්ග සබලයි"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"බහු-ප්‍රවර්ග අබලයි"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (නිර්දේශිත)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (නිර්දෙශිත)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (නිර්දෙශිත)"</string>
     <string name="network_global" msgid="3289646154407617631">"ගෝලීය"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ස්ථිර ඇමතුම් අංකය මකමින්..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ස්ථාවර ඇමතුම් අංකය මකන ලදි."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"ඔබ වැරදි PIN එකක් ඇතුලත් කළ බැවින් FDN යාවත්කාලින නොවුණි."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"අංකය ඉලක්කම් 20ක් ඉක්මවන නිසා FDN යාවත්කාලීන නොකරන ලදී."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"අංකය ඉලක්කම් <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ඉක්මවන නිසා FDN යාවත්කාලීන නොකරන ලදී."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN යාවත්කාලින නොවුණි. PIN2 වැරදියි, නැති නම් දුරකථන අංකය ප්‍රතික්ෂේප විය."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN ක්‍රියාවලිය අසමත්."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM කාඩ් පතෙන් කියවමින්…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ඇමතුම් ලබාගැනීම කළ නොහැක. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> මෙය හදිස්සි ඇමතුම් අංකයක් නොවේ."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ඇමතිය නොහැක. හදිසි අංකයක් අමතන්න."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"හදිසි අවස්ථා ඇමතුම ලබා ගත නොහැකිය"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"උපාංගයේ හිමිකරුට පමණක් PIN/PUK කේත ඇතුළු කළ හැකිය."</string>
     <string name="police_type_description" msgid="2819533883972081757">"පොලීසිය"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ගිලන් රථය"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"ගින්න"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"තථ්‍ය-කාල පෙළ (RTT) ඇමතුම"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"හඬ ඇමතුමක් තුළ පණිවිඩ යැවීමට ඉඩ දෙන්න"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"බිහිරි, ශ්‍රවණ දුර්වලතා, කථන ආබාධයක් හෝ හඬට වඩා වැඩි දෙයක් අවශ්‍ය අමතන්නන්ට RTT සහාය දක්වයි.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;තව දැන ගන්න&lt;/a&gt;\n &lt;br&gt;&lt;br&gt; - RTT ඇමතුම් පණිවිඩ පිටපතත් ලෙස සුරැකේ \n &lt;br&gt; - වීඩියෝ ඇමතුම් සඳහා RTT ලබා ගත නොහැකිය"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"සටහන: රෝමිං කරන අතරතුර RTT ලබා ගත නොහැකිය"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY අක්‍රියයි"</item>
     <item msgid="1449091874731375214">"TTY පුර්ණයි"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ඔව්"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"නැත"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"ඉවතලන්න"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"දුරකථනය හදිසි පසු ඇමතුම් ප්‍රකාරයේ ඇත"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> තෙක්"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g>ක් තිස්සේ හදිසි පසු ඇමතුම් ප්‍රකාරයේ තිබෙනු ඇත.\nදැන් ඔබට පිටවීමට අවශ්‍යද?</item>
+      <item quantity="other">දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g>ක් තිස්සේ හදිසි පසු ඇමතුම් ප්‍රකාරයේ තිබෙනු ඇත.\nදැන් ඔබට පිටවීමට අවශ්‍යද?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"සේවාව"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"ස්ථාපනය කරන්න"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;පිහිටුවා නැත&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ඇමතුම් අවහිර කිරීම අක්‍රිය කරන ලදී"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"මුරපදය වෙනස් කරන්න"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"ඇමතුම් අවහිර කිරීම් මුරපදය වෙනස් කරන්න"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"ඇමතුම් අවහිර කිරීම් මුරපදය වෙනස් කළ නොහැකිය."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"ඇමතුම් අවහිර කිරීම් මුරපදය වෙනස් කළ නොහැකිය"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"මුරපද නොගැළපෙයි"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"අංක 4ක් සහිත මුරපදයක් ඇතුළු කරන්න"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"මුරපදය වෙනස් කරන ලදී"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"මුරපදය තහවුරු කරන්න"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"මුරපදය ඇතුළු කරන්න"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"ඇමතුම් අවහිර කිරීම් සැකසීම්"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"සියලු ඇමතුම් අවහිර කිරීම් සැකසීම් අක්‍රිය කරන්නද?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ජාලය කාර්ය බහුලයි. කරුණාකර පසුව නැවත ඔබේ ඇමතුම උත්සාහ කරන්න."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ජාලය තදබද වී ඇත. සහාය සඳහා ඔබේ ජංගම ක්‍රියාකරු අමතන්න."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"ඇමතුම හරවන ලදී."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> භාවිත කිරීමට, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> සඳහා ජංගම දත්ත ක්‍රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මෙය ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> භාවිත කිරීමට, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> සඳහා ජංගම දත්ත සහ දත්ත රෝමිං ක්‍රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මේවා ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ඉවත ලන්න"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"දත්ත සබැඳුම සබල කරන්න"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"දත්ත සබැඳුම අබල කරන්න"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ප්රතිපාදනය කළ"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"වීඩියෝ ඇමතුම් ප්‍රතිපාදනය කළ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi ඇමතුම් ප්‍රතිපාදනය කළ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/තිබීම ප්‍රතිපාදනය කර ඇත"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs දත්ත"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS සබල කරන්න"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"උපාංගය යළි අරඹන්නද?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"මෙම සැකසීම වෙනස් කිරීමට ඔබ ඔබේ උපාංගය යළි ඇරඹීමට අවශ්‍යයි."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"යළි අරඹන්න"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"අවලංගු කරන්න"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"ජංගම රේඩියෝ බලය"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ලිපින පොත බලන්න"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ස්ථාවර ඇමතුම් අංක පෙන්වන්න"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"සේවා ඩයල් කිරීමේ අංක පෙන්වන්න"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS සේවා තත්ත්වය"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS තත්ත්වය"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ලියාපදිංචි වී ඇත"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ලියාපදිංචි වී නැත"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ලබා ගත හැකිය"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ලබා ගත නොහැකිය"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS ලියාපදිංචි කිරීම: <xliff:g id="STATUS">%1$s</xliff:g>\nවොයිස් ඕවර් LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nවොයිස් ඕවර් WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nවීඩියෝ ඇමතුම්: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT අතුරුමුහුණත: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"සේවාවේ පවතින"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"සේවාවෙන් තොරයි"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"හදිසි ඇමතුම්"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"රේඩියෝව ක්‍රියාවිරහිතයි"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"රෝමිං"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"රෝමිං නැත"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"අක්‍රිය"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"නාද වෙමින්"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"ඇමතුම කෙරෙමින් පවතී"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"විසන්ධි විය"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"සබැඳෙමින්"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"සම්බන්ධිතයි"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"අත්හිටුවා ඇත"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"නොදන්නා"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"බයිට"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"වත්මන් උප හැඳුනුම:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"පෙරනිමි දත්ත SIM පතේ උප හැඳුනුම:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL කලාප පළල (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL කලාප පළල (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"සෙල් ස්ථාන තොරතුරු (අත් හරින ලදී):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE භෞතික නාලිකා වින්‍යාසය:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"සෙල් තොරතුරු නැවුම් කිරීමේ අනුපාතය:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"සියලු සෙල් මිනුම් තොරතුරු:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"දත්ත සේවාව:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"රෝමිං:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"ඇමතුම් යළි හරවා යැවීම:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"පණ ගැන්වීමේ සිට PPP යළි සැකසීම් ගණන:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"වත්මන් ජාලය:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"දත්ත ලැබිණි:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"හඬ සේවාව:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"සංඥා ප්‍රබලතාව:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"හඬ ඇමතුම් තත්ත්වය:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"යැවූ දත්ත:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"පණිවිඩය රැඳී සිටී:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"දුරකථන අංකය:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"රේඩියෝ කලාපය තෝරන්න"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"හඬ ජාල වර්ගය:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"දත්ත ජාල වර්ගය:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"දුරකථන දර්ශකය තෝරන්න"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"වඩා කැමති ජාල වර්ගය සකසන්න:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"සත්කාරක නම පිං කරන්න(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"සත්කාරක නම පිං කරන්න(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP සේවාලාභි පරික්ෂාව:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"පිං පරික්ෂාව ධාවනය කරන්න"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"යාවත්කාලීන කරන්න"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"නැවුම් කරන්න"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS පරීක්ෂාව ටොගල කරන්න"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-විශේෂිත තොරතුරු/සැකසීම්"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"රේඩියෝ කලාප ප්‍රකාරය සකසන්න"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"කලාප ලැයිස්තුව පූරණය කරමින්…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"සකසන්න"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"අසාර්ථකයි"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"සාර්ථකයි"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ටැබ්ලට් තොරතුරු"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"දුරකථන තොරතුරු"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"වාහක ප්‍රතිපාදන තතු"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"උත්ප්‍රේරක වාහක ප්‍රතිපාදන"</string>
 </resources>
diff --git a/res/values-sk/config.xml b/res/values-sk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 95e8fef..8163ba1 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Súkromné číslo"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefónny automat"</string>
     <string name="onHold" msgid="6132725550015899006">"Podržaný hovor"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Správa od operátora <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Správa od operátora"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kód MMI bol spustený"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kód USSD je spustený..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kód MMI bol zrušený"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Iba NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Preferovaný režim siete: preferované WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Preferovaný režim siete: iba GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Preferovaný režim siete: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Preferovaný režim siete: GSM / WCDMA / LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Preferovaný režim siete: CDMA + LTE / EvDo"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Preferovaný režim siete: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Preferovaný režim siete: Globálny"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Preferovaný režim siete: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Uprednostňovaný režim siete: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Preferovaný režim siete: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Preferovaný režim siete: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Preferovaný režim siete: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Preferovaný režim siete: iba NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Preferovaný režim siete: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Preferovaný režim siete: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Preferovaný režim siete NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Preferovaný režim siete: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Preferovaný režim siete: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Preferovaný režim siete: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Preferovaný režim siete: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Preferovaný režim siete: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Preferovaný režim siete: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Preferovaný režim siete: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Volanie"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Sieť"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Zlepšený režim 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Viac kategórií"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Viac kategórií povolených"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Viacero kategórií zakázané"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (odporúčané)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (odporúčané)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (odporúčané)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globálne"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Odstraňuje sa povolené číslo…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Povolené číslo bolo odstránené."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Povolené čísla neboli aktualizované. Zadali ste nesprávny kód PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Režim povolených čísel nebol aktualizovaný, pretože číslo obsahuje viac než 20 číslic."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Režim povolených čísel nebol aktualizovaný, pretože číslo obsahuje viac než maximálny počet povolených číslic (<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>)."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Povolené čísla neboli aktualizované. Kód PIN2 je nesprávny alebo bolo telefónne číslo odmietnuté."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operácia s povolenými číslami zlyhala."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Prebieha čítanie zo SIM karty..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Hovor nie je možné uskutočniť. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nie je číslo tiesňového volania."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Hovor nie je možné uskutočniť. Vytočte číslo tiesňového volania."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Tiesňové volania nie sú k dispozícii"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Zadávať kódy PIN a PUK môže len vlastník zariadenia."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polícia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Záchranka"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Hasiči"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Posielanie okamžitého textu (RTT) počas hovorov"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Povoliť posielanie správ počas hlasového hovoru"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Okamžitý text pomáha volajúcim, ktorí nepočujú, majú problémy so sluchom, rečovú poruchu alebo potrebujú viac ako samotný hlas.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Ďalšie informácie&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Okamžitý text poslaný počas hovoru sa uloží ako prepis správ\n       &lt;br&gt; – Okamžitý text nie je k dispozícii počas videohovorov"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Poznámka: Okamžitý text nie je počas roamingu k dispozícii."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Textový telefón vypnutý"</item>
     <item msgid="1449091874731375214">"Úplný textový telefón"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Áno"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nie"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Zatvoriť"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefón je v režime tiesňového spätného volania"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="few">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_1">%s</xliff:g> minúty.\nChcete tento režim ukončiť?</item>
+      <item quantity="many">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_1">%s</xliff:g> minúty.\nChcete tento režim ukončiť?</item>
+      <item quantity="other">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_1">%s</xliff:g> minút.\nChcete tento režim ukončiť?</item>
+      <item quantity="one">Telefón bude v režime tiesňového spätného volania <xliff:g id="COUNT_0">%s</xliff:g> minútu.\nChcete tento režim ukončiť?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Služba"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Nastavenie"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Nenastavené&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Blokovanie hovorov bolo deaktivované"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Zmeniť heslo"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Zmeniť heslo na blokovanie hovorov"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Heslo na blokovanie hovorov sa nepodarilo zmeniť."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Heslo na blokovanie hovorov sa nepodarilo zmeniť"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Heslá sa nezhodujú"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Zadajte heslo so štyrmi číslicami"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Heslo bolo zmenené"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potvrďte heslo"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Zadajte heslo"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Nastavenia blokovania hovorov"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Deaktivovať všetky nastavenia blokovania hovorov?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Sieť je zaneprázdnená. Skúste svoj hovor zopakovať neskôr."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Sieť je zahltená. O pomoc požiadajte svojho mobilného operátora."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Hovor bol odklonený."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skontrolujte, či máte pre SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g> zapnuté mobilné dáta. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skontrolujte, či máte pre SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g> zapnuté mobilné dáta a dátový roaming. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Zavrieť"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Povoliť dátové pripojenie"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Zakázať dátové pripojenie"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Poskytované VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Poskytované videohovory"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Poskytované volanie cez Wi‑Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Zaistenie EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Údaje CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivovať DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Chcete reštartovať zariadenie?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Ak chcete zmeniť nastavenie, musíte reštartovať zariadenie."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reštartovať"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Zrušiť"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Sila signálu GSM"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobraziť adresár SIM karty"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobraziť povolené čísla"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobraziť čísla volaní služieb"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stav služby IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stav IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrované"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Bez registrácie"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"K dispozícii"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nie je k dispozícii"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registrácia IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nHlas cez LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHlas cez Wi‑Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideohovory: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nRozhranie UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"V prevádzke"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Mimo prevádzky"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Len tiesňové volania"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Rádio je vypnuté"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Bez roamingu"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Nečinné"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Prezváňa sa"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Prebieha hovor"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Odpojené"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Pripája sa"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Pripojené"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Pozastavené"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Neznáme"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pakety"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Aktuálny podradený identifikátor:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Podradený identifikátor predvolenej dátovej SIM karty:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Rýchlosť pripojenia DL (kB/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Rýchlosť pripojenia UL (kB/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informácie o polohe mobilnej siete (podpora bola ukončená):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurácia fyzického kanála LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvencia obnovenia informácií o mobilnej sieti:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Všetky informácie o meraní mobilnej siete:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Dátová služba:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Presmerovanie hovoru:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Počet obnovení protokolu PPP od spustenia:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuálna sieť:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Prijaté dáta:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Hlasová služba:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Sila signálu:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stav hlasového hovoru:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Odoslané dáta:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Čakajúca správa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefónne číslo:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Vybrať pásmo rádia"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Typ hlasovej siete:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ dátovej siete:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Vybrať index telefónu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nastaviť preferovaný typ siete:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Testovať dostupnosť (ping) názvu hostiteľa (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Testovať dostupnosť (ping) názvu hostiteľa (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test klienta HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Spustiť testovanie dostupnosti (ping)"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Aktualizovať"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Obnoviť"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Prepnúť kontrolu DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informácie alebo nastavenia špecifické pre výrobcu OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nastaviť režim rádiového pásma"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Načítava sa zoznam pásiem…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nastaviť"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neúspešné"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Úspešné"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informácie o tablete"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informácie o telefóne"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informácie o poskytovaní služieb operátorom"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Spustiť poskytovanie služieb operátorom"</string>
 </resources>
diff --git a/res/values-sl/config.xml b/res/values-sl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index a3447da..58a087d 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Zasebna številka"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonska govorilnica"</string>
     <string name="onHold" msgid="6132725550015899006">"Zadržano"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Sporočilo <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Sporočilo operaterja"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Koda MMI zagnana"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Koda USSD se izvaja ..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Koda MMI preklicana"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Samo NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Prednostni način omrežja: prednostno WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Prednostni način omrežja: samo GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Prednostni način omrežja: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Prednostni način omrežja: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Prednostni način omrežja: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Prednostni način omrežja: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Prednostni način omrežja: globalno"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Prednostni način omrežja: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Prednostni omrežni način: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Prednostni način omrežja: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Prednostni način omrežja: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Prednostni način omrežja: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Prednostni način omrežja: samo NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Prednostni način omrežja: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Prednostni način omrežja: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Prednostni način omrežja: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Prednostni način omrežja: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Prednostni način omrežja: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Prednostni način omrežja: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Prednostni način omrežja: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Prednostni način omrežja: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Prednostni način omrežja: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Prednostni način omrežja: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Klicanje"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Omrežje"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Izboljšan način 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Več kategorij"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Omogočenih več kategorij"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Več kategorij onemogočenih"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (priporočeno)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (priporočeno)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (priporočeno)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalno"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Brisanje zapore odhodnega klica ..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Zapora odhodnega klica izbrisana."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ni bil posodobljen, ker ste vnesli napačno kodo PIN."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN ni bil posodobljen, ker število presega 20 mest."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN ni bil posodobljen, ker število presega <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> mest."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN ni bil posodobljen. Koda PIN2 je bila napačna ali pa je bila telefonska številka zavrnjena."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Postopek za omejeno klicanje ni uspel."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Branje kartice SIM ..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Klicanje ni mogoče. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ni številka za klic v sili."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Klicanje ni mogoče. Opravite klic v sili."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Klicanje v sili ni na voljo"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Samo lastnik naprave lahko vnese kodi PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policija"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Nujna medicinska pomoč"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Gasilci"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Klic s sprotnim besedilom (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Dovoli izmenjavo sporočil v glasovnem klicu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Funkcija RTT pomaga klicateljem, ki so gluhi, naglušni, imajo govorno motnjo ali potrebujejo več kot samo glas.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Več o tem&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – Klici RTT se shranijo kot prepis sporočila\n       &lt;br&gt; – RTT ni na voljo pri videoklicih"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Opomba: RTT ni na voljo med gostovanjem"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Način TTY izklopljen"</item>
     <item msgid="1449091874731375214">"TTY poln"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ne"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Opusti"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon je v načinu za povratni klic v sili"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minuto.\nAli želite zapustiti ta način?</item>
+      <item quantity="two">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minuti.\nAli želite zapustiti ta način?</item>
+      <item quantity="few">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minute.\nAli želite zapustiti ta način?</item>
+      <item quantity="other">Telefon bo v načinu za povratni klic v sili čez <xliff:g id="COUNT_1">%s</xliff:g> minut.\nAli želite zapustiti ta način?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Storitev"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Nastavitev"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ni nastavljeno&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Zapora klicev je deaktivirana"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Sprememba gesla"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Spremenite geslo za zaporo klicev"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Gesla za zaporo klicev ni mogoče spremeniti."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Gesla za zaporo klicev ni mogoče spremeniti"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Gesli se ne ujemata"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Vnesite geslo s 4 številkami"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Geslo je spremenjeno."</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Potrditev gesla"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Vnesite geslo"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Nastavitve zapore klicev"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Želite deaktivirati vse nastavitve za zaporo klicev?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Omrežje je zasedeno. Poskusite znova poklicati pozneje."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Omrežje je zasedeno. Za pomoč se obrnite na mobilnega operaterja."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Klic je preusmerjen z druge številke."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, najprej preverite, ali je prenos podatkov v mobilnem omrežju vklopljen za kartico SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. To izbiro lahko spremenite v nastavitvah mobilnega omrežja."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, najprej preverite, ali sta prenos podatkov v mobilnem omrežju in podatkovno gostovanje vklopljena za kartico SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ti izbiri lahko spremenite v nastavitvah mobilnega omrežja."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Opusti"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogočanje podatkovne povezave"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogočanje podatkovne povezave"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Pripravljeno za uporabo tehnologije VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videoklicanje je pripravljeno"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Klicanje prek Wi-Fi-ja je pripravljeno"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/prisotnost omogočena"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Podatki Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Omogoči DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vnovični zagon?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Če želite spremeniti to nastavitev, znova zaženite napravo."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Vnovičen zagon"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Prekliči"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Moč radia mobilne naprave"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik na kartici SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži številke za zaporo odhodnih klicev"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži številke za klicanje storitev"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Stanje storitve IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stanje storitve IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrirano"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Niste registrirani"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Na voljo"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ni na voljo"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Registracija storitve IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nGovor prek povezave LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGovor prek povezave WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoklici: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nVmesnik UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"V uporabi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ne deluje"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo klici v sili"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Izklopi radio"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Gostovanje"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ni gostovanja"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Nedejavno"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Zvonjenje"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Aktivni klic"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Brez povezave"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Vzpostavljanje povezave"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Povezano"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Onemogočeno"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Neznano"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"B"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Trenutni ID naročnine:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID naročnine privzete kartice SIM za prenos podatkov:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Pasovna širina za prenos (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Pasovna širina za nalaganje (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Podatki o lokaciji celice (zastarelo):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija fizičnega kanala LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvenca osveževanja podatkov o celici:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Vsi podatki o meritvah celice:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Podatkovna storitev:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Gostovanje:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Preusmeritev klica:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Število ponastavitev PPP od zagona:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Trenutno omrežje:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Prejeti podatki:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Glasovna storitev:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Moč signala:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Stanje glasovnega klica:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Poslani podatki:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Čakajoče sporočilo:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonska številka:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Izbira radijskega območja"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Vrsta glasovnega omrežja:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Vrsta podatkovnega omrežja:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Izberite indeks telefona"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Nastavitev vrste prednostnega omrežja:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Preverjanje imena gostitelja (www.google.com) za IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Preverjanje imena gostitelja (www.google.com) za IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Preskus odjemalca HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Izvedba preskusa ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Posodobi"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Osveži"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Preklop preverjanja DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacije/nastavitve za OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Nastavljanje načina radijskega območja"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Nalaganje seznama frekvenčnih pasov …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Nastavi"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Neuspešno"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Uspelo"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Podatki o tabličnem računalniku"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Podatki o omogočanju uporabe operaterja"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Sproži omogočanje uporabe operaterja"</string>
 </resources>
diff --git a/res/values-sq/config.xml b/res/values-sq/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sq/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 8fddc9d..dcb5e1f 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Numër privat"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefon me pagesë"</string>
     <string name="onHold" msgid="6132725550015899006">"Në pritje"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mesazh nga <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mesazh i operatorit celular"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Kodi MMI filloi"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Kodi USSD po punon…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kodi MMI u anulua"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Vetëm NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modaliteti i preferuar i rrjetit: preferohet WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modaliteti i preferuar i rrjetit: vetëm GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Modaliteti i preferuar i rrjetit: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Modaliteti i preferuar i rrjetit: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Modaliteti i preferuar i rrjetit: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Modaliteti i preferuar i rrjetit: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Modaliteti i preferuar i rrjetit: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Modaliteti i preferuar i rrjetit: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Modaliteti i preferuar i rrjetit: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Modaliteti i preferuar i rrjetit: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Modaliteti i preferuar i rrjetit: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Modaliteti i preferuar i rrjetit: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Modaliteti i preferuar i rrjetit: Vetëm NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Modaliteti i preferuar i rrjetit: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Modaliteti i preferuar i rrjetit: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Modaliteti i preferuar i rrjetit: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Modaliteti i preferuar i rrjetit: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Modaliteti i preferuar i rrjetit: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Modaliteti i preferuar i rrjetit: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Po telefonon"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Rrjeti"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Modaliteti i përparuar 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kategoria"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"\"Multi-kategoria\" u aktivizua"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"\"Multi-kategoria\" u çaktivizua"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (rekomandohet)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (rekomandohet)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (rekomandohet)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Po fshin numrin me telefonim të përzgjedhur..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Numri me telefonim të përzgjedhur u fshi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN-ja nuk u përditësua sepse shkrove një PIN të pasaktë."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Funksioni FDN nuk u përditësua sepse numri i kalon 20 shifra."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Veçoria FDN nuk u përditësua sepse numri i kalon <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> shifra."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN-ja nuk u përditësua. PIN2-shi ishte i pasaktë ose numri i telefonit u refuzua."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Operacioni FDN dështoi"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Po lexon nga karta SIM..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Nuk mund të telefonohet. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nuk është numër urgjence."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nuk mund të telefonohet. Formo një numër urgjence."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Telefonatat e urgjencës nuk ofrohen"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Vetëm zotëruesi i pajisjes mund të futë kodet PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Policia"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulancë"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Zjarr"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Telefonata me tekst në kohë reale (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Lejo mesazhet brenda një telefonate zanore"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Funksioni RTT ndihmon telefonuesit që janë të shurdhër, kanë vështirësi me dëgjimin, kanë një aftësi të kufizuar të të folurit ose që kanë nevojë për më shumë se thjesht zërin.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Mëso më shumë&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Telefonatat RTT ruhen si një transkript mesazhi\n       &lt;br&gt; - Funksioni RTT nuk ofrohet për telefonatat me video"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Shënim. Veçoria RTT nuk ofrohet kur je në roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY i çaktivizuar"</item>
     <item msgid="1449091874731375214">"TTY i plotë"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Po"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Jo"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Injoro"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefoni është në modalitetin e kthimit të telefonatës së urgjencës"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Deri në <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefoni do të jetë në modalitetin e kthimit të telefonatës së urgjencës për <xliff:g id="COUNT_1">%s</xliff:g> minuta.\nDëshiron të dalësh tani?</item>
+      <item quantity="one">Telefoni do të jetë në modalitetin e kthimit të telefonatës së urgjencës për <xliff:g id="COUNT_0">%s</xliff:g> minutë.\nDëshiron të dalësh tani?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Shërbimi"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfigurimi"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;I pavendosur&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Bllokimi i telefonatave u çaktivizua"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Ndrysho fjalëkalimin"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Ndrysho fjalëkalimin për bllokimin e telefonatave"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Fjalëkalimi për bllokimin e telefonatave nuk mund të ndryshohet."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Fjalëkalimi për bllokimin e telefonatave nuk mund të ndryshohet"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Fjalëkalimet nuk përputhen"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Fut një fjalëkalim me 4 numra"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Fjalëkalimi u ndryshua"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Konfirmo fjalëkalimin"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Fut fjalëkalimin"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Cilësimet e bllokimit të telefonatave"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Të çaktivizohen të gjitha cilësimet e bllokimit të telefonatave?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rrjeti është i zënë. Provo ta kryesh telefonatën përsëri më vonë."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rrjeti është i mbingarkuar. Kontakto me operatorin tënd celular për ndihmë."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Telefonata u devijua."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Për të përdorur <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, sigurohu që të dhënat celulare janë të aktivizuara për kartën SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Për të përdorur <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, sigurohu që të dhënat celulare dhe roaming për të dhënat janë aktivizuar për kartën SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Hiq"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktivizo lidhjen e të dhënave"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Çaktivizo lidhjen e të dhënave"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE e përgatitur"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Telefonata me video u parapërgatit"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Telefonata me Wifi u parapërgatit"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/prania është parapërgatitur"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Të dhënat e Crbs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivizo DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Të riniset pajisja?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Duhet të rinisësh pajisjen tënde për të ndryshuar këtë cilësim."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Rinis"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anulo"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Fuqia e radios së rrjetit celular"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Shiko librin e adresave të kartës SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Shiko numrat me telefonim të përzgjedhur"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Shiko numrat e telefonit të shërbimit"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Statusi i Shërbimit IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Statusi IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"I regjistruar"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"I paregjistruar"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Ofrohet"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nuk ofrohet"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Regjistrimi IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nZëri përmes LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nZëri përmes Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nTelefonatat me video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nNdërfaqja UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Në shërbim"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Jashtë shërbimit"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Vetëm telefonata urgjence"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radioja joaktive"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Jo në roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Në gjendje joaktive"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Po bie zilja"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Telefonatë në vazhdim"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Shkëputur"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Po lidhet"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Lidhur"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Pezulluar"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"E panjohur"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paketa"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bajte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ID-ja dytësore aktuale:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"ID-ja dytësore e kartës SIM të parazgjedhur të të dhënave:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Gjerësia e bandës DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Gjerësia e bandës UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacionet e vendndodhjes të rrjetit celular (e vjetruar):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurimi i kanalit fizik LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Shpejtësia e rifreskimit të informacioneve të rrjetit celular"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Të gjitha informacionet e matjes së rrjetit celular:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Shërbimi i të dhënave:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Ridrejtimi i telefonatës:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Numri i rivendosjeve të PPP-së që nga rifillimi:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Rrjeti aktual:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Të dhënat e marra:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Shërbimi zanor:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Fuqia e sinjalit:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Statusi i telefonatës zanore:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Të dhënat e dërguara:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesazh në pritje:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numri i telefonit:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Përzgjidh brezin e radios"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Lloji i rrjetit të zërit:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Lloji i rrjetit të të dhënave:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Zgjidh indeksin e telefonit"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Cakto llojin e preferuar të rrjetit:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Verifiko emrin e pritësit (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Verifiko emrin e pritësit (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Testi i klientit HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ekzekuto testin e verifikimit \"ping\""</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Përditëso"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Rifresko"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Ndrysho kontrollin e DNS-së"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Informacion/cilësime specifike për OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Cakto modalitetin e brezit të radios"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Po ngarkon listën e brezave…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Cakto"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Pa sukses"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Me sukses!"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informacion mbi tabletin"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacioni i telefonit"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Informacionet e përgatitjes së operatorit celular"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivizo përgatitjen e operatorit celular"</string>
 </resources>
diff --git a/res/values-sr/config.xml b/res/values-sr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index ce8791b..ac9c23a 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Приватан број"</string>
     <string name="payphone" msgid="7936735771836716941">"Телефонска говорница"</string>
     <string name="onHold" msgid="6132725550015899006">"На чекању"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> – порука"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Порука мобилног оператера"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Покренут је MMI кôд."</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD кôд је покренут…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI кôд је отказан"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Само NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Жељени режим мреже: WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Жељени режим мреже: само GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Жељени режим мреже: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Жељени режим мреже: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Жељени режим мреже: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Жељени режим мреже: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Жељени режим мреже: Глобално"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Жељени режим мреже: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Жељени мрежни режим: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Жељени режим мреже: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Жељени режим мреже: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Жељени режим мреже: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Жељени режим мреже: само NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Жељени режим мреже: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Жељени режим мреже: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Жељени режим мреже: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Жељени режим мреже: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Жељени режим мреже: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Жељени режим мреже: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Жељени режим мреже: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Жељени режим мреже: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Жељени режим мреже: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Жељени режим мреже: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Позивање"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мрежа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Побољшани 4G LTE режим"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Више категорија"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Омогућено је више категорија"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Онемогућено је више категорија"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (препоручено)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (препоручено)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (препоручено)"</string>
     <string name="network_global" msgid="3289646154407617631">"Глобално"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Брисање броја за фиксно бирање…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Избрисан је број за фиксно бирање."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Број за фиксно бирање није ажуриран јер сте унели нетачан PIN кôд."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Број за фиксно бирање није ажуриран јер има више од 20 цифара."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Број за фиксно бирање није ажуриран јер има превише цифара (више од <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>)."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN није ажуриран. PIN2 је нетачан или је број телефона одбачен."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Радња са бројем за фиксно бирање није успела."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Чита се са SIM картице…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Позив није успео. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> није број за хитне случајеве."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Позив није успео. Позовите број за хитне случајеве."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Упућивање хитних позива није доступно"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Само власник уређаја може да уноси PIN/PUK кодове."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Полиција"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Хитна помоћ"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Ватрогасци"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Позив са текстом у реалном времену (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дозволите размену порука у аудио позиву"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Текст у реалном времену (RTT) помаже позиваоцима који су глуви, слабо чују, имају тешкоће у говору или којима је потребно нешто више од гласа.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Сазнајте више&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT позиви се чувају као транскрипт поруке\n       &lt;br&gt; – RTT није доступан за видео позиве"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Напомена: Текст у реалном времену није доступан у ромингу"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY је искључен"</item>
     <item msgid="1449091874731375214">"Комплетни TTY"</item>
@@ -611,6 +639,13 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Не"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Одбаци"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон је у режиму за хитан повратни позив"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефон ће <xliff:g id="COUNT_1">%s</xliff:g> минут бити у режиму за хитан повратни позив.\nЖелите сад да изађете из њега?</item>
+      <item quantity="few">Телефон ће <xliff:g id="COUNT_1">%s</xliff:g> минута бити у режиму за хитан повратни позив.\nЖелите сад да изађете из њега?</item>
+      <item quantity="other">Телефон ће <xliff:g id="COUNT_1">%s</xliff:g> минута бити у режиму за хитан повратни позив.\nЖелите сад да изађете из њега?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Услуга"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Подешавање"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Није подешено&gt;"</string>
@@ -750,7 +785,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Ограничавање позива је деактивирано"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Промените лозинку"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Промените лозинку за ограничавање позива"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не можете да промените лозинку за ограничавање позива."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не можете да промените лозинку за ограничавање позива"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Лозинке се не подударају"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Унесите лозинку од 4 броја"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Лозинка је промењена"</string>
@@ -759,7 +794,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Потврдите лозинку"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Унесите лозинку"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Подешавања ограничавања позива"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Желите ли да деактивирате сва подешавања ограничавања позива?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мрежа је заузета. Пробајте поново да упутите позив касније."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мрежа је загушена. Затражите помоћ од мобилног оператера."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Позив је преусмерен."</string>
@@ -789,4 +823,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Да бисте користили <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверите се да су за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> укључени мобилни подаци. То можете да промените у подешавањима мобилне мреже."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Да бисте користили <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверите се да су за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> укључени мобилни подаци и пренос података у ромингу. То можете да промените у подешавањима мобилне мреже."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Одбаци"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Омогући везу за пренос података"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Онемогући везу за пренос података"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Додељено за VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Видео позиви су додељени"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Позивање преко Wi-Fi-ја је додељено"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Додељен је EAB/присуство"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Подаци CBRS-а"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Омогући DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Желите да рестартујете уређај?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Треба да рестартујте уређај да бисте променили ово подешавање."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартуј"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Откажи"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Напајање за радио на мобилним уређајима"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи адресар SIM-а"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи бројеве за фиксно бирање"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи бројеве за сервисно бирање"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус услуге IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус IMS-а"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Регистровано je"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Није регистровано"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Доступно"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Није доступно"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Регистрација IMS-а: <xliff:g id="STATUS">%1$s</xliff:g>\nГлас преко LTE-а: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nГлас преко Wi-Fi-ја: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидео позив: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT интерфејс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Ради"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не ради"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Само хитни позиви"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Радио је искључен"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роминг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Није у ромингу"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Звони"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Позив је у току"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Веза је прекинута"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Повезује се"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Повезано је"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Суспендовано"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Непознато"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пак."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"бајт(ов)а"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"ИД клијента"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Актуелни subID:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubID подразумеваног SIM-а за податке:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL пропусни опсег (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL пропусни опсег (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информације о локацији предајника (застарело):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурација LTE физичког канала:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Учесталост освежавања информација о предајнику:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Све информације о мерењу за предајник:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Услуга преноса података:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роминг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Преусмеравање позива:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Број PPP ресетовања од укључивања:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Актуелна мрежа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Примљени подаци:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Гласовна услуга:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Јачина сигнала:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус аудио позива:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Послати подаци:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Порука на чекању:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Број телефона:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Изаберите радијски опсег"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип гласовне мреже:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип мреже за пренос података:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Изаберите индекс телефона"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Подесите жељени тип мреже:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"IPv4 имена хоста за пинговање (www.google.com):"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"IPv6 имена хоста за пинговање (www.google.com):"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тест за HTTP клијента:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Покрени тест пинговања"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Ажурирај"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Освежи"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Укључи/искључи проверу DNS-а"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Информације/подешавања специфична за произвођача оригиналне опреме"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Подесите режим радијског опсега"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Учитава се листа опсега…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Подеси"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Није успело"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успело је"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Информације о таблету"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Информације о телефону"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Информације о додели мобилног оператера"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Покретање доделе мобилног оператера"</string>
 </resources>
diff --git a/res/values-sv/config.xml b/res/values-sv/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sv/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index e270260..0c30a13 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Privat nummer"</string>
     <string name="payphone" msgid="7936735771836716941">"Telefonautomat"</string>
     <string name="onHold" msgid="6132725550015899006">"Parkerat"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>-meddelande"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatörsmeddelande"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI-kod körs"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD-kod körs…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI-koden har annullerats"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Endast NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Föredraget nätverksläge: Föredrar WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Föredraget nätverksläge: Endast GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Föredraget nätverksläge: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Föredraget nätverksläge: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Föredraget nätverksläge: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Föredraget nätverksläge: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Föredraget nätverksläge: globlat"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Föredraget nätverksläge: LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Föredraget nätverksläge: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Föredraget nätverksläge: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Föredraget nätverksläge: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Föredraget nätverksläge: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Föredraget nätverksläge: endast NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Föredraget nätverksläge: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Föredraget nätverksläge: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Föredraget nätverksläge: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Föredraget nätverksläge: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Föredraget nätverksläge: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Föredraget nätverksläge: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Föredraget nätverksläge: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Föredraget nätverksläge: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Föredraget nätverksläge: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Föredraget nätverksläge: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Ringer upp"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Nätverk"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Förbättrat 4G LTE-läge"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Multikategori aktiverad"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Multikategori inaktiverad"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (rekommenderas)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (rekommenderas)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (rekommenderas)"</string>
     <string name="network_global" msgid="3289646154407617631">"Globalt"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Tar bort fast nummer…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Det fasta numret har tagits bort."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN uppdaterades inte eftersom du skrev en felaktig PIN-kod."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN uppdaterades inte eftersom numret översteg 20 siffror."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN uppdaterades inte eftersom numret översteg <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> siffror."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN uppdaterades inte. Antingen har du angivit fel PIN2, eller så avvisades telefonnumret."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Det gick inte att ringa till fast uppringningsnummer."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Läser från SIM-kort…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Det gick inte att ringa. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> är inget nödnummer."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Det gick inte att ringa. Slå ett nödnummer."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Nödsamtal ej tillgängligt"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Endast enhetens ägare får ange PIN/PUK-koder."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Brand"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT-samtal (realtidstext)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Tillåt meddelanden i röstsamtal"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT hjälper döva, hörselskadade och personer med talsvårigheter eller som behöver mer än endast röst.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Läs mer&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT-samtal sparas som en meddelandetranskription\n       &lt;br&gt; - RTT är inte tillgängligt för videosamtal"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Obs! RTT är inte tillgängligt vid roaming"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY av"</item>
     <item msgid="1449091874731375214">"TTY är full"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Nej"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ta bort permanent"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonen är i läget för återuppringning vid nödsamtal"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Till <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefonen kommer att vara i läget för återuppringning vid nödsamtal i <xliff:g id="COUNT_1">%s</xliff:g> minuter.\nVill du avsluta nu?</item>
+      <item quantity="one">Telefonen kommer att vara i läget för återuppringning vid nödsamtal i <xliff:g id="COUNT_0">%s</xliff:g> minut.\nVill du avsluta nu?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Tjänst"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Konfiguration"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Har inte angetts&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Samtalsspärren har inaktiverats"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Ändra lösenord"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Ändra lösenord för samtalsspärr"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Det går inte att ändra lösenordet för samtalsspärr"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Lösenorden stämmer inte överens"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Ange ett lösenord med 4 siffror"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Lösenordet har ändrats"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Bekräfta lösenord"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ange lösenord"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Inställningar för samtalsspärr"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Nätverket är upptaget. Försök att ringa igen senare."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Nätverket är överbelastat. Kontakta mobiloperatören för hjälp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Samtal avböjt."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Använd <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> genom att säkerställa att mobildata är aktiverat för SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Det går att ändra i inställningarna för mobilt nätverk."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Använd <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> genom att säkerställa att mobildata och dataroaming är aktiverat för SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Det går att ändra i inställningarna för mobilt nätverk."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Stäng"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Aktivera dataanslutning"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inaktivera dataanslutning"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-administrerad"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videosamtal tillhandahålls"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-samtal tillhandahålls"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence tillhandahålls"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data via CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Aktivera DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Vill du starta om enheten?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Du måste starta om enheten för att ändra den här inställningen."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Starta om"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Avbryt"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Strömförsörjning för mobilradio"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visa SIM-adressbok"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visa Fasta nummer"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visa tjänstenummer"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status för IMS-tjänst"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registrerad"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Inte registrerad"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tillgänglig"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Inte tillgängligt"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nRöst via LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nRöst via Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideosamtal: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-gränssnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"I tjänst"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ur funktion"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Endast nödsamtal"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Stäng av radio"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ingen roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Inaktiv"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Ringer"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Pågående samtal"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Frånkopplad"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ansluter"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ansluten"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Tillfälligt avstängt"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Okänt"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"paket"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Nuvarande subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId för standarddata på SIM-kortet:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bandbredd för nedladdning (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bandbredd för uppladdning (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Platsinformation för mast (utfasad):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysisk kanalkonfiguration för LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvens för uppdatering av mastinformation:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alla information om mastmätning:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Datatjänst:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI-kod:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Vidarekoppling av samtal:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Antal återställningar av köpkraftsparitet sedan start:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Aktuellt nätverk:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Mottagen data:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Rösttjänst:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstyrka:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status på videosamtal:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Skickad data:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Meddelande väntar:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Välj radioband"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Nätverkstyp för röst:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Typ av datanätverk:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Välj telefonindex"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Ställ in önskad nätverkstyp:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Pinga värdnamn(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Pinga värdnamn(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test av HTTP-klient:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Köra pingtest"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Uppdatera"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Uppdatera"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Aktivera och inaktivera DNS-kontroll"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifik information/inställningar"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Konfigurera radiobandsläget"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Läser in bandlista …"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ange"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Misslyckades"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Lyckades"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Information om surfplattan"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoninformation"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Information om operatörsadministration"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivera operatörsadministration"</string>
 </resources>
diff --git a/res/values-sw/config.xml b/res/values-sw/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-sw/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index e0ba6fd..2773b7b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">" Number isiyojulikana"</string>
     <string name="payphone" msgid="7936735771836716941">"Simu ya kulipia"</string>
     <string name="onHold" msgid="6132725550015899006">"Inangoja"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Ujumbe wa <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Ujumbe wa Mtoa Huduma"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Msimbo wa MMI  umeanza"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Msimbo wa USSD unafungua"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Msimbo wa MMI umeghairiwa"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR pekee"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Modi pendekezwa ya mtandao: WCDMA pendekezwa"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Modi pendekezwa ya mtandao: GSM  pekee"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Hali ya mtandao inayopendelewa: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Hali ya mtandao inayopendelewa: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Hali ya mtandao inayopendelewa: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Hali ya mtandao inayopendelewa: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Hali ya mtandao inayopendelewa: Ulimwenguni Kote"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Hali ya mtandao inayopendelewa: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Hali ya mtandao inayopendelewa: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Hali ya mtandao inayopendelewa: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Hali ya mtandao inayopendelewa: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Hali ya mtandao inayopendelewa: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Hali ya mtandao inayopendelewa: NR pekee"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Hali ya mtandao inayopendelewa: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Hali ya mtandao inayopendelewa: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Hali ya mtandao inayopendelewa: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Hali ya mtandao inayopendelewa: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Hali ya mtandao inayopendelewa: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Hali ya mtandao inayopendelewa: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Kupiga simu"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mtandao"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Hali Iliyoimarishwa ya 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Kategoria anuwai"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Kategoria anuwai imewezeshwa"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Kategoria anuwai imelemazwa"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (inayopendekezwa)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (inapendekezwa)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (inapendekezwa)"</string>
     <string name="network_global" msgid="3289646154407617631">"Ulimwenguni Kote"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Inafuta nambari ya upigaji simu uliobanwa..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Nambari ya upigaji simu uliobanwa imefutwa"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN haikusasishwa kwa sababu uliweka PIN isiyo sahihi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN haikusasishwa kwa sababu nambari inazidi tarakimu 20."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"FDN haijasasishwa kwa sababu nambari inazidi tarakimu <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN haikusasishwa. PIN2 haikuwa sahihi, au namba ya simu ilikataliwa."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Utendakazi wa FDN ulishindwa."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Inasoma kutoka kwa SIM kadi…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Haiwezi kupiga simu. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> si nambari ya dharura."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Haiwezi kupiga simu. Piga nambari ya dharura."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Upigaji simu ya dharura haupatikani"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Mmiliki wa kifaa pekee ndiye anaweza kuweka misimbo ya PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polisi"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Gari la wagonjwa"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Moto"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Kutuma SMS katika Muda Halisi (RTT) wakati wa kupiga simu"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Ruhusu uandikaji wa ujumbe wakati unapiga simu"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT huwasaidia wapigaji simu ambao ni viziwi, wasioweza kusikia vyema, wenye matatizo ya kuzungumza au wanaohitaji kufanya zaidi ya kuzungumza.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Pata maelezo zaidi&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Simu za RTT huhifadhiwa kama manukuu ya ujumbe\n       &lt;br&gt; - RTT haipatikani kwa simu za video"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Kumbuka: RTT haipatikani wakati unatumia mitandao ya ng\'ambo"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Zima TTY"</item>
     <item msgid="1449091874731375214">"TTY Kamili"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ndiyo"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Hapana"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Ondoa"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Simu hii iko katika hali ya kuomba upigiwe simu ya dharura"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hadi <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Simu hii itakuwa katika hali ya kuomba upigiwe simu ya dharura kwa dakika <xliff:g id="COUNT_1">%s</xliff:g>.\nJe, ungependa kuondoka sasa?</item>
+      <item quantity="one">Simu hii itakuwa katika hali ya kuomba upigiwe simu ya dharura kwa dakika <xliff:g id="COUNT_0">%s</xliff:g>.\nJe, ungependa kuondoka sasa?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Huduma"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Weka mipangilio"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Haijawekwa&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Mipangilio ya kuzuia upigaji simu imezimwa"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Badilisha nenosiri"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Badilisha nenosiri la kuzuia upigaji simu"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Imeshindwa kubadilisha nenosiri la kuzuia upigaji simu."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Haiwezi kubadilisha nenosiri la kuzuia upigaji simu"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Manenosiri hayalingani"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Weka nenosiri lenye tarakimu 4"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Nenosiri limebadilishwa"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Thibitisha nenosiri"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Weka nenosiri"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Mipangilio ya kuzuia upigaji simu"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Je, ungependa kuzima mipangilio yote ya kuzuia upigaji simu?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Mtandao unatumika. Tafadhali jaribu kupiga simu yako tena baadaye."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Kuna msongamano kwenye mtandao. Wasiliana na mtoa huduma wako wa simu kwa usaidizi."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Simu unayopiga imeelekezwa kwingine."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hakikisha data ya mtandao wa simu imewashwa katika SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Unaweza kubadilisha hali hii katika mipangilio ya data ya mtandao wa simu."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hakikisha vipengele vya data ya mtandao wa simu na matumizi ya mitandao ya ng\'ambo vimewashwa katika SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Unaweza kubadilisha hali hizi katika mipangilio ya mtandao wa simu."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Ondoa"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Washa Muunganisho wa Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Zima Muunganisho wa Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Imetayarishwa"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Inaruhusu Upigaji Simu ya Video"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Imetayarishwa kwa Upigaji Simu kupitia Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB Imetayarishwa"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data ya Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Washa DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Ungependa Kuzima Kifaa Kisha Ukiwashe?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Unahitaji kuzima kifaa chako na ukiwashe tena ili ubadilishe mipangilio hii."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Zima kisha uwashe"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ghairi"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Nishati ya Redio ya Vifaa vya Mkononi"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Angalia Kitabu cha Anwani katika SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ona Nambari za Simu Zilizobainishwa"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Angalia Nambari Zilizowekwa na Mtoa Huduma"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Hali ya Huduma ya IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Hali ya IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Imesajiliwa"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Haijasajiliwa"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Inapatikana"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Haipatikani"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Usajili wa IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nHuduma ya kupiga simu kupitia LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nHuduma ya kupiga simu kupitia WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nKupiga simu ya video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nKiolesura cha UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Inatumika"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Haitumiki"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Simu za Dharura Pekee"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Redio Imezimwa"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Kutimia mitandao ya ng\'ambo"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Hutumii mitandao ya ng\'ambo"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Haifanyi kitu"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Inalia"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Simu Inaendelea"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Haijaunganishwa"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Inaunganisha"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Imeunganishwa"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Imesimamishwa"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Haijulikani"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"baiti"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId ya sasa:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ya SIM chaguomsingi ya data:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Kipimo Data cha DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Kipimo Data cha UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Maelezo ya Mahali Simu ya Mkononi Ilipo (huduma haipo tena):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Mipangilio ya Kituo Halisi cha LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kasi ya Kuonyesha Upya Maelezo ya Simu:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Maelezo Yote ya Vipimo vya Simu:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Huduma ya Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Unatumia mitandao ya ng\'ambo:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Kuelekeza Simu Kwingine:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Idadi ya PPP Zilizowekwa Upya Tangu Iwashwe:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Mtandao wa Sasa:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data Imepokelewa:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Huduma ya Sauti:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Uthabiti wa Mawimbi:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Hali ya Kupiga Simu ya Sauti:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Data Imetumwa:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Ujumbe Unasubiri Kutumwa:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Nambari ya Simu:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Chagua Bendi ya Redio"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Aina ya Mtandao wa Sauti:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Aina ya Mtandao wa Data:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Chagua faharasa ya simu"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Weka Aina ya Mtandao Unayoiopendelea:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ita Jina la Mpangishaji(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ita Jina la mpangishaji(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Jaribio la Teja ya HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Tekeleza Jaribio la Mwito"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Sasisha"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Onyesha upya"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Geuza Ukaguzi wa DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Maelezo/Mipangilio Mahususi kwa Kampuni Inayotengeneza Vifaa (OEM)"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Weka Hali ya Bendi ya Redio"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Inapakia Orodha ya Bendi…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Weka"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Haijafanikiwa"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Imefanikiwa"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Maelezo kuhusu kompyuta kibao"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Maelezo ya simu"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Maelezo ya Utaratibu wa Kutayarisha Mtandao"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Anzisha Utaratibu wa Kutayarisha Mtandao"</string>
 </resources>
diff --git a/res/values-ta/config.xml b/res/values-ta/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ta/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 0e61641..f73ff2a 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"தனிப்பட்ட எண்"</string>
     <string name="payphone" msgid="7936735771836716941">"கட்டணத் தொலைபேசி"</string>
     <string name="onHold" msgid="6132725550015899006">"காத்திருப்பில்"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> மெசேஜ்"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"மொபைல் நிறுவன மெசேஜ்"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI குறியீடு தொடங்கியது"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD குறியீடு இயங்குகிறது…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI குறியீடு ரத்தானது"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR மட்டும்"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: WCDMA பரிந்துரைக்கப்படுகிறது"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: GSM மட்டும்"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"தேர்ந்தெடுத்த நெர்வொர்க் பயன்முறை: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"விருப்பமான நெட்வொர்க் பயன்முறை: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"தேர்ந்தெடுத்த நெட்வொர்க் பயன்முறை: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"விருப்பமான நெட்வொர்க் முறை: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"தேர்வு செய்த நெட்வொர்க் பயன்முறை: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"தேர்வு செய்த நெட்வொர்க் பயன்முறை: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"தேர்வு செய்த நெட்வொர்க் பயன்முறை: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"விருப்பமான நெட்வொர்க் பயன்முறை: NR மட்டும்"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"விருப்பமான நெட்வொர்க் பயன்முறை: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"விருப்பமான நெட்வொர்க் பயன்முறை: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"அழைப்பு"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"நெட்வொர்க்"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"மேம்பட்ட 4G LTE பயன்முறை"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"பல்வேறு வகை"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"பல்வேறு வகை இயக்கப்பட்டன"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"பல்வேறு வகை முடக்கப்பட்டன"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (பரிந்துரைக்கப்படுகிறது)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (பரிந்துரைக்கப்பட்டது)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (பரிந்துரைக்கப்பட்டது)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"நிலையான அழைப்பு எண்ணை நீக்குகிறது…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"நிலையான அழைப்பு எண் நீக்கப்பட்டது."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"தவறான பின்னை உள்ளிட்டுள்ளதால், FDN புதுப்பிக்கப்படவில்லை."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"உள்ளிட்ட எண் 20 இலக்கங்களுக்கும் அதிகமாக உள்ளதால் FDN புதுப்பிக்கப்படவில்லை."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"உள்ளிட்ட எண் <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> இலக்கங்களுக்கும் அதிகமாக உள்ளதால் FDN புதுப்பிக்கப்படவில்லை."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN புதுப்பிக்கப்படவில்லை. PIN2 தவறானது அல்லது மொபைல் எண் நிராகரிக்கப்பட்டது."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN செயல்பாடு தோல்வி."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"சிம் கார்டில் இருப்பதைப் படிக்கிறது…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> அவசர அழைப்பு எண் இல்லை என்பதால் அழைக்க முடியாது."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"அழைக்க முடியாது. அவசர அழைப்பு எண்ணை அழைக்கவும்."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"அவசர அழைப்பு வசதி இல்லை"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK குறியீடுகளை சாதனத்தின் உரிமையாளர் மட்டுமே உள்ளிட முடியும்."</string>
     <string name="police_type_description" msgid="2819533883972081757">"காவல்"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ஆம்புலன்ஸ்"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"தீயணைப்பு"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"நிகழ்நேர உரை (RTT) அழைப்பு"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"குரல் அழைப்பிலேயே செய்தியிடலை அனுமதிக்கும்"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"காது கேளாதோர், கேட்பதற்குச் சிரமப்படுவோர், பேச இயலாதோர் அல்லது குரலைத் தாண்டி மற்ற வழிகளில் தகவல் தேவைப்படுவோருக்கு RTT பயன்முறை உதவுகிறது.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;மேலும் அறிக&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - டிரான்ஸ்கிரிப்ட் செய்யப்பட்ட செய்தியாக RTT அழைப்புகள் சேமிக்கப்படும்\n       &lt;br&gt; - வீடியோ அழைப்புகளுக்கு RTT பயன்முறை இல்லை"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"கவனத்தில் கொள்ளவும்: ரோமிங்கில் உள்ள போது RTT கிடையாது"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY முடக்கத்தில்"</item>
     <item msgid="1449091874731375214">"TTY ஐ இயக்கு"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ஆம்"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"இல்லை"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"விலக்கு"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"மொபைல் இப்போது அவசரகால திரும்ப அழைக்கும் பயன்முறையில் உள்ளது"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> வரை"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">மொபைல் இன்னும் <xliff:g id="COUNT_1">%s</xliff:g> நிமிடங்களுக்கு அவசரகால திரும்ப அழைக்கும் பயன்முறையில் இருக்கும்.\nஇப்போதே அதை விட்டு வெளியேறவா?</item>
+      <item quantity="one">மொபைல் இன்னும் <xliff:g id="COUNT_0">%s</xliff:g> நிமிடத்திற்கு அவசரகால திரும்ப அழைக்கும் பயன்முறையில் இருக்கும்.\nஇப்போதே அதை விட்டு வெளியேறவா?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"சேவை"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"அமைவு"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;அமைக்கப்படவில்லை&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"அழைப்புத் தடுப்பு முடக்கப்பட்டது"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"கடவுச்சொல்லை மாற்றவும்"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"அழைப்புத் தடுப்புக்கான கடவுச்சொல்லை மாற்றவும்"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"அழைப்புத் தடுப்புக்கான கடவுச்சொல்லை மாற்ற முடியாது."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"அழைப்புத் தடுப்புக்கான கடவுச்சொல்லை மாற்ற முடியாது"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"கடவுச்சொற்கள் பொருந்தவில்லை"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 எண்களுடன் கூடிய கடவுச்சொல்லை உள்ளிடவும்"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"கடவுச்சொல் மாற்றப்பட்டது"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"கடவுச்சொல்லை உறுதிப்படுத்தவும்"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"கடவுச்சொல்லை உள்ளிடவும்"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"அழைப்புத் தடுப்பு அமைப்புகள்"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"எல்லா அழைப்புத் தடுப்பு அமைப்புகளையும் முடக்கவா?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"நெட்வொர்க் பிஸியாக உள்ளது. பிறகு அழைக்கவும்."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"நெட்வொர்க் பிஸியாக உள்ளது. உதவிக்கு உங்கள் மொபைல் ஆபரேட்டரைத் தொடர்பு கொள்ளவும்."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"அழைப்புத் திருப்பிவிடப்பட்டது."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ஐப் பயன்படுத்த, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> சிம்மிற்கான மொபைல் டேட்டா இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இதை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ஐப் பயன்படுத்த, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> சிம்மிற்கான மொபைல் டேட்டாவும் டேட்டா ரோமிங்கும் இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இவற்றை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"நிராகரி"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"டேட்டா இணைப்பை இயக்கு"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"டேட்டா இணைப்பை முடக்கு"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE அமைக்கப்பட்டது"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"வீடியோ அழைப்பு அமைக்கப்பட்டது"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"வைஃபை அழைப்பு அமைக்கப்பட்டது"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/பிரசென்ஸ் அமைக்கப்பட்டது"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs டேட்டா"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDSஸை இயக்கு"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"மீண்டும் தொடங்கவா?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"இந்த அமைப்பை மாற்ற சாதனத்தை மீண்டும் தொடங்க வேண்டும்."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"மீண்டும் தொடங்கு"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ரத்துசெய்"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"மொபைல் ரேடியோ பவர்"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"சிம் முகவரிப் புத்தகத்தைக் காட்டு"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"நிலையான அழைப்பு எண்களைக் காட்டு"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"சேவை அழைப்பு எண்களைக் காட்டு"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS சேவை நிலை"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS நிலை"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"பதிவு செய்யப்பட்டது"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"பதிவுசெய்யப்படவில்லை"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"இருக்கிறது"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"கிடைக்கவில்லை"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS பதிவு: <xliff:g id="STATUS">%1$s</xliff:g>\nவாய்ஸ் ஓவர் LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nவாய்ஸ் ஓவர் WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nவீடியோ அழைப்பு: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT இடைமுகம்: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"சேவையில் உள்ளது"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"சேவையில் இல்லை"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"அவசர அழைப்புகள் மட்டும்"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ரேடியோ ஆஃப் செய்யப்பட்டுள்ளது"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"ரோமிங்"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ரோமிங்கில் இல்லை"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"செயல்படவில்லை"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"ரிங் ஆகிறது"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"அழைப்பில் உள்ளது"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"இணைப்பில் இல்லை"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"இணைக்கிறது"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"இணைக்கப்பட்டுள்ளது"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"இடைநீக்கப்பட்டது"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"தெரியாதது"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"பைட்டுகள்"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"தற்போதைய துணை ஐடி:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"இயல்பான டேட்டா சிம்மின் துணை ஐடி:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL இணைய வேகம் (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL இணைய வேகம் (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"மொபைலின் இருப்பிடத் தகவல் (நிறுத்தப்பட்டது):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ஃபிசிக்கல் சேனல் உள்ளமைவு:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"மொபைல் தகவலின் புதுப்பிப்பு விகிதம்:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"அனைத்து மொபைல் அளவீட்டுத் தகவல்:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"டேட்டா சேவை:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"ரோமிங்:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"அழைப்பைத் திசைதிருப்பு:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"தொடக்கம் முதல் PPP மீட்டமைவின் எண்ணிக்கை:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"தற்போதைய நெட்வொர்க்:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"பெறப்பட்ட டேட்டா:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"குரல் சேவை:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"சிக்னலின் வலிமை:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"குரல் அழைப்பின் நிலை:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"அனுப்பிய தரவு:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"காத்திருப்பில் உள்ள செய்தி:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ஃபோன் எண்:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ரேடியோ பேண்டைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"குரல் நெட்வொர்க் வகை:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"டேட்டா நெட்வொர்க்கின் வகை:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ஃபோன் அட்டவணையைத் தேர்ந்தெடுக்கவும்"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"விரும்பப்படும் நெட்வொர்க் வகையை அமைக்கவும்:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ஹோஸ்ட்பெயர்(www.google.com) IPv4ஐப் பிங் செய்:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ஹோஸ்ட்பெயர்(www.google.com) IPv6ஐப் பிங் செய்:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP கிளையண்ட் சோதனை:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"பிங் சோதனையை இயக்கு"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"புதுப்பி"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"புதுப்பி"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS சரிபார்ப்பை நிலைமாற்று"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM சார்ந்த தகவல்/அமைப்புகள்"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ரேடியோ பேண்டு பயன்முறையை அமை"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"பேண்டு பட்டியலை ஏற்றுகிறது…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"அமை"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"தோல்வி"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"வெற்றி"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"டேப்லெட்டின் தகவல்"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"மொபைலின் தகவல்"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Carrier Provisioning Info"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger Carrier Provisioning"</string>
 </resources>
diff --git a/res/values-te/config.xml b/res/values-te/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-te/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index acf7e64..1798f60 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"ప్రైవేట్ నంబర్"</string>
     <string name="payphone" msgid="7936735771836716941">"పే ఫోన్"</string>
     <string name="onHold" msgid="6132725550015899006">"హోల్డ్‌లో ఉంది"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>సందేశం"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"క్యారియర్ సందేశం"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI కోడ్ ప్రారంభించబడింది"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD కోడ్ అమలు చేయబడుతోంది…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI కోడ్ రద్దు చేయబడింది"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR మాత్రమే"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: WCDMAకు ప్రాధాన్యత"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: GSM మాత్రమే"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: గ్లోబల్"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"ప్రాధాన్య నెట్‌వర్క్ మోడ్: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR మాత్రమే"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"ప్రాధాన్యత గల నెట్‌వర్క్ మోడ్: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"కాలింగ్"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"నెట్‌వర్క్"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"మెరుగుపరిచిన 4G LTE మోడ్"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"బహుళ-వర్గాలు"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"బహుళ-వర్గాలు ప్రారంభించబడ్డాయి"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"బహుళ-వర్గాలు నిలిపివేయబడ్డాయి"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (సిఫార్సు చేయడమైనది)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (సిఫార్సు చేయబడింది)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (సిఫార్సు చేయబడింది)"</string>
     <string name="network_global" msgid="3289646154407617631">"గ్లోబల్"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"ఫిక్స్‌డ్ డయలింగ్ నంబర్‌ను తొలగిస్తోంది..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ఫిక్స్‌డ్ డయలింగ్ నంబర్ తొలగించబడింది."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"మీరు చెల్లని PINను టైప్ చేసినందున FDN నవీకరించబడలేదు."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"నంబర్ 20 అంకెలను మించినందున FDN అప్‌డేట్ చేయబడలేదు."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"నంబర్ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> అంకెలను మించినందున FDN అప్‌డేట్ చేయబడలేదు."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN నవీకరించబడలేదు. PIN2 చెల్లదు లేదా ఫోన్ నంబర్ తిరస్కరించబడింది."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN చర్య విఫలమైంది."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM కార్డు నుండి చదువుతోంది…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"కాల్ చేయలేరు. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> అత్యవసర నంబర్ కాదు."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"కాల్ చేయలేరు. అత్యవసర నంబర్‌ను డయల్ చేయండి."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"అత్యవసర కాలింగ్ అందుబాటులో లేదు"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"పరికరం యజమాని మాత్రమే PIN/PUK కోడ్‌లను నమోదు చేయగలరు."</string>
     <string name="police_type_description" msgid="2819533883972081757">"పోలీస్"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"అంబులెన్స్‌"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"అగ్నిమాపక శాఖ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"నిజ సమయ వచనం (RTT) కాల్"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"వాయిస్ కాల్‌లో సందేశాలు పంపడానికి అనుమతించండి"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"బధిరులు, వినికిడి సమస్యలు ఉన్న వారు, మాట్లాడటంలో సమస్యలు ఉన్న వారు లేదా కేవలం వాయిస్‌తో అర్థం చేసుకోలేని కాలర్‌లకు RTT సహాయపడుతుంది.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;మరింత తెలుసుకోండి&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT కాల్‌లు సందేశ లిపి మార్పు వలె సేవ్ చేయబడతాయి\n       &lt;br&gt; - వీడియో కాల్‌ల కోసం RTT అందుబాటులో లేదు"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"గమనిక: రోమింగ్‌లో ఉండగా RTTఅందుబాటులో ఉండదు"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY ఆఫ్‌లో ఉంది"</item>
     <item msgid="1449091874731375214">"TTY సంపూర్ణంగా ఉన్నవి"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"అవును"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"కాదు"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"తీసివేయి"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ఫోన్ అత్యవసర కాల్‌బ్యాక్ మోడ్‌లో ఉంది"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> వరకు"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">ఫోన్ అత్యవసర కాల్‌బ్యాక్ మోడ్‌లో <xliff:g id="COUNT_1">%s</xliff:g> నిమిషాల పాటు ఉంటుంది.\n మీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?</item>
+      <item quantity="one">ఫోన్ అత్యవసర కాల్‌బ్యాక్ మోడ్‌లో <xliff:g id="COUNT_0">%s</xliff:g> నిమిషం పాటు ఉంటుంది. \n మీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"సేవ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"సెటప్"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;సెట్ చేయలేదు&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"కాల్ బేరింగ్ నిష్క్రియం చేయబడింది"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"పాస్‌వర్డ్‌ను మార్చండి"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"కాల్ బేరింగ్ పాస్‌వర్డ్‌ని మార్చండి"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"కాల్ బేరింగ్ పాస్‌వర్డ్‌ని మార్చడం సాధ్యం కాదు."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"కాల్ బేరింగ్ పాస్‌వర్డ్‌ని మార్చడం సాధ్యం కాదు"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"పాస్‌‌వర్డ్‌లు సరిపోలడం లేదు"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 సంఖ్యలతో పాస్‌వర్డ్‌ని నమోదు చేయండి"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"పాస్‌వర్డ్ మార్చబడింది"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"పాస్‌వర్డ్‌ని నిర్ధారించండి"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"పాస్‌వర్డ్‌ని నమోదు చేయండి"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"కాల్ బేరింగ్ సెట్టింగ్‌లు"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"అన్ని కాల్ బేరింగ్ సెట్టింగ్‌లను నిష్క్రియం చేయాలా?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"నెట్‌వర్క్ బిజీగా ఉంది. దయచేసి తిరిగి తర్వాత కాల్ చేయండి."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"నెట్‌వర్క్‌లో అంతరాయం ఏర్పడింది. సహాయం కోసం మీ మొబైల్ ఆపరేటర్‌ను సంప్రదించండి."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"కాల్ మళ్లించబడింది."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్‌వర్క్ సెట్టింగ్‌లలో మార్చవచ్చు."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటా మరియు డేటా రోమింగ్‌ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్‌వర్క్ సెట్టింగ్‌లలో మార్చవచ్చు."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"తీసివేయి"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"డేటా కనెక్షన్‌ను ప్రారంభించండి"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"డేటా కనెక్షన్‌ను నిలిపివేయండి"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE సదుపాయం ఉంది"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"వీడియో కాలింగ్ సదుపాయం ఉంది"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi కాలింగ్ సదుపాయం ఉంది"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/ఉనికి సక్రియం చేయబడింది"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs డేటా"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDSను ప్రారంభించండి"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"పరికరాన్ని మళ్లీ ప్రారంభించాలా?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"మీరు ఈ సెట్టింగ్‌ను మార్చడానికి మీ పరికరాన్ని మళ్లీ ప్రారంభించాలి."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"పునఃప్రారంభించు"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"రద్దు చేయండి"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"మొబైల్ రేడియో పవర్"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM చిరునామా పుస్తకాన్ని చూడండి"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ఫిక్స్‌డ్ డయలింగ్ నంబర్‌లను చూడండి"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"సర్వీస్ డయలింగ్ నంబర్‌లను వీక్షించండి"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS సేవ స్థితి"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS స్థితి"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"నమోదు చేయబడింది"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"నమోదు కాలేదు"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"అందుబాటులో ఉన్నారు"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"అందుబాటులో లేదు"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS నమోదు: <xliff:g id="STATUS">%1$s</xliff:g>\nవాయిస్ ఓవర్ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nవాయిస్ ఓవర్ WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nవీడియో కాలింగ్: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ఇంటర్‌ఫేస్: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"సేవ అందుబాటులో ఉంది"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"సేవ అందుబాటులో లేదు"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"అత్యవసర కాల్‌లు మాత్రమే"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"రేడియో ఆఫ్‌లో ఉంది"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"రోమింగ్"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"రోమింగ్‌లో లేదు"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"నిష్క్రియంగా ఉంది"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"రింగ్ వస్తోంది"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"కాల్ ప్రోగ్రెస్‌లో ఉంది"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"డిస్‌కనెక్ట్ అయింది"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"కనెక్ట్ చేయబడుతోంది"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"కనెక్ట్ చేయబడింది"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"తాత్కాలికంగా నిలిపివేయబడింది"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"తెలియదు"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"బైట్‌లు"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"ప్రస్తుత subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"డిఫాల్ట్ డేటా SIM యొక్క SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL బ్యాండ్‌విడ్త్ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL బ్యాండ్‌విడ్త్ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"సెల్ స్థాన సమాచారం (నిలిపివేయబడింది):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE భౌతిక ఛానెల్ కాన్ఫిగరేషన్:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"సెల్ సమాచార రిఫ్రెష్ సగటు:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"మొత్తం సెల్ పరిమాణ సమాచారం:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"డేటా సేవ:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"రోమింగ్:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"కాల్ దారి మళ్లింపు:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"బూట్ చేసినప్పటి నుండి PPP రీసెట్ సంఖ్య:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"ప్రస్తుత నెట్‌వర్క్:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"స్వీకరించిన డేటా:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"వాయిస్ సేవ:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"సిగ్నల్ సామర్థ్యం:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"వాయిస్ కాల్ స్థితి:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"పంపిన డేటా:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"సందేశ నిరీక్షణ:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"ఫోన్ నంబర్:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"రేడియో బ్యాండ్‌ను ఎంచుకోండి"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"వాయిస్ నెట్‌వర్క్ రకం:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"డేటా నెట్‌వర్క్ రకం:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"ఫోన్ సూచికను ఎంచుకోండి"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"సెట్ చేసిన ప్రాధాన్య నెట్‌వర్క్ రకం:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"పింగ్ హోస్ట్ పేరు(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"పింగ్ హోస్ట్ పేరు(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP క్లయింట్ పరీక్ష:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"పింగ్ పరీక్షను అమలు చేయండి"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"అప్‌డేట్ చేయండి"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"రిఫ్రెష్ చేయి"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS తనిఖీని టోగుల్ చేయండి"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-నిర్దిష్ట సమాచారం/సెట్టింగ్‌లు"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"రేడియో బ్యాండ్ మోడ్‌ను సెట్ చేయండి"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"బ్యాండ్ జాబితాను లోడ్ చేస్తోంది…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"సెట్ చేయి"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"విఫలమైంది"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"విజయవంతమైంది"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"టాబ్లెట్ సమాచారం"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ఫోన్ సమాచారం"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"క్యారియర్ కేటాయింపు సమాచారం"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"క్యారియర్ కేటాయింపు సక్రియం చేయండి"</string>
 </resources>
diff --git a/res/values-th/config.xml b/res/values-th/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-th/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 710a30b..fe2a7a2 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"หมายเลขส่วนตัว"</string>
     <string name="payphone" msgid="7936735771836716941">"โทรศัพท์สาธารณะ"</string>
     <string name="onHold" msgid="6132725550015899006">"พักสาย"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"ข้อความ <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"ข้อความของผู้ให้บริการ"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"เริ่มรหัส MMI แล้ว"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"กำลังรันรหัส USSD..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"ยกเลิกรหัส MMI แล้ว"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR เท่านั้น"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"โหมดเครือข่ายที่ต้องการ: ต้องการ WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"โหมดเครือข่ายที่ต้องการ: GSM เท่านั้น"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"โหมดเครือข่ายที่ต้องการ: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"โหมดเครือข่ายที่ต้องการ: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"โหมดเครือข่ายที่ต้องการ: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"โหมดเครือข่ายที่ต้องการ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"โหมดเครือข่ายที่ต้องการ: ทั่วโลก"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"โหมดเครือข่ายที่ต้องการ: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"โหมดเครือข่ายที่ต้องการ: LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"โหมดเครือข่ายที่ต้องการ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"โหมดเครือข่ายที่ต้องการ: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"โหมดเครือข่ายที่ต้องการ: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"โหมดเครือข่ายที่ต้องการ: NR เท่านั้น"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"โหมดเครือข่ายที่ต้องการ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"โหมดเครือข่ายที่ต้องการ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"โหมดเครือข่ายที่ต้องการ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"โหมดเครือข่ายที่ต้องการ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"โหมดเครือข่ายที่ต้องการ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"โหมดเครือข่ายที่ต้องการ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"กำลังโทร"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"เครือข่าย"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"โหมด 4G LTE ที่ปรับปรุงแล้ว"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"หลายหมวดหมู่"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"เปิดใช้งานหลายหมวดหมู่แล้ว"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"ปิดใช้งานหลายหมวดหมู่"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (แนะนำ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (แนะนำ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (แนะนำ)"</string>
     <string name="network_global" msgid="3289646154407617631">"ทั่วโลก"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"กำลังลบการจำกัดหมายเลขโทรออก…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"ลบการจำกัดหมายเลขโทรออกแล้ว"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN ไม่อัปเดตเพราะคุณป้อน PIN ไม่ถูกต้อง"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"ระบบไม่ได้อัปเดต FDN เนื่องจากหมายเลขมีจำนวนเกิน 20 หลัก"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"ระบบไม่ได้อัปเดต FDN เนื่องจากหมายเลขมีจำนวนเกิน <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> หลัก"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"ไม่ได้อัปเดต FDN เพราะ PIN2 ไม่ถูกต้องหรือหมายเลขโทรศัพท์ถูกปฏิเสธ"</string>
     <string name="fdn_failed" msgid="216592346853420250">"การปลดล็อกด้วย FDN ล้มเหลว"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"กำลังอ่านจากซิมการ์ด…"</string>
@@ -492,7 +518,7 @@
     <string name="card_title_in_call" msgid="8231896539567594265">"กำลังใช้สาย"</string>
     <string name="notification_voicemail_title" msgid="3932876181831601351">"ข้อความเสียงใหม่"</string>
     <string name="notification_voicemail_title_count" msgid="2806950319222327082">"ข้อความเสียงใหม่ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
-    <string name="notification_voicemail_text_format" msgid="5720947141702312537">"หมุนหมายเลข <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_text_format" msgid="5720947141702312537">"โทร <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
     <string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"ไม่ทราบหมายเลขข้อความเสียง"</string>
     <string name="notification_network_selection_title" msgid="255595526707809121">"ไม่มีบริการ"</string>
     <string name="notification_network_selection_text" msgid="553288408722427659">"เครือข่ายที่เลือกไว้<xliff:g id="OPERATOR_NAME">%s</xliff:g> ไม่พร้อมใช้งาน"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"ไม่สามารถโทรได้ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ไม่ใช่หมายเลขฉุกเฉิน"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"ไม่สามารถโทรออก โทรหมายเลขฉุกเฉิน"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"หมายเลขฉุกเฉินไม่พร้อมใช้งาน"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"มีเพียงเจ้าของอุปกรณ์เท่านั้นที่ทำการป้อนโค้ด PIN/PUK ได้"</string>
     <string name="police_type_description" msgid="2819533883972081757">"ตำรวจ"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"รถพยาบาล"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"อัคคีภัย"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"การโทรระบบข้อความแบบเรียลไทม์ (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"อนุญาตให้รับส่งข้อความระหว่างการโทรด้วยเสียง"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ช่วยเหลือผู้โทรที่หูหนวก ได้ยินไม่ชัด มีความบกพร่องในการพูด หรือต้องการการสื่อสารที่นอกเหนือจากเสียงพูด&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;ดูข้อมูลเพิ่มเติม&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - สาย RTT จะบันทึกในรูปแบบการถอดเสียงเป็นข้อความ\n       &lt;br&gt; - RTT ใช้ไม่ได้สำหรับวิดีโอคอล"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"หมายเหตุ: RTT ไม่พร้อมใช้งานขณะโรมมิ่ง"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"ปิด TTY"</item>
     <item msgid="1449091874731375214">"TTY เต็ม"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ใช่"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"ไม่"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"เลิกแสดง"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"โทรศัพท์อยู่ในโหมดติดต่อกลับฉุกเฉิน"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"จนถึง <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา <xliff:g id="COUNT_1">%s</xliff:g> นาที\nคุณต้องการออกเลยไหม</item>
+      <item quantity="one">โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา <xliff:g id="COUNT_0">%s</xliff:g> นาที\nคุณต้องการออกเลยไหม</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"บริการ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"การตั้งค่า"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"ปิดใช้งานการระงับการโทรแล้ว"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"เปลี่ยนรหัสผ่าน"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"เปลี่ยนรหัสผ่านระงับการโทร"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"เปลี่ยนรหัสผ่านระงับการโทรไม่ได้"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"เปลี่ยนรหัสผ่านเพื่อระงับการโทรไม่ได้"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"รหัสผ่านไม่ตรงกัน"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"ป้อนรหัสผ่านเป็นตัวเลข 4 ตัว"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"เปลี่ยนรหัสผ่านแล้ว"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"ยืนยันรหัสผ่าน"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"ป้อนรหัสผ่าน"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"การตั้งค่าระงับการโทร"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"ปิดใช้งานการตั้งค่าระงับการโทรทั้งหมดไหม"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"เครือข่ายไม่ว่าง โปรดลองโทรอีกครั้ง"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"เครือข่ายแออัด ติดต่อโอเปอเรเตอร์อุปกรณ์เคลื่อนที่เพื่อขอความช่วยเหลือ"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"มีการส่งต่อสาย"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> โปรดเปิดเน็ตมือถือสำหรับ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> โปรดเปิดเน็ตมือถือและการโรมมิ่งข้อมูลสำหรับ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> คุณเปลี่ยนตัวเลือกเหล่านี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"ปิด"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"เปิดใช้การเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ปิดใช้การเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ที่จัดสรรแล้ว"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"จัดสรรการโทรแบบวิดีโอคอลแล้ว"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"จัดสรรการโทรผ่าน Wi-Fi แล้ว"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"จัดสรร EAB/Presence แล้ว"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"ข้อมูล CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"เปิดใช้ DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"รีสตาร์ทอุปกรณ์ใช่ไหม"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"คุณต้องรีสตาร์ทอุปกรณ์เพื่อเปลี่ยนการตั้งค่านี้"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"รีสตาร์ท"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ยกเลิก"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"กำลังส่งของวิทยุเครือข่ายมือถือ"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ดูสมุดที่อยู่ของซิม"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ดูการจำกัดหมายเลขโทรออก"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ดูหมายเลขรับบริการโทรออก"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"สถานะบริการ IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"สถานะ IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"ลงทะเบียนแล้ว"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"ไม่ได้ลงทะเบียน"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"ใช้งานได้"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"ไม่พร้อมใช้งาน"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"การลงทะเบียน IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nการสื่อสารทางเสียงผ่าน LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nการสื่อสารทางเสียงผ่าน Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nการโทรแบบวิดีโอคอล: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nอินเทอร์เฟซ UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"กำลังให้บริการ"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"ไม่พร้อมให้บริการ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"โทรฉุกเฉินเท่านั้น"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"วิทยุปิดอยู่"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"โรมมิ่ง"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"ไม่ได้โรมมิ่ง"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"ไม่ได้ใช้งาน"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"เสียงกริ่ง"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"กำลังใช้สาย"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"เลิกเชื่อมต่อแล้ว"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"กำลังเชื่อมต่อ"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"เชื่อมต่อแล้ว"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"ถูกระงับ"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"ไม่รู้จัก"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"ไบต์"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"SubId ปัจจุบัน:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ของซิมอินเทอร์เน็ตเริ่มต้น:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"แบนด์วิดท์ดาวน์โหลด (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"แบนด์วิดท์อัปโหลด (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ข้อมูลตำแหน่งของเครือข่ายมือถือ (เลิกใช้งานแล้ว):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"การกำหนดค่าแชเนลทางกายภาพของ LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"อัตราการรีเฟรชข้อมูลมือถือ:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ข้อมูลการวัดเครือข่ายมือถือทั้งหมด:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"บริการข้อมูล:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"โรมมิ่ง:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"การเปลี่ยนเส้นทางการโทร:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"จำนวนการรีเซ็ต PPP ตั้งแต่เปิดเครื่อง:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"เครือข่ายปัจจุบัน:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ข้อมูลที่ได้รับ:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"บริการเสียง:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ความแรงสัญญาณ:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"สถานะการโทรด้วยเสียง:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ส่งข้อมูลแล้ว:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ข้อความที่รออยู่:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"หมายเลขโทรศัพท์:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"เลือกย่านความถี่วิทยุ"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"ประเภทของเครือข่ายเสียง:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ประเภทเครือข่ายข้อมูล:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"เลือกดัชนีโทรศัพท์"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ตั้งค่าประเภทเครือข่ายที่ต้องการ:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ใช้คำสั่ง ping ชื่อโฮสต์ (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ใช้คำสั่ง ping ชื่อโฮสต์ (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"การทดสอบไคลเอ็นต์ HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"ใช้การทดสอบคำสั่ง ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"อัปเดต"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"รีเฟรช"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"สลับการตรวจสอบ DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"ข้อมูล/การตั้งค่าเฉพาะตาม OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ตั้งค่าโหมดย่านความถี่วิทยุ"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"กำลังโหลดรายการย่านความถี่…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"ตั้งค่า"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ไม่สำเร็จ"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"สำเร็จแล้ว"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ข้อมูลแท็บเล็ต"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"ข้อมูลโทรศัพท์"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"ข้อมูลการจัดสรรผู้ให้บริการ"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ทริกเกอร์การจัดสรรผู้ให้บริการ"</string>
 </resources>
diff --git a/res/values-tl/config.xml b/res/values-tl/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-tl/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 93c45d8..a7eaafd 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Pribadong numero"</string>
     <string name="payphone" msgid="7936735771836716941">"Payphone"</string>
     <string name="onHold" msgid="6132725550015899006">"Naka-hold"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Mensahe ng <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Mensahe ng Carrier"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Sinimulan ang MMI code"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Tumatakbo ang USSD code…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Kinansela ang MMI code"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"NR lang"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Mas gustong mode ng network: WCDMA ang mas gusto"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Mas gustong mode ng network: GSM lamang"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Gustong mode ng network: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Gustong mode ng network: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Gustong mode ng network: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Mas gustong network mode: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Gustong mode ng network: Pangkalahatan"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Gustong mode ng network: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Mas gustong network mode: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Mas gustong network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Mas gustong network mode: CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Mas gustong network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Mas gustong network mode: NR lang"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Mas gustong network mode: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Mas gustong network mode: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Mas gustong network mode: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Mas gustong network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Mas gustong network mode: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Mas gustong network mode: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Mas gustong network mode: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Mas gustong network mode: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Mas gustong network mode: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Mas gustong network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Tumatawag"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Network"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Enhanced 4G LTE Mode"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Multi-category"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Pinagana ang multi-category"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Hindi pinagana ang multi-category"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (inirerekomenda)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (inirerekomenda)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (inirerekomenda)"</string>
     <string name="network_global" msgid="3289646154407617631">"Pandaigdigan"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Tinatanggal ang fixed dialing number…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Tinanggal ang fixed dialing number."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Hindi na-update ang FDN dahil maling PIN ang iyong na-type."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Hindi na-update ang FDN dahil ang bilang ay lampas sa 20 digit."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Hindi na-update ang FDN dahil ang bilang ay lampas sa <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> (na) digit."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Hindi na-update ang FDN. Hindi wasto ang PIN2, o tinanggihan ang numero ng telepono."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Nagbigo ang operasyon ng FDN."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Nagbabasa mula sa SIM card…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Hindi makatawag. Ang <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ay hindi isang emergency na numero."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Hindi makatawag. Mag-dial ng emergency na numero."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Hindi available ang emergency na pagtawag"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Ang may-ari lang ng device ang puwedeng maglagay ng mga PIN/PUK code."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Pulis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulansya"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Sunog"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Real-time na text (RTT) na tawag"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Payagan ang pagmemensahe sa isang voice call"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Tinutulungan ng RTT ang mga tumatawag na bingi, mahina ang pandinig, may kapansanan sa pagsasalita, o kailangan ng higit pa sa boses lang.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Matuto pa&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Sine-save ang mga RTT na tawag bilang transcript ng mensahe\n       &lt;br&gt; - Hindi available ang RTT para sa mga video call"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Tandaan: Hindi available ang RTT habang naka-roam"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"I-off ang TTY"</item>
     <item msgid="1449091874731375214">"Puno ang TTY"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oo"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Hindi"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Balewalain"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Nasa emergency callback mode ang telepono"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Hanggang <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Nasa emergency callback mode ang telepono nang <xliff:g id="COUNT_1">%s</xliff:g> minuto.\nGusto mo bang lumabas ngayon?</item>
+      <item quantity="other">Nasa emergency callback mode ang telepono nang <xliff:g id="COUNT_1">%s</xliff:g> na minuto.\nGusto mo bang lumabas ngayon?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Serbisyo"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Hindi nakatakda&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Na-deactivate ang pag-bar ng tawag"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Baguhin ang password"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Baguin ang password ng pag-bar ng tawag"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Hindi mababago ang password ng pag-bar ng tawag."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Hindi mababago ang password ng pag-bar ng tawag"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Ang iyong mga password ay hindi magkatugma"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Maglagay ng password na may 4 na numero"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Binago ang password."</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Kumpirmahin ang password"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Ilagay ang password"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Mga setting ng pag-bar ng tawag"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"I-deactivate ang lahat ng setting ng pag-bar ng tawag?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Busy ang network. Pakisubukan muling tumawag sa ibang pagkakataon."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Mabagal ang network. Makipag-ugnayan sa iyong mobile operator para sa tulong."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Na-deflect ang tawag."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, tiyaking naka-on ang mobile data para sa SIM na <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Maaari mo itong baguhin sa mga setting ng mobile network."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, tiyaking naka-on ang mobile data at data roaming para sa SIM na <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Maaari mong baguhin ang mga ito sa mga setting ng mobile network."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"I-dismiss"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"I-enable ang Koneksyon sa Data"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"I-disable ang Koneksyon sa Data"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Provisioned"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Naka-provision ang Pag-video Call"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Naka-provision ang Pagtawag gamit ang Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Naka-provision ang EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Data"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"I-enable ang DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"I-restart ang Device?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Kailangan mong i-restart ang device para mabago ang setting."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"I-restart"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Kanselahin"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile Radio Power"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Tingnan ang Address Book ng SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Tingnan ang Mga Fixed Dialing Number"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Tingnan ang Mga Service Dialing Number"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Status ng Serbisyo ng IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Status ng IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Nakarehistro"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Hindi Nakarehistro"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Available"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Hindi available"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Pagpaparehistro ng IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nVoice sa pamamagitan ng LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoice sa pamamagitan ng WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo Calling: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT Interface: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Gumagana"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hindi Gumagana"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Mga Emergency na Tawag Lang"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Naka-off ang Radyo"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Roaming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Hindi Roaming"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Idle"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Nagri-ring"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"May Kausap sa Telepono"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Nakadiskonekta"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Kumokonekta"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Konektado"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Sinuspinde"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Hindi alam"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bytes"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Kasalukuyang subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"SubId ng default na data SIM:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL Bandwidth (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Bandwidth (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Impormasyon ng Lokasyon ng Cell (hindi na ginagamit):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration ng LTE Physical Channel:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rate ng Pag-refresh ng Impormasyon ng Cell:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Impormasyon ng Pagsukat sa Lahat ng Cell:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Serbisyo ng Data:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Pag-redirect ng Tawag:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Bilang ng Pag-reset ng PPP Pagkatapos Mag-boot:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Kasalukuyang Network:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Natanggap na Data:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serbisyo ng Voice:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Lakas ng Signal:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status ng Voice Call:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Ipinadalang Data:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Naghihintay na Mensahe:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Numero ng Telepono:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Pumili ng Band ng Radyo"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Uri ng Voice Network:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Uri ng Data Network:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Pumili ng index ng telepono"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Itakda ang Uri ng Gustong Network:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"I-ping ang Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"I-ping ang Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Test ng HTTP Client:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Patakbuhin ang Ping Test"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"I-update"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"I-refresh"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"I-toggle ang DNS Check"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Impormasyon/Mga Setting na partikular sa OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Itakda ang Band Mode ng Radyo"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Nilo-load ang Listahan ng Band…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Itakda"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Hindi Matagumpay"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Matagumpay"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Impormasyon ng tablet"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Impormasyon ng telepono"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Impormasyon sa Provisioning ng Carrier"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"I-trigger ang Provisioning ng Carrier"</string>
 </resources>
diff --git a/res/values-tr/config.xml b/res/values-tr/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-tr/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index b5cb82a..2d34fa1 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Özel numara"</string>
     <string name="payphone" msgid="7936735771836716941">"Ankesörlü telefon"</string>
     <string name="onHold" msgid="6132725550015899006">"Beklemede"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Mesajı"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatör Mesajı"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodu başlatıldı"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD kodu çalışıyor…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodu iptal edildi"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Yalnızca NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Tercih edilen ağ modu: WCDMA tercih edilir"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Tercih edilen ağ modu: Yalnızca GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Tercih edilen ağ modu: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Tercih edilen ağ modu: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Tercih edilen ağ modu: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Tercih edilen ağ modu: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Tercih edilen ağ modu: Dünya Genelinde"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Tercih edilen ağ modu: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Tercih edilen ağ modu: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Tercih edilen ağ modu: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Tercih edilen ağ modu: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Tercih edilen ağ modu: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Tercih edilen ağ modu: Yalnızca NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Tercih edilen ağ modu: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Tercih edilen ağ modu: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Tercih edilen ağ modu: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Tercih edilen ağ modu: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Tercih edilen ağ modu: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Tercih edilen ağ modu: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Tercih edilen ağ modu: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Çağrı"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Ağ"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Geliştirilmiş 4G LTE Modu"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Çoklu kategori"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Çoklu kategori etkinleştirildi"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Çoklu kategori devre dışı bırakıldı"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (önerilen)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (önerilir)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (önerilir)"</string>
     <string name="network_global" msgid="3289646154407617631">"Küresel"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Sabit arama numarası siliniyor..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Sabit arama numarası silindi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Yanlış PIN girdiğiniz için FDN güncellenmedi."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Sayı 20 basamaktan uzun olduğu için FDN güncellenemedi."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Numara <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> basamaktan uzun olduğu için SAN güncellenemedi."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN güncellenmedi. PIN2 doğru değildi veya telefon numarası reddedildi."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN işlemi başarısız oldu."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM karttan okunuyor..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Aranamıyor. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> bir acil durum numarası değil."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Aranamıyor. Bir acil durum numarasını arayın."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Acil durum çağrısı yapılamaz"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN/PUK kodlarını yalnızca cihazın sahibi girebilir."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Polis"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Ambulans"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"İtfaiye"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Gerçek zamanlı mesaj (RTT) çağrısı"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Sesli aramada mesajlaşmaya izin verilir"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT; tam veya kısmi işitme engelli, konuşma engeli olan veya sesten fazlasına ihtiyaç duyan arayanlara yardımcı olur.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Daha fazla bilgi&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT çağrıları, mesaj çeviri yazısı olarak kaydedilir\n       &lt;br&gt; - RTT, görüntülü görüşmelerde kullanılamaz"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Not: Dolaşım sırasında RTT kullanılamaz"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY Kapalı"</item>
     <item msgid="1449091874731375214">"TTY Tam"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Evet"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Hayır"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Kapat"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon, acil geri arama modunda"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Şu saate kadar: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon <xliff:g id="COUNT_1">%s</xliff:g> dakika boyunca acil geri arama modunda olacak.\nŞimdi çıkmak istiyor musunuz?</item>
+      <item quantity="one">Telefon <xliff:g id="COUNT_0">%s</xliff:g> dakika boyunca acil geri arama modunda olacak.\nŞimdi çıkmak istiyor musunuz?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Hizmet"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Kurulum"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ayarlanmadı&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Çağrı engelleme devre dışı bırakıldı"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Şifreyi değiştir"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Çağrı engelleme şifresi değiştirilir"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Çağrı engelleme şifresi değiştirilemez."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Arama engelleme şifresi değiştirilemez"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Şifreler eşleşmiyor"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 rakamdan oluşan bir şifre girin"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Şifre değişti"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Şifreyi onayla"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Şifreyi girin"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Çağrı engelleme ayarları"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Tüm çağrı engelleme ayarları devre dışı bırakılsın mı?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Ağ meşgul. Lütfen daha sonra tekrar aramayı deneyin."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Ağ fazla dolu. Yardım almak için cep telefonu operatörünüzle iletişime geçin."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Çarının yönü değiştirildi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> hizmetini kullanmak üzere, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> numaralı SIM için mobil verinin etkin olduğundan emin olun. Bunu mobil ağ ayarlarından değiştirebilirsiniz."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> hizmetini kullanmak üzere, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> numaralı SIM için mobil verinin ve veri dolaşımının etkin olduğundan emin olun. Bunları mobil ağ ayarlarından değiştirebilirsiniz."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Kapat"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Veri Bağlantısını Etkinleştir"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Veri Bağlantısını Devre Dışı Bırak"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE Temel Hazırlığı Yapıldı"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Görüntülü Görüşme Temel Hazırlığı Yapıldı"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Kablosuz Ağ Üzerinden Görüşme Temel Hazırlığını Yap"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Varlık Temel Hazırlığı Yapıldı"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs Verileri"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS\'yi etkinleştir"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Cihaz Yeniden Başlatılsın mı?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bu ayarı değiştirmek için cihazınızı yeniden başlatın."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Yeniden başlat"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"İptal"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil Radyo Gücü"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Adres Defterini Görüntüle"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Arama Numaralarını Görüntüle"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Hizmet Arama Numaralarını Görüntüle"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS Hizmet Durumu"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS Durumu"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Kayıtlı"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Kaydettirilmedi"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Kullanılabilir"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Kullanılamıyor"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS Kaydı: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE:üzerinden ses <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWiFi üzerinden ses: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nGörüntülü Görüşme: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT Arayüzü: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Hizmette"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Hizmet Dışı"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Yalnızca Acil Durum Aramaları İçin"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radyo Kapalı"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Dolaşım"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Dolaşımda Değil"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Boşta"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Çalıyor"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Arama Devam Ediyor"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Bağlı değil"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Bağlanıyor"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Bağlı"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Askıya alındı"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Bilinmiyor"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bayt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Mevcut alt kimlik:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Varsayılan veri SIM\'inin alt kimliği:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"İndirme Bant Genişliği (kb/sn.):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Yükleme Bant Genişliği (kb/sn.):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Hücre Konumu Bilgisi (kullanımdan kaldırıldı):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Fiziksel Kanal Yapılandırması:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Hücre Bilgilerini Yenileme Hızı:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tüm Hücre Ölçümü Bilgileri:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Veri Hizmeti:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Dolaşım:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Aramayı Yönlendir:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Açılıştan Bu Yana PPP Sıfırlama Sayısı:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Geçerli Ağ:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Veri Alındı:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ses Hizmeti:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Sinyal Gücü:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Sesli Arama Durumu:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Veri Gönderildi:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesaj Bekleniyor:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefon Numarası:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radyo Bandını Seç"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Sesli Ağ Türü:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Veri Ağı Türü:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefon dizinini seç"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Tercih Edilen Ağ Türünü Ayarla:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping Ana Makine Adı (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping Ana Makine Adı (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP İstemcisi Testi:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping Testini Çalıştır"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Güncelle"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Yenile"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS Denetimini Aç/Kapat"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM\'e Özgü Bilgiler/Ayarlar"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Radyo Bant Modunu Ayarla"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Bant Listesi Yükleniyor…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Ayarla"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Başarısız"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Başarılı"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Tablet bilgileri"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon bilgileri"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operatör Temel Hazırlık Bilgileri"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Tetikleyici Operatör Temel Hazırlığı"</string>
 </resources>
diff --git a/res/values-uk/config.xml b/res/values-uk/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-uk/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index d56af37..7f5b8cb 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Приватний номер"</string>
     <string name="payphone" msgid="7936735771836716941">"Таксофон"</string>
     <string name="onHold" msgid="6132725550015899006">"Очікує"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Повідомлення від <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Повідомлення від оператора"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Код MMI запущено"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Виконується запит USSD…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Код MMI скасовано"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Лише NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Рекомендований режим мереж: бажано WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Рекомендований режим мереж: лише GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Рекомендований режим мережі: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Рекомендований режим мережі: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Рекомендований режим мережі: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Пріоритетний режим мережі: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Рекомендований режим мережі: загальний"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Рекомендований режим мережі: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Рекомендований режим мережі: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Рекомендований режим мережі: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Рекомендований режим мережі: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Рекомендований режим мережі: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Пріоритетний режим мережі: лише NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Пріоритетний режим мережі: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Пріоритетний режим мережі: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Пріоритетний режим мережі: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Пріоритетний режим мережі: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Пріоритетний режим мережі: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Пріоритетний режим мережі: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Пріоритетний режим мережі: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Пріоритетний режим мережі: LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Пріоритетний режим мережі: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Пріоритетний режим мережі: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Виклики"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Мережа"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Розширений режим 4G LTE"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Мультикатегорія"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Мультикатегорію увімкн."</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Мультикатегорію вимкнено"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (рекомендовано)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (рекомендується)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (рекомендується)"</string>
     <string name="network_global" msgid="3289646154407617631">"Усі"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Видалення номеру фікс. набору…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Номер фікс. набору видалено."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"Фіксований номер (FDN) не оновлено, оскільки введено неправильний PIN-код."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"FDN не оновлено, оскільки номер містить понад 20 цифр."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Номер FDN не оновлено, оскільки кількість цифр не може перевищувати <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Фіксований номер (FDN) не оновлено. PIN2-код неправильний або номер телефону відхилено."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Помилка набору фіксованого номера."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Читання із SIM-карти…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Неможливо зателефонувати. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> – не є екстреним номером."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Неможливо зателефонувати. Наберіть екстрений номер."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Екстрені виклики недоступні"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"PIN- і PUK-код може ввести лише власник пристрою."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Поліція"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Швидка допомога"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Пожежно-рятувальна служба"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Виклик із передаванням тексту в реальному часі"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Дозволити передавання повідомлень під час голосового виклику"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Функція RTT буде корисною для осіб із вадами слуху чи порушеннями мовлення, а також тих людей, для яких голосового спілкування недостатньо.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Докладніше&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT-виклики зберігаються як транскрибований текст\n       &lt;br&gt; – Функція RTT не підтримується для відеодзвінків"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Примітка. У роумінгу функція RTT недоступна."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Телетайп вимкнено"</item>
     <item msgid="1449091874731375214">"Повнофункціональний телетайп"</item>
@@ -613,6 +641,14 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Так"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Ні"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Відхилити"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон перебуває в режимі екстреного зворотного виклику"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилини.\nВийти зараз?</item>
+      <item quantity="few">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин.\nВийти зараз?</item>
+      <item quantity="many">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин.\nВийти зараз?</item>
+      <item quantity="other">Телефон перебуватиме в режимі екстреного зворотного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилини.\nВийти зараз?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Обслуговування"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Налаштування"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Не введено&gt;"</string>
@@ -752,7 +788,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Налаштування заборони дзвінків дезактивовано"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Змінити пароль"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Змінити пароль для заборони дзвінків"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Не вдалося змінити пароль для заборони дзвінків."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Не вдалося змінити пароль для заборони дзвінків"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Паролі не збігаються"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Введіть пароль із 4 цифр"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Пароль змінено"</string>
@@ -761,7 +797,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Підтвердити пароль"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Введіть пароль"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Налаштування заборони дзвінків"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Дезактивувати всі налаштування заборони дзвінків?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Мережа зайнята. Зателефонуйте пізніше."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Мережа перевантажена. Зверніться до свого мобільного оператора."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Виклик переспрямовано."</string>
@@ -791,4 +826,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, потрібно ввімкнути мобільне передавання даних для SIM-карти <xliff:g id="SIM_NUMBER">%2$d</xliff:g> (у налаштуваннях мобільної мережі)."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, потрібно ввімкнути мобільне передавання й роумінг даних для SIM-карти <xliff:g id="SIM_NUMBER">%2$d</xliff:g> (у налаштуваннях мобільної мережі)."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Закрити"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Увімкнути передавання даних"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Вимкнути передавання даних"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE ініціалізовано"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Відеодзвінки ініціалізовано"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Виклики через Wi-Fi ініціалізовано"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Сервіс EAB/Presence ініціалізовано"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Дані CBRS"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Увімкнути DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Перезапустити пристрій?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Щоб змінити це налаштування, перезапустіть пристрій."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перезапустити"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Скасувати"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Потужність мобільного радіо"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Переглянути адресну книгу SIM-карти"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Переглянути фіксовані номери"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Переглянути службові номери"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Статус служби IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Статус IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Зареєстровано"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Не зареєстровано"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Доступно"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Недоступно"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Реєстрація IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nГолосові команди через LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nГолосові команди через Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВідеодзвінки: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nІнтерфейс UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Працює"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Не працює"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Лише екстрені виклики"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Вимкнути радіо"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Роумінг"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Немає роумінгу"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Неактивно"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Дзвінок"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Триває дзвінок"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Роз\'єднано"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Підключення"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Підключено"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Заблоковано"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Невідомо"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"пак."</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"байт"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"дБм"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Поточний субідентифікатор:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Субідентифікатор SIM-карти для даних за умовчанням:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускна спроможність DL (кбіт/с):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускна спроможність UL (кбіт/с):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Геодані телефона (більше не підтримуються):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфігурація фізичного каналу LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частота оновлення даних про мобільний зв\'язок:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Усі дані про показники мобільного зв\'язку:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Мобільний Інтернет:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Роумінг:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Переадресація виклику:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Кількість скидань PPP з часу завантаження:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Поточна мережа:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Отримані дані:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Служба голосових дзвінків:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Рівень сигналу:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Статус голосового дзвінка:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Надіслані дані:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Очікування на повідомлення:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Номер телефону:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Виберіть радіодіапазон"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Тип мережі голосових дзвінків:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Тип мережі передавання даних:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Виберіть телефонний код"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Установити потрібний тип мережі:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Надіслати запит ping на ім\'я хосту (www.google.com) через IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Надіслати запит ping на ім\'я хосту (www.google.com) через IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Тест клієнта HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Надіслати запит ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Оновити"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Оновити"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Увімк./вимк. перевірку DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Інформація/налаштування OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Установити режим радіодіапазону"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Завантаження списку діапазонів частот…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Установити"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Помилка"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Успішно"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Інформація про пристрій"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Інформація про телефон"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Інформація про ініціалізацію оператора"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запустити ініціалізацію оператора"</string>
 </resources>
diff --git a/res/values-ur/config.xml b/res/values-ur/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-ur/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index a192288..f7c525a 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"نجی نمبر"</string>
     <string name="payphone" msgid="7936735771836716941">"پے فون"</string>
     <string name="onHold" msgid="6132725550015899006">"ہولڈ پر"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> پیغام بھیجیں"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"کیریئر کا پیغام"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"‏MMI کوڈ شروع ہوگیا"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"‏USSD کوڈ چل رہا ہے…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"‏MMI کوڈ منسوخ ہوگیا"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"‏صرف NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"‏ترجیحی نیٹ ورک طرز: WCDMA ترجیحی"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"‏ترجیحی نیٹ ورک طرز: صرف GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"‏ترجیحی نیٹ ورک طرز: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"‏ترجیحی نیٹ ورک طرز: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"‏ترجیحی نیٹ ورک طرز: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"‏ترجیحی نیٹ ورک موڈ: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"ترجیحی نیٹ ورک طرز: عالمی"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"‏ترجیحی نیٹ ورک طرز: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"‏ترجیحی نیٹ ورک وضع: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"‏ترجیحی نیٹ ورک کی وضع: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"‏ترجیحی نیٹ ورک کی وضع: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"‏ترجیحی نیٹ ورک کی وضع: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"‏ترجیحی نیٹ ورک موڈ: صرف NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"‏ترجیحی نیٹ ورک موڈ: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"کال کی جا رہی ہے"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"نیٹ ورک"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"‏Enhanced 4G LTE وضع"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"کثیر زمرہ"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"کثیر زمرہ فعال ہوگیا"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"کثیر زمرہ غیر فعال ہوگیا"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (تجویز کردہ)"</string>
     <string name="network_lte" msgid="7206879277095094280">"‏LTE (تجویز کردہ)"</string>
     <string name="network_4G" msgid="6800527815504223913">"‏4G (تجویز کردہ)"</string>
     <string name="network_global" msgid="3289646154407617631">"عالمی"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"فکسڈ ڈائلنگ نمبر حذف کر رہا ہے…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"فکسڈ ڈائلنگ نمبر حذف ہوگیا۔"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"‏FDN اپ ڈیٹ نہیں ہوا تھا کیونکہ آپ نے ایک غلط PIN ٹائپ کر دیا۔"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"‏FDN اپ ڈیٹ نہیں ہوا کیونکہ نمبر 20 ہندسوں سے زائد ہے۔"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"‏FDN اپ ڈیٹ نہیں ہوا کیونکہ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> نمبر ہندسوں سے زائد ہے۔"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"‏FDN اپ ڈیٹ نہیں ہوا تھا کیونکہ PIN2 غلط تھا یا فون نمبر مسترد کر دیا گیا تھا۔"</string>
     <string name="fdn_failed" msgid="216592346853420250">"‏FDN کا عمل ناکام ہوگیا۔"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"‏SIM کارڈ سے پڑھ رہا ہے…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"کال نہیں کی جا سکتی۔ <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ایک ہنگامی نمبر نہیں ہے۔"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"کال نہیں کی جا سکتی۔ ایک ہنگامی نمبر ڈائل کریں۔"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"ہنگامی کالنگ دستیاب نہیں ہے"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"‏صرف آلہ کا مالک ہی PIN/PUK کوڈ درج کرسکتا ہے۔"</string>
     <string name="police_type_description" msgid="2819533883972081757">"پولیس"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"ایمبولینس"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"آگ"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"‏ریئل ٹائم ٹیکسٹ (RTT) کال"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"صوتی کال کے اندر پیغام رسانی کی اجازت دیں"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"‏RTT ایسے کالرز کو اسسٹ کرتا ہے جو بہرے ہیں، اونچا سنتے ہیں، بولنے سے معزور ہیں یا ان کیلئے صرف آواز ہی کافی نہیں ہے۔‎&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;‎مزید جانیں‎&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT کالز پیغام ٹرانسکرپٹ کے بطور محفوظ کی جاتی ہیں\n       ‎&lt;br&gt; - RTT ویڈیو کالز کیلئے دستیاب نہیں ہے"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"‏نوٹ: رومنگ میں ہوتے ہوئے RTT دستیاب نہیں ہے"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"‏TTY آف"</item>
     <item msgid="1449091874731375214">"‏TTY مکمل"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ہاں"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"نہیں"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"کالعدم کریں"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"فون ہنگامی کال بیک وضع میں ہے"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> تک"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">فون <xliff:g id="COUNT_1">%s</xliff:g> منٹ تک ہنگامی کال بیک وضع میں رہے گا۔\n کیا آپ ابھی باہر نکلنا چاہتے ہیں؟</item>
+      <item quantity="one">فون <xliff:g id="COUNT_0">%s</xliff:g> منٹ تک ہنگامی کال بیک وضع میں رہے گا۔\n کیا آپ ابھی باہر نکلنا چاہتے ہیں؟</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"سروس"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"سیٹ اپ"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"‏&lt;سیٹ نہیں ہے&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"کال میں رکاوٹ کو غیر فعال کر دیا گیا"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"پاس ورڈ تبدیل کریں"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"کال میں رکاوٹ والے پاس ورڈ کو تبدیل کریں"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"کال میں رکاوٹ والا پاس ورڈ تبدیل نہیں ہو سکتا۔"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"کال میں رکاوٹ والا پاس ورڈ تبدیل نہیں ہو سکتا"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"پاس ورڈز مماثل نہیں ہیں"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 نمبرز والا ایک پاس ورڈ درج کریں"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"پاس ورڈ تبدیل ہو گیا"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"پاس ورڈ کی توثیق کریں"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"پاس ورڈ درج کریں"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"کال میں رکاوٹ کی ترتیبات"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"کال میں رکاوٹ والی سبھی ترتیبات کو غیر فعال کریں؟"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"نیٹ ورک مصروف ہے۔ براہ کرم بعد میں دوبارہ اپنی کال آزمائیں۔"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"نیٹ ورک مصروف ہے۔ مدد کے لیے اپنے موبائل آپریٹر سے رابطہ کریں۔"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"کال کو مُنصرف کیا گیا۔"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"‏<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> کے لیے آن ہے۔ آپ موبائل نیٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"‏<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا اور ڈیٹا رومنگ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> کے لیے آن ہیں۔ آپ موبائل نیٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"مسترد کریں"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"ڈیٹا کنکشن فعال کریں"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"ڈیٹا کنکشن غیر فعال کریں"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"‏VoLTE سے لیس"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"ویڈیو کالنگ فراہم کردہ"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"‏WiFi کالنگ فراہم کردہ"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"‏EAB/موجودگی فراہم کر دی گئی"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"‏CBRS ڈیٹا"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"‏DSDS فعال کریں"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"آلہ دوبارہ شروع کریں؟"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"یہ ترتیب تبدیل کرنے کیلئے آپ کو اپنا آلہ ریسٹارٹ کرنا ہوگا۔"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"دوبارہ شروع کریں"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"منسوخ کریں"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"موبائل ریڈیو پاور"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏SIM ایڈریس بک دیکھیں"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"فکسڈ ڈائلنگ نمبرز دیکھیں"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"سروس ڈائلنگ نمبرز دیکھیں"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"‏IMS سروس اسٹیٹس"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"‏IMS اسٹیٹس"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"رجسٹرڈ ہے"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"رجسٹر نہیں ہے"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"دستیاب ہے"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"دستیاب نہیں ہے"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"‏IMS رجسٹریشن: <xliff:g id="STATUS">%1$s</xliff:g>\nوائس اوور LTE‏: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\n‎وائس اوور WiFi‏: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n‎ویڈیو کالنگ: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT انٹرفیس: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"سروس میں"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"سروس میں نہیں ہے"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"صرف ہنگامی کالیں"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"ریڈیو آف کریں"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"رومنگ"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"رومنگ میں نہيں"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"معطل"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"کال کی جا رہی ہے"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"کال کی جا رہی ہے"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"غیر منسلک"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"منسلک ہو رہا ہے"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"منسلک"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"معطل کر دیا گیا"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"نامعلوم"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"پیکٹس"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"بائٹس"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"‏موجودہ subId:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"‏ڈیفالٹ ڈیٹا SIM کی SubId:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"‏DL بینڈ وڈتھ (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"‏UL بینڈ وڈتھ (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"سیل کے مقام کی معلومات (فرسودہ):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"‏LTE فزيکل چینل کنفیگریشن:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"سیل کی معلومات ریفریش کرنے کی شرح:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"سیل پیمائش کی تمام معلومات:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"ڈیٹا سروس:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"رومنگ:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"کال ری ڈائریکٹ:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"‏بوٹ کے بعد سے PPP ری سیٹ کی تعداد:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"موجودہ نیٹ ورک:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ڈیٹا موصول ہوا:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"صوتی سروس:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"سگنل کی قوت:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"صوتی کال کا اسٹیٹس:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ڈیٹا بھیج دیا گیا:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"پیغام منتظر ہے:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"فون نمبر:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"ریڈیو بینڈ منتخب کریں"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"صوتی نیٹ ورک کی قسم:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"ڈیٹا نیٹ ورک کی قسم:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"فون انڈیکس منتخب کریں"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"ترجیحی نیٹ ورک کی قسم سیٹ کریں:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"‏میزبان کا نام پنگ کریں‏‎(www.google.com)‎ ‏IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"‏میزبان کا نام پنگ کریں(www.google.com) ‏IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"‏HTTP کلائنٹ ٹیسٹ:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"پنگ ٹیسٹ چلائیں"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"اپ ڈیٹ کریں"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"ریفریش کریں"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"‏DNS چیک ٹوگل کریں"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"‏OEM-کیلئے مخصوص معلومات/ترتیبات"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"ریڈیو بینڈ موڈ سیٹ کریں"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"بینڈ کی فہرست لوڈ ہو رہی ہے…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"سیٹ کریں"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"ناکام"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"کامیاب"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"ٹیبلٹ کی معلومات"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"فون کی معلومات"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"کیرئیر فراہمی معلومات"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ٹرگر کیرئیر فراہمی"</string>
 </resources>
diff --git a/res/values-uz/config.xml b/res/values-uz/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-uz/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 128968a..a171138 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Yashirin raqam"</string>
     <string name="payphone" msgid="7936735771836716941">"Taksofon"</string>
     <string name="onHold" msgid="6132725550015899006">"Kutmoqda"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> orqali xabar"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Operatordan xabar"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI kodi ishga tushirildi"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"USSD so‘rov bajarilmoqda…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI kodi bekor qilindi"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Faqat NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Tanlangan tarmoq rejimi: WCDMA tanlangan"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Tanlangan tarmoq rejimi: faqat GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Tanlangan tarmoq rejimi: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Tanlangan tarmoq rejimi: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Tanlangan tarmoq rejimi: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Maqbul tarmoq rejimi: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Tanlangan tarmoq rejimi: Global"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Tanlangan tarmoq rejimi: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Ma’qul tarmoq rejimi: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Tavsiya etilgan tarmoq rejimi: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Tavsiya etilgan tarmoq rejimi: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Maqbul tarmoq rejimi: faqat NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Maqbul tarmoq rejimi: NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Maqbul tarmoq rejimi: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Maqbul tarmoq rejimi: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Maqbul tarmoq rejimi: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Maqbul tarmoq rejimi: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Maqbul tarmoq rejimi: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Chaqiruvlar"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Tarmoq"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Kuchaytirilgan 4G LTE rejimi"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Ko‘p darajali"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Ko‘p daraja yoqildi"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Ko‘p daraja o‘chirildi"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (tavsiya etiladi)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (tavsiya qilinadi)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (tavsiya qilinadi)"</string>
     <string name="network_global" msgid="3289646154407617631">"Global"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Ruxsat berilgan raqamlar o‘chirilmoqda…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Ruxsat berilgan raqamlar o‘chirildi."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN yangilanmadi, chunki siz PIN-kodni noto‘g‘ri kiritdingiz."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Ruxsat etilgan raqam 20 xonali raqam cheklovidan oshganligi uchun yangilanmadi."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Ruxsat etilgan raqam <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> xonali raqam cheklovidan oshganligi uchun yangilanmadi."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN yangilanmadi. PIN2 kodi xato yoki telefon raqami rad qilingan."</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN jarayoni amalga oshmadi."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-kartadan o‘qilmoqda…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Qo‘ng‘iroq qilib bo‘lmadi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> favqulodda raqam emas."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Qo‘ng‘iroq qilib bo‘lmadi. Favqulodda raqamga tering."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Favqulodda xizmat raqamiga chaqiruv qilib bo‘lmaydi"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Faqat qurilma egasi PIN/PUK kodlarini kirita oladi, xolos."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Politsiya"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Tez tibbiy yordam"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"O‘t o‘chirish xizmati"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"RTT chaqiruvi"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Video chaqiruvlar vaqtida xabarlar almashinuviga ruxsat berish"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT kar, eshitish qobiliyati va nutqiy faoliyati buzilgan shaxslarga mo‘ljallangan funksiyadir.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Batafsil&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; – RTT chaqiruvlari transkripsiya sifatida saqlanadi.\n       &lt;br&gt; – RTT funksiyasidan video chaqiruvlar vaqtida foydalanib bo‘lmaydi."</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Eslatma. Roumingda RTT funksiyasidan foydalanish imkonsiz."</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Teletayp yoqilmagan"</item>
     <item msgid="1449091874731375214">"To‘liq funksiyali teletayp"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ha"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Yo‘q"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Rad etish"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefon favqulodda teskari chaqiruv rejimida"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> gacha"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Telefon favqulodda teskari chaqiruv rejimida <xliff:g id="COUNT_1">%s</xliff:g> daqiqa qoladi.\nBu rejimdan chiqilsinmi?</item>
+      <item quantity="one">Telefon favqulodda teskari chaqiruv rejimida <xliff:g id="COUNT_0">%s</xliff:g> daqiqa qoladi.\nBu rejimdan chiqilsinmi?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Xizmat"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Sozlash"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Kiritilmagan&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Chaqiruvlarni taqiqlash xususiyati faolsizlantirildi"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Parolni o‘zgartirish"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Chaqiruvlarni taqiqlash xususiyati uchun parolni o‘zgartirish"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Chaqiruvlarni taqiqlash xususiyati uchun parolni o‘zgartirib bo‘lmadi."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Chaqiruvlarni taqiqlash xususiyati uchun parolni o‘zgartirish imkonsiz."</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Parollar bir-biriga mos kelmadi"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"4 ta raqamli parolni kiriting"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parol o‘zgartirildi"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Parolni tasdiqlang"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Parolni kiriting"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Chaqiruvlarni taqiqlash sozlamalari"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Barcha chaqiruvlarni taqiqlash sozlamalari faolsizlantirilsinmi?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tarmoq band. Chaqiruvni keyinroq qayta takrorlang."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Tarmoq band. Uyali tarmoq operatoringizga murojaat qiling."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Chiquvchi chaqiruv uzatildi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> imkoniyatlaridan foydalanish uchun <xliff:g id="SIM_NUMBER">%2$d</xliff:g> raqamida mobil internet yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> imkoniyatlaridan foydalanish uchun <xliff:g id="SIM_NUMBER">%2$d</xliff:g> raqamida mobil internet va internet rouming yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Yopish"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Mobil internetni yoqish"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Mobil internetni faolsizlantirish"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE sinxronizatsiyasi yoniq"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video chaqiruvlar funksiyasi yoniq"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi orqali chaqiruvlar funksiyasi yoniq"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence sinxronizatsiyasi yoniq"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS axboroti"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS funksiyasini yoqish"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Qurilma o‘chirib yoqilsinmi?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bu sozlamani o‘zgartirish uchun qurilmangizni o‘chirib yoqing."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"O‘chirib yoqish"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Bekor qilish"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Radio signal quvvati"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM kartadagi abonentlar ro‘yxatini ochish"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ruxsat etilgan raqamlar ro‘yxatini ochish"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xizmatlarni terish raqamlarini ochish"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS xizmati holati"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS holati"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Registratsiya qilingan"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Registratsiya qilinmagan"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Mavjud"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Mavjud emas"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registratsiyasi: <xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo chaqiruvlar: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfeysi: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Xizmat doirasida"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Xizmat doirasidan tashqarida"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Faqat favqulodda chaqiruvlar"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Radio yoqilmagan"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Rouming"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Rouming faolsizlantirilgan"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Faol emas"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Jiringlamoqda"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Chaqiruv"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Ulanmagan"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Ulanmoqda"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ulandi"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Bloklangan"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Noma’lum"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"bayt"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Joriy qoʻshimcha identifikator:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Mobil internet uchun birlamchi SIM kartaning qoʻshimcha identifikatori:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Axborot uzatish tezligi (kbit/s):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL kanalining axborot uzatish tezligi (kbit/s):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Tarmoq joylashuvi haqidagi axborot (eskirgan):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE jismoniy kanal konfiguratsiyasi:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Tarmoq haqidagi axborotning yangilanish darajasi:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tarmoq statistikasi:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Mobil internet xizmati:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Rouming:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Chaqiruvlarni uzatish:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"O‘chirib yoqilgandan keyin PPP protokoli tiklanishining soni:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Joriy tarmoq:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Qabul qilingan trafik:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Ovozli aloqa xizmati:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signal darajasi:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Ovozli chaqiruvlar holati:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Yuborilgan trafik:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Parallel xabar:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefon raqami:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Radiostansiyani tanlash"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Ovozli aloqa uchun tarmoq turi:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Trafik uchun tarmoq turi:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Telefon kodini tanlang"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Afzal tarmoq turini tanlash:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"www.google.com uchun ping, IPv4 so‘rovining host nomi:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"www.google.com uchun ping, IPv6 so‘rovining host nomi:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP mijozini tekshirish:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Ping tekshiruvini boshlash"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Yangilash"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Yangilash"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS tekshiruvini yoqish/o‘chirish"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM maxsus axboroti va sozlamalari"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Tarmoq rejimini sozlash"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Chastotalar ro‘yxati yuklanmoqda…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Saqlash"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Bajarilmadi"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Bajarildi"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Planshet haqida"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon haqida"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Operator sinxronizatsiyasi haqida"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operator sinxronizatsiyasini yoqish/o‘chirish"</string>
 </resources>
diff --git a/res/values-vi/config.xml b/res/values-vi/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-vi/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index e588bef..da1adf4 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Số cá nhân"</string>
     <string name="payphone" msgid="7936735771836716941">"Điện thoại công cộng"</string>
     <string name="onHold" msgid="6132725550015899006">"Đang chờ"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"Tin nhắn <xliff:g id="MMICARRIER">%s</xliff:g>"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Tin nhắn nhà mạng"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Đã bắt đầu mã MMI"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Mã USSD đang chạy…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Mã MMI đã bị hủy"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"Chỉ NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Chế độ mạng được ưa thích: ưu tiên WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Chế độ mạng được ưa thích: chỉ GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Chế độ mạng được ưa thích: LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Chế độ mạng được ưa thích: GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Chế độ mạng được ưa thích: CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Chế độ mạng ưu tiên: LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Chế độ mạng được ưa thích: Toàn cầu"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Chế độ mạng được ưa thích: LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Chế độ mạng ưu tiên: LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Chế độ mạng được ưa thích: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Chế độ mạng được ưa thích: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Chế độ mạng được ưa thích: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Chế độ mạng ưu tiên: Chỉ NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Chế độ mạng ưu tiên: NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Chế độ mạng ưu tiên: NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Chế độ mạng ưu tiên: NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Chế độ mạng ưu tiên: NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Chế độ mạng ưu tiên: NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Chế độ mạng ưu tiên: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Đang gọi"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Mạng"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Chế độ 4G LTE tăng cường"</string>
@@ -252,7 +277,7 @@
     <string name="roaming_enable" msgid="6853685214521494819">"Kết nối với dịch vụ dữ liệu khi chuyển vùng"</string>
     <string name="roaming_disable" msgid="8856224638624592681">"Kết nối với dịch vụ dữ liệu khi chuyển vùng"</string>
     <string name="roaming_reenable_message" msgid="1951802463885727915">"Tính năng Chuyển vùng dữ liệu bị tắt. Nhấn để bật."</string>
-    <string name="roaming_enabled_message" msgid="9022249120750897">"Có thể áp dụng phí chuyển vùng. Nhấn để sửa đổi."</string>
+    <string name="roaming_enabled_message" msgid="9022249120750897">"Bạn có thể bị tính phí chuyển vùng. Nhấn để sửa đổi."</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"Đã mất kết nối dữ liệu di động"</string>
     <string name="roaming_on_notification_title" msgid="7451473196411559173">"Chuyển vùng dữ liệu đang bật"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"Bạn có thể phải trả một khoản phí lớn."</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Nhiều danh mục"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Đã bật nhiều danh mục"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Đã vô hiệu hóa nhiều danh mục"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (khuyên dùng)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (khuyên dùng)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (được khuyến nghị)"</string>
     <string name="network_global" msgid="3289646154407617631">"Toàn cầu"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Đang xóa số quay định sẵn…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Đã thêm số quay định sẵn."</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"FDN không được cập nhật do bạn đã nhập PIN không chính xác."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"Số gọi định sẵn (FDN) chưa được cập nhật do vượt quá 20 chữ số."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"Số gọi định sẵn (FDN) chưa cập nhật do vượt quá <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> chữ số."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN không được cập nhật. Mã PIN2 không đúng hoặc số điện thoại đã bị từ chối."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Thao tác FDN không thành công."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Đang đọc từ thẻ SIM…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Không thực hiện được cuộc gọi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> không phải là số khẩn cấp."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Không thực hiện được cuộc gọi. Hãy quay số khẩn cấp."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Không sử dụng được tính năng gọi khẩn cấp"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Chỉ chủ sở hữu của thiết bị này mới có thể nhập mã PIN/PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Cảnh sát"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"Cấp cứu"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Hỏa hoạn"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Cuộc gọi qua Tin nhắn theo thời gian thực (RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Cho phép nhắn tin trong cuộc gọi thoại"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"Tin nhắn theo thời gian thực (RTT) trợ giúp những người gọi khiếm thính, bị suy giảm thính lực, không có khả năng nói hoặc cần thêm hỗ trợ ngoài giọng nói.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Tìm hiểu thêm&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Cuộc gọi qua RTT được lưu dưới dạng bản chép lời tin nhắn\n       &lt;br&gt; - Không thực hiện được cuộc gọi video qua RTT"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Lưu ý: Không thể sử dụng tin nhắn theo thời gian thực (RTT) trong khi chuyển vùng"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"Tắt TTY"</item>
     <item msgid="1449091874731375214">"TTY Đầy đủ"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Có"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Không"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Loại bỏ"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Điện thoại đang ở chế độ gọi lại khẩn cấp"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Cho đến <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">Điện thoại sẽ ở chế độ gọi lại khẩn cấp trong <xliff:g id="COUNT_1">%s</xliff:g> phút.\nBạn có muốn thoát ngay không?</item>
+      <item quantity="one">Điện thoại sẽ ở chế độ gọi lại khẩn cấp trong <xliff:g id="COUNT_0">%s</xliff:g> phút.\nBạn có muốn thoát ngay không?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Dịch vụ"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Thiết lập"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Chưa đặt&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Đã hủy kích hoạt cài đặt chặn cuộc gọi"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Đổi mật khẩu"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Đổi mật khẩu chặn cuộc gọi"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Không thể đổi mật khẩu chặn cuộc gọi."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Không thể thay đổi mật khẩu chặn cuộc gọi"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Mật khẩu không khớp"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Nhập mật khẩu gồm 4 số"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Đã đổi mật khẩu"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Xác nhận mật khẩu"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Nhập mật khẩu"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Cài đặt chặn cuộc gọi"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Bạn muốn hủy kích hoạt tất cả cài đặt chặn cuộc gọi?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Tất cả các nhân viên hỗ trợ hiện đang bận. Vui lòng thử gọi lại sau."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Đang nghẽn mạng. Hãy liên hệ với nhà mạng di động để được trợ giúp."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Đã chuyển hướng cuộc gọi."</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Để sử dụng <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hãy đảm bảo dữ liệu di động cho SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> đang bật. Bạn có thể thay đổi tùy chọn cài đặt này trong mục cài đặt mạng di động."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Để sử dụng <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hãy đảm bảo dữ liệu di động và tính năng chuyển vùng dữ liệu cho SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> đang bật. Bạn có thể thay đổi các tùy chọn cài đặt này trong mục cài đặt mạng di động."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Bỏ qua"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Bật kết nối dữ liệu"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Tắt kết nối dữ liệu"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Đã cấp phép VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Đã cấp phép gọi điện video"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Đã cấp phép Gọi qua Wi-Fi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Đã cấp phép hiện diện/EAB"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Dữ liệu Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Bật DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Khởi động lại thiết bị?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Bạn cần khởi động lại thiết bị để thay đổi chế độ cài đặt này."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Khởi động lại"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Hủy"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Cường độ của sóng di động"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Xem sổ địa chỉ trên SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Xem số gọi định sẵn"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xem số quay số dịch vụ"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Trạng thái dịch vụ IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Trạng thái IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Đã đăng ký"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Chưa đăng ký"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Có sẵn"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Không có sẵn"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Đăng ký IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nThoại qua LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nThoại qua Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nGọi điện video: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nGiao diện UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Đang sử dụng"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Không có dịch vụ"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Chỉ cuộc gọi khẩn cấp"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Tín hiệu di động đang tắt"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Chuyển vùng"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Không chuyển vùng"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Không hoạt động"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Đang đổ chuông"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Đang gọi điện"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Đã ngắt kết nối"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Đang kết nối"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Đã kết nối"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Bị tạm ngưng"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Không xác định"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"byte"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"Mã phụ hiện tại:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"Mã phụ của SIM dữ liệu mặc định:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Băng thông DL (kb/giây):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Băng thông UL (kb/giây):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Thông tin vị trí mạng di động (không dùng nữa):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Cấu hình kênh LTE thực:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Tốc độ làm mới thông tin mạng di động:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toàn bộ thông tin về số đo mạng di động:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Dịch vụ dữ liệu:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Chuyển vùng:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Chuyển hướng cuộc gọi:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Số lần đặt lại PPP kể từ khi khởi động:"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Mạng hiện tại:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Đã nhận dữ liệu:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Dịch vụ thoại:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Cường độ tín hiệu:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Trạng thái cuộc gọi thoại:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Đã gửi dữ liệu:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Tin nhắn đang đợi:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Số điện thoại:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Chọn dải tần số"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Loại mạng thoại:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Loại mạng dữ liệu:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Chọn chỉ mục điện thoại"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Đặt loại mạng ưu tiên:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Tên máy chủ Ping (www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Tên máy chủ Ping (www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Kiểm tra máy khách HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Chạy kiểm tra ping"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Cập nhật"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Làm mới"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Bật/tắt chế độ kiểm tra DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Thông tin/Cài đặt dành riêng cho OEM"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Đặt chế độ dải tần số"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Đang tải danh sách băng tần…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Đặt"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Không thành công"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Thành công"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Thông tin về máy tính bảng"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Thông tin điện thoại"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Thông tin cấp phép của nhà mạng"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Kích hoạt dịch vụ cấp phép của nhà mạng"</string>
 </resources>
diff --git a/res/values-zh-rCN/config.xml b/res/values-zh-rCN/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zh-rCN/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 9f88ec1..d7a7329 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"私密号码"</string>
     <string name="payphone" msgid="7936735771836716941">"公用电话"</string>
     <string name="onHold" msgid="6132725550015899006">"保持"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>信息"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"运营商信息"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 码已启动"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"正在运行 USSD 代码..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 码已取消"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"仅限 NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"首选网络模式：首选 WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"首选网络模式：仅限 GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"首选网络模式：LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"首选网络模式：GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"首选网络模式：CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"首选网络模式：LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"首选网络模式：通用"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"首选网络模式：LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"首选网络模式：LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"首选网络模式：LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"首选网络模式：TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"首选网络模式：LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"首选网络模式：仅限 NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"首选网络模式：NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"首选网络模式：NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"首选网络模式：NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"首选网络模式：NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"首选网络模式：NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"首选网络模式：NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"首选网络模式：NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"首选网络模式：NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"首选网络模式：NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"首选网络模式：NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通话"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"网络"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"增强型 4G LTE 模式"</string>
@@ -251,13 +276,13 @@
     <string name="roaming" msgid="1576180772877858949">"漫游"</string>
     <string name="roaming_enable" msgid="6853685214521494819">"漫游时连接到移动数据网络服务"</string>
     <string name="roaming_disable" msgid="8856224638624592681">"漫游时连接到移动数据网络服务"</string>
-    <string name="roaming_reenable_message" msgid="1951802463885727915">"数据网络漫游已停用。点按即可启用。"</string>
+    <string name="roaming_reenable_message" msgid="1951802463885727915">"数据漫游已关闭。点按即可开启。"</string>
     <string name="roaming_enabled_message" msgid="9022249120750897">"可能需要支付漫游费。点按即可修改。"</string>
     <string name="roaming_notification_title" msgid="3590348480688047320">"移动网络连接中断"</string>
-    <string name="roaming_on_notification_title" msgid="7451473196411559173">"已开启数据网络漫游功能"</string>
+    <string name="roaming_on_notification_title" msgid="7451473196411559173">"已开启数据漫游功能"</string>
     <string name="roaming_warning" msgid="7855681468067171971">"这可能会产生高额费用。"</string>
     <string name="roaming_check_price_warning" msgid="8212484083990570215">"请与您的网络服务提供商联系以了解定价。"</string>
-    <string name="roaming_alert_title" msgid="5689615818220960940">"要允许移动数据网络漫游吗？"</string>
+    <string name="roaming_alert_title" msgid="5689615818220960940">"允许数据漫游？"</string>
     <string name="limited_sim_function_notification_title" msgid="612715399099846281">"SIM 卡功能受限"</string>
     <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"使用 <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> 时，系统可能会屏蔽<xliff:g id="CARRIER_NAME">%1$s</xliff:g>通话和数据服务。"</string>
     <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"使用另一张 SIM 卡时，系统可能会屏蔽<xliff:g id="CARRIER_NAME">%1$s</xliff:g>通话和数据服务。"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"多类别"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"已启用多类别"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"已停用多类别"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" （推荐）"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE（推荐）"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G（推荐）"</string>
     <string name="network_global" msgid="3289646154407617631">"通用"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"正在删除固定拨号联系人..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"已删除固定拨号联系人。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"固定拨号未更新，因为输入的 PIN 码有误。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"未能更新 FDN，因为号码超过 20 位数。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"未能更新 FDN，因为号码超过 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 位数。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"固定拨号未更新。PIN2 码有误，或电话号码遭拒。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"固定拨号操作失败。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"正在从SIM卡读取..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"无法拨打该电话。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是紧急呼救号码。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"无法拨打该电话。请拨打紧急呼救电话。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"无法使用紧急呼救功能"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"只有设备所有者才能输入 PIN/PUK 码。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警察局"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救护车"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"火警"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"实时信息 (RTT) 通话"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"允许在语音通话中发送信息"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT 可为以下类型的来电者提供协助：失聪者、听力障碍人士、语言障碍人士或需要语音以外服务的人。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;了解详情&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - 系统会以信息转录的方式存储 RTT 通话\n       &lt;br&gt; - 视频通话不支持 RTT"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注意：漫游时无法使用 RTT 功能"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"TTY 关闭"</item>
     <item msgid="1449091874731375214">"TTY 完整"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"否"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"关闭"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"手机正处于紧急回拨模式"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"直到 <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">手机在 <xliff:g id="COUNT_1">%s</xliff:g> 分钟内都将处于紧急回拨模式。\n您要立即退出吗？</item>
+      <item quantity="one">手机在 <xliff:g id="COUNT_0">%s</xliff:g> 分钟内都将处于紧急回拨模式。\n您要立即退出吗？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"服务"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"设置"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未设置&gt;"</string>
@@ -658,8 +692,8 @@
     <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"PIN 码不一致"</string>
     <string name="change_pin_succeeded" msgid="2504705600693014403">"语音信箱 PIN 码已更新"</string>
     <string name="change_pin_system_error" msgid="7772788809875146873">"无法设置 PIN 码"</string>
-    <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"数据网络漫游功能已停用"</string>
-    <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"数据网络漫游功能已启用"</string>
+    <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"数据漫游服务已关闭"</string>
+    <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"数据漫游服务已开启"</string>
     <string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"目前处于漫游状态，需要添加数据流量套餐"</string>
     <string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"目前处于漫游状态，数据流量套餐已启用"</string>
     <string name="mobile_data_status_no_plan_subtext" msgid="170331026419263657">"无剩余移动数据流量"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"通话限制已停用"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"更改密码"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"更改通话限制密码"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"无法更改通话限制密码。"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"无法更改通话限制密码"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"密码不匹配"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"输入 4 位数密码"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"密码已更改"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"确认密码"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"输入密码"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通话限制设置"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"要停用所有通话限制设置吗？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"网络繁忙，请稍后再次尝试致电。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"网络拥挤，请联系您的移动运营商寻求协助。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"已转移通话。"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>服务，请确保已为 SIM (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 开启移动数据。您可以在移动网络设置中进行更改。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>服务，请确保已为 SIM (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 开启移动数据和数据网络漫游。您可以在移动网络设置中进行更改。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"关闭"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"启用数据网络连接"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"停用数据网络连接"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"已配置 VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"已配置视频通话"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"已配置 WLAN 通话"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"已配置 EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 数据"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"启用 DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"要重启设备吗？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"您需要重启设备才能让这项设置更改生效。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"重启"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"移动无线装置电源"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通讯录"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定拨号号码"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服务拨号号码"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 服务状态"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 状态"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"已注册"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未注册"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"可用"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"不支持该付款方式"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 注册：<xliff:g id="STATUS">%1$s</xliff:g>\nLTE 语音通话：<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWLAN 语音通话：<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n视频通话：<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 接口：<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"服务中"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"不在服务区"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"只能拨打紧急呼救电话"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"关闭无线装置"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"漫游"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"未使用漫游服务"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"闲置"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"正在响铃"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"正在通话"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"已断开连接"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"正在连接"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"已连接"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"已暂停"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"未知"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"字节"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"当前 SubId："</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"默认数据 SIM 卡的 SubId："</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 带宽 (kbps)："</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 带宽 (kbps)："</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"移动网络位置信息（已弃用）："</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 物理信道配置："</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"移动网络信息刷新频率："</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有移动网络测量信息："</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"数据服务："</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"漫游："</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI："</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"来电转接："</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"启动后重置 PPP 的次数："</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"当前网络："</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"已接收的数据量："</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"语音服务："</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"信号强度："</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"语音通话状态："</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"已发送的数据量："</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"消息等待："</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"电话号码："</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"选择无线装置频道"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"语音网络类型："</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"数据网络类型："</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"选择电话号码索引"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"设置首选网络类型："</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"ping 主机名(www.google.com) IPv4："</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"ping 主机名(www.google.com) IPv6："</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 客户端测试："</string>
+    <string name="ping_test_label" msgid="448617502935719694">"运行 ping 测试"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC："</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"刷新"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"切换 DNS 检查"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"特定 OEM 的信息/设置"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"设置无线装置频道模式"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"正在加载频道列表…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"设置"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失败"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"平板电脑信息"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"手机信息"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"运营商配置信息"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"触发运营商配置"</string>
 </resources>
diff --git a/res/values-zh-rHK/config.xml b/res/values-zh-rHK/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zh-rHK/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 97e9ca1..39a819e 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"私人號碼"</string>
     <string name="payphone" msgid="7936735771836716941">"公共電話"</string>
     <string name="onHold" msgid="6132725550015899006">"保留通話"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"「<xliff:g id="MMICARRIER">%s</xliff:g>」訊息"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"流動網絡供應商訊息"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 碼開始執行"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"正在執行 USSD 碼..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 碼已取消"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"僅限 NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"慣用網絡模式：偏好 WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"慣用網絡模式：僅限 GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"首選網絡模式：LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"首選網絡模式：GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"首選網絡模式：CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"首選網絡模式：LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"首選網絡模式：全球"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"首選網絡模式：LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"首選網絡模式：LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"首選網絡模式：LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"首選網絡模式：TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"首選網絡模式：LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"首選網絡模式：僅限 NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"首選網絡模式：NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"首選網絡模式：NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"首選網絡模式：NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"首選網絡模式：NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"首選網絡模式：NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"首選網絡模式：NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"首選網絡模式：NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"首選網絡模式：NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"首選網絡模式：NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"首選網絡模式：NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通話"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"網絡"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"強化 4G LTE 模式"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"多類別資訊"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"已啟用多類別資訊"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"多類別資訊已停用"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (建議)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (建議)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (建議)"</string>
     <string name="network_global" msgid="3289646154407617631">"通用"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"正在刪除固定撥號…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"固定撥號已刪除。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"您所輸入的 PIN 碼不正確，FDN 未更新。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"號碼超過 20 位數，FDN 未更新。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"號碼超過 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 位數，FDN 未更新。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN 無法更新。PIN2 碼不正確或電話號碼被拒。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN 操作失敗。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"正在從 SIM 卡讀取..."</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"無法通話。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是緊急號碼。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"無法通話。撥打緊急號碼。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"無法撥打緊急電話"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"只有裝置擁有者才能輸入 PIN/PUK 代碼。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警局"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救護車"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"火"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"即時文字短訊 (RTT) 通話"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"允許在語音通話中傳送訊息"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT 可協助耳聾、有聽力障礙、語言失能或不僅僅需要語音的通話者。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;瞭解詳情&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - RTT 通話內容會儲存為訊息轉錄內容 \n       &lt;br&gt; - RTT 不適用於視像通話"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注意：漫遊時無法使用 RTT"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"關閉 TTY"</item>
     <item msgid="1449091874731375214">"TTY 完整模式"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"否"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"關閉"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"手機處於緊急回撥模式"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"直至<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">手機在接下來的 <xliff:g id="COUNT_1">%s</xliff:g> 分鐘都將處於緊急回撥模式。\n您要立即退出嗎？</item>
+      <item quantity="one">手機在接下來的 <xliff:g id="COUNT_0">%s</xliff:g> 分鐘都將處於緊急回撥模式。\n您要立即退出嗎？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"服務"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"設定"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未設定&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"已停用通話限制"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"變更密碼"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"變更通話限制密碼"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"無法變更通話限制密碼"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"無法變更通話限制密碼"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"密碼不相符"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"輸入 4 位數密碼"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"已變更密碼"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"確認密碼"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"輸入密碼"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通話限制設定"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"要停用所有通話限制設定嗎？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"網絡忙碌中。請稍後再撥。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"網絡壅塞。請通知您的流動網絡供應商提供協助。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"通話已轉向。"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確保 SIM 卡 (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 的流動數據已開啟。您可以在流動網絡設定中變更此設定。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確保 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的流動數據和數據漫遊已開啟。您可以在流動網絡設定中變更此設定。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"關閉"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"啟用數據連線"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"停用數據連線"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"已佈建 VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"已佈建視像通話"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"已佈建 Wi-Fi 通話"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"已佈建 EAB/Presence"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 數據"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"啟用 DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"要重新啟動裝置嗎？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"您需要重新啟動裝置，才可變更此設定。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"重新啟動"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"流動無線電的電源"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通訊錄"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 服務狀態"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 狀態"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"已註冊"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未註冊"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"有空"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"無法使用"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 註冊：<xliff:g id="STATUS">%1$s</xliff:g>\n語音 LTE：<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\n語音 Wi-Fi：<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n視像通話：<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 介面：<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"服務中"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"沒有服務"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"只可撥打緊急電話"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"收音機已關閉"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"漫遊"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"沒有使用漫遊"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"閒置"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"正在發出鈴聲"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"正在通話"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"已解除連接"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"正在連線"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"已連線"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"已停用"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"不明"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkt"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"位元組"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"客戶編號"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"目前的子 ID："</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"預設數據 SIM 卡的子 ID："</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"下載頻寬 (kbps)："</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"上載頻寬 (kbps)："</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"發射站位置資料 (已淘汰)："</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 實體渠道設定："</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"發射站資料重新整理頻率："</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有發射站量度資料："</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"數據服務："</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"漫遊："</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI："</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"來電轉駁："</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"開機後重設 PPP 的次數："</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"目前的網絡："</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"收到的數據："</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"語音服務："</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"訊號強度："</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"視像通話狀態："</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"已傳送的資料："</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"正在等待訊息："</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"電話號碼："</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"選擇無線電波段"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"語音網絡類型："</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"數據網絡類型："</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"選取手機索引"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"設定偏好的網絡類型："</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"連線偵測主機名稱 (www.google.com) IPv4："</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"連線偵測主機名稱 (www.google.com) IPv6："</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 用戶端測試："</string>
+    <string name="ping_test_label" msgid="448617502935719694">"執行連線偵測測試"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC："</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"重新整理"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"切換 DNS 檢查"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM 專用資訊/設定"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻段模式"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"正在載入頻段清單…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失敗"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"手機資訊"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"流動網絡供應商佈建資料"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"觸發流動網絡供應商佈建程序"</string>
 </resources>
diff --git a/res/values-zh-rTW/config.xml b/res/values-zh-rTW/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zh-rTW/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index f8c9720..d02250e 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"私人號碼"</string>
     <string name="payphone" msgid="7936735771836716941">"公用電話"</string>
     <string name="onHold" msgid="6132725550015899006">"通話保留"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"「<xliff:g id="MMICARRIER">%s</xliff:g>」的訊息"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"來自電信業者的訊息"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"MMI 碼開始執行"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"正在執行 USSD 碼…"</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"MMI 碼已取消"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"僅使用 NR"</item>
+    <item msgid="2935877729588775187">"NR/LTE"</item>
+    <item msgid="8967513231424970529">"NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"慣用網路模式：偏好 WCDMA"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"慣用網路模式：僅限 GSM"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"慣用網路模式：LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"慣用網路模式：GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"慣用網路模式：CDMA + LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"首選網路模式：LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"慣用網路模式：通用"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"慣用網路模式：LTE/WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"偏好網路模式：LTE/GSM/UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"偏好網路模式：LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"偏好網路模式：TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"偏好網路模式：LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"首選網路模式：僅使用 NR"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"首選網路模式：NR/LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"首選網路模式：NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"首選網路模式：NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"首選網路模式：NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"首選網路模式：NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"首選網路模式：NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"首選網路模式：NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"首選網路模式：NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"首選網路模式：NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"首選網路模式：NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"通話"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"網路"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"加強型 4G LTE 模式"</string>
@@ -375,6 +400,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"多類別資訊"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"已啟用多類別資訊"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"已停用多類別資訊"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (建議選項)"</string>
     <string name="network_lte" msgid="7206879277095094280">"LTE (建議)"</string>
     <string name="network_4G" msgid="6800527815504223913">"4G (建議)"</string>
     <string name="network_global" msgid="3289646154407617631">"通用"</string>
@@ -439,7 +465,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"正在刪除固定撥號…"</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"已刪除固定撥號。"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"您所輸入的 PIN 不正確，因此未更新 FDN。"</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"固定撥號的號碼超過 20 位數，因此無法更新。"</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"固定撥號的號碼超過 <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> 位數，因此無法更新。"</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"未更新 FDN。可能是因為 PIN2 碼不正確或電話號碼遭拒。"</string>
     <string name="fdn_failed" msgid="216592346853420250">"FDN 操作失敗。"</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"正在從 SIM 卡讀取…"</string>
@@ -530,6 +556,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"無法通話。<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> 不是緊急號碼。"</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"無法通話。只能撥打緊急號碼。"</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"無法撥打緊急電話"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"只有裝置的擁有者才能輸入 PIN/PUK 碼。"</string>
     <string name="police_type_description" msgid="2819533883972081757">"警察局"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"救護車"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"火警"</string>
@@ -557,6 +584,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"即時文字訊息 (RTT) 通話"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"允許在進行語音通話時傳送訊息"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"即時文字訊息功能可為以下類型的來電者提供協助：聽障人士、聽力受損者、語言障礙者，或需要語音服務以外的使用者。&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;瞭解詳情&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - 系統會以訊息轉錄的方式儲存即時文字訊息通話內容\n       &lt;br&gt; - 視訊通話不支援即時文字訊息功能"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"注意：漫遊時無法使用即時文字訊息功能"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"關閉 TTY"</item>
     <item msgid="1449091874731375214">"TTY 完整功能"</item>
@@ -609,6 +637,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"否"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"關閉"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"手機目前處於緊急回撥模式"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"結束時間：<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="other">接下來的 <xliff:g id="COUNT_1">%s</xliff:g> 分鐘內，手機將處於緊急回撥模式。\n要立即退出這個模式嗎？</item>
+      <item quantity="one">接下來的 <xliff:g id="COUNT_0">%s</xliff:g> 分鐘內，手機將處於緊急回撥模式。\n要立即退出這個模式嗎？</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"服務"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"設定"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;未設定&gt;"</string>
@@ -748,7 +782,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"已停用通話限制設定"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"變更密碼"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"變更通話限制密碼"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"無法變更通話限制密碼。"</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"無法變更通話限制密碼"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"密碼不符"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"輸入 4 位數密碼"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"密碼已變更"</string>
@@ -757,7 +791,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"確認密碼"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"輸入密碼"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"通話限制設定"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"要停用所有通話限制設定嗎？"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"目前忙線中，請稍後再撥號。"</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"目前網路壅塞，請與你的行動電信業者聯絡以尋求協助。"</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"通話已自動轉接。"</string>
@@ -787,4 +820,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確認 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的行動數據功能已開啟。你可以前往行動網路設定進行變更。"</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>，請確認 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的行動數據功能和漫遊服務已開啟。你可以前往行動網路設定進行變更。"</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"關閉"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"啟用數據連線"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"停用數據連線"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"已佈建 VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"已建立視訊通話"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"已建立 Wi-Fi 通話"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/顯示狀態：已啟用"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS 資料"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"啟用 DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"要重新啟動裝置嗎？"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"你必須重新啟動裝置，才能變更這項設定。"</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"重新啟動"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"行動無線電電源"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 通訊錄"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號號碼"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS 服務狀態"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS 狀態"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"已註冊"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"未註冊"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"可供使用"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"無法使用"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS 註冊狀態：<xliff:g id="STATUS">%1$s</xliff:g>\nVoLTE：<xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nVoWi-Fi：<xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n視訊通話：<xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT 介面：<xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"服務中"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"無服務"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"僅可撥打緊急電話"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"關閉無線電"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"漫遊"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"未使用漫遊服務"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"閒置"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"鈴響中"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"通話中"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"已中斷連線"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"連線中"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"已連線"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"待命"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"不明"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"位元組"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"客戶 ID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"目前的子 ID："</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"預設資料 SIM 卡的子 ID："</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"下行頻寬 (kbps)："</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"上行頻寬 (kbps)："</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"行動網路位置資訊 (已不適用)："</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 實體通道設定："</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"行動網路資訊重新整理頻率："</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有行動網路測量資訊："</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"數據服務："</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"漫遊："</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI："</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"來電轉接："</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"啟動後重設 PPP 的次數："</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"目前的網路："</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"已接收的數據："</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"語音服務："</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"訊號強度："</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"語音通話狀態："</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"已傳送的數據："</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"留言待取："</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"電話號碼："</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"選取無線電頻帶"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"語音網路類型："</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"數據網路類型："</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"選取電話索引"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"設定偏好的網路類型："</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"連線偵測 (ping) 主機名稱 (www.google.com) IPv4："</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"連線偵測 (ping) 主機名稱 (www.google.com) IPv6："</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP 用戶端測試："</string>
+    <string name="ping_test_label" msgid="448617502935719694">"執行連線偵測 (ping) 測試"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC："</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"更新"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"重新整理"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"切換 DNS 檢查"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"原始設備製造商 (OEM) 專用資訊/設定"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻帶模式"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"正在載入頻帶清單…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"失敗"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"成功"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"平板電腦資訊"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"手機資訊"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"電信業者佈建資訊"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"觸發電信業者佈建程序"</string>
 </resources>
diff --git a/res/values-zu/config.xml b/res/values-zu/config.xml
deleted file mode 100644
index 2c8590f..0000000
--- a/res/values-zu/config.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<!--  NOTE: Many variables that used to be in this file have been migrated to
-     CarrierConfigManager.java. Please consider whether new variables belong
-     there before adding to this file. Variables here should be more closely
-     related to devices than to networks.  -->
-
-<!--  Phone app resources that may need to be customized
-     for different hardware or product builds.  -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="system_visual_voicemail_client" msgid="8236140562734796837"></string>
-</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 7655309..77096f3 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -25,6 +25,8 @@
     <string name="private_num" msgid="4487990167889159992">"Inombolo eyimfihlo"</string>
     <string name="payphone" msgid="7936735771836716941">"Ucingo olufakwa imali"</string>
     <string name="onHold" msgid="6132725550015899006">"Ibambile"</string>
+    <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g> Umlayezo"</string>
+    <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"Umlayezo wenkampani yenethiwekhi"</string>
     <string name="mmiStarted" msgid="9212975136944568623">"Ikhodi ye-MMI iqalile"</string>
     <string name="ussdRunning" msgid="1163586813106772717">"Ikhodi ye-USSD iyasebenza..."</string>
     <string name="mmiCancelled" msgid="5339191899200678272">"Ikhodi ye-MMI ikhanseliwe"</string>
@@ -209,6 +211,17 @@
     <item msgid="6147699530135006312">"I-LTE/TDSCDMA/GSM/WCDMA"</item>
     <item msgid="8826479449402151312">"I-TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
     <item msgid="6284311629324843506">"I-LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4738087170533378966">"I-NR kuphela"</item>
+    <item msgid="2935877729588775187">"I-NR/LTE"</item>
+    <item msgid="8967513231424970529">"I-NR/LTE/CDMA/EvDo"</item>
+    <item msgid="1542643426479755015">"I-NR/LTE/GSM/WCDMA"</item>
+    <item msgid="5778162260258129841">"I-NR/LTE/CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="8088614845214545367">"I-NR/LTE/WCDMA"</item>
+    <item msgid="6517428040626326776">"I-NR/LTE/TDSCDMA"</item>
+    <item msgid="5294150161567170165">"I-NR/LTE/TDSCDMA/GSM"</item>
+    <item msgid="4130965694947056705">"I-NR/LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3869566732842046032">"I-NR/LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="3942770927563146543">"I-NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</item>
   </string-array>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="7851493369130750126">"Imodi yenethiwekhi ekhethwayo: i-WCDMA ekhethwayo"</string>
     <string name="preferred_network_mode_gsm_only_summary" msgid="4323367929994392830">"Imodi yenethiwekhi ekhethwayo: i-GSM kuphela"</string>
@@ -222,6 +235,7 @@
     <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"Imodi yenethiwekhi ekhethwayo: i-LTE"</string>
     <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"Imodi yenethiwekhi ekhethwayo: i-GSM/WCDMA/LTE"</string>
     <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"Imodi yenethiwekhi ekhethwayo: i-CDMA+LTE/EVDO"</string>
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"Imodi yenethiwekhi encanyelwayo: I-LTE/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"Imodi yenethiwekhi ekhethwayo: Umhlaba jikelele"</string>
     <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"Imodi yenethiwekhi ekhethwayo: i-LTE / WCDMA"</string>
     <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"Imodi yenethiwekhi encanyelwayo: i-LTE / GSM / UMTS"</string>
@@ -236,6 +250,17 @@
     <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"Imodi yenethiwekhi ekhethwayo: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"Imodi yenethiwekhi ekhethwayo: i-CDMA/EvDo/GSM/WCDMA"</string>
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"Imodi yenethiwekhi ekhethwayo: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"Imodi yenethiwekhi encanyelwayo: I-NR kuphela"</string>
+    <string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"Imodi yenethiwekhi encanyelwayo: I-NR / LTE"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/CDMA/EvDo"</string>
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary" msgid="2811179121638665248">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary" msgid="7631365223836621902">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/CDMA/EvDo/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_wcdma_summary" msgid="8696016062943591864">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary" msgid="1236182344680726751">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary" msgid="8384454155773415993">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/GSM"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="5912457779733343522">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="6769797110309412576">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/GSM/WCDMA"</string>
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="4260661428277578573">"Imodi yenethiwekhi encanyelwayo: I-NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
     <string name="call_category" msgid="4394703838833058138">"Iyashaya"</string>
     <string name="network_operator_category" msgid="4992217193732304680">"Inethiwekhi"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Imodi ye-4G LTE ethuthukisiwe"</string>
@@ -377,6 +402,7 @@
     <string name="enable_disable_multi_category" msgid="5958248155437940625">"Izigaba-ningi"</string>
     <string name="multi_category_enable" msgid="4531915767817483960">"Izigaba-ningi zivunyelwe"</string>
     <string name="multi_category_disable" msgid="6325934413701238104">"Izigaba-ningi zivimbelwe"</string>
+    <string name="network_recommended" msgid="3444321100580250926">" (kunconyiwe)"</string>
     <string name="network_lte" msgid="7206879277095094280">"I-LTE (inconyiwe)"</string>
     <string name="network_4G" msgid="6800527815504223913">"I-4G (inconyiwe)"</string>
     <string name="network_global" msgid="3289646154407617631">"Emhlabeni jikelele"</string>
@@ -441,7 +467,7 @@
     <string name="deleting_fdn_contact" msgid="6872320570844460428">"Isusa othintana naye wokudayela okungaguquki..."</string>
     <string name="fdn_contact_deleted" msgid="1680714996763848838">"Othintana naye wokudayela okungaguquki ususiwe"</string>
     <string name="pin2_invalid" msgid="2313954262684494442">"I-FDN ayivuselelwanga ngoba uthayiphe i-PIN engalungile."</string>
-    <string name="fdn_invalid_number" msgid="155512764412225645">"I-FDN ayizange ibuyekezwe ngoba inombolo yeza amadijithi angu-20."</string>
+    <string name="fdn_invalid_number" msgid="9067189814657840439">"I-FDN ayizange ibuyekezwe ngoba inombolo idlula amadijithi angu-<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g>."</string>
     <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"I-FDN ayibuyekeziwe. I-PIN2 kade ingalungile, noma inombolo yefoni yenqatshelwe."</string>
     <string name="fdn_failed" msgid="216592346853420250">"Umsebenzi we-FDN wehlulekile."</string>
     <string name="simContacts_emptyLoading" msgid="4989040293858675483">"Ifunda ekhadini le-SIM..."</string>
@@ -532,6 +558,7 @@
     <string name="dial_emergency_error" msgid="825822413209026039">"Ayikwazi ukushaya. I-<xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> akuyona inombolo yesimo esiphuthumayo."</string>
     <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Ayikwazi ukushaya. Shayela inombolo yesimo esiphuthumayo."</string>
     <string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Ukushaya okuphuthumayo akutholakali"</string>
+    <string name="pin_puk_system_user_only" msgid="1045147220686867922">"Umnikazi wedivayisi kuphela ongafaka amakhodi EPHINIKHODI/I-PUK."</string>
     <string name="police_type_description" msgid="2819533883972081757">"Amaphoyisa"</string>
     <string name="ambulance_type_description" msgid="6798237503553180461">"I-Ambulensi"</string>
     <string name="fire_type_description" msgid="6565200468934914930">"Umlilo"</string>
@@ -559,6 +586,7 @@
     <string name="rtt_mode_title" msgid="3075948111362818043">"Ikholi yombhalo wesikhathi sangempela (i-RTT)"</string>
     <string name="rtt_mode_summary" msgid="8631541375609989562">"Vumela ukuthumela imilayezo ngaphakathi kwekholi yezwi"</string>
     <string name="rtt_mode_more_information" msgid="587500128658756318">"I-RTT isiza abafonayo abangezwa ezindlebeni, abenzwa kanzima, abanokukhubazeka kwenkulumo, noma udinga ngaphezulu kwezwi kuphela.&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Funda kabanzi&lt;/a&gt;\n       &lt;br&gt;&lt;br&gt; - Amakholi e-RTT alondolozwa njengokubhala ngokuloba ngomlayezo\n       &lt;br&gt; - I-RTT ayitholakali kumakholi evidiyo"</string>
+    <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Qaphela: I-RTT ayitholakali ngenkathi uzula"</string>
   <string-array name="tty_mode_entries">
     <item msgid="3238070884803849303">"I-TTY Ivaliwe"</item>
     <item msgid="1449091874731375214">"I-TTY Igcwele"</item>
@@ -611,6 +639,12 @@
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yebo"</string>
     <string name="alert_dialog_no" msgid="1075632654085988420">"Cha"</string>
     <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Susa"</string>
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Ifoni ikumodi yokushaya okuphuthumayo"</string>
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Kuze kube ngu-<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
+      <item quantity="one">Ifoni izoba kumodi yokushaya kwesimo esiphuthumayo amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>.\nIngabe ufuna ukuphuma manje?</item>
+      <item quantity="other">Ifoni izoba kumodi yokushaya kwesimo esiphuthumayo amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>.\nIngabe ufuna ukuphuma manje?</item>
+    </plurals>
     <string name="voicemail_provider" msgid="4158806657253745294">"Isevisi"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"Ukumisa"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"&lt;Ayisethiwe&gt;"</string>
@@ -750,7 +784,7 @@
     <string name="call_barring_deactivate_success" msgid="3545644320298275337">"Ukuvimbela ikholi kuyekiswe ukusebenza"</string>
     <string name="call_barring_change_pwd" msgid="1730691950940338387">"Shintsha iphasiwedi"</string>
     <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Shintsha iphasiwedi yokuvimbela"</string>
-    <string name="call_barring_change_pwd_description_disabled" msgid="6502248429882123711">"Ayikwazi ukushintsha iphasiwedi yokuvimbela."</string>
+    <string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Ayikwazi ukushintsha iphasiwedi yokuvimbela ikholi"</string>
     <string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Amaphasiwedi awafani"</string>
     <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Faka iphaiswedi enezinombolo ezingu-4"</string>
     <string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Iphasiwedi ishintshiwe"</string>
@@ -759,7 +793,6 @@
     <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Qinisekisa iphasiwedi"</string>
     <string name="messageCallBarring" msgid="5537730400652466912">"Faka iphasiwedi"</string>
     <string name="call_barring_settings" msgid="4616607285790258919">"Izilungiselelo zokuvimbela ikholi"</string>
-    <string name="call_barring_deactivate_all_no_password" msgid="1722810133682258452">"Yeka ukusebenzisa zonke izilungiselelo zokuvimbela?"</string>
     <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Inethiwekhi imatasa. Sicela uzame ikholi yakho futhi ngemuva kwesikhathi."</string>
     <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Inethiwekhi iminyene. Xhumana ne-opharetha yakho yeselula ukuze uthole usizo."</string>
     <string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Ikholi yehlisiwe."</string>
@@ -789,4 +822,91 @@
     <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, qiniseka ukuthi idatha yeselula ivuliwe ku-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
     <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, qiniseka ukuthi idatha yeselula kanye nokuzula kuvuliwe ku-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
     <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Chitha"</string>
+    <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Vumela uxhumano lwedatha"</string>
+    <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Khubaza uxhumano lwedatha"</string>
+    <string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Okunikeziwe kwe-VoLTE"</string>
+    <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Kugunyazwe ukushaya kwevidiyo"</string>
+    <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Kugunyazwe ukushaya kwe-Wifi"</string>
+    <string name="eab_provisioned_switch_string" msgid="4449676720736033035">"I-EAB/Ukuba khona kunikezelwe"</string>
+    <string name="cbrs_data_switch_string" msgid="6060356430838077653">"Idatha ye-Cbrs"</string>
+    <string name="dsds_switch_string" msgid="7564769822086764796">"Nika amandla i-DSDS"</string>
+    <string name="dsds_dialog_title" msgid="8494569893941847575">"Qalisa kabusha idivayisi?"</string>
+    <string name="dsds_dialog_message" msgid="4047480385678538850">"Udinga ukuqalisa kabusha idivayisi yakho ukushintsha lesi silungiselelo."</string>
+    <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Qala kabusha"</string>
+    <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Khansela"</string>
+    <string name="radio_info_radio_power" msgid="8805595022160471587">"Amandla erediyo yeselula"</string>
+    <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Buka incwadi yekheli le-SIM"</string>
+    <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Buka Izinombolo Zokudayela Okungaguquki"</string>
+    <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Buka Izinombolo Zokudayela Isevisi"</string>
+    <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Isimo sesevisi ye-IMS"</string>
+    <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Isimo se-IMS"</string>
+    <string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Kubhalisiwe"</string>
+    <string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Akubhalisiwe"</string>
+    <string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Iyatholakala"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Akutholakali"</string>
+    <string name="radio_info_ims_reg_status" msgid="25582845222446390">"Ukubhalisa kwe-IMS: <xliff:g id="STATUS">%1$s</xliff:g>\nI-Voice over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nI-Voice over WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nUkushaya kwevidiyo: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT isixhumi esibonakalayo: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radioInfo_service_in" msgid="45753418231446400">"Kwisevisi"</string>
+    <string name="radioInfo_service_out" msgid="287972405416142312">"Ayikho isevisi"</string>
+    <string name="radioInfo_service_emergency" msgid="4763879891415016848">"Amakholi aphuthumayo kuphela"</string>
+    <string name="radioInfo_service_off" msgid="3456583511226783064">"Irediyo ivaliwe"</string>
+    <string name="radioInfo_roaming_in" msgid="3156335577793145965">"Iyazulazula"</string>
+    <string name="radioInfo_roaming_not" msgid="1904547918725478110">"Ayizulazuli"</string>
+    <string name="radioInfo_phone_idle" msgid="2191653783170757819">"Okungenzi lutho"</string>
+    <string name="radioInfo_phone_ringing" msgid="8100354169567413370">"Iyakhala"</string>
+    <string name="radioInfo_phone_offhook" msgid="7564601639749936170">"Ikholi iyaqhubeka"</string>
+    <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Inqamukile"</string>
+    <string name="radioInfo_data_connecting" msgid="925092271092152472">"Iyaxhumeka"</string>
+    <string name="radioInfo_data_connected" msgid="7637335645634239508">"Ixhunyiwe"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Kumiswe okwesikhashana"</string>
+    <string name="radioInfo_unknown" msgid="5401423738500672850">"Akwaziwa"</string>
+    <string name="radioInfo_display_packets" msgid="6794302192441084157">"amaphakethe"</string>
+    <string name="radioInfo_display_bytes" msgid="7701006329222413797">"amabhaythi"</string>
+    <string name="radioInfo_display_dbm" msgid="7491944975710865703">"dBm"</string>
+    <string name="radioInfo_display_asu" msgid="2247752203249646956">"asu"</string>
+    <string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
+    <string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
+    <string name="radio_info_subid" msgid="6839966868621703203">"I-subId yamanje:"</string>
+    <string name="radio_info_dds" msgid="1122593144425697126">"I-SubId ye-SIM yedatha yokuzenzakalela:"</string>
+    <string name="radio_info_dl_kbps" msgid="2382922659525318726">"Umkhawulokudonsa we-DL (kbps):"</string>
+    <string name="radio_info_ul_kbps" msgid="2102225400904799036">"Umkhawulokudonsa we-UL (kbps):"</string>
+    <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Ulwazi lwendawo lweseli (kwehlisiwe):"</string>
+    <string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Ukulungiselelwa okuphathekayo kwesiteshi se-LTE:"</string>
+    <string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Isilinganiso sokuqalisa kabusha solwazi lweseli:"</string>
+    <string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Ulwazi lwesilinganiso seseli:"</string>
+    <string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Isevisi yedatha:"</string>
+    <string name="radio_info_roaming_label" msgid="6636932886446857120">"Ukuzulazula:"</string>
+    <string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
+    <string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Ukuqondisa kabusha ikholi:"</string>
+    <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Inani lokuhlelwa kabusha kwe-PPP ngenkathi igcina ukuqala"</string>
+    <string name="radio_info_current_network_label" msgid="3052098695239642450">"Inethiwekhi yamanje:"</string>
+    <string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Idatha Etholiwe:"</string>
+    <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Isevisi yezwi:"</string>
+    <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Amandla esiginali:"</string>
+    <string name="radio_info_call_status_label" msgid="7693575431923095487">"Isimo sekholi yezwi:"</string>
+    <string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Idatha ithunyelwe:"</string>
+    <string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Umlayezo ulindile:"</string>
+    <string name="radio_info_phone_number_label" msgid="2533852539562512203">"Inombolo yefoni:"</string>
+    <string name="radio_info_band_mode_label" msgid="23480556225515290">"Khetha ibhendi yerediyo"</string>
+    <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Uhlobo lwenethiwekhi yezwi:"</string>
+    <string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Uhlobo lwenethiwekhi yedatha:"</string>
+    <string name="phone_index_label" msgid="6222406512768964268">"Khetha inkomba yefoni"</string>
+    <string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Setha uhlobo lwenethiwekhi olufisekayo:"</string>
+    <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Qhweba i-Hostname(www.google.com) IPv4:"</string>
+    <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Qhweba i-Hostname(www.google.com) IPv6:"</string>
+    <string name="radio_info_http_client_test" msgid="1329583721088428238">"Ukuhlola ikhasimende ye-HTTP:"</string>
+    <string name="ping_test_label" msgid="448617502935719694">"Yenza ukuhlola kokuntwiza"</string>
+    <string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
+    <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Buyekeza"</string>
+    <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Vuselela"</string>
+    <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Guqula ukuhlola i-DNS"</string>
+    <string name="oem_radio_info_label" msgid="2914167475119997456">"Ulwazi oucacile kwe-OEM/Izilungiselelo"</string>
+    <string name="band_mode_title" msgid="7988822920724576842">"Isetha imodi yebhendi yerediyo"</string>
+    <string name="band_mode_loading" msgid="795923726636735967">"Ilayisha uhlu lwebhendi…"</string>
+    <string name="band_mode_set" msgid="6657819412803771421">"Setha"</string>
+    <string name="band_mode_failed" msgid="1707488541847192924">"Akuphumelelanga"</string>
+    <string name="band_mode_succeeded" msgid="2230018000534761063">"Kuphumelele"</string>
+    <string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Ulwazi lethebhulethi"</string>
+    <string name="phone_info_label" product="default" msgid="1784175881556791433">"Ulwazi lwefoni"</string>
+    <string name="carrier_provisioning" msgid="2668065041869578376">"Ulwazi lokuhlinzeka lenkampani yenethiwekhi"</string>
+    <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Cupha ukunikezwa kwenkampani yenethiwekhi"</string>
 </resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index b697ed8..2db3aa0 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -44,7 +44,7 @@
     <!-- Dark variant of the action bar color.  Ensure this stays in sync with Dialer version. -->
     <color name="actionbar_background_color_dark">#ffffff</color>
     <!-- Color for icons in the actionbar. Ensure this stays in sync with Dialer version. -->
-    <color name="actionbar_icon_color">#ffffff</color>
+    <color name="actionbar_icon_color">#5f6368</color>
 
     <!-- Color for the setting text. -->
     <color name="setting_primary_color">#333333</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 8bc1919..9b2605d 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -209,7 +209,7 @@
 
     <!-- The package to handle visual voicemail if the default dialer or the package
     CarrierConfigManager.KEY_CARRIER_VVM_PACKAGE_NAME_STRING does not handle it -->
-    <string name="system_visual_voicemail_client"></string>
+    <string name="system_visual_voicemail_client" translatable="false"/>
 
     <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
     <bool name="vvm3_enabled">false</bool>
@@ -235,6 +235,12 @@
     <!-- Flag indicating whether the device supports RTT (real-time text) -->
     <bool name="config_support_rtt">false</bool>
 
+    <!-- String indicating the package name of the device ImsService implementation for MMTEL. -->
+    <string name="config_ims_mmtel_package" translatable="false"/>
+
+    <!-- String indicating the package name of the device ImsService implementation for RCS. -->
+    <string name="config_ims_rcs_package" translatable="false"/>
+
     <!-- The package name for the platform number verification supplier app. -->
     <string name="platform_number_verification_package" translatable="false"></string>
 
@@ -251,6 +257,24 @@
          audio stream which the remote party will be able to hear. -->
     <bool name="config_support_telephony_audio_device">false</bool>
 
+    <!-- Whether the device supports dialing emergency RTT calls when there's no SIM card installed
+    -->
+    <bool name="config_support_simless_emergency_rtt">false</bool>
+
+    <!-- Array of countries that support sim-less emergency RTT calls. Values should be
+         ISO3166 country codes in lowercase. -->
+    <string-array name="config_simless_emergency_rtt_supported_countries" translatable="false">
+        <item>us</item>
+    </string-array>
+
+    <string-array translatable="false" name="config_volte_provision_error_on_publish_response">
+        <item>403 not authorized for presence</item>
+    </string-array>
+
+    <string-array translatable="false" name="config_rcs_provision_error_on_publish_response">
+        <item>404 not found</item>
+    </string-array>
+
     <!-- The country list that shortcut view can be enabled. -->
     <string-array name="config_countries_to_enable_shortcut_view" translatable="false">
     </string-array>
@@ -261,4 +285,9 @@
          slot. If true, telephony will always try to place the emergency call on the subscription
          associated with default data first, instead of using the default voice configuration.-->
     <bool name="config_gnss_supl_requires_default_data_for_emergency">false</bool>
+
+    <!-- Whether a device can have 5G connection in DSDS mode. It should be true by default, but
+         in some devices per modem limitation 5G network can't be connected if two or more SIMs
+         are active simultaneously. In that case, this value should be false. -->
+    <bool name="config_5g_connection_in_dsds_mode">true</bool>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f365139..1e44c72 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -42,6 +42,10 @@
     <string name="payphone">Payphone</string>
     <!-- In-call screen: status label for a call that's on hold -->
     <string name="onHold">On hold</string>
+    <!-- Title for carrier MMI message -->
+    <string name="carrier_mmi_msg_title"><xliff:g id="mmicarrier" example="T-Mobile">%s</xliff:g> Message</string>
+    <!-- Default title for carrier MMI message -->
+    <string name="default_carrier_mmi_msg_title">Carrier Message</string>
     <!-- Possible error messages with outgoing calls --><skip/>
     <string name="mmiStarted">MMI code started</string>
     <!-- Dialog label when a USSD code starts running -->
@@ -434,6 +438,17 @@
         <item>LTE/TDSCDMA/GSM/WCDMA</item>
         <item>TDSCDMA/CDMA/EVDO/GSM/WCDMA </item>
         <item>LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA</item>
+        <item>NR only</item>
+        <item>NR/LTE</item>
+        <item>NR/LTE/CDMA/EvDo</item>
+        <item>NR/LTE/GSM/WCDMA</item>
+        <item>NR/LTE/CDMA/EvDo/GSM/WCDMA</item>
+        <item>NR/LTE/WCDMA</item>
+        <item>NR/LTE/TDSCDMA</item>
+        <item>NR/LTE/TDSCDMA/GSM</item>
+        <item>NR/LTE/TDSCDMA/WCDMA</item>
+        <item>NR/LTE/TDSCDMA/GSM/WCDMA</item>
+        <item>NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA</item>
     </string-array>
     <!-- The preferred network modes RIL constants, in order of the modes above,
          e.g. the choice "GSM/WCDMA preferred" has the corresponding value "0" -->
@@ -461,6 +476,17 @@
         <item>"20"</item>
         <item>"21"</item>
         <item>"22"</item>
+        <item>"23"</item>
+        <item>"24"</item>
+        <item>"25"</item>
+        <item>"26"</item>
+        <item>"27"</item>
+        <item>"28"</item>
+        <item>"29"</item>
+        <item>"30"</item>
+        <item>"31"</item>
+        <item>"32"</item>
+        <item>"33"</item>
     </string-array>
 
     <!-- The following strings are summaries for preferred network modes in Mobile network settings,
@@ -489,6 +515,8 @@
     <string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
     <!-- CDMA+LTE/EVDO -->
     <string name="preferred_network_mode_lte_cdma_evdo_summary">Preferred network mode: CDMA+LTE/EVDO</string>
+    <!-- LTE/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary">Preferred network mode: LTE/CDMA/EvDo/GSM/WCDMA</string>
     <!-- Global -->
     <string name="preferred_network_mode_global_summary">Preferred network mode: Global</string>
     <!-- LTE / WCDMA -->
@@ -517,6 +545,28 @@
     <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
     <!-- LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA -->
     <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
+    <!-- NR only [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_only_summary">Preferred network mode: NR only</string>
+    <!-- NR / LTE [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_summary">Preferred network mode: NR / LTE</string>
+    <!-- NR/LTE/CDMA/EvDo [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_summary">Preferred network mode: NR/LTE/CDMA/EvDo</string>
+    <!-- NR/LTE/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_gsm_wcdma_summary">Preferred network mode: NR/LTE/GSM/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_cdma_evdo_gsm_wcdma_summary">Preferred network mode: NR/LTE/CDMA/EvDo/GSM/WCDMA</string>
+    <!-- NR/LTE/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_wcdma_summary">Preferred network mode: NR/LTE/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_summary">Preferred network mode: NR/LTE/TDSCDMA</string>
+    <!-- NR/LTE/TDSCDMA/GSM [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_summary">Preferred network mode: NR/LTE/TDSCDMA/GSM</string>
+    <!-- NR/LTE/TDSCDMA/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary">Preferred network mode: NR/LTE/TDSCDMA/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary">Preferred network mode: NR/LTE/TDSCDMA/GSM/WCDMA</string>
+    <!-- NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+    <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
 
     <!-- Mobile network settings screen, name for call settings category -->
     <string name="call_category">Calling</string>
@@ -753,6 +803,10 @@
     <string name="multi_category_enable">Multi-category enabled</string>
     <string name="multi_category_disable">Multi-category disabled</string>
 
+    <string name="network_recommended">\u0020(recommended)</string>
+    <string name="network_5G" translatable="false">5G</string>
+    <string name="network_lte_pure" translatable="false">LTE</string>
+    <string name="network_4G_pure" translatable="false">4G</string>
     <string name="network_lte">LTE (recommended)</string>
     <string name="network_4G">4G (recommended)</string>
     <string name="network_3G" translatable="false">3G</string>
@@ -973,7 +1027,7 @@
     <!-- FDN settings: error message displayed in a popup (toast) -->
     <string name="pin2_invalid">FDN wasn\'t updated because you typed an incorrect PIN.</string>
     <!-- FDN settings: error message displayed in a popup (toast) -->
-    <string name="fdn_invalid_number">FDN wasn\'t updated because the number exceeds 20 digits.</string>
+    <string name="fdn_invalid_number">FDN wasn\'t updated because the number exceeds <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digits.</string>
     <!-- FDN settings: error message displayed in a popup (toast), when the entered
          FDN number was inappropriate, OR, PIN2 the user entered was incorrect.
          Because of API restriction, there's no way to determine which is the exact
@@ -1192,6 +1246,9 @@
          emergency calling is not currently available. -->
     <string name="dial_emergency_calling_not_available">Emergency calling not available</string>
 
+    <!-- Only handle pin entry when phone user is system-->
+    <string name="pin_puk_system_user_only">Only the owner of the device can enter PIN/PUK codes.</string>
+
     <!-- Text for description of police calling type -->
     <string name="police_type_description">Police</string>
     <!-- Text for description of ambulance calling type -->
@@ -1263,6 +1320,8 @@
        &lt;br>&lt;br> - RTT calls are saved as a message transcript
        &lt;br> - RTT is not available for video calls</string>
 
+    <string name="no_rtt_when_roaming">Note: RTT is not available while roaming</string>
+
     <!-- Service option entries.  -->
     <string-array name="tty_mode_entries">
         <item>TTY Off</item>
@@ -1388,6 +1447,17 @@
     <string name="alert_dialog_no">No</string>
     <!-- ECM: ECM exit dialog choice -->
     <string name="alert_dialog_dismiss">Dismiss</string>
+    <!-- ECM: Notification body wihout data restriction hint -->
+    <string name="phone_in_ecm_call_notification_text_without_data_restriction_hint">The phone is in emergency callback mode</string>
+    <!-- ECM: Displays the time when ECM will end without data restriction hint, Example: "Until 10:45 AM" -->
+    <string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint">Until <xliff:g id="completeTime">%s</xliff:g></string>
+    <!-- ECM: Dialog box message without data restriction hint for exiting from the notifications screen -->
+    <plurals name="alert_dialog_exit_ecm_without_data_restriction_hint">
+        <!-- number of minutes is one -->
+        <item quantity="one">The phone will be in emergency callback mode for <xliff:g id="count">%s</xliff:g> minute.\nDo you want to exit now?</item>
+        <!-- number of minutes is not equal to one -->
+        <item quantity="other">The phone will be in emergency callback mode for <xliff:g id="count">%s</xliff:g> minutes.\nDo you want to exit now?</item>
+    </plurals>
 
     <!-- For incoming calls, this is a string we can get from a CDMA network instead of
          the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
@@ -1767,7 +1837,7 @@
     <!-- Call barring settings screen, change password -->
     <string name="call_barring_change_pwd_description">Change call barring password</string>
     <!-- Call barring settings screen, not possible to change call barring password -->
-    <string name="call_barring_change_pwd_description_disabled">Cannot change call barring password.</string>
+    <string name="call_barring_change_pwd_description_disabled">Cannot change call barring password</string>
     <!-- Call barring settings screen, change password -->
     <string name="call_barring_pwd_not_match">Passwords do not match</string>
     <!-- Call barring settings screen, change password -->
@@ -1784,8 +1854,6 @@
     <string name="messageCallBarring">Enter password</string>
     <!-- Call barring settings screen, section heading -->
     <string name="call_barring_settings">Call barring settings</string>
-    <!-- Call barring settings screen, deactivate all call barring settings -->
-    <string name="call_barring_deactivate_all_no_password">Deactivate all call barring settings?</string>
     <!-- In-call screen: error message shown when the user attempts to place a call, but the network
          does not have enough resources (e.g. it is busy) and the call cannot be placed. -->
     <string name="callFailed_NetworkBusy">Network is busy.  Please try your call again later.</string>
@@ -1881,4 +1949,209 @@
     <string name="supp_service_over_ut_precautions_roaming_dual_sim">To use <xliff:g id="supp service">%1$s</xliff:g>, make sure mobile data and data roaming are turned on for SIM <xliff:g id="sim number">%2$d</xliff:g>. You can change these in mobile network settings.</string>
     <!-- supplementary services over ut precaution exit dialog choice -->
     <string name="supp_service_over_ut_precautions_dialog_dismiss">Dismiss</string>
+
+    <!-- Data Connection Enable. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="radio_info_data_connection_enable">Enable Data Connection</string>
+    <!-- Data Connection Disable. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="radio_info_data_connection_disable">Disable Data Connection</string>
+
+    <!-- VoLTE provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="volte_provisioned_switch_string">VoLTE Provisioned</string>
+
+    <!-- Video calling provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="vt_provisioned_switch_string">Video Calling Provisioned</string>
+
+    <!-- Wifi Calling provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="wfc_provisioned_switch_string">Wifi Calling Provisioned</string>
+
+    <!-- EAB provisioning flag on. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="eab_provisioned_switch_string">EAB/Presence Provisioned</string>
+
+    <!-- Cbrs enable disable flag. Only shown in diagnostic screen, so precise translation is not needed -->
+    <string name="cbrs_data_switch_string">Cbrs Data</string>
+
+    <!-- Dsds enable/disable flag. Only shown in diagnostic screen, so precise translation is not needed, [CHAR LIMIT=none] -->
+    <string name="dsds_switch_string">Enable DSDS</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_title">Restart Device?</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_message">You need to restart your device to change this setting.</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_confirm">Restart</string>
+
+    <!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
+    <string name="dsds_dialog_cancel">Cancel</string>
+
+    <!-- Title for controlling on/off for Mobile phone's radio power. Only shown in diagnostic screen, so precise translation is not needed. -->
+    <string name="radio_info_radio_power">Mobile Radio Power</string>
+
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_viewADN">View SIM Address Book</string>
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_viewFDN">View Fixed Dialing Numbers</string>
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_viewSDN">View Service Dialing Numbers</string>
+    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_menu_getIMS">IMS Service Status</string>
+
+    <!-- Phone Info screen. IMS Registration Title.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status_title">IMS Status</string>
+
+    <!-- Phone Info screen. IMS Status - Registered.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status_registered">Registered</string>
+    <!-- Phone Info screen. Ims Status - Unregistered.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status_not_registered">Not Registered</string>
+
+    <!-- Phone Info screen. Ims Feature Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_feature_status_available">Available</string>
+    <!-- Phone Info screen. Ims Feature status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_feature_status_unavailable">Unavailable</string>
+
+    <!-- Phone Info screen. IMS Registration.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ims_reg_status">IMS Registration: <xliff:g id="status" example="registered">%1$s</xliff:g>\u000AVoice over LTE: <xliff:g id="availability" example="available">%2$s</xliff:g>\u000AVoice over WiFi: <xliff:g id="availability" example="available">%3$s</xliff:g>\u000AVideo Calling: <xliff:g id="availability" example="available">%4$s</xliff:g>\u000AUT Interface: <xliff:g id="availability" example="available">%5$s</xliff:g></string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_in">In Service</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_out">Out of Service</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_emergency">Emergency Calls Only</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_service_off">Radio Off</string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_roaming_in">Roaming</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_roaming_not">Not Roaming</string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_phone_idle">Idle</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_phone_ringing">Ringing</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_phone_offhook">Call in Progress</string>
+
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_disconnected">Disconnected</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_connecting">Connecting</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_connected">Connected</string>
+    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_data_suspended">Suspended</string>
+
+    <!-- Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_unknown">Unknown</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_packets">pkts</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_bytes">bytes</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_dbm">dBm</string>
+    <!-- Phone Info screen. Units shown after a value.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_display_asu">asu</string>
+    <!-- Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_lac">LAC</string>
+    <!-- Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radioInfo_cid">CID</string>
+
+
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_subid">Current subId:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_dds">SubId of default data SIM:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_dl_kbps">DL Bandwidth (kbps):</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ul_kbps">UL Bandwidth (kbps):</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_signal_location_label">Cell Location Info (deprecated):</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_phy_chan_config">LTE Physical Channel Configuration:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_cell_info_refresh_rate">Cell Info Refresh Rate:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_cellinfo_label">All Cell Measurement Info:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_gprs_service_label">Data Service:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_roaming_label">Roaming:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_imei_label">IMEI:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, DO NOT TRANSLATE. -->
+    <string name="radio_info_imsi_label">IMSI:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_call_redirect_label">Call Redirect:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ppp_resets_label">Number of PPP Reset Since Boot:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_current_network_label">Current Network:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ppp_received_label">Data Received:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_gsm_service_label">Voice Service:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_signal_strength_label">Signal Strength:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_call_status_label">Voice Call Status:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ppp_sent_label">Data Sent:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_message_waiting_label">Message Waiting:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_phone_number_label">Phone Number:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_band_mode_label">Select Radio Band</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_voice_network_type_label">Voice Network Type:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_data_network_type_label">Data Network Type:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="phone_index_label">Select phone index</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_set_perferred_label">Set Preferred Network Type:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ping_hostname_v4">Ping Hostname(www.google.com) IPv4:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_ping_hostname_v6">Ping Hostname(www.google.com) IPv6:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_http_client_test">HTTP Client Test:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="ping_test_label">Run Ping Test</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_smsc_label">SMSC:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_smsc_update_label">Update</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_smsc_refresh_label">Refresh</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_toggle_dns_check_label">Toggle DNS Check</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="oem_radio_info_label">OEM-specific Info/Settings</string>
+
+    <!-- Band Mode Selection -->
+    <!-- Band mode screen.  Title of activity. -->
+    <string name="band_mode_title">Set Radio Band Mode</string>
+    <!-- Band mode screen.  Loading message. -->
+    <string name="band_mode_loading">Loading Band List\u2026</string>
+    <!-- Band mode screen. Button caption to set the bandmode. -->
+    <string name="band_mode_set">Set</string>
+    <!-- Band mode screen. Status message when unsuccessful. -->
+    <string name="band_mode_failed">Unsuccessful</string>
+    <!-- Band mode screen. Statusm essage when successful. -->
+    <string name="band_mode_succeeded">Successful</string>
+
+    <!-- The title of the activity to see phone info -->
+    <string name="phone_info_label" product="tablet">Tablet info</string>
+    <!-- The title of the activity to see phone info -->
+    <string name="phone_info_label" product="default">Phone info</string>
+
+    <!-- Carrier Provisioning Info [CHAR LIMIT=NONE] -->
+    <string name="carrier_provisioning">Carrier Provisioning Info</string>
+    <!-- Trigger Carrier Provisioning [CHAR LIMIT=NONE] -->
+    <string name="trigger_carrier_provisioning">Trigger Carrier Provisioning</string>
+
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c791968..8218a84 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -45,6 +45,23 @@
         <item name="android:layout_height">wrap_content</item>
     </style>
 
+    <style name="RadioInfo_entry_layout">
+        <item name="android:orientation">horizontal</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+    </style>
+
+    <style name="info_value">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:textAppearance">@style/TextAppearance.info_value</item>
+    </style>
+
+    <style name="form_value">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">match_parent</item>
+    </style>
+
     <style name="TextAppearance" parent="android:TextAppearance">
     </style>
 
@@ -53,6 +70,11 @@
         <item name="android:textStyle">bold</item>
     </style>
 
+    <style name="TextAppearance.info_value">
+        <item name="android:textSize">14sp</item>
+        <item name="android:textStyle">normal</item>
+    </style>
+
     <!-- Preference Style for the phone number preferences -->
     <style name="EditPhoneNumberPreference">
         <item name="enableButtonText">@string/enable</item>
@@ -170,7 +192,6 @@
 
     <style name="DialerSettingsLight" parent="SettingsLight">
         <!-- Action bar.-->
-        <item name="android:tint">@color/dialer_secondary_text_color</item>
         <item name="android:windowBackground">@color/dialer_background_color</item>
         <item name="android:actionModeBackground">@color/dialer_background_color</item>
         <item name="android:windowLightStatusBar">true</item>
@@ -180,6 +201,7 @@
         <item name="android:windowLightNavigationBar">true</item>
         <item name="android:colorAccent">@color/dialer_theme_color</item>
         <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
+        <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
     </style>
 
     <style name="DialerAlertDialogTheme"
@@ -189,21 +211,6 @@
         <item name="android:textColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
     </style>
 
-    <style name="NetworkOperatorsSettingsTheme" parent="@android:style/Theme.DeviceDefault.Settings">
-        <item name="android:forceDarkAllowed">true</item>
-        <item name="android:switchPreferenceStyle">@style/SettingsSwitchPreference</item>
-        <item name="android:preferenceCategoryStyle">@style/SettingsPreferenceCategory</item>
-        <item name="android:preferenceStyle">@style/SettingsPreference</item>
-        <item name="android:dialogPreferenceStyle">@style/SettingsDialogPreference</item>
-        <item name="android:preferenceScreenStyle">@style/SettingsPreferenceScreen</item>
-    </style>
-
-    <style name="TrimmedHorizontalProgressBar" parent="android:Widget.Material.ProgressBar.Horizontal">
-        <item name="android:indeterminateDrawable">@drawable/progress_indeterminate_horizontal_material_trimmed</item>
-        <item name="android:minHeight">3dip</item>
-        <item name="android:maxHeight">3dip</item>
-    </style>
-
     <style name="Empty" parent="@android:style/Theme.Material.Light">
         <item name="android:forceDarkAllowed">true</item>
         <item name="android:windowIsTranslucent">true</item>
@@ -214,33 +221,6 @@
         <item name="android:backgroundDimEnabled">true</item>
     </style>
 
-    <style name="InCallAnimationStyle" parent="@*android:style/Animation.Holo.Activity">
-        <!-- Suppress task-to-task animation happening during the transition from
-             OutgoingCallBroadcaster (and SipOptionHandler) to InCallScreen.
-             The transition unexpectedly happens during the transition (inside the phone task),
-             because InCallScreen is using android:launchMode="singleInstance".
-
-             - taskOpenEnterAnimation/taskOpenExitAnimation is used for the first time
-               InCallScreen instance is created.
-
-             - taskToFrontEnterAnimation/taskToFrontExitAnimation is used when InCallScreen
-               is already available.
-               (Note that InCallScreen won't be destroyed once it is created)
-
-             TODO: try removing the flag instead -->
-        <item name="*android:taskOpenEnterAnimation">@*android:anim/activity_open_enter</item>
-        <item name="*android:taskOpenExitAnimation">@*android:anim/activity_open_exit</item>
-        <item name="*android:taskToFrontEnterAnimation">@*android:anim/activity_open_enter</item>
-        <item name="*android:taskToFrontExitAnimation">@*android:anim/activity_open_exit</item>
-    </style>
-
-    <style name="OutgoingAnimationStyle" parent="@*android:style/Animation.Holo.Activity">
-        <!-- Suppress task-to-task transition animation happening from
-             DialtactsActivity to OutgoingCallBroadcaster. -->
-        <item name="*android:taskOpenEnterAnimation">@*android:anim/activity_open_enter</item>
-        <item name="*android:taskOpenExitAnimation">@*android:anim/activity_open_exit</item>
-    </style>
-
     <!-- Style for the call settings action bar.  Should be kept in sync with Dialer. -->
     <style name="DialtactsActionBarStyle" parent="@style/TelephonyActionBarStyle">
         <!-- Shift the title text to the right -->
@@ -271,7 +251,7 @@
         <item name="android:src">@drawable/overflow_menu</item>
     </style>
 
-    <style name="EmergencyDialerTheme" parent="@*android:style/Theme.DeviceDefault.Settings.Dark.NoActionBar">
+    <style name="EmergencyDialerTheme" parent="@android:style/Theme.Material.NoActionBar">
         <item name="android:forceDarkAllowed">true</item>
         <item name="android:colorPrimaryDark">?android:attr/colorPrimary</item>
         <item name="android:colorBackgroundCacheHint">@null</item>
@@ -279,8 +259,8 @@
         <item name="android:statusBarColor">@android:color/transparent</item>
         <item name="android:navigationBarColor">@android:color/transparent</item>
         <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
-        <item name="emergencyButtonBackgroundColor">#3cffffff</item>
-        <item name="dialpadTheme">@style/Dialpad_DarkTransparent</item>
+        <item name="emergencyButtonBackgroundColor">#10ffffff</item>
+        <item name="dialpadTheme">@style/Dialpad_DarkTransparent.Emergency</item>
     </style>
 
     <style name="EmergencyDialerThemeDark" parent="@style/EmergencyDialerTheme">
@@ -288,7 +268,15 @@
         <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
         <item name="emergencyButtonBackgroundColor">#19414549</item>
         <item name="android:colorControlHighlight">#40000000</item>
-        <item name="dialpadTheme">@style/Dialpad_LightTransparent</item>
+        <item name="dialpadTheme">@style/Dialpad_LightTransparent.Emergency</item>
+    </style>
+
+    <style name="Dialpad_LightTransparent.Emergency">
+        <item name="dialpad_delete_padding">16dp</item>
+    </style>
+
+    <style name="Dialpad_DarkTransparent.Emergency">
+        <item name="dialpad_delete_padding">16dp</item>
     </style>
 
     <style name="EmergencyDialerAlertDialogTheme"
@@ -305,13 +293,6 @@
         <item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflow</item>
     </style>
 
-    <style name="OutgoingCallBroadcasterTheme" parent="@android:style/Theme.Holo.NoActionBar">
-        <item name="android:forceDarkAllowed">true</item>
-        <item name="android:windowBackground">@android:color/black</item>
-
-        <item name="*android:windowAnimationStyle">@style/OutgoingAnimationStyle</item>
-    </style>
-
     <style name="DialtactsDigitsTextAppearance">
         <item name="android:maxLines">1</item>
         <item name="android:textSize">@dimen/dialpad_digits_text_size</item>
@@ -330,48 +311,47 @@
         <item name="android:backgroundDimEnabled">false</item>
     </style>
 
-    <style name="CallSettingsWithoutDividerTheme" parent="SettingsLight">
-        <item name="android:forceDarkAllowed">true</item>
+    <style name="CallSettingsWithoutDividerTheme" parent="DialerSettingsLight">
         <item name="android:listDivider">@null</item>
     </style>
 
-    <style name="EmergencyInfoNameTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/primary_text_default_material_dark</item>
+    <style name="EmergencyInfoNameTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/primary_text_default_material_dark</item>
         <item name="android:textSize">@dimen/emergency_info_name_text_size</item>
     </style>
 
-    <style name="EmergencyInfoHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/secondary_text_default_material_dark</item>
+    <style name="EmergencyInfoHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/secondary_text_default_material_dark</item>
         <item name="android:textSize">@dimen/emergency_info_hint_text_size</item>
     </style>
 
-    <style name="EmergencyInfoTapHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="EmergencyInfoTapHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_info_tap_hint_text_size</item>
     </style>
 
-    <style name="ShortcutViewHintTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/secondary_text_default_material_dark</item>
+    <style name="ShortcutViewHintTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/secondary_text_default_material_dark</item>
     </style>
 
-    <style name="PhoneNumberTextAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
-        <item name="android:textColor">@*android:color/primary_text_default_material_light</item>
+    <style name="PhoneNumberTextAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
+        <item name="android:textColor">@color/primary_text_default_material_light</item>
         <item name="android:textSize">@dimen/emergency_shortcut_number_text_size</item>
     </style>
 
     <style name="PhoneNumberTypeAppearance">
         <item name="android:fontFamily">roboto</item>
-        <item name="android:textColor">@*android:color/secondary_text_default_material_light</item>
+        <item name="android:textColor">@color/secondary_text_default_material_light</item>
         <item name="android:textSize">@dimen/emergency_shortcut_type_text_size</item>
     </style>
 
-    <style name="PhoneNumberTapHintAppearance">
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+    <style name="PhoneNumberTapHintAppearance"
+           parent="@android:style/TextAppearance.Material.Subhead">
         <item name="android:textColor">@android:color/white</item>
         <item name="android:textSize">@dimen/emergency_shortcut_tap_hint_text_size</item>
     </style>
diff --git a/res/values/styles_preference.xml b/res/values/styles_preference.xml
index ceea4a6..eace2e7 100644
--- a/res/values/styles_preference.xml
+++ b/res/values/styles_preference.xml
@@ -19,26 +19,22 @@
 <!-- Things unrelated to preference framework UI customization should go to other styles files -->
 <resources>
     <!-- Preferences -->
-    <style name="SettingsPreference" parent="@*android:style/Preference.DeviceDefault">
+    <style name="SettingsPreference" parent="@style/Preference.Material">
         <item name="android:singleLineTitle">false</item>
         <item name="android:iconSpaceReserved">true</item>
     </style>
 
-    <style name="SettingsSwitchPreference" parent="@*android:style/Preference.DeviceDefault.SwitchPreference">
+    <style name="SettingsSwitchPreference" parent="@style/Preference.SwitchPreference.Material">
         <item name="android:iconSpaceReserved">true</item>
         <item name="android:singleLineTitle">false</item>
     </style>
 
-    <style name="SettingsPreferenceCategory" parent="@*android:style/Preference.DeviceDefault.Category">
-        <item name="android:layout">@layout/preference_category_material_settings_with_divider</item>
-    </style>
-
-    <style name="SettingsDialogPreference" parent="@*android:style/Preference.DeviceDefault.DialogPreference">
+    <style name="SettingsDialogPreference" parent="@style/Preference.DialogPreference.Material">
         <item name="android:singleLineTitle">false</item>
         <item name="android:iconSpaceReserved">true</item>
     </style>
 
-    <style name="SettingsPreferenceScreen" parent="@*android:style/Preference.DeviceDefault.PreferenceScreen">
+    <style name="SettingsPreferenceScreen" parent="@style/Preference.PreferenceScreen.Material">
         <item name="android:singleLineTitle">false</item>
         <item name="android:iconSpaceReserved">true</item>
     </style>
diff --git a/res/xml/callbarring_options.xml b/res/xml/callbarring_options.xml
index 6f2c48a..6506031 100644
--- a/res/xml/callbarring_options.xml
+++ b/res/xml/callbarring_options.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-     xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+     xmlns:phone="http://schemas.android.com/apk/res-auto"
      android:title="@string/call_barring_settings">
 
     <!-- Note for all com.android.phone.EditPinPreference objects
diff --git a/res/xml/callforward_options.xml b/res/xml/callforward_options.xml
index 0ff1e90..775151e 100644
--- a/res/xml/callforward_options.xml
+++ b/res/xml/callforward_options.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-     xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+     xmlns:phone="http://schemas.android.com/apk/res-auto"
      android:title="@string/call_forwarding_settings">
 
 
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
deleted file mode 100644
index f6ef97a..0000000
--- a/res/xml/cdma_options.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <com.android.phone.CdmaSystemSelectListPreference
-        android:key="cdma_system_select_key"
-        android:title="@string/cdma_system_select_title"
-        android:summary="@string/cdma_system_select_summary"
-        android:entries="@array/cdma_system_select_choices"
-        android:entryValues="@array/cdma_system_select_values"
-        android:dialogTitle="@string/cdma_system_select_dialogtitle" />
-
-    <com.android.phone.CdmaSubscriptionListPreference
-        android:key="cdma_subscription_key"
-        android:title="@string/cdma_subscription_title"
-        android:summary="@string/cdma_subscription_summary"
-        android:entries="@array/cdma_subscription_choices"
-        android:entryValues="@array/cdma_subscription_values"
-        android:dialogTitle="@string/cdma_subscription_dialogtitle" />
-
-    <!--We want separate APN setting from reset of settings because-->
-    <!--we want user to change it with caution.-->
-    <PreferenceCategory
-        android:key="category_cdma_apn_key">
-        <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
-        <com.android.phone.RestrictedPreference
-            android:key="button_cdma_apn_key"
-            android:title="@string/apn_settings"
-            android:persistent="false"/>
-    </PreferenceCategory>
-
-    <Preference
-        android:key="carrier_settings_key"
-        android:title="@string/carrier_settings_title">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="@string/carrier_settings"
-                android:targetClass="@string/carrier_settings_menu" />
-    </Preference>
-
-</PreferenceScreen>
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
deleted file mode 100644
index 81b2deb..0000000
--- a/res/xml/gsm_umts_options.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <com.android.phone.NetworkOperators
-        android:key="network_operators_category_key"
-        android:title="@string/network_operator_category"
-        android:persistent="false">
-
-        <SwitchPreference
-            android:key="button_auto_select_key"
-            android:title="@string/select_automatically"
-            android:persistent="false"/>
-
-        <com.android.phone.NetworkSelectListPreference
-            android:key="button_network_select_key"
-            android:title="@string/network_select_title"
-            android:persistent="false"/>
-
-        <Preference
-            android:key="button_choose_network_key"
-            android:title="@string/choose_network_title"
-            android:fragment="com.android.phone.NetworkSelectSetting" />
-    </com.android.phone.NetworkOperators>
-
-    <!--We want separate APN setting from reset of settings because-->
-    <!--we want user to change it with caution.-->
-    <PreferenceCategory
-        android:key="category_gsm_apn_key"
-        android:layout="@layout/preference_category_no_label">
-
-        <com.android.phone.RestrictedPreference
-            android:key="button_gsm_apn_key"
-            android:title="@string/apn_settings"
-            android:persistent="false" />
-    </PreferenceCategory>
-
-    <PreferenceScreen
-        android:key="carrier_settings_key"
-        android:title="@string/carrier_settings_title">
-        <intent android:action="android.intent.action.MAIN"
-                android:targetPackage="@string/carrier_settings"
-                android:targetClass="@string/carrier_settings_menu" />
-    </PreferenceScreen>
-
-</PreferenceScreen>
diff --git a/res/xml/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml
deleted file mode 100644
index d334861..0000000
--- a/res/xml/network_setting_fragment.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <PreferenceScreen
-        android:key="cdma_lte_data_service_key"
-        android:title="@string/cdma_lte_data_service">
-    </PreferenceScreen>
-
-    <com.android.phone.MobileDataPreference
-        android:key="mobile_data_enable"
-        android:title="@string/mobile_data_settings_title"
-        android:summary="@string/mobile_data_settings_summary"/>
-
-    <com.android.phone.RestrictedSwitchPreference
-        android:key="button_roaming_key"
-        android:title="@string/roaming"
-        android:persistent="false"
-        android:summaryOn="@string/roaming_enable"
-        android:summaryOff="@string/roaming_disable"/>
-
-    <com.android.phone.DataUsagePreference
-        android:key="data_usage_summary"
-        android:title="@string/data_usage_title" />
-
-    <com.android.phone.AdvancedOptionsPreference
-        android:key="advanced_options"/>
-
-    <SwitchPreference
-        android:key="enhanced_4g_lte"
-        android:title="@string/enhanced_4g_lte_mode_title"
-        android:persistent="false"
-        android:summary="@string/enhanced_4g_lte_mode_summary"/>
-
-    <ListPreference
-        android:key="preferred_network_mode_key"
-        android:title="@string/preferred_network_mode_title"
-        android:summary="@string/preferred_network_mode_summary"
-        android:entries="@array/preferred_network_mode_choices"
-        android:entryValues="@array/preferred_network_mode_values"
-        android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
-
-    <ListPreference
-        android:key="enabled_networks_key"
-        android:title="@string/preferred_network_mode_title"
-        android:summary="@string/preferred_network_mode_summary"
-        android:entries="@array/enabled_networks_choices"
-        android:entryValues="@array/enabled_networks_values"
-        android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
-
-    <Preference
-        android:key="carrier_settings_euicc_key"
-        android:title="@string/carrier_settings_euicc" />
-
-    <PreferenceCategory
-        android:key="calling"
-        android:title="@string/call_category">
-
-        <PreferenceScreen
-            android:key="wifi_calling_key"
-            android:title="@string/wifi_calling_settings_title">
-
-            <intent android:action="android.intent.action.MAIN"
-                    android:targetPackage="com.android.settings"
-                    android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity">
-                        <extra android:name="show_drawer_menu" android:value="true" />
-            </intent>
-
-        </PreferenceScreen>
-
-        <SwitchPreference
-            android:key="video_calling_key"
-            android:title="@string/video_calling_settings_title"
-            android:persistent="true"/>
-
-    </PreferenceCategory>
-
-</PreferenceScreen>
diff --git a/res/xml/voicemail_settings.xml b/res/xml/voicemail_settings.xml
index 021a764..cbe1cf4 100644
--- a/res/xml/voicemail_settings.xml
+++ b/res/xml/voicemail_settings.xml
@@ -15,7 +15,7 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:phone="http://schemas.android.com/apk/res/com.android.phone"
+    xmlns:phone="http://schemas.android.com/apk/res-auto"
     android:title="@string/voicemail">
 
     <com.android.phone.settings.VoicemailProviderListPreference
diff --git a/sip/res/values-gu/strings.xml b/sip/res/values-gu/strings.xml
index aa32a85..9eb810b 100644
--- a/sip/res/values-gu/strings.xml
+++ b/sip/res/values-gu/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="sip_settings" msgid="7452587325305604702">"SIP સેટિંગ્સ"</string>
     <string name="sip_accounts" msgid="7297896885665783239">"SIP એકાઉન્ટ્સ"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"એકાઉન્ટ્સ"</string>
+    <string name="sip_accounts_title" msgid="3061686404598143943">"એકાઉન્ટ"</string>
     <string name="sip_receive_calls" msgid="3403644006618369349">"આવનારા કૉલ્સ પ્રાપ્ત કરો"</string>
     <string name="sip_receive_calls_summary" msgid="5306603671778761443">"બધુ બૅટરીની આવરદાનો ઉપયોગ કરે છે"</string>
     <string name="sip_call_options_title" msgid="5027066677561068192">"SIP કૉલિંગનો ઉપયોગ કરો"</string>
diff --git a/sip/res/values-in/strings.xml b/sip/res/values-in/strings.xml
index 535e5ac..709205c 100644
--- a/sip/res/values-in/strings.xml
+++ b/sip/res/values-in/strings.xml
@@ -40,7 +40,7 @@
     <string name="registration_status_registering" msgid="7986331597809521791">"Mendaftarkan..."</string>
     <string name="registration_status_still_trying" msgid="7178623685868766282">"Masih mencoba..."</string>
     <string name="registration_status_not_receiving" msgid="3873074208531938401">"Tidak menerima panggilan."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Pendaftaran akun terhenti karena tidak ada sambungan internet."</string>
+    <string name="registration_status_no_data" msgid="2987064560116584121">"Pendaftaran akun terhenti karena tidak ada koneksi internet."</string>
     <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Pendaftaran akun terhenti karena tidak ada sambungan Wi-Fi."</string>
     <string name="registration_status_not_running" msgid="6236403137652262659">"Pendaftaran akun gagal."</string>
     <string name="registration_status_done" msgid="6787397199273357721">"Menerima panggilan."</string>
@@ -71,7 +71,7 @@
     <string name="all_empty_alert" msgid="6085603517610199098">"Masukkan detail akun SIP baru."</string>
     <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diwajibkan dan tidak boleh kosong."</string>
     <string name="not_a_valid_port" msgid="3664668836663491376">"Nomor port harus dalam rentang 1000 dan 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Untuk melakukan panggilan SIP, periksa sambungan internet terlebih dahulu."</string>
+    <string name="no_internet_available" msgid="161720645084325479">"Untuk melakukan panggilan SIP, periksa koneksi internet terlebih dahulu."</string>
     <string name="no_wifi_available" msgid="1179092018692306312">"Anda harus tersambung ke jaringan Wi-Fi untuk melakukan panggilan SIP (gunakan setelan Nirkabel &amp; Jaringan)."</string>
     <string name="no_voip" msgid="3366395789297981738">"Panggilan SIP tidak didukung"</string>
     <string name="sip_system_decide" msgid="197230378376326430">"Otomatis"</string>
diff --git a/sip/res/values-mk/strings.xml b/sip/res/values-mk/strings.xml
index b810af8..f6b568a 100644
--- a/sip/res/values-mk/strings.xml
+++ b/sip/res/values-mk/strings.xml
@@ -26,7 +26,7 @@
     <string name="sip_call_options_entry_1" msgid="4722647332760934261">"За сите повици кога е достапна мрежа на податоци"</string>
     <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Само за повици со SIP"</string>
     <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"За сите повици"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Додај сметка"</string>
+    <string name="add_sip_account" msgid="5754758646745144384">"Додајте сметка"</string>
     <string name="remove_sip_account" msgid="8272617403399636513">"Отстрани сметка"</string>
     <string name="sip_account_list" msgid="2596262496233721769">"Сметки за SIP"</string>
     <string name="saving_account" msgid="3390358043846687266">"Зачувување на сметката..."</string>
diff --git a/sip/res/values-uz/strings.xml b/sip/res/values-uz/strings.xml
index e6d00e7..f951de2 100644
--- a/sip/res/values-uz/strings.xml
+++ b/sip/res/values-uz/strings.xml
@@ -26,7 +26,7 @@
     <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Tarmoq trafigi mavjud bo‘lganda barcha qo‘ng‘iroqlar uchun"</string>
     <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Faqat SIP chaqiruvlar uchun"</string>
     <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Barcha chaqiruvlar uchun"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Hisob qo‘shish"</string>
+    <string name="add_sip_account" msgid="5754758646745144384">"Hisob kiritish"</string>
     <string name="remove_sip_account" msgid="8272617403399636513">"Hisobni olib tashlash"</string>
     <string name="sip_account_list" msgid="2596262496233721769">"SIP hisoblari"</string>
     <string name="saving_account" msgid="3390358043846687266">"Hisob saqlanmoqda…"</string>
diff --git a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java b/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
index ec77ff1..1cf7f4b 100644
--- a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
+++ b/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
@@ -126,7 +126,7 @@
      * @param context The context.
      */
     void verifyAndPurgeInvalidPhoneAccounts(Context context) {
-        TelecomManager telecomManager = TelecomManager.from(context);
+        TelecomManager telecomManager = context.getSystemService(TelecomManager.class);
         SipProfileDb profileDb = new SipProfileDb(context);
         List<PhoneAccountHandle> accountHandles = telecomManager.getPhoneAccountsSupportingScheme(
                 PhoneAccount.SCHEME_SIP);
@@ -188,7 +188,8 @@
 
         // Un-register its PhoneAccount.
         PhoneAccountHandle handle = SipUtil.createAccountHandle(context, sipProfileName);
-        TelecomManager.from(context).unregisterPhoneAccount(handle);
+        TelecomManager tm = context.getSystemService(TelecomManager.class);
+        tm.unregisterPhoneAccount(handle);
     }
 
     /**
@@ -235,7 +236,7 @@
     private void startSipProfiles(Context context, String sipProfileName, boolean enableProfile) {
         final SipPreferences sipPreferences = new SipPreferences(context);
         boolean isReceivingCalls = sipPreferences.isReceivingCallsEnabled();
-        TelecomManager telecomManager = TelecomManager.from(context);
+        TelecomManager telecomManager = context.getSystemService(TelecomManager.class);
         SipManager sipManager = SipManager.newInstance(context);
         SipProfileDb profileDb = new SipProfileDb(context);
         List<SipProfile> sipProfileList = profileDb.retrieveSipProfileList();
diff --git a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java b/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
index 19f5882..2dbd707 100644
--- a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
+++ b/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
@@ -73,7 +73,7 @@
         if (accountHandle != null) {
             Bundle extras = new Bundle();
             extras.putParcelable(SipUtil.EXTRA_INCOMING_CALL_INTENT, intent);
-            TelecomManager tm = TelecomManager.from(context);
+            TelecomManager tm = context.getSystemService(TelecomManager.class);
             PhoneAccount phoneAccount = tm.getPhoneAccount(accountHandle);
             if (phoneAccount != null && phoneAccount.isEnabled()) {
                 tm.addNewIncomingCall(accountHandle, extras);
@@ -84,7 +84,7 @@
     }
 
     private boolean isRunningInSystemUser() {
-        return UserHandle.myUserId() == UserHandle.USER_SYSTEM;
+        return UserHandle.myUserId() == UserHandle.SYSTEM.getIdentifier();
     }
 
     private static void log(String msg) {
diff --git a/sip/src/com/android/services/telephony/sip/SipProfileDb.java b/sip/src/com/android/services/telephony/sip/SipProfileDb.java
index bb1c7ec..812ebb4 100644
--- a/sip/src/com/android/services/telephony/sip/SipProfileDb.java
+++ b/sip/src/com/android/services/telephony/sip/SipProfileDb.java
@@ -16,11 +16,10 @@
 
 package com.android.services.telephony.sip;
 
-import com.android.internal.os.AtomicFile;
-
 import android.content.Context;
 import android.net.sip.SipProfile;
 import android.text.TextUtils;
+import android.util.AtomicFile;
 import android.util.EventLog;
 import android.util.Log;
 
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
index ded16df..813ba51 100644
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ b/sip/src/com/android/services/telephony/sip/SipSettings.java
@@ -42,6 +42,7 @@
 import com.android.phone.R;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.LinkedHashMap;
@@ -238,9 +239,9 @@
     }
 
     private void processActiveProfilesFromSipService() {
-        SipProfile[] activeList = {};
+        List<SipProfile> activeList = new ArrayList<>();
         try {
-            activeList = mSipManager.getListOfProfiles();
+            activeList = mSipManager.getProfiles();
         } catch (SipException e) {
             log("SipManager could not retrieve SIP profiles: " + e);
         }
diff --git a/sip/src/com/android/services/telephony/sip/SipUtil.java b/sip/src/com/android/services/telephony/sip/SipUtil.java
index ff38754..5c7409f 100644
--- a/sip/src/com/android/services/telephony/sip/SipUtil.java
+++ b/sip/src/com/android/services/telephony/sip/SipUtil.java
@@ -29,12 +29,11 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.phone.PhoneGlobals;
-import com.android.phone.R;
-import com.android.server.sip.SipService;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -46,16 +45,17 @@
             "com.android.services.telephony.sip.incoming_call_intent";
     static final String EXTRA_PHONE_ACCOUNT =
             "com.android.services.telephony.sip.phone_account";
+    static final String PHONE_PACKAGE = "com.android.phone";
 
     private SipUtil() {
     }
 
     public static boolean isVoipSupported(Context context) {
-        return SipManager.isVoipSupported(context) &&
-                context.getResources().getBoolean(
-                        com.android.internal.R.bool.config_built_in_sip_phone) &&
-                context.getResources().getBoolean(
-                        com.android.internal.R.bool.config_voice_capable);
+        return SipManager.isVoipSupported(context)
+                && context.getResources().getBoolean(
+                        com.android.internal.R.bool.config_built_in_sip_phone)
+                        && ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE))
+                        .isVoiceCapable();
     }
 
     static PendingIntent createIncomingCallPendingIntent(
@@ -190,7 +190,10 @@
         // Migrate SIP database from DE->CE storage if the device has just upgraded.
         possiblyMigrateSipDb(phoneGlobalsContext);
         // Wait until boot complete to start SIP so that it has access to CE storage.
-        SipService.start(phoneGlobalsContext);
+        Intent startSipIntent = new Intent();
+        startSipIntent.setAction(SipManager.ACTION_START_SIP);
+        startSipIntent.setPackage(PHONE_PACKAGE);
+        phoneGlobalsContext.startService(startSipIntent);
     }
 
     /**
diff --git a/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java b/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
new file mode 100644
index 0000000..5b863b1
--- /dev/null
+++ b/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.services.telephony.sip.components;
+
+import android.app.Service;
+import android.content.Intent;
+import android.net.sip.SipManager;
+import android.os.IBinder;
+
+import com.android.server.sip.SipService;
+
+/**
+ * This class represents telephony SIP service which handle start SIP service requests from
+ * Telephony.
+ */
+public class TelephonySipService extends Service {
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        if ((intent != null)
+                && SipManager.ACTION_START_SIP.equals(intent.getAction())) {
+            SipService.start(this);
+        }
+        return START_STICKY;
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/src/com/android/phone/AdvancedOptionsPreference.java b/src/com/android/phone/AdvancedOptionsPreference.java
deleted file mode 100644
index 5f07790..0000000
--- a/src/com/android/phone/AdvancedOptionsPreference.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import android.content.Context;
-import android.preference.Preference;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-/**
- * Customized preference class representing the "Advanced" button that expands to fields that
- * are hidden by default.
- */
-public class AdvancedOptionsPreference extends Preference {
-    public AdvancedOptionsPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    protected void onBindView(View view) {
-        super.onBindView(view);
-
-        setIcon(com.android.internal.R.drawable.ic_expand_more);
-        setTitle(R.string.advanced_options_title);
-        TextView summary = view.findViewById(android.R.id.summary);
-        summary.setMaxLines(1);
-    }
-}
diff --git a/src/com/android/phone/CLIRListPreference.java b/src/com/android/phone/CLIRListPreference.java
index 5c6132b..d8a9041 100755
--- a/src/com/android/phone/CLIRListPreference.java
+++ b/src/com/android/phone/CLIRListPreference.java
@@ -47,10 +47,15 @@
     protected void onDialogClosed(boolean positiveResult) {
         super.onDialogClosed(positiveResult);
 
-        mPhone.setOutgoingCallerIdDisplay(convertValueToCLIRMode(getValue()),
-                mHandler.obtainMessage(MyHandler.MESSAGE_SET_CLIR));
-        if (mTcpListener != null) {
-            mTcpListener.onStarted(this, false);
+        if (positiveResult && (getValue() != null)) {
+            mPhone.setOutgoingCallerIdDisplay(convertValueToCLIRMode(getValue()),
+                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_CLIR));
+            if (mTcpListener != null) {
+                mTcpListener.onStarted(this, false);
+            }
+        } else {
+            Log.d(LOG_TAG, String.format("onDialogClosed: positiveResult=%b value=%s -- do nothing",
+                        positiveResult, getValue()));
         }
     }
 
diff --git a/src/com/android/phone/CallBarringDeselectAllPreference.java b/src/com/android/phone/CallBarringDeselectAllPreference.java
index 153bc0c..7191937 100644
--- a/src/com/android/phone/CallBarringDeselectAllPreference.java
+++ b/src/com/android/phone/CallBarringDeselectAllPreference.java
@@ -18,14 +18,10 @@
 
 import android.content.Context;
 import android.os.Bundle;
-import android.telephony.ServiceState;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.View;
 import android.widget.EditText;
 
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.phone.settings.fdn.EditPinPreference;
 
 /**
@@ -35,9 +31,6 @@
     private static final String LOG_TAG = "CallBarringDeselectAllPreference";
     private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
 
-    private boolean mShowPassword;
-    private Phone mPhone;
-
     /**
      * CallBarringDeselectAllPreference constructor.
      *
@@ -50,30 +43,10 @@
 
     @Override
     protected void showDialog(Bundle state) {
-        // Finds out if the password field should be shown or not.
-        ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
-        mShowPassword = !(imsPhone != null
-                && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
-                        || imsPhone.isUtEnabled()));
-
-        // Selects dialog message depending on if the password field is shown or not.
-        setDialogMessage(getContext().getString(mShowPassword
-                ? R.string.messageCallBarring : R.string.call_barring_deactivate_all_no_password));
-
-        if (DBG) {
-            Log.d(LOG_TAG, "showDialog: mShowPassword: " + mShowPassword);
-        }
-
+        setDialogMessage(getContext().getString(R.string.messageCallBarring));
         super.showDialog(state);
     }
 
-    void init(Phone phone) {
-        if (DBG) {
-            Log.d(LOG_TAG, "init: phoneId = " + phone.getPhoneId());
-        }
-        mPhone = phone;
-    }
-
     @Override
     protected void onBindDialogView(View view) {
         super.onBindDialogView(view);
@@ -81,20 +54,7 @@
         final EditText editText = (EditText) view.findViewById(android.R.id.edit);
         if (editText != null) {
             // Hide the input-text-line if the password is not shown.
-            editText.setVisibility(mShowPassword ? View.VISIBLE : View.GONE);
+            editText.setVisibility(View.VISIBLE);
         }
     }
-
-    @Override
-    protected boolean needInputMethod() {
-        // Input method should only be displayed if the password-field is shown.
-        return mShowPassword;
-    }
-
-    /**
-     * Returns whether the password field is shown.
-     */
-    boolean isPasswordShown() {
-        return mShowPassword;
-    }
 }
diff --git a/src/com/android/phone/CallBarringEditPreference.java b/src/com/android/phone/CallBarringEditPreference.java
index 72b3ea5..5d83de1 100644
--- a/src/com/android/phone/CallBarringEditPreference.java
+++ b/src/com/android/phone/CallBarringEditPreference.java
@@ -26,7 +26,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.telephony.ServiceState;
 import android.text.method.DigitsKeyListener;
 import android.text.method.PasswordTransformationMethod;
 import android.util.AttributeSet;
@@ -36,10 +35,10 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.CommandException;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.phone.settings.fdn.EditPinPreference;
 
 import java.lang.ref.WeakReference;
@@ -58,10 +57,7 @@
     private CharSequence mDisableText;
     private CharSequence mSummaryOn;
     private CharSequence mSummaryOff;
-    private CharSequence mDialogMessageEnabled;
-    private CharSequence mDialogMessageDisabled;
     private int mButtonClicked;
-    private boolean mShowPassword;
     private final MyHandler mHandler = new MyHandler(this);
     private Phone mPhone;
     private TimeConsumingPreferenceListener mTcpListener;
@@ -78,9 +74,9 @@
         super(context, attrs);
         // Get the summary settings, use CheckBoxPreference as the standard.
         TypedArray typedArray = context.obtainStyledAttributes(attrs,
-                android.R.styleable.CheckBoxPreference, 0, 0);
-        mSummaryOn = typedArray.getString(android.R.styleable.CheckBoxPreference_summaryOn);
-        mSummaryOff = typedArray.getString(android.R.styleable.CheckBoxPreference_summaryOff);
+                R.styleable.CheckBoxPreference, 0, 0);
+        mSummaryOn = typedArray.getString(R.styleable.CheckBoxPreference_summaryOn);
+        mSummaryOff = typedArray.getString(R.styleable.CheckBoxPreference_summaryOff);
         mDisableText = context.getText(R.string.disable);
         mEnableText = context.getText(R.string.enable);
         typedArray.recycle();
@@ -91,10 +87,6 @@
         typedArray = context.obtainStyledAttributes(attrs,
                 R.styleable.CallBarringEditPreference, 0, R.style.EditPhoneNumberPreference);
         mFacility = typedArray.getString(R.styleable.CallBarringEditPreference_facility);
-        mDialogMessageEnabled = typedArray.getString(
-                R.styleable.CallBarringEditPreference_dialogMessageEnabledNoPwd);
-        mDialogMessageDisabled = typedArray.getString(
-                R.styleable.CallBarringEditPreference_dialogMessageDisabledNoPwd);
         typedArray.recycle();
     }
 
@@ -117,7 +109,7 @@
         if (!skipReading) {
             // Query call barring status
             mPhone.getCallBarring(mFacility, "", mHandler.obtainMessage(
-                    MyHandler.MESSAGE_GET_CALL_BARRING), 0);
+                    MyHandler.MESSAGE_GET_CALL_BARRING), CommandsInterface.SERVICE_CLASS_VOICE);
             if (mTcpListener != null) {
                 mTcpListener.onStarted(this, true);
             }
@@ -131,29 +123,8 @@
     }
 
     @Override
-    protected boolean needInputMethod() {
-        // Input method should only be displayed if the password-field is shown.
-        return mShowPassword;
-    }
-
-    void setInputMethodNeeded(boolean needed) {
-        mShowPassword = needed;
-    }
-
-    @Override
     protected void showDialog(Bundle state) {
-        setShowPassword();
-        if (mShowPassword) {
-            setDialogMessage(getContext().getString(R.string.messageCallBarring));
-        } else {
-            setDialogMessage(mIsActivated ? mDialogMessageEnabled : mDialogMessageDisabled);
-        }
-
-        if (DBG) {
-            Log.d(LOG_TAG, "showDialog: mShowPassword: " + mShowPassword
-                    + ", mIsActivated: " + mIsActivated);
-        }
-
+        setDialogMessage(getContext().getString(R.string.messageCallBarring));
         super.showDialog(state);
     }
 
@@ -205,8 +176,7 @@
             editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
             editText.setKeyListener(DigitsKeyListener.getInstance());
 
-            // Hide the input-text-line if the password is not shown.
-            editText.setVisibility(mShowPassword ? View.VISIBLE : View.GONE);
+            editText.setVisibility(View.VISIBLE);
         }
     }
 
@@ -218,17 +188,14 @@
                     + positiveResult);
         }
         if (mButtonClicked != DialogInterface.BUTTON_NEGATIVE) {
-            String password = null;
-            if (mShowPassword) {
-                password = getEditText().getText().toString();
+            String password = getEditText().getText().toString();
 
-                // Check if the password is valid.
-                if (password == null || password.length() != PW_LENGTH) {
-                    Toast.makeText(getContext(),
-                            getContext().getString(R.string.call_barring_right_pwd_number),
-                            Toast.LENGTH_SHORT).show();
-                    return;
-                }
+            // Check if the password is valid.
+            if (password == null || password.length() != PW_LENGTH) {
+                Toast.makeText(getContext(),
+                        getContext().getString(R.string.call_barring_right_pwd_number),
+                        Toast.LENGTH_SHORT).show();
+                return;
             }
 
             if (DBG) {
@@ -236,7 +203,8 @@
             }
             // Send set call barring message to RIL layer.
             mPhone.setCallBarring(mFacility, !mIsActivated, password,
-                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_BARRING), 0);
+                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_BARRING),
+                    CommandsInterface.SERVICE_CLASS_VOICE);
             if (mTcpListener != null) {
                 mTcpListener.onStarted(this, false);
             }
@@ -255,13 +223,6 @@
         notifyDependencyChange(shouldDisableDependents());
     }
 
-    private void setShowPassword() {
-        ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
-        mShowPassword = !(imsPhone != null
-                && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
-                        || imsPhone.isUtEnabled()));
-    }
-
     @Override
     public boolean shouldDisableDependents() {
         return mIsActivated;
@@ -313,16 +274,6 @@
                 pref.mTcpListener.onFinished(pref, false);
             } else {
                 pref.mTcpListener.onFinished(pref, true);
-                ImsPhone imsPhone = pref.mPhone != null
-                        ? (ImsPhone) pref.mPhone.getImsPhone() : null;
-                if (!pref.mShowPassword && (imsPhone == null || !imsPhone.isUtEnabled())) {
-                    // Re-enable password when rejected from NW and modem would perform CSFB
-                    pref.mShowPassword = true;
-                    if (DBG) {
-                        Log.d(LOG_TAG,
-                                "handleGetCallBarringResponse: mShowPassword changed for CSFB");
-                    }
-                }
             }
 
             // Unsuccessful query for call barring.
@@ -377,7 +328,7 @@
                     "",
                     obtainMessage(MESSAGE_GET_CALL_BARRING, 0, MESSAGE_SET_CALL_BARRING,
                             ar.exception),
-                    0);
+                    CommandsInterface.SERVICE_CLASS_VOICE);
         }
     }
 }
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index ea9dd3f..54acaad 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -28,6 +28,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.os.UserManager;
@@ -96,6 +97,7 @@
             "phone_account_settings_preference_screen";
 
     private static final String ENABLE_VIDEO_CALLING_KEY = "button_enable_video_calling";
+    private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
 
     private Phone mPhone;
     private ImsManager mImsMgr;
@@ -227,9 +229,9 @@
                                 startActivity(intent);
                             }
                         };
-                builder.setMessage(getResources().getString(
+                builder.setMessage(getResourcesForSubId().getString(
                                 R.string.enable_video_calling_dialog_msg))
-                        .setNeutralButton(getResources().getString(
+                        .setNeutralButton(getResourcesForSubId().getString(
                                 R.string.enable_video_calling_dialog_settings),
                                 networkSettingsClickListener)
                         .setPositiveButton(android.R.string.ok, null)
@@ -248,7 +250,8 @@
         if (DBG) log("onCreate: Intent is " + getIntent());
 
         // Make sure we are running as an admin user.
-        if (!UserManager.get(this).isAdminUser()) {
+        UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
+        if (!userManager.isAdminUser()) {
             Toast.makeText(this, R.string.call_settings_admin_user_only,
                     Toast.LENGTH_SHORT).show();
             finish();
@@ -256,10 +259,10 @@
         }
 
         mSubscriptionInfoHelper = new SubscriptionInfoHelper(this, getIntent());
-        mSubscriptionInfoHelper.setActionBarTitle(
-                getActionBar(), getResources(), R.string.call_settings_with_label);
         mPhone = mSubscriptionInfoHelper.getPhone();
-        mTelecomManager = TelecomManager.from(this);
+        mSubscriptionInfoHelper.setActionBarTitle(
+                getActionBar(), getResourcesForSubId(), R.string.call_settings_with_label);
+        mTelecomManager = getSystemService(TelecomManager.class);
     }
 
     private void updateImsManager(Phone phone) {
@@ -274,8 +277,8 @@
     }
 
     private void listenPhoneState(boolean listen) {
-        TelephonyManager telephonyManager =
-                (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+        TelephonyManager telephonyManager = getSystemService(TelephonyManager.class)
+                .createForSubscriptionId(mPhone.getSubId());
         telephonyManager.listen(mPhoneStateListener, listen
                 ? PhoneStateListener.LISTEN_CALL_STATE : PhoneStateListener.LISTEN_NONE);
     }
@@ -284,10 +287,7 @@
         @Override
         public void onCallStateChanged(int state, String incomingNumber) {
             if (DBG) log("PhoneStateListener onCallStateChanged: state is " + state);
-            // Use TelecomManager#getCallStete instead of 'state' parameter because it needs
-            // to check the current state of all phone calls.
-            boolean isCallStateIdle =
-                    mTelecomManager.getCallState() == TelephonyManager.CALL_STATE_IDLE;
+            boolean isCallStateIdle = state == TelephonyManager.CALL_STATE_IDLE;
             if (mEnableVideoCalling != null) {
                 mEnableVideoCalling.setEnabled(isCallStateIdle);
             }
@@ -364,7 +364,7 @@
         mButtonAutoRetry = (SwitchPreference) findPreference(BUTTON_RETRY_KEY);
 
         mEnableVideoCalling = (SwitchPreference) findPreference(ENABLE_VIDEO_CALLING_KEY);
-        mButtonWifiCalling = findPreference(getResources().getString(
+        mButtonWifiCalling = findPreference(getResourcesForSubId().getString(
                 R.string.wifi_calling_settings_key));
 
         PersistableBundle carrierConfig =
@@ -401,6 +401,9 @@
                     if (!carrierConfig.getBoolean(
                             CarrierConfigManager.KEY_VOICE_PRIVACY_DISABLE_UI_BOOL)) {
                         addPreferencesFromResource(R.xml.cdma_call_privacy);
+                        CdmaVoicePrivacySwitchPreference buttonVoicePrivacy =
+                                (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
+                        buttonVoicePrivacy.setPhone(mPhone);
                     }
                 } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
                     if (mPhone.getIccCard() == null || !mPhone.getIccCard().getIccFdnAvailable()) {
@@ -477,8 +480,7 @@
         } else if (!mImsMgr.isWfcEnabledByPlatform() || !mImsMgr.isWfcProvisionedOnDevice()) {
             prefSet.removePreference(mButtonWifiCalling);
         } else {
-            String title = SubscriptionManager.getResourcesForSubId(mPhone.getContext(),
-                    mPhone.getSubId()).getString(R.string.wifi_calling);
+            String title = getResourcesForSubId().getString(R.string.wifi_calling);
             mButtonWifiCalling.setTitle(title);
 
             int resId = com.android.internal.R.string.wifi_calling_off_summary;
@@ -500,7 +502,7 @@
                         if (DBG) log("Unexpected WFC mode value: " + wfcMode);
                 }
             }
-            mButtonWifiCalling.setSummary(resId);
+            mButtonWifiCalling.setSummary(getResourcesForSubId().getString(resId));
             Intent intent = mButtonWifiCalling.getIntent();
             if (intent != null) {
                 intent.putExtra(Settings.EXTRA_SUB_ID, mPhone.getSubId());
@@ -562,9 +564,9 @@
         setIntent(newIntent);
 
         mSubscriptionInfoHelper = new SubscriptionInfoHelper(this, getIntent());
-        mSubscriptionInfoHelper.setActionBarTitle(
-                getActionBar(), getResources(), R.string.call_settings_with_label);
         mPhone = mSubscriptionInfoHelper.getPhone();
+        mSubscriptionInfoHelper.setActionBarTitle(
+                getActionBar(), getResourcesForSubId(), R.string.call_settings_with_label);
     }
 
     private static void log(String msg) {
@@ -593,4 +595,12 @@
         activity.startActivity(intent);
         activity.finish();
     }
+
+    private Resources getResourcesForSubId() {
+        if (mPhone != null) {
+            return SubscriptionManager.getResourcesForSubId(mPhone.getContext(), mPhone.getSubId());
+        } else {
+            return getResources();
+        }
+    }
 }
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index 76f17b1..e8cf0d1 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -159,6 +159,7 @@
                     mPhone.setCallForwardingOption(action,
                             reason,
                             number,
+                            mServiceClass,
                             time,
                             mHandler.obtainMessage(MyHandler.MESSAGE_SET_CF,
                                     action,
@@ -216,7 +217,7 @@
      */
     void startCallForwardOptionsQuery() {
         if (!mCallForwardByUssd) {
-            mPhone.getCallForwardingOption(reason,
+            mPhone.getCallForwardingOption(reason, mServiceClass,
                     mHandler.obtainMessage(MyHandler.MESSAGE_GET_CF,
                             // unused in this case
                             CommandsInterface.CF_ACTION_DISABLE,
@@ -359,9 +360,8 @@
                     mTcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
                 }
                 CallForwardInfo cfInfoArray[] = (CallForwardInfo[]) ar.result;
-                if (cfInfoArray.length == 0) {
+                if (cfInfoArray == null || cfInfoArray.length == 0) {
                     Log.d(LOG_TAG, "handleGetCFResponse: cfInfoArray.length==0");
-                    setEnabled(false);
                     mTcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
                 } else {
                     for (int i = 0, length = cfInfoArray.length; i < length; i++) {
@@ -372,6 +372,11 @@
                             CallForwardInfo info = cfInfoArray[i];
                             handleCallForwardResult(info);
 
+                            if (ar.userObj instanceof Throwable) {
+                                Log.d(LOG_TAG, "Skipped duplicated error dialog");
+                                continue;
+                            }
+
                             // Show an alert if we got a success response but
                             // with unexpected values.
                             // Currently only handle the fail-to-disable case
@@ -423,7 +428,7 @@
             }
             Log.d(LOG_TAG, "handleSetCFResponse: re get");
             if (!mCallForwardByUssd) {
-                mPhone.getCallForwardingOption(reason,
+                mPhone.getCallForwardingOption(reason, mServiceClass,
                         obtainMessage(MESSAGE_GET_CF, msg.arg1, MESSAGE_SET_CF, ar.exception));
             } else {
                 mHandler.sendMessage(mHandler.obtainMessage(mHandler.MESSAGE_GET_CF_USSD,
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index 7db17ff..6c18623 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -21,6 +21,7 @@
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.media.AudioManager;
+import android.media.AudioSystem;
 import android.media.ToneGenerator;
 import android.os.AsyncResult;
 import android.os.Handler;
@@ -392,10 +393,10 @@
             try {
                 int stream;
                 if (mBluetoothHeadset != null) {
-                    stream = mBluetoothHeadset.isAudioOn() ? AudioManager.STREAM_BLUETOOTH_SCO:
-                        AudioManager.STREAM_VOICE_CALL;
+                    stream = isBluetoothAudioOn() ? AudioSystem.STREAM_BLUETOOTH_SCO :
+                            AudioSystem.STREAM_VOICE_CALL;
                 } else {
-                    stream = AudioManager.STREAM_VOICE_CALL;
+                    stream = AudioSystem.STREAM_VOICE_CALL;
                 }
                 toneGenerator = new ToneGenerator(stream, toneVolume);
                 // if (DBG) log("- created toneGenerator: " + toneGenerator);
@@ -479,6 +480,11 @@
         }
     }
 
+    // Returns whether there are any connected Bluetooth audio devices
+    private boolean isBluetoothAudioOn() {
+        return mBluetoothHeadset.getConnectedDevices().size() > 0;
+    }
+
     /**
      * Displays a notification when the phone receives a DisplayInfo record.
      */
@@ -553,7 +559,8 @@
 
     public void updatePhoneStateListeners(boolean isRefresh, int updateType, int subIdToUpdate) {
         List<SubscriptionInfo> subInfos = SubscriptionController.getInstance()
-                .getActiveSubscriptionInfoList(mApplication.getOpPackageName());
+                .getActiveSubscriptionInfoList(mApplication.getOpPackageName(),
+                        mApplication.getAttributionTag());
 
         // Sort sub id list based on slot id, so that CFI/MWI notifications will be updated for
         // slot 0 first then slot 1. This is needed to ensure that when CFI or MWI is enabled for
@@ -610,7 +617,7 @@
         for (int i = 0; i < subInfos.size(); i++) {
             int subId = subInfos.get(i).getSubscriptionId();
             if (!mPhoneStateListeners.containsKey(subId)) {
-                CallNotifierPhoneStateListener listener = new CallNotifierPhoneStateListener();
+                CallNotifierPhoneStateListener listener = new CallNotifierPhoneStateListener(subId);
                 mTelephonyManager.createForSubscriptionId(subId).listen(listener,
                         PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR
                         | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR);
@@ -762,8 +769,11 @@
             };
 
     private class CallNotifierPhoneStateListener extends PhoneStateListener {
-        public CallNotifierPhoneStateListener() {
+        private final int mSubId;
+
+        CallNotifierPhoneStateListener(int subId) {
             super();
+            this.mSubId = subId;
         }
 
         @Override
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 36f14b7..866e481 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2015, The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,7 +20,8 @@
 import static android.service.carrier.CarrierService.ICarrierServiceWrapper.RESULT_ERROR;
 
 import android.annotation.NonNull;
-import android.app.ActivityManager;
+import android.annotation.Nullable;
+import android.app.AppOpsManager;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -37,9 +38,9 @@
 import android.os.IBinder;
 import android.os.Message;
 import android.os.PersistableBundle;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
-import android.os.ServiceManager;
 import android.os.UserHandle;
 import android.preference.PreferenceManager;
 import android.service.carrier.CarrierIdentifier;
@@ -47,7 +48,10 @@
 import android.service.carrier.ICarrierService;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyFrameworkInitializer;
 import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.ArraySet;
 import android.util.LocalLog;
 import android.util.Log;
 
@@ -57,14 +61,9 @@
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.SubscriptionInfoUpdater;
 import com.android.internal.telephony.TelephonyPermissions;
-import com.android.internal.util.ArrayUtils;
-import com.android.internal.util.FastXmlSerializer;
+import com.android.internal.telephony.util.ArrayUtils;
 import com.android.internal.util.IndentingPrintWriter;
 
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-import org.xmlpull.v1.XmlPullParserFactory;
-
 import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
@@ -77,11 +76,11 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 
 /**
  * CarrierConfigLoader binds to privileged carrier apps to fetch carrier config overlays.
  */
-
 public class CarrierConfigLoader extends ICarrierConfigLoader.Stub {
     private static final String LOG_TAG = "CarrierConfigLoader";
 
@@ -96,14 +95,18 @@
     private PersistableBundle[] mConfigFromDefaultApp;
     // Carrier configs from privileged carrier config app, indexed by phoneID.
     private PersistableBundle[] mConfigFromCarrierApp;
+    // Persistent Carrier configs that are provided via the override test API, indexed by phone ID.
+    private PersistableBundle[] mPersistentOverrideConfigs;
     // Carrier configs that are provided via the override test API, indexed by phone ID.
     private PersistableBundle[] mOverrideConfigs;
     // Service connection for binding to config app.
     private CarrierServiceConnection[] mServiceConnection;
     // Whether we are bound to a service for each phone
     private boolean[] mServiceBound;
-    // Whether we have sent config change bcast for each phone id.
+    // Whether we have sent config change broadcast for each phone id.
     private boolean[] mHasSentConfigChange;
+    // Whether the broadcast was sent from EVENT_SYSTEM_UNLOCKED, to track rebroadcasts
+    private boolean[] mFromSystemUnlocked;
     // SubscriptionInfoUpdater
     private final SubscriptionInfoUpdater mSubscriptionInfoUpdater;
 
@@ -111,7 +114,7 @@
     private final BroadcastReceiver mBootReceiver = new ConfigLoaderBroadcastReceiver();
     // Broadcast receiver for SIM and pkg intents, register intent filter in constructor.
     private final BroadcastReceiver mPackageReceiver = new ConfigLoaderBroadcastReceiver();
-    private final LocalLog mCarrierConfigLoadingLog = new LocalLog(50);
+    private final LocalLog mCarrierConfigLoadingLog = new LocalLog(100);
 
 
     // Message codes; see mHandler below.
@@ -145,17 +148,25 @@
     private static final int EVENT_FETCH_CARRIER_TIMEOUT = 15;
     // SubscriptionInfoUpdater has finished updating the sub for the carrier config.
     private static final int EVENT_SUBSCRIPTION_INFO_UPDATED = 16;
+    // Multi-SIM config changed.
+    private static final int EVENT_MULTI_SIM_CONFIG_CHANGED = 17;
 
     private static final int BIND_TIMEOUT_MILLIS = 30000;
 
-    // Tags used for saving and restoring XML documents.
-    private static final String TAG_DOCUMENT = "carrier_config";
-    private static final String TAG_VERSION = "package_version";
-    private static final String TAG_BUNDLE = "bundle_data";
+    // Keys used for saving and restoring config bundle from file.
+    private static final String KEY_VERSION = "__carrier_config_package_version__";
+
+    private static final String OVERRIDE_PACKAGE_ADDITION = "-override";
 
     // SharedPreferences key for last known build fingerprint.
     private static final String KEY_FINGERPRINT = "build_fingerprint";
 
+    // Argument for #dump that indicates we should also call the default and specified carrier
+    // service's #dump method. In multi-SIM devices, it's possible that carrier A is on SIM 1 and
+    // carrier B is on SIM 2, in which case we should not dump carrier B's service when carrier A
+    // requested the dump.
+    private static final String DUMP_ARG_REQUESTING_PACKAGE = "--requesting-package";
+
     // Handler to process various events.
     //
     // For each phoneId, the event sequence should be:
@@ -177,58 +188,62 @@
         @Override
         public void handleMessage(Message msg) {
             final int phoneId = msg.arg1;
-            logWithLocalLog("mHandler: " + msg.what + " phoneId: " + phoneId);
+            logdWithLocalLog("mHandler: " + msg.what + " phoneId: " + phoneId);
+            if (!SubscriptionManager.isValidPhoneId(phoneId)
+                    && msg.what != EVENT_MULTI_SIM_CONFIG_CHANGED) {
+                return;
+            }
             switch (msg.what) {
-                case EVENT_CLEAR_CONFIG:
-                {
-                    /* Ignore clear configuration request if device is being shutdown. */
-                    Phone phone = PhoneFactory.getPhone(phoneId);
-                    if (phone != null) {
-                        if (phone.isShuttingDown()) {
-                            break;
-                        }
-                    }
-
-                    mConfigFromDefaultApp[phoneId] = null;
-                    mConfigFromCarrierApp[phoneId] = null;
-                    mServiceConnection[phoneId] = null;
-                    broadcastConfigChangedIntent(phoneId, false);
+                case EVENT_CLEAR_CONFIG: {
+                    clearConfigForPhone(phoneId, true);
                     break;
                 }
 
-                case EVENT_SYSTEM_UNLOCKED:
-                {
-                    for (int i = 0; i < TelephonyManager.from(mContext).getPhoneCount(); ++i) {
-                        // When user unlock device, we should only try to send broadcast again if we
-                        // have sent it before unlock. This will avoid we try to load carrier config
-                        // when SIM is still loading when unlock happens.
+                case EVENT_SYSTEM_UNLOCKED: {
+                    for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount();
+                            ++i) {
+                        // When the user unlocks the device, send the broadcast again (with a
+                        // rebroadcast extra) if we have sent it before unlock. This will avoid
+                        // trying to load the carrier config when the SIM is still loading when the
+                        // unlock happens.
                         if (mHasSentConfigChange[i]) {
+                            logdWithLocalLog("System unlocked");
+                            mFromSystemUnlocked[i] = true;
                             updateConfigForPhoneId(i);
                         }
                     }
                     break;
                 }
 
-                case EVENT_PACKAGE_CHANGED:
-                {
+                case EVENT_PACKAGE_CHANGED: {
                     final String carrierPackageName = (String) msg.obj;
                     // Only update if there are cached config removed to avoid updating config for
                     // unrelated packages.
                     if (clearCachedConfigForPackage(carrierPackageName)) {
-                        int numPhones = TelephonyManager.from(mContext).getPhoneCount();
+                        int numPhones = TelephonyManager.from(mContext).getActiveModemCount();
                         for (int i = 0; i < numPhones; ++i) {
+                            logdWithLocalLog("Package changed: " + carrierPackageName
+                                    + ", phone=" + i);
                             updateConfigForPhoneId(i);
                         }
                     }
                     break;
                 }
 
-                case EVENT_DO_FETCH_DEFAULT:
-                {
-                    final PersistableBundle config =
-                            restoreConfigFromXml(mPlatformCarrierConfigPackage, phoneId);
+                case EVENT_DO_FETCH_DEFAULT: {
+                    // Restore persistent override values.
+                    PersistableBundle config = restoreConfigFromXml(
+                            mPlatformCarrierConfigPackage, OVERRIDE_PACKAGE_ADDITION, phoneId);
                     if (config != null) {
-                        log(
+                        logd("Loaded persistent override config from XML. package="
+                                + mPlatformCarrierConfigPackage
+                                + " phoneId=" + phoneId);
+                        mPersistentOverrideConfigs[phoneId] = config;
+                    }
+
+                    config = restoreConfigFromXml(mPlatformCarrierConfigPackage, "", phoneId);
+                    if (config != null) {
+                        logd(
                                 "Loaded config from XML. package="
                                         + mPlatformCarrierConfigPackage
                                         + " phoneId="
@@ -258,8 +273,7 @@
                     break;
                 }
 
-                case EVENT_CONNECTED_TO_DEFAULT:
-                {
+                case EVENT_CONNECTED_TO_DEFAULT: {
                     removeMessages(EVENT_BIND_DEFAULT_TIMEOUT);
                     final CarrierServiceConnection conn = (CarrierServiceConnection) msg.obj;
                     // If new service connection has been created, unbind.
@@ -288,8 +302,8 @@
                                     }
                                     PersistableBundle config =
                                             resultData.getParcelable(KEY_CONFIG_BUNDLE);
-                                    saveConfigToXml(mPlatformCarrierConfigPackage, phoneId,
-                                        carrierId, config);
+                                    saveConfigToXml(mPlatformCarrierConfigPackage, "", phoneId,
+                                            carrierId, config);
                                     mConfigFromDefaultApp[phoneId] = config;
                                     sendMessage(
                                             obtainMessage(
@@ -301,7 +315,7 @@
                         ICarrierService carrierService =
                                 ICarrierService.Stub.asInterface(conn.service);
                         carrierService.getCarrierConfig(carrierId, resultReceiver);
-                        logWithLocalLog("fetch config for default app: "
+                        logdWithLocalLog("Fetch config for default app: "
                                 + mPlatformCarrierConfigPackage
                                 + " carrierid: " + carrierId.toString());
                     } catch (RemoteException e) {
@@ -317,9 +331,8 @@
                 }
 
                 case EVENT_BIND_DEFAULT_TIMEOUT:
-                case EVENT_FETCH_DEFAULT_TIMEOUT:
-                {
-                    loge("bind/fetch time out from " + mPlatformCarrierConfigPackage);
+                case EVENT_FETCH_DEFAULT_TIMEOUT: {
+                    loge("Bind/fetch time out from " + mPlatformCarrierConfigPackage);
                     removeMessages(EVENT_FETCH_DEFAULT_TIMEOUT);
                     // If we attempted to bind to the app, but the service connection is null due to
                     // the race condition that clear config event happens before bind/fetch complete
@@ -327,15 +340,14 @@
                     if (mServiceConnection[phoneId] != null) {
                         // If a ResponseReceiver callback is in the queue when this happens, we will
                         // unbind twice and throw an exception.
-                        mContext.unbindService(mServiceConnection[phoneId]);
+                        unbindIfBound(mContext, mServiceConnection[phoneId], phoneId);
                         broadcastConfigChangedIntent(phoneId);
                     }
                     notifySubscriptionInfoUpdater(phoneId);
                     break;
                 }
 
-                case EVENT_FETCH_DEFAULT_DONE:
-                {
+                case EVENT_FETCH_DEFAULT_DONE: {
                     // If we attempted to bind to the app, but the service connection is null, then
                     // config was cleared while we were waiting and we should not continue.
                     if (!msg.getData().getBoolean("loaded_from_xml", false)
@@ -344,7 +356,7 @@
                     }
                     final String carrierPackageName = getCarrierPackageForPhoneId(phoneId);
                     if (carrierPackageName != null) {
-                        log("Found carrier config app: " + carrierPackageName);
+                        logd("Found carrier config app: " + carrierPackageName);
                         sendMessage(obtainMessage(EVENT_DO_FETCH_CARRIER, phoneId, -1));
                     } else {
                         notifySubscriptionInfoUpdater(phoneId);
@@ -352,13 +364,12 @@
                     break;
                 }
 
-                case EVENT_DO_FETCH_CARRIER:
-                {
+                case EVENT_DO_FETCH_CARRIER: {
                     final String carrierPackageName = getCarrierPackageForPhoneId(phoneId);
                     final PersistableBundle config =
-                            restoreConfigFromXml(carrierPackageName, phoneId);
+                            restoreConfigFromXml(carrierPackageName, "", phoneId);
                     if (config != null) {
-                        log(
+                        logd(
                                 "Loaded config from XML. package="
                                         + carrierPackageName
                                         + " phoneId="
@@ -369,26 +380,22 @@
                         sendMessage(newMsg);
                     } else {
                         // No cached config, so fetch it from a carrier app.
-                        if (carrierPackageName != null
-                                && bindToConfigPackage(
-                                        carrierPackageName,
-                                        phoneId,
-                                        EVENT_CONNECTED_TO_CARRIER)) {
+                        if (carrierPackageName != null && bindToConfigPackage(carrierPackageName,
+                                phoneId, EVENT_CONNECTED_TO_CARRIER)) {
                             sendMessageDelayed(
                                     obtainMessage(EVENT_BIND_CARRIER_TIMEOUT, phoneId, -1),
                                     BIND_TIMEOUT_MILLIS);
                         } else {
                             // Send broadcast if bind fails.
                             broadcastConfigChangedIntent(phoneId);
-                            loge("bind to carrier app: " + carrierPackageName + " fails");
+                            loge("Bind to carrier app: " + carrierPackageName + " fails");
                             notifySubscriptionInfoUpdater(phoneId);
                         }
                     }
                     break;
                 }
 
-                case EVENT_CONNECTED_TO_CARRIER:
-                {
+                case EVENT_CONNECTED_TO_CARRIER: {
                     removeMessages(EVENT_BIND_CARRIER_TIMEOUT);
                     final CarrierServiceConnection conn = (CarrierServiceConnection) msg.obj;
                     // If new service connection has been created, unbind.
@@ -419,8 +426,8 @@
                                     }
                                     PersistableBundle config =
                                             resultData.getParcelable(KEY_CONFIG_BUNDLE);
-                                    saveConfigToXml(getCarrierPackageForPhoneId(phoneId), phoneId,
-                                        carrierId, config);
+                                    saveConfigToXml(getCarrierPackageForPhoneId(phoneId), "",
+                                            phoneId, carrierId, config);
                                     mConfigFromCarrierApp[phoneId] = config;
                                     sendMessage(
                                             obtainMessage(
@@ -432,7 +439,7 @@
                         ICarrierService carrierService =
                                 ICarrierService.Stub.asInterface(conn.service);
                         carrierService.getCarrierConfig(carrierId, resultReceiver);
-                        logWithLocalLog("fetch config for carrier app: "
+                        logdWithLocalLog("Fetch config for carrier app: "
                                 + getCarrierPackageForPhoneId(phoneId)
                                 + " carrierid: " + carrierId.toString());
                     } catch (RemoteException e) {
@@ -447,9 +454,8 @@
                 }
 
                 case EVENT_BIND_CARRIER_TIMEOUT:
-                case EVENT_FETCH_CARRIER_TIMEOUT:
-                {
-                    loge("bind/fetch from carrier app timeout");
+                case EVENT_FETCH_CARRIER_TIMEOUT: {
+                    loge("Bind/fetch from carrier app timeout");
                     removeMessages(EVENT_FETCH_CARRIER_TIMEOUT);
                     // If we attempted to bind to the app, but the service connection is null due to
                     // the race condition that clear config event happens before bind/fetch complete
@@ -463,8 +469,7 @@
                     notifySubscriptionInfoUpdater(phoneId);
                     break;
                 }
-                case EVENT_FETCH_CARRIER_DONE:
-                {
+                case EVENT_FETCH_CARRIER_DONE: {
                     // If we attempted to bind to the app, but the service connection is null, then
                     // config was cleared while we were waiting and we should not continue.
                     if (!msg.getData().getBoolean("loaded_from_xml", false)
@@ -475,13 +480,12 @@
                     break;
                 }
 
-                case EVENT_CHECK_SYSTEM_UPDATE:
-                {
+                case EVENT_CHECK_SYSTEM_UPDATE: {
                     SharedPreferences sharedPrefs =
                             PreferenceManager.getDefaultSharedPreferences(mContext);
                     final String lastFingerprint = sharedPrefs.getString(KEY_FINGERPRINT, null);
                     if (!Build.FINGERPRINT.equals(lastFingerprint)) {
-                        log(
+                        logd(
                                 "Build fingerprint changed. old: "
                                         + lastFingerprint
                                         + " new: "
@@ -498,6 +502,9 @@
                 case EVENT_SUBSCRIPTION_INFO_UPDATED:
                     broadcastConfigChangedIntent(phoneId);
                     break;
+                case EVENT_MULTI_SIM_CONFIG_CHANGED:
+                    onMultiSimConfigChanged();
+                    break;
             }
         }
     }
@@ -525,18 +532,21 @@
         pkgFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
         pkgFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
         pkgFilter.addDataScheme("package");
-        context.registerReceiverAsUser(mPackageReceiver, UserHandle.ALL, pkgFilter, null, null);
+        context.registerReceiver(mPackageReceiver, pkgFilter);
 
-        int numPhones = TelephonyManager.from(context).getPhoneCount();
+        int numPhones = TelephonyManager.from(context).getSupportedModemCount();
         mConfigFromDefaultApp = new PersistableBundle[numPhones];
         mConfigFromCarrierApp = new PersistableBundle[numPhones];
+        mPersistentOverrideConfigs = new PersistableBundle[numPhones];
         mOverrideConfigs = new PersistableBundle[numPhones];
         mServiceConnection = new CarrierServiceConnection[numPhones];
         mServiceBound = new boolean[numPhones];
         mHasSentConfigChange = new boolean[numPhones];
+        mFromSystemUnlocked = new boolean[numPhones];
         // Make this service available through ServiceManager.
-        ServiceManager.addService(Context.CARRIER_CONFIG_SERVICE, this);
-        log("CarrierConfigLoader has started");
+        TelephonyFrameworkInitializer
+                .getTelephonyServiceManager().getCarrierConfigServiceRegisterer().register(this);
+        logd("CarrierConfigLoader has started");
         mSubscriptionInfoUpdater = PhoneFactory.getSubscriptionInfoUpdater();
         mHandler.sendEmptyMessage(EVENT_CHECK_SYSTEM_UPDATE);
     }
@@ -558,6 +568,23 @@
         }
     }
 
+    private void clearConfigForPhone(int phoneId, boolean sendBroadcast) {
+        /* Ignore clear configuration request if device is being shutdown. */
+        Phone phone = PhoneFactory.getPhone(phoneId);
+        if (phone != null) {
+            if (phone.isShuttingDown()) {
+                return;
+            }
+        }
+
+        mConfigFromDefaultApp[phoneId] = null;
+        mConfigFromCarrierApp[phoneId] = null;
+        mServiceConnection[phoneId] = null;
+        mHasSentConfigChange[phoneId] = false;
+
+        if (sendBroadcast) broadcastConfigChangedIntent(phoneId, false);
+    }
+
     private void notifySubscriptionInfoUpdater(int phoneId) {
         String configPackagename;
         PersistableBundle configToSend;
@@ -571,6 +598,18 @@
             configPackagename = mPlatformCarrierConfigPackage;
             configToSend = mConfigFromDefaultApp[phoneId];
         }
+
+        if (configToSend == null) {
+            configToSend = new PersistableBundle();
+        }
+
+        // mOverrideConfigs is for testing. And it will override current configs.
+        PersistableBundle config = mOverrideConfigs[phoneId];
+        if (config != null) {
+            configToSend = new PersistableBundle(configToSend);
+            configToSend.putAll(config);
+        }
+
         mSubscriptionInfoUpdater.updateSubscriptionByCarrierConfigAndNotifyComplete(
                 phoneId, configPackagename, configToSend,
                 mHandler.obtainMessage(EVENT_SUBSCRIPTION_INFO_UPDATED, phoneId, -1));
@@ -583,7 +622,6 @@
     private void broadcastConfigChangedIntent(int phoneId, boolean addSubIdExtra) {
         Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
         intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT |
-                Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND |
                 Intent.FLAG_RECEIVER_FOREGROUND);
         if (addSubIdExtra) {
             int simApplicationState = TelephonyManager.SIM_STATE_UNKNOWN;
@@ -593,6 +631,8 @@
                         .createForSubscriptionId(subIds[0]);
                 simApplicationState = telMgr.getSimApplicationState();
             }
+            logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId
+                    + " simApplicationState " + simApplicationState);
             // Include subId/carrier id extra only if SIM records are loaded
             if (simApplicationState != TelephonyManager.SIM_STATE_UNKNOWN
                     && simApplicationState != TelephonyManager.SIM_STATE_NOT_READY) {
@@ -603,17 +643,25 @@
             }
         }
         intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, phoneId);
-        log("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
-        ActivityManager.broadcastStickyIntent(intent, UserHandle.USER_ALL);
+        intent.putExtra(CarrierConfigManager.EXTRA_REBROADCAST_ON_UNLOCK,
+                mFromSystemUnlocked[phoneId]);
+        mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
+        int[] subIds = SubscriptionManager.getSubId(phoneId);
+        if (subIds != null && subIds.length > 0) {
+            logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId + ", subId=" + subIds[0]);
+        } else {
+            logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
+        }
         mHasSentConfigChange[phoneId] = true;
+        mFromSystemUnlocked[phoneId] = false;
     }
 
     /** Binds to the default or carrier config app. */
     private boolean bindToConfigPackage(String pkgName, int phoneId, int eventId) {
-        logWithLocalLog("Binding to " + pkgName + " for phone " + phoneId);
+        logdWithLocalLog("Binding to " + pkgName + " for phone " + phoneId);
         Intent carrierService = new Intent(CarrierService.CARRIER_SERVICE_INTERFACE);
         carrierService.setPackage(pkgName);
-        mServiceConnection[phoneId] = new CarrierServiceConnection(phoneId, eventId);
+        mServiceConnection[phoneId] = new CarrierServiceConnection(phoneId, pkgName, eventId);
         try {
             if (mContext.bindService(carrierService, mServiceConnection[phoneId],
                     Context.BIND_AUTO_CREATE)) {
@@ -720,12 +768,13 @@
      * In case of errors or invalid input, no file will be written.
      *
      * @param packageName the name of the package from which we fetched this bundle.
-     * @param phoneId the phone ID.
-     * @param carrierId contains all carrier-identifying information.
-     * @param config the bundle to be written. Null will be treated as an empty bundle.
+     * @param extraString An extra string to be used in the XML file name.
+     * @param phoneId     the phone ID.
+     * @param carrierId   contains all carrier-identifying information.
+     * @param config      the bundle to be written. Null will be treated as an empty bundle.
      */
-    private void saveConfigToXml(String packageName, int phoneId, CarrierIdentifier carrierId,
-        PersistableBundle config) {
+    private void saveConfigToXml(String packageName, @NonNull String extraString, int phoneId,
+            CarrierIdentifier carrierId, PersistableBundle config) {
         if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
                 != TelephonyManager.SIM_STATE_LOADED) {
             loge("Skip save config because SIM records are not loaded.");
@@ -753,32 +802,19 @@
             return;
         }
 
-        logWithLocalLog("save config to xml, packagename: " + packageName + " phoneId: " + phoneId);
+        logdWithLocalLog(
+                "Save config to xml, packagename: " + packageName + " phoneId: " + phoneId);
 
         FileOutputStream outFile = null;
         try {
             outFile = new FileOutputStream(
                     new File(mContext.getFilesDir(),
-                            getFilenameForConfig(packageName, iccid, cid)));
-            FastXmlSerializer out = new FastXmlSerializer();
-            out.setOutput(outFile, "utf-8");
-            out.startDocument("utf-8", true);
-            out.startTag(null, TAG_DOCUMENT);
-            out.startTag(null, TAG_VERSION);
-            out.text(version);
-            out.endTag(null, TAG_VERSION);
-            out.startTag(null, TAG_BUNDLE);
-            config.saveToXml(out);
-            out.endTag(null, TAG_BUNDLE);
-            out.endTag(null, TAG_DOCUMENT);
-            out.endDocument();
-            out.flush();
+                            getFilenameForConfig(packageName, extraString, iccid, cid)));
+            config.putString(KEY_VERSION, version);
+            config.writeToStream(outFile);
+            outFile.flush();
             outFile.close();
-        }
-        catch (IOException e) {
-            loge(e.toString());
-        }
-        catch (XmlPullParserException e) {
+        } catch (IOException e) {
             loge(e.toString());
         }
     }
@@ -793,11 +829,13 @@
      * current version, then null will be returned.
      *
      * @param packageName the name of the package from which we fetched this bundle.
-     * @param phoneId the phone ID.
+     * @param extraString An extra string to be used in the XML file name.
+     * @param phoneId     the phone ID.
      * @return the bundle from the XML file. Returns null if there is no saved config, the saved
-     *         version does not match, or reading config fails.
+     * version does not match, or reading config fails.
      */
-    private PersistableBundle restoreConfigFromXml(String packageName, int phoneId) {
+    private PersistableBundle restoreConfigFromXml(String packageName, @NonNull String extraString,
+            int phoneId) {
         final String version = getPackageVersion(packageName);
         if (version == null) {
             loge("Failed to get package version for: " + packageName);
@@ -817,38 +855,28 @@
         }
 
         PersistableBundle restoredBundle = null;
+        File file = null;
         FileInputStream inFile = null;
         try {
-            inFile = new FileInputStream(
-                    new File(mContext.getFilesDir(),
-                            getFilenameForConfig(packageName, iccid, cid)));
-            XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
-            parser.setInput(inFile, "utf-8");
+            file = new File(mContext.getFilesDir(),
+                    getFilenameForConfig(packageName, extraString, iccid, cid));
+            inFile = new FileInputStream(file);
 
-            int event;
-            while (((event = parser.next()) != XmlPullParser.END_DOCUMENT)) {
+            restoredBundle = PersistableBundle.readFromStream(inFile);
+            String savedVersion = restoredBundle.getString(KEY_VERSION);
+            restoredBundle.remove(KEY_VERSION);
 
-                if (event == XmlPullParser.START_TAG && TAG_VERSION.equals(parser.getName())) {
-                    String savedVersion = parser.nextText();
-                    if (!version.equals(savedVersion)) {
-                        loge("Saved version mismatch: " + version + " vs " + savedVersion);
-                        break;
-                    }
-                }
-
-                if (event == XmlPullParser.START_TAG && TAG_BUNDLE.equals(parser.getName())) {
-                    restoredBundle = PersistableBundle.restoreFromXml(parser);
-                }
+            if (!version.equals(savedVersion)) {
+                loge("Saved version mismatch: " + version + " vs " + savedVersion);
+                restoredBundle = null;
             }
+
             inFile.close();
-        }
-        catch (FileNotFoundException e) {
-            loge(e.toString());
-        }
-        catch (XmlPullParserException e) {
-            loge(e.toString());
-        }
-        catch (IOException e) {
+        } catch (FileNotFoundException e) {
+            // Missing file is normal occurrence that might occur with a new sim or when restoring
+            // an override file during boot and should not be treated as an error.
+            if (file != null) logd("File not found: " + file.getPath());
+        } catch (IOException e) {
             loge(e.toString());
         }
 
@@ -877,20 +905,20 @@
         });
         if (packageFiles == null || packageFiles.length < 1) return false;
         for (File f : packageFiles) {
-            log("deleting " + f.getName());
+            logd("Deleting " + f.getName());
             f.delete();
         }
         return true;
     }
 
     /** Builds a canonical file name for a config file. */
-    private String getFilenameForConfig(@NonNull String packageName, @NonNull String iccid,
-                                        int cid) {
+    private String getFilenameForConfig(@NonNull String packageName, @NonNull String extraString,
+            @NonNull String iccid, int cid) {
         // the same carrier should have a single copy of XML file named after carrier id.
         // However, it's still possible that platform doesn't recognize the current sim carrier,
         // we will use iccid + carrierid as the canonical file name. carrierid can also handle the
         // cases SIM OTA resolves to different carrier while iccid remains the same.
-        return "carrierconfig-" + packageName + "-" + iccid + "-" + cid + ".xml";
+        return "carrierconfig-" + packageName + extraString + "-" + iccid + "-" + cid + ".xml";
     }
 
     /** Return the current version code of a package, or null if the name is not found. */
@@ -920,10 +948,25 @@
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_DO_FETCH_DEFAULT, phoneId, -1));
     }
 
+    private void onMultiSimConfigChanged() {
+        for (int i = TelephonyManager.from(mContext).getActiveModemCount();
+                i < mConfigFromDefaultApp.length; i++) {
+            clearConfigForPhone(i, false);
+        }
+    }
+
     @Override
-    public @NonNull PersistableBundle getConfigForSubId(int subId, String callingPackage) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mContext, subId, callingPackage, "getCarrierConfig")) {
+    @NonNull
+    public PersistableBundle getConfigForSubId(int subId, String callingPackage) {
+        return getConfigForSubIdWithFeature(subId, callingPackage, null);
+    }
+
+    @Override
+    @NonNull
+    public PersistableBundle getConfigForSubIdWithFeature(int subId, String callingPackage,
+            String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mContext, subId, callingPackage,
+                callingFeatureId, "getCarrierConfig")) {
             return new PersistableBundle();
         }
 
@@ -933,49 +976,77 @@
             PersistableBundle config = mConfigFromDefaultApp[phoneId];
             if (config != null) {
                 retConfig.putAll(config);
-                retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
+                if (getCarrierPackageForPhoneId(phoneId) == null) {
+                    retConfig.putBoolean(
+                            CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
+                }
             }
             config = mConfigFromCarrierApp[phoneId];
             if (config != null) {
                 retConfig.putAll(config);
                 retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
             }
+            config = mPersistentOverrideConfigs[phoneId];
+            if (config != null) {
+                retConfig.putAll(config);
+                retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
+            }
             config = mOverrideConfigs[phoneId];
             if (config != null) {
                 retConfig.putAll(config);
-                retConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
             }
         }
         return retConfig;
     }
 
     @Override
-    public void overrideConfig(int subscriptionId, PersistableBundle overrides) {
+    public void overrideConfig(int subscriptionId, @Nullable PersistableBundle overrides,
+            boolean persistent) {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.MODIFY_PHONE_STATE, null);
         //TODO: Also check for SHELL UID to restrict this method to testing only (b/131326259)
         int phoneId = SubscriptionManager.getPhoneId(subscriptionId);
         if (!SubscriptionManager.isValidPhoneId(phoneId)) {
-            log("Ignore invalid phoneId: " + phoneId + " for subId: " + subscriptionId);
+            logd("Ignore invalid phoneId: " + phoneId + " for subId: " + subscriptionId);
             return;
         }
+        overrideConfig(mOverrideConfigs, phoneId, overrides);
 
-        if (overrides == null) {
-            mOverrideConfigs[phoneId] = new PersistableBundle();
-        } else if (mOverrideConfigs[phoneId] == null) {
-            mOverrideConfigs[phoneId] = overrides;
-        } else {
-            mOverrideConfigs[phoneId].putAll(overrides);
+        if (persistent) {
+            overrideConfig(mPersistentOverrideConfigs, phoneId, overrides);
+
+            if (overrides != null) {
+                final CarrierIdentifier carrierId = getCarrierIdentifierForPhoneId(phoneId);
+                saveConfigToXml(mPlatformCarrierConfigPackage, OVERRIDE_PACKAGE_ADDITION, phoneId,
+                        carrierId, mPersistentOverrideConfigs[phoneId]);
+            } else {
+                final String iccid = getIccIdForPhoneId(phoneId);
+                final int cid = getSpecificCarrierIdForPhoneId(phoneId);
+                String fileName = getFilenameForConfig(mPlatformCarrierConfigPackage,
+                        OVERRIDE_PACKAGE_ADDITION, iccid, cid);
+                File fileToDelete = new File(mContext.getFilesDir(), fileName);
+                fileToDelete.delete();
+            }
         }
-
         notifySubscriptionInfoUpdater(phoneId);
     }
 
+    private void overrideConfig(@NonNull PersistableBundle[] currentOverrides, int phoneId,
+            @Nullable PersistableBundle overrides) {
+        if (overrides == null) {
+            currentOverrides[phoneId] = new PersistableBundle();
+        } else if (currentOverrides[phoneId] == null) {
+            currentOverrides[phoneId] = overrides;
+        } else {
+            currentOverrides[phoneId].putAll(overrides);
+        }
+    }
+
     @Override
     public void notifyConfigChangedForSubId(int subId) {
         int phoneId = SubscriptionManager.getPhoneId(subId);
         if (!SubscriptionManager.isValidPhoneId(phoneId)) {
-            log("Ignore invalid phoneId: " + phoneId + " for subId: " + subId);
+            logd("Ignore invalid phoneId: " + phoneId + " for subId: " + subId);
             return;
         }
 
@@ -997,7 +1068,7 @@
     public void updateConfigForPhoneId(int phoneId, String simState) {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.MODIFY_PHONE_STATE, null);
-        logWithLocalLog("update config for phoneId: " + phoneId + " simState: " + simState);
+        logdWithLocalLog("Update config for phoneId: " + phoneId + " simState: " + simState);
         if (!SubscriptionManager.isValidPhoneId(phoneId)) {
             return;
         }
@@ -1007,6 +1078,7 @@
             case IccCardConstants.INTENT_VALUE_ICC_CARD_IO_ERROR:
             case IccCardConstants.INTENT_VALUE_ICC_CARD_RESTRICTED:
             case IccCardConstants.INTENT_VALUE_ICC_UNKNOWN:
+            case IccCardConstants.INTENT_VALUE_ICC_NOT_READY:
                 mHandler.sendMessage(mHandler.obtainMessage(EVENT_CLEAR_CONFIG, phoneId, -1));
                 break;
             case IccCardConstants.INTENT_VALUE_ICC_LOADED:
@@ -1018,45 +1090,84 @@
 
     @Override
     public String getDefaultCarrierServicePackageName() {
+        mContext.enforceCallingOrSelfPermission(
+                android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+                "getDefaultCarrierServicePackageName");
         return mPlatformCarrierConfigPackage;
     }
 
+    private void unbindIfBound(Context context, CarrierServiceConnection conn,
+            int phoneId) {
+        if (mServiceBound[phoneId]) {
+            mServiceBound[phoneId] = false;
+            context.unbindService(conn);
+        }
+    }
+
+    /**
+     * If {@code args} contains {@link #DUMP_ARG_REQUESTING_PACKAGE} and a following package name,
+     * we'll also call {@link IBinder#dump} on the default carrier service (if bound) and the
+     * specified carrier service (if bound). Typically, this is done for connectivity bug reports
+     * where we don't call {@code dumpsys activity service all-non-platform} because that contains
+     * too much info, but we still want to let carrier apps include their diagnostics.
+     */
     @Override
     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        IndentingPrintWriter indentPW = new IndentingPrintWriter(pw, "    ");
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                 != PackageManager.PERMISSION_GRANTED) {
-            pw.println("Permission Denial: can't dump carrierconfig from from pid="
+            indentPW.println("Permission Denial: can't dump carrierconfig from from pid="
                     + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
             return;
         }
-        pw.println("CarrierConfigLoader: " + this);
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
-            pw.println("Phone Id = " + i);
-            // display default values in CarrierConfigManager
-            printConfig(CarrierConfigManager.getDefaultConfig(), pw,
-                    "Default Values from CarrierConfigManager");
-            pw.println("");
-            // display ConfigFromDefaultApp
-            printConfig(mConfigFromDefaultApp[i], pw, "mConfigFromDefaultApp");
-            pw.println("");
-            // display ConfigFromCarrierApp
-            printConfig(mConfigFromCarrierApp[i], pw, "mConfigFromCarrierApp");
-            pw.println("");
-            printConfig(mOverrideConfigs[i], pw, "mOverrideConfigs");
+        String requestingPackage = null;
+        int requestingPackageIndex = ArrayUtils.indexOf(args, DUMP_ARG_REQUESTING_PACKAGE);
+        if (requestingPackageIndex >= 0 && requestingPackageIndex < args.length - 1
+                && !TextUtils.isEmpty(args[requestingPackageIndex + 1])) {
+            requestingPackage = args[requestingPackageIndex + 1];
+            // Throws a SecurityException if the caller is impersonating another app in an effort to
+            // dump extra info (which may contain PII the caller doesn't have a right to).
+            enforceCallerIsSystemOrRequestingPackage(requestingPackage);
         }
 
-        pw.println("CarrierConfigLoadingLog=");
-        mCarrierConfigLoadingLog.dump(fd, pw, args);
+        indentPW.println("CarrierConfigLoader: " + this);
+        for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount(); i++) {
+            indentPW.println("Phone Id = " + i);
+            // display default values in CarrierConfigManager
+            printConfig(CarrierConfigManager.getDefaultConfig(), indentPW,
+                    "Default Values from CarrierConfigManager");
+            // display ConfigFromDefaultApp
+            printConfig(mConfigFromDefaultApp[i], indentPW, "mConfigFromDefaultApp");
+            // display ConfigFromCarrierApp
+            printConfig(mConfigFromCarrierApp[i], indentPW, "mConfigFromCarrierApp");
+            printConfig(mPersistentOverrideConfigs[i], indentPW, "mPersistentOverrideConfigs");
+            printConfig(mOverrideConfigs[i], indentPW, "mOverrideConfigs");
+        }
+
+        indentPW.println("CarrierConfigLoadingLog=");
+        mCarrierConfigLoadingLog.dump(fd, indentPW, args);
+
+        if (requestingPackage != null) {
+            logd("Including default and requesting package " + requestingPackage
+                    + " carrier services in dump");
+            indentPW.println("");
+            indentPW.println("Connected services");
+            dumpCarrierServiceIfBound(fd, indentPW, "Default config package",
+                    mPlatformCarrierConfigPackage, false /* considerCarrierPrivileges */);
+            dumpCarrierServiceIfBound(fd, indentPW, "Requesting package", requestingPackage,
+                    true /* considerCarrierPrivileges */);
+        }
     }
 
-    private void printConfig(PersistableBundle configApp, PrintWriter pw, String name) {
-        IndentingPrintWriter indentPW = new IndentingPrintWriter(pw, "    ");
+    private void printConfig(PersistableBundle configApp, IndentingPrintWriter indentPW,
+            String name) {
+        indentPW.increaseIndent();
         if (configApp == null) {
-            indentPW.increaseIndent();
             indentPW.println(name + " : null ");
+            indentPW.decreaseIndent();
+            indentPW.println("");
             return;
         }
-        indentPW.increaseIndent();
         indentPW.println(name + " : ");
         List<String> sortedKeys = new ArrayList<String>(configApp.keySet());
         Collections.sort(sortedKeys);
@@ -1072,35 +1183,162 @@
                 indentPW.println(key + " = " + configApp.get(key));
             }
         }
+        indentPW.decreaseIndent();
+        indentPW.decreaseIndent();
+        indentPW.decreaseIndent();
+        indentPW.println("");
     }
 
-    private void unbindIfBound(Context context, CarrierServiceConnection conn,
-            int phoneId) {
-        if (mServiceBound[phoneId]) {
-            mServiceBound[phoneId] = false;
-            context.unbindService(conn);
+    /**
+     * Passes without problem when one of these conditions is true:
+     * - The caller is a privileged UID (e.g. for dumpstate.cpp generating a bug report, where the
+     * system knows the true caller plumbed in through the {@link android.os.BugreportManager} API).
+     * - The caller's UID matches the supplied package.
+     *
+     * @throws SecurityException if none of the above conditions are met.
+     */
+    private void enforceCallerIsSystemOrRequestingPackage(String requestingPackage)
+            throws SecurityException {
+        final int callingUid = Binder.getCallingUid();
+        if (callingUid == Process.ROOT_UID || callingUid == Process.SYSTEM_UID
+                || callingUid == Process.SHELL_UID || callingUid == Process.PHONE_UID) {
+            // Bug reports (dumpstate.cpp) run as SHELL, and let some other privileged UIDs through
+            // as well.
+            return;
         }
+        // An app is trying to dump extra detail, block it if they aren't who they claim to be.
+        AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
+        if (appOps == null) {
+            throw new SecurityException("No AppOps");
+        }
+        // Will throw a SecurityException if the UID and package don't match.
+        appOps.checkPackage(callingUid, requestingPackage);
+    }
+
+    /**
+     * Searches for one or more appropriate {@link CarrierService} instances to dump based on the
+     * current connections.
+     *
+     * @param targetPkgName             the target package name to dump carrier services for
+     * @param considerCarrierPrivileges if true, allow a carrier service to be dumped if it shares
+     *                                  carrier privileges with {@code targetPkgName};
+     *                                  otherwise, only dump a carrier service if it is {@code
+     *                                  targetPkgName}
+     */
+    private void dumpCarrierServiceIfBound(FileDescriptor fd, IndentingPrintWriter indentPW,
+            String prefix, String targetPkgName, boolean considerCarrierPrivileges) {
+        // Null package is possible if it's early in the boot process, there was a recent crash, we
+        // loaded the config from XML most recently, or a SIM slot is empty. Carrier apps with
+        // long-lived bindings should typically get dumped here regardless. Even if an app is being
+        // used for multiple phoneIds, we assume that it's smart enough to handle that on its own,
+        // and that in most cases we'd just be dumping duplicate information and bloating a report.
+        indentPW.increaseIndent();
+        indentPW.println(prefix + " : " + targetPkgName);
+        Set<String> dumpedPkgNames = new ArraySet<>(mServiceConnection.length);
+        for (CarrierServiceConnection connection : mServiceConnection) {
+            if (connection == null || !SubscriptionManager.isValidPhoneId(connection.phoneId)
+                    || TextUtils.isEmpty(connection.pkgName)) {
+                continue;
+            }
+            final String servicePkgName = connection.pkgName;
+            // Note: we intentionally ignore system components here because we should NOT match the
+            // shell caller that's typically used for bug reports via non-BugreportManager triggers.
+            final boolean exactPackageMatch = TextUtils.equals(targetPkgName, servicePkgName);
+            final boolean carrierPrivilegesMatch =
+                    considerCarrierPrivileges && hasCarrierPrivileges(targetPkgName,
+                            connection.phoneId);
+            if (!exactPackageMatch && !carrierPrivilegesMatch) continue;
+            // Make sure this service is actually alive before trying to dump it. We don't pay
+            // attention to mServiceBound[connection.phoneId] because typically carrier apps will
+            // request long-lived bindings, and even if we unbind the app, it may still be alive due
+            // to CarrierServiceBindHelper. Pull it out as a reference so even if it gets set to
+            // null within the ServiceConnection during unbinding we can avoid an NPE.
+            final IBinder service = connection.service;
+            if (service == null || !service.isBinderAlive() || !service.pingBinder()) continue;
+            // We've got a live service. Last check is just to make sure we don't dump a package
+            // multiple times.
+            if (!dumpedPkgNames.add(servicePkgName)) continue;
+            if (!exactPackageMatch) {
+                logd(targetPkgName + " has carrier privileges on phoneId " + connection.phoneId
+                        + ", service provided by " + servicePkgName);
+                indentPW.increaseIndent();
+                indentPW.println("Proxy : " + servicePkgName);
+                indentPW.decreaseIndent();
+            }
+            // Flush before we let the app output anything to ensure correct ordering of output.
+            // Internally, Binder#dump calls flush on its printer after finishing so we don't
+            // need to do anything after.
+            indentPW.flush();
+            try {
+                logd("Dumping " + servicePkgName);
+                // We don't need to give the carrier service any args.
+                connection.service.dump(fd, null /* args */);
+                logd("Done with " + servicePkgName);
+            } catch (RemoteException e) {
+                logd("RemoteException from " + servicePkgName, e);
+                indentPW.increaseIndent();
+                indentPW.println("RemoteException");
+                indentPW.increaseIndent();
+                e.printStackTrace(indentPW);
+                indentPW.decreaseIndent();
+                indentPW.decreaseIndent();
+                // We won't retry this package again because now it's in dumpedPkgNames.
+            }
+            indentPW.println("");
+        }
+        if (dumpedPkgNames.isEmpty()) {
+            indentPW.increaseIndent();
+            indentPW.println("Not bound");
+            indentPW.decreaseIndent();
+            indentPW.println("");
+        }
+        indentPW.decreaseIndent();
+    }
+
+    private boolean hasCarrierPrivileges(String pkgName, int phoneId) {
+        int[] subIds = SubscriptionManager.getSubId(phoneId);
+        if (ArrayUtils.isEmpty(subIds)) {
+            return false;
+        }
+        return TelephonyManager.from(mContext).createForSubscriptionId(
+                subIds[0]).checkCarrierPrivilegesForPackage(pkgName)
+                == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
     }
 
     private class CarrierServiceConnection implements ServiceConnection {
-        int phoneId;
-        int eventId;
+        final int phoneId;
+        final String pkgName;
+        final int eventId;
         IBinder service;
 
-        public CarrierServiceConnection(int phoneId, int eventId) {
+        CarrierServiceConnection(int phoneId, String pkgName, int eventId) {
             this.phoneId = phoneId;
+            this.pkgName = pkgName;
             this.eventId = eventId;
         }
 
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
-            log("Connected to config app: " + name.flattenToString());
+            logd("Connected to config app: " + name.flattenToShortString());
             this.service = service;
             mHandler.sendMessage(mHandler.obtainMessage(eventId, phoneId, -1, this));
         }
 
         @Override
         public void onServiceDisconnected(ComponentName name) {
+            logd("Disconnected from config app: " + name.flattenToShortString());
+            this.service = null;
+        }
+
+        @Override
+        public void onBindingDied(ComponentName name) {
+            logd("Binding died from config app: " + name.flattenToShortString());
+            this.service = null;
+        }
+
+        @Override
+        public void onNullBinding(ComponentName name) {
+            logd("Null binding from config app: " + name.flattenToShortString());
             this.service = null;
         }
     }
@@ -1111,8 +1349,9 @@
             String action = intent.getAction();
             boolean replace = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false);
             // If replace is true, only care ACTION_PACKAGE_REPLACED.
-            if (replace && !Intent.ACTION_PACKAGE_REPLACED.equals(action))
+            if (replace && !Intent.ACTION_PACKAGE_REPLACED.equals(action)) {
                 return;
+            }
 
             switch (action) {
                 case Intent.ACTION_BOOT_COMPLETED:
@@ -1134,11 +1373,15 @@
         }
     }
 
-    private void log(String msg) {
+    private void logd(String msg) {
         Log.d(LOG_TAG, msg);
     }
 
-    private void logWithLocalLog(String msg) {
+    private void logd(String msg, Throwable tr) {
+        Log.d(LOG_TAG, msg, tr);
+    }
+
+    private void logdWithLocalLog(String msg) {
         Log.d(LOG_TAG, msg);
         mCarrierConfigLoadingLog.log(msg);
     }
diff --git a/src/com/android/phone/CdmaCallOptions.java b/src/com/android/phone/CdmaCallOptions.java
index acfa496..8513664 100644
--- a/src/com/android/phone/CdmaCallOptions.java
+++ b/src/com/android/phone/CdmaCallOptions.java
@@ -21,7 +21,6 @@
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
 import android.telephony.CarrierConfigManager;
 import android.view.MenuItem;
 
@@ -32,7 +31,7 @@
     private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
 
     private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
-    private SwitchPreference mButtonVoicePrivacy;
+    private CdmaVoicePrivacySwitchPreference mButtonVoicePrivacy;
 
     @Override
     protected void onCreate(Bundle icicle) {
@@ -44,7 +43,8 @@
         subInfoHelper.setActionBarTitle(
                 getActionBar(), getResources(), R.string.labelCdmaMore_with_label);
 
-        mButtonVoicePrivacy = (SwitchPreference) findPreference(BUTTON_VP_KEY);
+        mButtonVoicePrivacy = (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
+        mButtonVoicePrivacy.setPhone(subInfoHelper.getPhone());
         PersistableBundle carrierConfig;
         if (subInfoHelper.hasSubId()) {
             carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
deleted file mode 100644
index 1dc4a09..0000000
--- a/src/com/android/phone/CdmaOptions.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-/**
- * List of Phone-specific settings screens.
- */
-public class CdmaOptions {
-    private static final String LOG_TAG = "CdmaOptions";
-
-    private CarrierConfigManager mCarrierConfigManager;
-    private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
-    private CdmaSubscriptionListPreference mButtonCdmaSubscription;
-    private RestrictedPreference mButtonAPNExpand;
-    private Preference mCategoryAPNExpand;
-    private Preference mButtonCarrierSettings;
-
-    private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
-    private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
-    private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-    private static final String BUTTON_APN_EXPAND_KEY = "button_cdma_apn_key";
-    private static final String CATEGORY_APN_EXPAND_KEY = "category_cdma_apn_key";
-
-    private PreferenceFragment mPrefFragment;
-    private PreferenceScreen mPrefScreen;
-    private int mSubId;
-
-    public CdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen, int subId) {
-        mPrefFragment = prefFragment;
-        mPrefScreen = prefScreen;
-        mPrefFragment.addPreferencesFromResource(R.xml.cdma_options);
-        mCarrierConfigManager = new CarrierConfigManager(prefFragment.getContext());
-
-        // Initialize preferences.
-        mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference) mPrefScreen
-                .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
-        mButtonCdmaSubscription = (CdmaSubscriptionListPreference) mPrefScreen
-                .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
-        mButtonCarrierSettings = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-        mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
-        mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
-
-        updateSubscriptionId(subId);
-    }
-
-    protected void updateSubscriptionId(int subId) {
-        mSubId = subId;
-        int phoneType = TelephonyManager.from(mPrefFragment.getContext())
-                .createForSubscriptionId(mSubId).getPhoneType();
-
-        PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-        // Some CDMA carriers want the APN settings.
-        boolean addAPNExpand = shouldAddApnExpandPreference(phoneType, carrierConfig);
-        boolean addCdmaSubscription =
-                deviceSupportsNvAndRuim();
-        // Read platform settings for carrier settings
-        boolean addCarrierSettings =
-                carrierConfig.getBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-
-        mPrefScreen.addPreference(mButtonCdmaSystemSelect);
-        mButtonCdmaSystemSelect.setEnabled(true);
-
-        // Making no assumptions of whether they are added or removed at this point.
-        // Calling add or remove explicitly to make sure they are updated.
-
-        if (addAPNExpand) {
-            log("update: addAPNExpand");
-            mButtonAPNExpand.setDisabledByAdmin(
-                    MobileNetworkSettings.isDpcApnEnforced(mButtonAPNExpand.getContext())
-                            ? RestrictedLockUtilsInternal.getDeviceOwner(
-                                    mButtonAPNExpand.getContext())
-                            : null);
-            mButtonAPNExpand.setOnPreferenceClickListener(
-                    new Preference.OnPreferenceClickListener() {
-                        @Override
-                        public boolean onPreferenceClick(Preference preference) {
-                            MetricsLogger.action(mButtonAPNExpand.getContext(),
-                                    MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
-                            // We need to build the Intent by hand as the Preference Framework
-                            // does not allow to add an Intent with some extras into a Preference
-                            // XML file
-                            final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
-                            // This will setup the Home and Search affordance
-                            intent.putExtra(":settings:show_fragment_as_subsetting", true);
-                            intent.putExtra("sub_id", mSubId);
-                            mPrefFragment.startActivity(intent);
-                            return true;
-                        }
-                    });
-            mPrefScreen.addPreference(mCategoryAPNExpand);
-        } else {
-            mPrefScreen.removePreference(mCategoryAPNExpand);
-        }
-
-        if (addCdmaSubscription) {
-            log("Both NV and Ruim supported, ENABLE subscription type selection");
-            mPrefScreen.addPreference(mButtonCdmaSubscription);
-            mButtonCdmaSubscription.setEnabled(true);
-        } else {
-            log("Both NV and Ruim NOT supported, REMOVE subscription type selection");
-            mPrefScreen.removePreference(mButtonCdmaSubscription);
-        }
-
-        if (addCarrierSettings) {
-            mPrefScreen.addPreference(mButtonCarrierSettings);
-        } else {
-            mPrefScreen.removePreference(mButtonCarrierSettings);
-        }
-    }
-
-    /**
-     * Return whether we should add the APN expandable preference based on the phone type and
-     * carrier config
-     */
-    @VisibleForTesting
-    public static boolean shouldAddApnExpandPreference(int phoneType, PersistableBundle config) {
-        return phoneType == PhoneConstants.PHONE_TYPE_CDMA
-                && config.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
-    }
-
-    private boolean deviceSupportsNvAndRuim() {
-        // retrieve the list of subscription types supported by device.
-        String subscriptionsSupported = SystemProperties.get("ril.subscription.types");
-        boolean nvSupported = false;
-        boolean ruimSupported = false;
-
-        log("deviceSupportsnvAnRum: prop=" + subscriptionsSupported);
-        if (!TextUtils.isEmpty(subscriptionsSupported)) {
-            // Searches through the comma-separated list for a match for "NV"
-            // and "RUIM" to update nvSupported and ruimSupported.
-            for (String subscriptionType : subscriptionsSupported.split(",")) {
-                subscriptionType = subscriptionType.trim();
-                if (subscriptionType.equalsIgnoreCase("NV")) {
-                    nvSupported = true;
-                }
-                if (subscriptionType.equalsIgnoreCase("RUIM")) {
-                    ruimSupported = true;
-                }
-            }
-        }
-
-        log("deviceSupportsnvAnRum: nvSupported=" + nvSupported +
-                " ruimSupported=" + ruimSupported);
-        return (nvSupported && ruimSupported);
-    }
-
-    public boolean preferenceTreeClick(Preference preference) {
-        if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
-            log("preferenceTreeClick: return BUTTON_CDMA_ROAMING_KEY true");
-            return true;
-        }
-        if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-            log("preferenceTreeClick: return CDMA_SUBSCRIPTION_KEY true");
-            return true;
-        }
-        return false;
-    }
-
-    public void showDialog(Preference preference) {
-        if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
-            mButtonCdmaSystemSelect.showDialog(null);
-        } else if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-            mButtonCdmaSubscription.showDialog(null);
-        }
-    }
-
-    protected void log(String s) {
-        android.util.Log.d(LOG_TAG, s);
-    }
-}
diff --git a/src/com/android/phone/CdmaSubscriptionListPreference.java b/src/com/android/phone/CdmaSubscriptionListPreference.java
deleted file mode 100644
index cd0c681..0000000
--- a/src/com/android/phone/CdmaSubscriptionListPreference.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.preference.ListPreference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.internal.telephony.Phone;
-import com.android.settingslib.utils.ThreadUtils;
-
-public class CdmaSubscriptionListPreference extends ListPreference {
-
-    private static final String LOG_TAG = "CdmaSubscriptionListPreference";
-
-    // Used for CDMA subscription mode
-    private static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0;
-    private static final int CDMA_SUBSCRIPTION_NV = 1;
-
-    //preferredSubscriptionMode  0 - RUIM/SIM, preferred
-    //                           1 - NV
-    static final int preferredSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
-
-    private TelephonyManager mTelephonyManager;
-
-    public CdmaSubscriptionListPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        mTelephonyManager = TelephonyManager.from(context);
-        setCurrentCdmaSubscriptionModeValue();
-    }
-
-    private void setCurrentCdmaSubscriptionModeValue() {
-        int cdmaSubscriptionMode = Settings.Global.getInt(getContext().getContentResolver(),
-                Settings.Global.CDMA_SUBSCRIPTION_MODE, preferredSubscriptionMode);
-        setValue(Integer.toString(cdmaSubscriptionMode));
-    }
-
-    public CdmaSubscriptionListPreference(Context context) {
-        this(context, null);
-    }
-
-    /**
-     * Sets the subscription id associated with this preference.
-     *
-     * @param subId the subscription id.
-     */
-    public void setSubscriptionId(int subId) {
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
-    }
-
-    @Override
-    protected void showDialog(Bundle state) {
-        setCurrentCdmaSubscriptionModeValue();
-
-        super.showDialog(state);
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-        super.onDialogClosed(positiveResult);
-
-        if (!positiveResult) {
-            //The button was dismissed - no need to set new value
-            return;
-        }
-
-        int buttonCdmaSubscriptionMode = Integer.parseInt(getValue());
-        Log.d(LOG_TAG, "Setting new value " + buttonCdmaSubscriptionMode);
-        int statusCdmaSubscriptionMode;
-        switch(buttonCdmaSubscriptionMode) {
-            case CDMA_SUBSCRIPTION_NV:
-                statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_NV;
-                break;
-            case CDMA_SUBSCRIPTION_RUIM_SIM:
-                statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_RUIM_SIM;
-                break;
-            default:
-                statusCdmaSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
-        }
-
-        // Set the CDMA subscription mode, when mode has been successfully changed, update the
-        // mode to the global setting.
-        ThreadUtils.postOnBackgroundThread(() -> {
-            // The subscription mode selected by user.
-            int cdmaSubscriptionMode = Integer.parseInt(getValue());
-
-            boolean isSuccessed = mTelephonyManager.setCdmaSubscriptionMode(
-                    statusCdmaSubscriptionMode);
-
-            // Update the global settings if successed.
-            if (isSuccessed) {
-                Settings.Global.putInt(getContext().getContentResolver(),
-                        Settings.Global.CDMA_SUBSCRIPTION_MODE,
-                        cdmaSubscriptionMode);
-            } else {
-                Log.e(LOG_TAG, "Setting Cdma subscription source failed");
-            }
-        });
-    }
-}
diff --git a/src/com/android/phone/CdmaSystemSelectListPreference.java b/src/com/android/phone/CdmaSystemSelectListPreference.java
deleted file mode 100644
index 0044a8b..0000000
--- a/src/com/android/phone/CdmaSystemSelectListPreference.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.ListPreference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.settingslib.utils.ThreadUtils;
-
-public class CdmaSystemSelectListPreference extends ListPreference {
-
-    private static final String LOG_TAG = "CdmaRoamingListPreference";
-    private static final boolean DBG = false;
-
-    private TelephonyManager mTelephonyManager;
-    private MyHandler mHandler = new MyHandler();
-
-    public CdmaSystemSelectListPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-
-        mHandler = new MyHandler();
-        mTelephonyManager = TelephonyManager.from(context);
-    }
-
-    public CdmaSystemSelectListPreference(Context context) {
-        this(context, null);
-    }
-
-    /**
-     * Sets the subscription id associated with this preference.
-     *
-     * @param subId the subscription id.
-     */
-    public void setSubscriptionId(int subId) {
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
-        queryCdmaRoamingMode();
-    }
-
-    @Override
-    protected void showDialog(Bundle state) {
-        if (!mTelephonyManager.getEmergencyCallbackMode()) {
-            super.showDialog(state);
-        }
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-        super.onDialogClosed(positiveResult);
-
-        if (positiveResult && (getValue() != null)) {
-            int buttonCdmaRoamingMode = Integer.parseInt(getValue());
-            int settingsCdmaRoamingMode = Settings.Global.getInt(
-                    getContext().getContentResolver(),
-                    Settings.Global.CDMA_ROAMING_MODE,
-                    TelephonyManager.CDMA_ROAMING_MODE_HOME);
-            if (buttonCdmaRoamingMode != settingsCdmaRoamingMode) {
-                int cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_ANY;
-                if (buttonCdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_ANY) {
-                    cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_HOME;
-                }
-                //Set the Settings.Secure network mode
-                Settings.Global.putInt(
-                        getContext().getContentResolver(),
-                        Settings.Global.CDMA_ROAMING_MODE,
-                        buttonCdmaRoamingMode);
-                //Set the roaming preference mode
-                setCdmaRoamingMode(cdmaRoamingMode);
-            }
-        } else {
-            Log.d(LOG_TAG, String.format("onDialogClosed: positiveResult=%b value=%s -- do nothing",
-                    positiveResult, getValue()));
-        }
-    }
-
-    private class MyHandler extends Handler {
-
-        static final int MESSAGE_GET_ROAMING_PREFERENCE = 0;
-        static final int MESSAGE_SET_ROAMING_PREFERENCE = 1;
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MESSAGE_GET_ROAMING_PREFERENCE:
-                    handleQueryCdmaRoamingPreference(msg);
-                    break;
-
-                case MESSAGE_SET_ROAMING_PREFERENCE:
-                    handleSetCdmaRoamingPreference(msg);
-                    break;
-            }
-        }
-
-        private void handleQueryCdmaRoamingPreference(Message msg) {
-            int cdmaRoamingMode = msg.arg1;
-
-            if (cdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) {
-                int settingsRoamingMode = Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        Settings.Global.CDMA_ROAMING_MODE,
-                        TelephonyManager.CDMA_ROAMING_MODE_HOME);
-
-                //check that statusCdmaRoamingMode is from an accepted value
-                if (cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_HOME
-                        || cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_ANY) {
-                    //check changes in statusCdmaRoamingMode and updates settingsRoamingMode
-                    if (cdmaRoamingMode != settingsRoamingMode) {
-                        settingsRoamingMode = cdmaRoamingMode;
-                        //changes the Settings.Secure accordingly to statusCdmaRoamingMode
-                        Settings.Global.putInt(
-                                getContext().getContentResolver(),
-                                Settings.Global.CDMA_ROAMING_MODE,
-                                settingsRoamingMode);
-                    }
-                    //changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
-                    setValue(Integer.toString(cdmaRoamingMode));
-                }
-                else {
-                    if(DBG) Log.i(LOG_TAG, "reset cdma roaming mode to default" );
-                    resetCdmaRoamingModeToDefault();
-                }
-            }
-        }
-
-        private void handleSetCdmaRoamingPreference(Message msg) {
-            boolean isSuccessed = (boolean) msg.obj;
-
-            if (isSuccessed && (getValue() != null)) {
-                int cdmaRoamingMode = Integer.parseInt(getValue());
-                Settings.Global.putInt(
-                        getContext().getContentResolver(),
-                        Settings.Global.CDMA_ROAMING_MODE,
-                        cdmaRoamingMode );
-            } else {
-                queryCdmaRoamingMode();
-            }
-        }
-
-        private void resetCdmaRoamingModeToDefault() {
-            //set the mButtonCdmaRoam
-            setValue(Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
-            //set the Settings.System
-            Settings.Global.putInt(
-                    getContext().getContentResolver(),
-                    Settings.Global.CDMA_ROAMING_MODE,
-                    TelephonyManager.CDMA_ROAMING_MODE_ANY);
-            //Set the Status
-            setCdmaRoamingMode(TelephonyManager.CDMA_ROAMING_MODE_ANY);
-        }
-    }
-
-    private void queryCdmaRoamingMode() {
-        ThreadUtils.postOnBackgroundThread(() -> {
-            Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_GET_ROAMING_PREFERENCE);
-            msg.arg1 = mTelephonyManager.getCdmaRoamingMode();
-            msg.sendToTarget();
-        });
-    }
-
-    private void setCdmaRoamingMode(int mode) {
-        ThreadUtils.postOnBackgroundThread(() -> {
-            Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_SET_ROAMING_PREFERENCE);
-            msg.obj = mTelephonyManager.setCdmaRoamingMode(mode);
-            msg.sendToTarget();
-        });
-    }
-}
diff --git a/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java b/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
index b79a3f0..0192c2a 100644
--- a/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
+++ b/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
@@ -102,4 +102,8 @@
             phone.getEnhancedVoicePrivacy(obtainMessage(MESSAGE_GET_VP));
         }
     }
+
+    public void setPhone(Phone phone) {
+        this.phone = phone;
+    }
 }
diff --git a/src/com/android/phone/CellInfoUtil.java b/src/com/android/phone/CellInfoUtil.java
index 8272029..f6d741f 100644
--- a/src/com/android/phone/CellInfoUtil.java
+++ b/src/com/android/phone/CellInfoUtil.java
@@ -33,6 +33,7 @@
 
 import com.android.internal.telephony.OperatorInfo;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -149,7 +150,8 @@
                 mcc,
                 mnc,
                 operatorInfo.getOperatorAlphaLong(),
-                operatorInfo.getOperatorAlphaShort());
+                operatorInfo.getOperatorAlphaShort(),
+                Collections.emptyList());
 
         CellInfoGsm ci = new CellInfoGsm();
         ci.setCellIdentity(cig);
diff --git a/src/com/android/phone/DataUsagePreference.java b/src/com/android/phone/DataUsagePreference.java
deleted file mode 100644
index b6b26e2..0000000
--- a/src/com/android/phone/DataUsagePreference.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.net.NetworkTemplate;
-import android.preference.Preference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.text.format.Formatter;
-import android.util.AttributeSet;
-
-import com.android.settingslib.net.DataUsageController;
-
-/**
- * The preference that shows mobile data usage summary and
- * leads to mobile data usage list page.
- */
-public class DataUsagePreference extends Preference {
-
-    private NetworkTemplate mTemplate;
-    private int mSubId;
-
-    public DataUsagePreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    /**
-     * After creating this preference, this functions needs to be called to
-     * initialize which subID it connects to.
-     */
-    public void initialize(int subId) {
-        Activity activity = (Activity) getContext();
-
-        mSubId = subId;
-        mTemplate = getNetworkTemplate(activity, subId);
-
-        DataUsageController controller = new DataUsageController(activity);
-
-        DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
-        setSummary(activity.getString(R.string.data_usage_template,
-                Formatter.formatFileSize(activity, usageInfo.usageLevel), usageInfo.period));
-        setIntent(getIntent());
-    }
-
-    @Override
-    public Intent getIntent() {
-        Intent intent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
-
-        intent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mTemplate);
-        intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
-
-        return intent;
-    }
-
-    private NetworkTemplate getNetworkTemplate(Activity activity, int subId) {
-        TelephonyManager tm = (TelephonyManager) activity
-                .getSystemService(Context.TELEPHONY_SERVICE);
-        NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
-                tm.getSubscriberId(subId));
-        return NetworkTemplate.normalize(mobileAll,
-                tm.getMergedSubscriberIds());
-    }
-}
diff --git a/src/com/android/phone/EmergencyActionGroup.java b/src/com/android/phone/EmergencyActionGroup.java
index b8bf7a8..4961a69 100644
--- a/src/com/android/phone/EmergencyActionGroup.java
+++ b/src/com/android/phone/EmergencyActionGroup.java
@@ -157,21 +157,19 @@
     public void onClick(View v) {
         Intent intent = (Intent) v.getTag(R.id.tag_intent);
 
-        switch (v.getId()) {
-            case R.id.action1:
-            case R.id.action2:
-            case R.id.action3:
-                if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
-                    getContext().startActivity(intent);
-                } else {
-                    revealTheButton(v);
-                }
-                break;
-            case R.id.selected_container:
-                if (!mHiding) {
-                    getContext().startActivity(intent);
-                }
-                break;
+        if (v.getId() == R.id.action1 || v.getId() == R.id.action2 || v.getId() == R.id.action3) {
+            AccessibilityManager accessibilityMgr =
+                    (AccessibilityManager) getContext().getSystemService(
+                            Context.ACCESSIBILITY_SERVICE);
+            if (accessibilityMgr.isTouchExplorationEnabled()) {
+                getContext().startActivity(intent);
+            } else {
+                revealTheButton(v);
+            }
+        } else if (v.getId() == R.id.selected_container) {
+            if (!mHiding) {
+                getContext().startActivity(intent);
+            }
         }
     }
 
diff --git a/src/com/android/phone/EmergencyAssistanceHelper.java b/src/com/android/phone/EmergencyAssistanceHelper.java
index 33788d3..79ee515 100644
--- a/src/com/android/phone/EmergencyAssistanceHelper.java
+++ b/src/com/android/phone/EmergencyAssistanceHelper.java
@@ -31,8 +31,6 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.internal.util.CollectionUtils;
-
 import java.util.List;
 
 /**
@@ -120,8 +118,9 @@
     private static String getDefaultEmergencyPackage(Context context) {
         long identity = Binder.clearCallingIdentity();
         try {
-            return CollectionUtils.firstOrNull(context.getSystemService(RoleManager.class)
-                    .getRoleHolders(RoleManager.ROLE_EMERGENCY));
+            List<String> roleHolders = context.getSystemService(RoleManager.class)
+                    .getRoleHolders(RoleManager.ROLE_EMERGENCY);
+            return roleHolders.isEmpty() ? null : roleHolders.get(0);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
diff --git a/src/com/android/phone/EmergencyCallbackModeExitDialog.java b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
index e602b34..1210627 100644
--- a/src/com/android/phone/EmergencyCallbackModeExitDialog.java
+++ b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
@@ -35,6 +35,7 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
+import android.telephony.TelephonyManager;
 import android.util.Log;
 
 import com.android.internal.telephony.Phone;
@@ -68,6 +69,7 @@
     private boolean mInEmergencyCall = false;
     private static final int ECM_TIMER_RESET = 1;
     private Phone mPhone = null;
+    private boolean mIsResumed = false;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -100,6 +102,18 @@
     }
 
     @Override
+    public void onResume() {
+        super.onResume();
+        mIsResumed = true;
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mIsResumed = false;
+    }
+
+    @Override
     public void onDestroy() {
         super.onDestroy();
         try {
@@ -176,7 +190,7 @@
      * Shows Emergency Callback Mode dialog and starts countdown timer
      */
     private void showEmergencyCallbackModeExitDialog() {
-        if (this.isDestroyed()) {
+        if (!mIsResumed) {
             Log.w(TAG, "Tried to show dialog, but activity was already finished");
             return;
         }
@@ -287,8 +301,14 @@
             return String.format(getResources().getQuantityText(
                     R.plurals.alert_dialog_not_avaialble_in_ecm, minutes).toString(), time);
         case EXIT_ECM_DIALOG:
-            return String.format(getResources().getQuantityText(R.plurals.alert_dialog_exit_ecm,
-                    minutes).toString(), time);
+                boolean shouldRestrictData = mPhone.getImsPhone() != null
+                        && mPhone.getImsPhone().isInImsEcm();
+                return String.format(getResources().getQuantityText(
+                        // During IMS ECM, data restriction hint should be removed.
+                        shouldRestrictData
+                        ? R.plurals.alert_dialog_exit_ecm_without_data_restriction_hint
+                        : R.plurals.alert_dialog_exit_ecm,
+                        minutes).toString(), time);
         }
         return null;
     }
@@ -311,7 +331,8 @@
             // Received exit Emergency Callback Mode notification close all dialogs
             if (intent.getAction().equals(
                     TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
-                if (intent.getBooleanExtra("phoneinECMState", false) == false) {
+                // Cancel if the sticky broadcast extra for whether or not we are in ECM is false.
+                if (!intent.getBooleanExtra(TelephonyManager.EXTRA_PHONE_IN_ECM_STATE, false)) {
                     if (mAlertDialog != null)
                         mAlertDialog.dismiss();
                     if (mProgressDialog != null)
diff --git a/src/com/android/phone/EmergencyCallbackModeService.java b/src/com/android/phone/EmergencyCallbackModeService.java
index a07f7aa..6b247bd 100644
--- a/src/com/android/phone/EmergencyCallbackModeService.java
+++ b/src/com/android/phone/EmergencyCallbackModeService.java
@@ -30,13 +30,14 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
-import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.sysprop.TelephonyProperties;
+import android.telephony.TelephonyManager;
 import android.util.Log;
 
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.TelephonyIntents;
-import com.android.internal.telephony.TelephonyProperties;
 import com.android.internal.telephony.util.NotificationChannelController;
 
 import java.text.SimpleDateFormat;
@@ -50,7 +51,7 @@
 public class EmergencyCallbackModeService extends Service {
 
     // Default Emergency Callback Mode timeout value
-    private static final int DEFAULT_ECM_EXIT_TIMER_VALUE = 300000;
+    private static final long DEFAULT_ECM_EXIT_TIMER_VALUE = 300000L;
     private static final String LOG_TAG = "EmergencyCallbackModeService";
 
     private NotificationManager mNotificationManager = null;
@@ -106,7 +107,8 @@
             mPhone.unregisterForEcmTimerReset(mHandler);
 
             // Cancel the notification and timer
-            mNotificationManager.cancel(R.string.phone_in_ecm_notification_title);
+            mNotificationManager.cancelAsUser(null, R.string.phone_in_ecm_notification_title,
+                    UserHandle.ALL);
             mTimer.cancel();
         }
     }
@@ -120,7 +122,7 @@
             // Stop the service when phone exits Emergency Callback Mode
             if (intent.getAction().equals(
                     TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
-                if (intent.getBooleanExtra("phoneinECMState", false) == false) {
+                if (!intent.getBooleanExtra(TelephonyManager.EXTRA_PHONE_IN_ECM_STATE, false)) {
                     stopSelf();
                 }
             }
@@ -139,8 +141,7 @@
      */
     private void startTimerNotification() {
         // Get Emergency Callback Mode timeout value
-        long ecmTimeout = SystemProperties.getLong(
-                    TelephonyProperties.PROPERTY_ECM_EXIT_TIMER, DEFAULT_ECM_EXIT_TIMER_VALUE);
+        long ecmTimeout = TelephonyProperties.ecm_exit_timer().orElse(DEFAULT_ECM_EXIT_TIMER_VALUE);
 
         // Show the notification
         showNotification(ecmTimeout);
@@ -196,7 +197,11 @@
         // Format notification string
         String text = null;
         if(mInEmergencyCall) {
-            text = getText(R.string.phone_in_ecm_call_notification_text).toString();
+            text = getText(
+                    // During IMS ECM, data restriction hint should be removed.
+                    (imsPhone != null && imsPhone.isInImsEcm())
+                    ? R.string.phone_in_ecm_call_notification_text_without_data_restriction_hint
+                    : R.string.phone_in_ecm_call_notification_text).toString();
         } else {
             // Calculate the time in ms when the notification will be finished.
             long finishedCountMs = millisUntilFinished + System.currentTimeMillis();
@@ -207,14 +212,19 @@
 
             String completeTime = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT).format(
                     finishedCountMs);
-            text = getResources().getString(R.string.phone_in_ecm_notification_complete_time,
+            text = getResources().getString(
+                    // During IMS ECM, data restriction hint should be removed.
+                    (imsPhone != null && imsPhone.isInImsEcm())
+                    ? R.string.phone_in_ecm_notification_complete_time_without_data_restriction_hint
+                    : R.string.phone_in_ecm_notification_complete_time,
                     completeTime);
         }
         builder.setContentText(text);
         builder.setChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
 
         // Show notification
-        mNotificationManager.notify(R.string.phone_in_ecm_notification_title, builder.build());
+        mNotificationManager.notifyAsUser(null, R.string.phone_in_ecm_notification_title,
+                builder.build(), UserHandle.ALL);
     }
 
     /**
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 03a2e57..5d630af 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -20,9 +20,11 @@
 
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
+import android.annotation.ColorInt;
 import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.WallpaperColors;
 import android.app.WallpaperManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -31,6 +33,7 @@
 import android.database.DataSetObserver;
 import android.graphics.Color;
 import android.graphics.Point;
+import android.graphics.drawable.ColorDrawable;
 import android.media.AudioManager;
 import android.media.ToneGenerator;
 import android.net.Uri;
@@ -38,12 +41,10 @@
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.provider.Settings;
-import android.telecom.ParcelableCallAnalytics;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -68,15 +69,10 @@
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.TextView;
 
-import com.android.internal.colorextraction.ColorExtractor;
-import com.android.internal.colorextraction.ColorExtractor.GradientColors;
-import com.android.internal.colorextraction.drawable.ScrimDrawable;
-import com.android.phone.EmergencyDialerMetricsLogger.DialedFrom;
-import com.android.phone.EmergencyDialerMetricsLogger.PhoneNumberType;
-import com.android.phone.EmergencyDialerMetricsLogger.UiModeErrorCode;
 import com.android.phone.common.dialpad.DialpadKeyButton;
 import com.android.phone.common.util.ViewUtil;
 import com.android.phone.common.widget.ResizingTextEditText;
+import com.android.telephony.Rlog;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -100,7 +96,8 @@
  */
 public class EmergencyDialer extends Activity implements View.OnClickListener,
         View.OnLongClickListener, View.OnKeyListener, TextWatcher,
-        DialpadKeyButton.OnPressedListener, ColorExtractor.OnColorsChangedListener,
+        DialpadKeyButton.OnPressedListener,
+        WallpaperManager.OnColorsChangedListener,
         EmergencyShortcutButton.OnConfirmClickListener,
         EmergencyInfoGroup.OnConfirmClickListener {
 
@@ -155,6 +152,11 @@
     /** Size limit of emergency shortcut buttons container. **/
     private static final int SHORTCUT_SIZE_LIMIT = 3;
 
+    private static final float COLOR_DELTA = 1.0f / 16.0f;
+
+    /** Dial button color, from packages/apps/PhoneCommon/res/drawable-mdpi/fab_green.png **/
+    @ColorInt private static final int DIALER_GREEN = 0xff00c853;
+
     ResizingTextEditText mDigits;
     private View mDialButton;
     private View mDelete;
@@ -212,8 +214,7 @@
     private String mLastNumber; // last number we tried to dial. Used to restore error dialog.
 
     // Background gradient
-    private ColorExtractor mColorExtractor;
-    private ScrimDrawable mBackgroundDrawable;
+    private ColorDrawable mBackgroundDrawable;
     private boolean mSupportsDarkText;
 
     private boolean mIsWfcEmergencyCallingWarningEnabled;
@@ -222,8 +223,6 @@
     private int mEntryType;
     private ShortcutViewUtils.Config mShortcutViewConfig;
 
-    private EmergencyDialerMetricsLogger mMetricsLogger;
-
     @Override
     public void beforeTextChanged(CharSequence s, int start, int count, int after) {
         // Do nothing
@@ -258,8 +257,6 @@
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        mMetricsLogger = new EmergencyDialerMetricsLogger(this);
-
         mEntryType = getIntent().getIntExtra(EXTRA_ENTRY_TYPE, ENTRY_TYPE_UNKNOWN);
         Log.d(LOG_TAG, "Launched from " + entryTypeToString(mEntryType));
 
@@ -276,15 +273,13 @@
         Log.d(LOG_TAG, "Enable emergency dialer shortcut: "
                 + mShortcutViewConfig.isEnabled());
 
-        mColorExtractor = new ColorExtractor(this);
-
         if (mShortcutViewConfig.isEnabled()) {
             // Shortcut view doesn't support dark text theme.
             updateTheme(false);
         } else {
-            GradientColors lockScreenColors = mColorExtractor.getColors(WallpaperManager.FLAG_LOCK,
-                    ColorExtractor.TYPE_EXTRA_DARK);
-            updateTheme(lockScreenColors.supportsDarkText());
+            WallpaperColors wallpaperColors =
+                    getWallpaperManager().getWallpaperColors(WallpaperManager.FLAG_LOCK);
+            updateTheme(supportsDarkText(wallpaperColors));
         }
 
         setContentView(R.layout.emergency_dialer);
@@ -298,7 +293,7 @@
         mDefaultDigitsTextSize = mDigits.getScaledTextSize();
         maybeAddNumberFormatting();
 
-        mBackgroundDrawable = new ScrimDrawable();
+        mBackgroundDrawable = new ColorDrawable();
         Point displaySize = new Point();
         ((WindowManager) getSystemService(Context.WINDOW_SERVICE))
                 .getDefaultDisplay().getSize(displaySize);
@@ -471,16 +466,15 @@
 
     @Override
     public boolean onKey(View view, int keyCode, KeyEvent event) {
-        switch (view.getId()) {
-            case R.id.digits:
-                // Happen when "Done" button of the IME is pressed. This can happen when this
-                // Activity is forced into landscape mode due to a desk dock.
-                if (keyCode == KeyEvent.KEYCODE_ENTER
-                        && event.getAction() == KeyEvent.ACTION_UP) {
-                    placeCall();
-                    return true;
-                }
-                break;
+        if (view.getId()
+                == R.id.digits) { // Happen when "Done" button of the IME is pressed. This can
+            // happen when this
+            // Activity is forced into landscape mode due to a desk dock.
+            if (keyCode == KeyEvent.KEYCODE_ENTER
+                    && event.getAction() == KeyEvent.ACTION_UP) {
+                placeCall();
+                return true;
+            }
         }
         return false;
     }
@@ -501,11 +495,7 @@
         if (!TextUtils.isEmpty(phoneNumber)) {
             if (DBG) Log.d(LOG_TAG, "dial emergency number: " + Rlog.pii(LOG_TAG, phoneNumber));
 
-            // Write metrics when user has intention to make a call from a shortcut button.
-            mMetricsLogger.logPlaceCall(DialedFrom.SHORTCUT, PhoneNumberType.HAS_SHORTCUT,
-                    mShortcutViewConfig.getPhoneInfo());
-
-            placeCall(phoneNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_SHORTCUT,
+            placeCall(phoneNumber, TelecomManager.CALL_SOURCE_EMERGENCY_SHORTCUT,
                     mShortcutViewConfig.getPhoneInfo());
         } else {
             Log.d(LOG_TAG, "emergency number is empty");
@@ -524,27 +514,22 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.deleteButton: {
-                keyPressed(KeyEvent.KEYCODE_DEL);
-                return;
+        if (view.getId() == R.id.deleteButton) {
+            keyPressed(KeyEvent.KEYCODE_DEL);
+            return;
+        } else if (view.getId() == R.id.floating_action_button) {
+            view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
+            placeCall();
+            return;
+        } else if (view.getId() == R.id.digits) {
+            if (mDigits.length() != 0) {
+                mDigits.setCursorVisible(true);
             }
-            case R.id.floating_action_button: {
-                view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
-                placeCall();
-                return;
-            }
-            case R.id.digits: {
-                if (mDigits.length() != 0) {
-                    mDigits.setCursorVisible(true);
-                }
-                return;
-            }
-            case R.id.floating_action_button_dialpad: {
-                mDigits.getText().clear();
-                switchView(mDialpadView, mEmergencyShortcutView, true);
-                return;
-            }
+            return;
+        } else if (view.getId() == R.id.floating_action_button_dialpad) {
+            mDigits.getText().clear();
+            switchView(mDialpadView, mEmergencyShortcutView, true);
+            return;
         }
     }
 
@@ -553,67 +538,54 @@
         if (!pressed) {
             return;
         }
-        switch (view.getId()) {
-            case R.id.one: {
-                playTone(ToneGenerator.TONE_DTMF_1);
-                keyPressed(KeyEvent.KEYCODE_1);
-                return;
-            }
-            case R.id.two: {
-                playTone(ToneGenerator.TONE_DTMF_2);
-                keyPressed(KeyEvent.KEYCODE_2);
-                return;
-            }
-            case R.id.three: {
-                playTone(ToneGenerator.TONE_DTMF_3);
-                keyPressed(KeyEvent.KEYCODE_3);
-                return;
-            }
-            case R.id.four: {
-                playTone(ToneGenerator.TONE_DTMF_4);
-                keyPressed(KeyEvent.KEYCODE_4);
-                return;
-            }
-            case R.id.five: {
-                playTone(ToneGenerator.TONE_DTMF_5);
-                keyPressed(KeyEvent.KEYCODE_5);
-                return;
-            }
-            case R.id.six: {
-                playTone(ToneGenerator.TONE_DTMF_6);
-                keyPressed(KeyEvent.KEYCODE_6);
-                return;
-            }
-            case R.id.seven: {
-                playTone(ToneGenerator.TONE_DTMF_7);
-                keyPressed(KeyEvent.KEYCODE_7);
-                return;
-            }
-            case R.id.eight: {
-                playTone(ToneGenerator.TONE_DTMF_8);
-                keyPressed(KeyEvent.KEYCODE_8);
-                return;
-            }
-            case R.id.nine: {
-                playTone(ToneGenerator.TONE_DTMF_9);
-                keyPressed(KeyEvent.KEYCODE_9);
-                return;
-            }
-            case R.id.zero: {
-                playTone(ToneGenerator.TONE_DTMF_0);
-                keyPressed(KeyEvent.KEYCODE_0);
-                return;
-            }
-            case R.id.pound: {
-                playTone(ToneGenerator.TONE_DTMF_P);
-                keyPressed(KeyEvent.KEYCODE_POUND);
-                return;
-            }
-            case R.id.star: {
-                playTone(ToneGenerator.TONE_DTMF_S);
-                keyPressed(KeyEvent.KEYCODE_STAR);
-                return;
-            }
+        if (view.getId() == R.id.one) {
+            playTone(ToneGenerator.TONE_DTMF_1);
+            keyPressed(KeyEvent.KEYCODE_1);
+            return;
+        } else if (view.getId() == R.id.two) {
+            playTone(ToneGenerator.TONE_DTMF_2);
+            keyPressed(KeyEvent.KEYCODE_2);
+            return;
+        } else if (view.getId() == R.id.three) {
+            playTone(ToneGenerator.TONE_DTMF_3);
+            keyPressed(KeyEvent.KEYCODE_3);
+            return;
+        } else if (view.getId() == R.id.four) {
+            playTone(ToneGenerator.TONE_DTMF_4);
+            keyPressed(KeyEvent.KEYCODE_4);
+            return;
+        } else if (view.getId() == R.id.five) {
+            playTone(ToneGenerator.TONE_DTMF_5);
+            keyPressed(KeyEvent.KEYCODE_5);
+            return;
+        } else if (view.getId() == R.id.six) {
+            playTone(ToneGenerator.TONE_DTMF_6);
+            keyPressed(KeyEvent.KEYCODE_6);
+            return;
+        } else if (view.getId() == R.id.seven) {
+            playTone(ToneGenerator.TONE_DTMF_7);
+            keyPressed(KeyEvent.KEYCODE_7);
+            return;
+        } else if (view.getId() == R.id.eight) {
+            playTone(ToneGenerator.TONE_DTMF_8);
+            keyPressed(KeyEvent.KEYCODE_8);
+            return;
+        } else if (view.getId() == R.id.nine) {
+            playTone(ToneGenerator.TONE_DTMF_9);
+            keyPressed(KeyEvent.KEYCODE_9);
+            return;
+        } else if (view.getId() == R.id.zero) {
+            playTone(ToneGenerator.TONE_DTMF_0);
+            keyPressed(KeyEvent.KEYCODE_0);
+            return;
+        } else if (view.getId() == R.id.pound) {
+            playTone(ToneGenerator.TONE_DTMF_P);
+            keyPressed(KeyEvent.KEYCODE_POUND);
+            return;
+        } else if (view.getId() == R.id.star) {
+            playTone(ToneGenerator.TONE_DTMF_S);
+            keyPressed(KeyEvent.KEYCODE_STAR);
+            return;
         }
     }
 
@@ -623,16 +595,13 @@
     @Override
     public boolean onLongClick(View view) {
         int id = view.getId();
-        switch (id) {
-            case R.id.deleteButton: {
-                mDigits.getText().clear();
-                return true;
-            }
-            case R.id.zero: {
-                removePreviousDigitIfPossible();
-                keyPressed(KeyEvent.KEYCODE_PLUS);
-                return true;
-            }
+        if (id == R.id.deleteButton) {
+            mDigits.getText().clear();
+            return true;
+        } else if (id == R.id.zero) {
+            removePreviousDigitIfPossible();
+            keyPressed(KeyEvent.KEYCODE_PLUS);
+            return true;
         }
         return false;
     }
@@ -641,21 +610,20 @@
     protected void onStart() {
         super.onStart();
 
-        mMetricsLogger.logLaunchEmergencyDialer(mEntryType,
-                mShortcutViewConfig.isEnabled() ? UiModeErrorCode.SUCCESS
-                        : UiModeErrorCode.UNSPECIFIED_ERROR);
-
         if (mShortcutViewConfig.isEnabled()) {
             // Shortcut view doesn't support dark text theme.
-            mBackgroundDrawable.setColor(Color.BLACK, false);
+            mBackgroundDrawable.setColor(Color.BLACK);
             updateTheme(false);
         } else {
-            mColorExtractor.addOnColorsChangedListener(this);
-            GradientColors lockScreenColors = mColorExtractor.getColors(WallpaperManager.FLAG_LOCK,
-                    ColorExtractor.TYPE_EXTRA_DARK);
-            // Do not animate when view isn't visible yet, just set an initial state.
-            mBackgroundDrawable.setColor(lockScreenColors.getMainColor(), false);
-            updateTheme(lockScreenColors.supportsDarkText());
+            WallpaperManager wallpaperManager = getWallpaperManager();
+            if (wallpaperManager.isWallpaperSupported()) {
+                wallpaperManager.addOnColorsChangedListener(this, null);
+            }
+
+            WallpaperColors wallpaperColors =
+                    wallpaperManager.getWallpaperColors(WallpaperManager.FLAG_LOCK);
+            mBackgroundDrawable.setColor(getPrimaryColor(wallpaperColors));
+            updateTheme(supportsDarkText(wallpaperColors));
         }
 
         if (mShortcutViewConfig.isEnabled()) {
@@ -696,7 +664,11 @@
     @Override
     protected void onStop() {
         super.onStop();
-        mColorExtractor.removeOnColorsChangedListener(this);
+
+        WallpaperManager wallpaperManager = getWallpaperManager();
+        if (wallpaperManager.isWallpaperSupported()) {
+            wallpaperManager.removeOnColorsChangedListener(this);
+        }
     }
 
     /**
@@ -741,28 +713,24 @@
         // nothing and just returns input number.
         mLastNumber = PhoneNumberUtils.convertToEmergencyNumber(this, mLastNumber);
 
-        @DialedFrom final int dialedFrom =
-                mShortcutViewConfig.isEnabled() ? DialedFrom.FASTER_LAUNCHER_DIALPAD
-                        : DialedFrom.TRADITIONAL_DIALPAD;
-        @PhoneNumberType final int phoneNumberType;
-
         boolean isEmergencyNumber;
         ShortcutViewUtils.PhoneInfo phoneToMakeCall = null;
         if (mShortcutAdapter != null && mShortcutAdapter.hasShortcut(mLastNumber)) {
             isEmergencyNumber = true;
             phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
-            phoneNumberType = PhoneNumberType.HAS_SHORTCUT;
         } else if (mShortcutViewConfig.hasPromotedEmergencyNumber(mLastNumber)) {
             // If a number from SIM/network/... is categoried as police/ambulance/fire,
             // hasPromotedEmergencyNumber() will return true, but it maybe not promoted as a
             // shortcut button because a number provided by database has higher priority.
             isEmergencyNumber = true;
             phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
-            phoneNumberType = PhoneNumberType.NO_SHORTCUT;
         } else {
-            isEmergencyNumber = getSystemService(TelephonyManager.class)
-                    .isEmergencyNumber(mLastNumber);
-            phoneNumberType = PhoneNumberType.NO_SHORTCUT;
+            try {
+                isEmergencyNumber = getSystemService(TelephonyManager.class)
+                        .isEmergencyNumber(mLastNumber);
+            } catch (IllegalStateException ise) {
+                isEmergencyNumber = false;
+            }
         }
 
         if (isEmergencyNumber) {
@@ -775,19 +743,11 @@
                 return;
             }
 
-            // Write metrics when user has intention to make a call from dialpad
-            mMetricsLogger.logPlaceCall(dialedFrom, phoneNumberType, phoneToMakeCall);
-
-            placeCall(mLastNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_DIALPAD,
+            placeCall(mLastNumber, TelecomManager.CALL_SOURCE_EMERGENCY_DIALPAD,
                     phoneToMakeCall);
         } else {
             if (DBG) Log.d(LOG_TAG, "rejecting bad requested number " + mLastNumber);
 
-            // Write metrics when user has intention to make a call of a non-emergency number, even
-            // this number is rejected.
-            mMetricsLogger.logPlaceCall(dialedFrom, PhoneNumberType.NOT_EMERGENCY_NUMBER,
-                    phoneToMakeCall);
-
             showDialog(BAD_EMERGENCY_NUMBER_DIALOG);
         }
         mDigits.getText().delete(0, mDigits.getText().length());
@@ -937,12 +897,10 @@
     }
 
     @Override
-    public void onColorsChanged(ColorExtractor extractor, int which) {
+    public void onColorsChanged(WallpaperColors colors, int which) {
         if ((which & WallpaperManager.FLAG_LOCK) != 0) {
-            GradientColors colors = extractor.getColors(WallpaperManager.FLAG_LOCK,
-                    ColorExtractor.TYPE_EXTRA_DARK);
-            mBackgroundDrawable.setColor(colors.getMainColor(), true /* animated */);
-            updateTheme(colors.supportsDarkText());
+            mBackgroundDrawable.setColor(getPrimaryColor(colors));
+            updateTheme(supportsDarkText(colors));
         }
     }
 
@@ -1223,12 +1181,77 @@
 
     private String callSourceToString(int callSource) {
         switch (callSource) {
-            case ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_DIALPAD:
+            case TelecomManager.CALL_SOURCE_EMERGENCY_DIALPAD:
                 return "DialPad";
-            case ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_SHORTCUT:
+            case TelecomManager.CALL_SOURCE_EMERGENCY_SHORTCUT:
                 return "Shortcut";
             default:
                 return "Unknown-" + callSource;
         }
     }
+
+    private WallpaperManager getWallpaperManager() {
+        return getSystemService(WallpaperManager.class);
+    }
+
+    private static boolean supportsDarkText(WallpaperColors colors) {
+        if (colors != null) {
+            return (colors.getColorHints() & WallpaperColors.HINT_SUPPORTS_DARK_TEXT) != 0;
+        }
+        // It's possible that wallpaper colors are null (e.g. when colors are being
+        // processed or a live wallpaper is used). In this case, fallback to same
+        // behavior as when shortcut view is enabled.
+        return false;
+    }
+
+    private static int getPrimaryColor(WallpaperColors colors) {
+        if (colors != null) {
+            // Android accessibility scanner
+            // (https://support.google.com/accessibility/android/answer/7158390)
+            // suggest small text and graphics have a contrast ratio greater than
+            // 4.5 with background color. The color generated from wallpaper may not
+            // follow this rule. Calculate a proper color here.
+            Color primary = colors.getPrimaryColor();
+            Color text = Color.valueOf(Color.WHITE);
+            Color dial = Color.valueOf(DIALER_GREEN);
+            // If current primary color can't follow the contrast ratio rule, make it
+            // deeper and try again.
+            while (!checkContrastRatio(primary, text)) {
+                primary = getDeeper(primary);
+            }
+            while (!checkContrastRatio(primary, dial)) {
+                primary = getDeeper(primary);
+            }
+            return primary.toArgb();
+        }
+        // It's possible that wallpaper colors are null (e.g. when colors are being
+        // processed or a live wallpaper is used). In this case, fallback to same
+        // behavior as when shortcut view is enabled.
+        return Color.BLACK;
+    }
+
+    private static Color getDeeper(Color color) {
+        float r = color.red() - COLOR_DELTA;
+        float g = color.green() - COLOR_DELTA;
+        float b = color.blue() - COLOR_DELTA;
+        if (r < 0f) r = 0f;
+        if (g < 0f) g = 0f;
+        if (b < 0f) b = 0f;
+        return Color.valueOf(r, g, b);
+    }
+
+    private static boolean checkContrastRatio(Color color1, Color color2) {
+        float lum1 = color1.luminance();
+        float lum2 = color2.luminance();
+        double cr;
+        if (lum1 >= lum2) {
+            cr = (lum1 + 0.05) / (lum2 + 0.05);
+        } else {
+            cr = (lum2 + 0.05) / (lum1 + 0.05);
+        }
+
+        // Make cr greater than 5.0 instead of 4.5 to guarantee that transparent white
+        // text and graphics can have contrast ratio greather than 4.5 with background.
+        return cr > 5.0;
+    }
 }
diff --git a/src/com/android/phone/EmergencyDialerMetricsLogger.java b/src/com/android/phone/EmergencyDialerMetricsLogger.java
deleted file mode 100644
index b9ba352..0000000
--- a/src/com/android/phone/EmergencyDialerMetricsLogger.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.annotation.IntDef;
-import android.app.KeyguardManager;
-import android.content.Context;
-import android.metrics.LogMaker;
-import android.os.Build;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * EmergencyCallMetricsLogger is a utility to collect metrics of emergency calls
- */
-class EmergencyDialerMetricsLogger {
-    private static final String LOG_TAG = "EmergencyDialerLogger";
-
-    @IntDef({
-            DialedFrom.TRADITIONAL_DIALPAD,
-            DialedFrom.SHORTCUT,
-            DialedFrom.FASTER_LAUNCHER_DIALPAD,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface DialedFrom {
-        int TRADITIONAL_DIALPAD = 0;
-        int SHORTCUT = 1;
-        int FASTER_LAUNCHER_DIALPAD = 2;
-    }
-
-    @IntDef({
-            LaunchedFrom.UNDEFINED,
-            LaunchedFrom.LOCK_SCREEN,
-            LaunchedFrom.POWER_KEY_MENU,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface LaunchedFrom {
-        int UNDEFINED = 0;
-        int LOCK_SCREEN = 1;
-        int POWER_KEY_MENU = 2;
-    }
-
-    @IntDef({
-            PhoneNumberType.HAS_SHORTCUT,
-            PhoneNumberType.NO_SHORTCUT,
-            PhoneNumberType.NOT_EMERGENCY_NUMBER,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface PhoneNumberType {
-        int HAS_SHORTCUT = 0;
-        int NO_SHORTCUT = 1;
-        int NOT_EMERGENCY_NUMBER = 2;
-    }
-
-    @IntDef({
-            UiModeErrorCode.UNSPECIFIED_ERROR,
-            UiModeErrorCode.SUCCESS,
-            UiModeErrorCode.CONFIG_ENTRY_POINT,
-            UiModeErrorCode.CONFIG_SIM_OPERATOR,
-            UiModeErrorCode.UNSUPPORTED_COUNTRY,
-            UiModeErrorCode.AIRPLANE_MODE,
-            UiModeErrorCode.NO_PROMOTED_NUMBER,
-            UiModeErrorCode.NO_CAPABLE_PHONE,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    @interface UiModeErrorCode {
-        int UNSPECIFIED_ERROR = -1;
-        int SUCCESS = 0;
-        int CONFIG_ENTRY_POINT = 1;
-        int CONFIG_SIM_OPERATOR = 2;
-        int UNSUPPORTED_COUNTRY = 3;
-        int AIRPLANE_MODE = 4;
-        int NO_PROMOTED_NUMBER = 5;
-        int NO_CAPABLE_PHONE = 6;
-    }
-
-    private class TelephonyInfo {
-        private final String mNetworkCountryIso;
-        private final String mNetworkOperator;
-
-        TelephonyInfo(String networkCountryIso, String networkOperator) {
-            mNetworkCountryIso = networkCountryIso;
-            mNetworkOperator = networkOperator;
-        }
-    }
-
-    private final MetricsLogger mMetricsLogger = new MetricsLogger();
-
-    private final Context mAppContext;
-
-    @LaunchedFrom
-    private int mLaunchedFrom;
-    @UiModeErrorCode
-    private int mUiModeErrorCode;
-
-    EmergencyDialerMetricsLogger(Context context) {
-        mAppContext = context.getApplicationContext();
-    }
-
-    /**
-     * Log when Emergency Dialer is launched.
-     * - Where the user launch Emergency Dialer from.
-     * - Whether shortcut view is enabled, and the reason why it's not enabled.
-     *
-     * @param entryType
-     * @param uiModeErrorCode
-     */
-    public void logLaunchEmergencyDialer(int entryType,
-            @UiModeErrorCode int uiModeErrorCode) {
-        final @EmergencyDialerMetricsLogger.LaunchedFrom int launchedFrom;
-        if (entryType == EmergencyDialer.ENTRY_TYPE_LOCKSCREEN_BUTTON) {
-            launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.LOCK_SCREEN;
-        } else if (entryType == EmergencyDialer.ENTRY_TYPE_POWER_MENU) {
-            launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.POWER_KEY_MENU;
-        } else {
-            launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.UNDEFINED;
-        }
-
-        mLaunchedFrom = launchedFrom;
-        mUiModeErrorCode = uiModeErrorCode;
-    }
-
-    /**
-     * Log when user tring to place an emergency call.
-     * - Which UI (traditional dialpad, shortcut button, dialpad in shortcut view) the user place
-     *   the call from.
-     * - The number is promoted in shortcut view or not, or not even an emergency number?
-     * - Whether the device is locked.
-     * - Network country ISO and network operator.
-     *
-     * @param dialedFrom
-     * @param phoneNumberType
-     * @param phoneInfo
-     */
-    public void logPlaceCall(@DialedFrom int dialedFrom,
-            @PhoneNumberType int phoneNumberType,
-            @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
-        TelephonyInfo telephonyInfo = getTelephonyInfo(phoneNumberType, phoneInfo);
-        final KeyguardManager keyguard = mAppContext.getSystemService(KeyguardManager.class);
-
-        logBeforeMakeCall(dialedFrom, phoneNumberType, keyguard.isKeyguardLocked(),
-                telephonyInfo.mNetworkCountryIso, telephonyInfo.mNetworkOperator);
-    }
-
-    private TelephonyInfo getTelephonyInfo(@PhoneNumberType int phoneNumberType,
-            @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
-        final TelephonyManager telephonyManager = mAppContext.getSystemService(
-                TelephonyManager.class);
-        final TelephonyManager subTelephonyManager;
-        final String networkCountryIso;
-        final String networkOperator;
-        if (phoneNumberType == PhoneNumberType.HAS_SHORTCUT && phoneInfo != null) {
-            subTelephonyManager = telephonyManager.createForSubscriptionId(phoneInfo.getSubId());
-            networkCountryIso = phoneInfo.getCountryIso();
-        } else {
-            // No specific phone to make this call. Take information of default network.
-            subTelephonyManager = null;
-            networkCountryIso = telephonyManager.getNetworkCountryIso();
-        }
-        if (subTelephonyManager != null) {
-            networkOperator = subTelephonyManager.getNetworkOperator();
-        } else {
-            // This could be:
-            // - No specific phone to make this call.
-            // - Subscription changed! Maybe the device roamed to another network?
-            // Take information of default network.
-            networkOperator = telephonyManager.getNetworkOperator();
-        }
-
-        return new TelephonyInfo(networkCountryIso, networkOperator);
-    }
-
-    private void logBeforeMakeCall(@DialedFrom int dialedFrom,
-            @PhoneNumberType int phoneNumberType,
-            boolean isDeviceLocked,
-            String networkCountryIso,
-            String networkOperator) {
-        if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
-            Log.d(LOG_TAG, "EmergencyDialer session: dialedFrom=" + dialFromToString(dialedFrom)
-                    + ", launchedFrom=" + launchedFromToString(mLaunchedFrom)
-                    + ", uimode=" + uiModeErrorCodeToString(mUiModeErrorCode)
-                    + ", type=" + phoneNumberTypeToString(phoneNumberType)
-                    + ", locked=" + isDeviceLocked
-                    + ", country=" + networkCountryIso
-                    + ", operator=" + networkOperator);
-        }
-        mMetricsLogger.write(new LogMaker(MetricsEvent.EMERGENCY_DIALER_MAKE_CALL_V2)
-                .setType(MetricsEvent.TYPE_ACTION)
-                .setSubtype(dialedFrom)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_LAUNCH_FROM, mLaunchedFrom)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_UI_MODE_ERROR_CODE,
-                        mUiModeErrorCode)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_PHONE_NUMBER_TYPE,
-                        phoneNumberType)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_IS_DEVICE_LOCKED,
-                        isDeviceLocked ? 1 : 0)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_COUNTRY_ISO,
-                        networkCountryIso)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_OPERATOR,
-                        networkOperator)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_RADIO_VERSION,
-                        Build.getRadioVersion())
-        );
-    }
-
-    private String dialFromToString(@DialedFrom int dialedFrom) {
-        switch (dialedFrom) {
-            case DialedFrom.TRADITIONAL_DIALPAD:
-                return "traditional";
-            case DialedFrom.SHORTCUT:
-                return "shortcut";
-            case DialedFrom.FASTER_LAUNCHER_DIALPAD:
-                return "dialpad";
-            default:
-                return "unknown_error";
-        }
-    }
-
-    private String launchedFromToString(@LaunchedFrom int launchedFrom) {
-        switch (launchedFrom) {
-            case LaunchedFrom.UNDEFINED:
-                return "undefined";
-            case LaunchedFrom.LOCK_SCREEN:
-                return "lockscreen";
-            case LaunchedFrom.POWER_KEY_MENU:
-                return "powermenu";
-            default:
-                return "unknown_error";
-        }
-    }
-
-    private String phoneNumberTypeToString(@PhoneNumberType int phoneNumberType) {
-        switch (phoneNumberType) {
-            case PhoneNumberType.HAS_SHORTCUT:
-                return "has_shortcut";
-            case PhoneNumberType.NO_SHORTCUT:
-                return "no_shortcut";
-            case PhoneNumberType.NOT_EMERGENCY_NUMBER:
-                return "not_emergency";
-            default:
-                return "unknown_error";
-        }
-    }
-
-    private String uiModeErrorCodeToString(@UiModeErrorCode int uiModeErrorCode) {
-        switch (uiModeErrorCode) {
-            case UiModeErrorCode.UNSPECIFIED_ERROR:
-                return "unspecified_error";
-            case UiModeErrorCode.SUCCESS:
-                return "success";
-            case UiModeErrorCode.CONFIG_ENTRY_POINT:
-                return "config_entry_point";
-            case UiModeErrorCode.CONFIG_SIM_OPERATOR:
-                return "config_sim_operator";
-            case UiModeErrorCode.UNSUPPORTED_COUNTRY:
-                return "unsupported_country";
-            case UiModeErrorCode.AIRPLANE_MODE:
-                return "airplane_mode";
-            case UiModeErrorCode.NO_PROMOTED_NUMBER:
-                return "no_promoted_number";
-            case UiModeErrorCode.NO_CAPABLE_PHONE:
-                return "no_capable_phone";
-            default:
-                return "unknown_error";
-        }
-    }
-}
diff --git a/src/com/android/phone/EmergencyInfoGroup.java b/src/com/android/phone/EmergencyInfoGroup.java
index 9f1c906..a62edfd 100644
--- a/src/com/android/phone/EmergencyInfoGroup.java
+++ b/src/com/android/phone/EmergencyInfoGroup.java
@@ -153,7 +153,7 @@
     private Drawable getCircularUserIcon() {
         final UserManager userManager = (UserManager) getContext().getSystemService(
                 Context.USER_SERVICE);
-        Bitmap bitmapUserIcon = userManager.getUserIcon(UserHandle.getCallingUserId());
+        Bitmap bitmapUserIcon = userManager.getUserIcon();
 
         if (bitmapUserIcon == null) {
             // get default user icon.
@@ -207,23 +207,21 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.emergency_info_view:
-                if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
-                    if (mOnConfirmClickListener != null) {
-                        mOnConfirmClickListener.onConfirmClick(this);
-                    }
-                } else {
-                    revealSelectedButton();
-                }
-                break;
-            case R.id.emergency_info_confirm_view:
+        if (view.getId() == R.id.emergency_info_view) {
+            AccessibilityManager accessibilityMgr =
+                    (AccessibilityManager) getContext().getSystemService(
+                            Context.ACCESSIBILITY_SERVICE);
+            if (accessibilityMgr.isTouchExplorationEnabled()) {
                 if (mOnConfirmClickListener != null) {
                     mOnConfirmClickListener.onConfirmClick(this);
                 }
-                break;
-            default:
-                break;
+            } else {
+                revealSelectedButton();
+            }
+        } else if (view.getId() == R.id.emergency_info_confirm_view) {
+            if (mOnConfirmClickListener != null) {
+                mOnConfirmClickListener.onConfirmClick(this);
+            }
         }
     }
 
diff --git a/src/com/android/phone/EmergencyShortcutButton.java b/src/com/android/phone/EmergencyShortcutButton.java
index 59b3794..bfa956c 100644
--- a/src/com/android/phone/EmergencyShortcutButton.java
+++ b/src/com/android/phone/EmergencyShortcutButton.java
@@ -19,8 +19,6 @@
 import android.animation.Animator;
 import android.animation.AnimatorListenerAdapter;
 import android.content.Context;
-import android.metrics.LogMaker;
-import android.os.SystemClock;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
@@ -32,9 +30,6 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
 /**
  * Emergency shortcut button displays a local emergency phone number information(including phone
  * number, and phone type). To decrease false clicking, it need to click twice to confirm to place
@@ -66,12 +61,6 @@
 
     private boolean mConfirmViewHiding;
 
-    /**
-     * The time, in millis, since boot when user taps on shortcut button to reveal confirm view.
-     * This is used for metrics when calculating the interval between reveal tap and confirm tap.
-     */
-    private long mTimeOfRevealTapInMillis = 0;
-
     public EmergencyShortcutButton(Context context, AttributeSet attrs) {
         super(context, attrs);
     }
@@ -193,32 +182,23 @@
 
     @Override
     public void onClick(View view) {
-        switch (view.getId()) {
-            case R.id.emergency_call_number_info_view:
-                if (AccessibilityManager.getInstance(mContext).isTouchExplorationEnabled()) {
-                    // TalkBack itself includes a prompt to confirm click action implicitly,
-                    // so we don't need an additional confirmation with second tap on button.
-                    if (mOnConfirmClickListener != null) {
-                        mOnConfirmClickListener.onConfirmClick(this);
-                    }
-                } else {
-                    revealSelectedButton();
-                }
-                break;
-            case R.id.emergency_call_confirm_view:
-                if (mTimeOfRevealTapInMillis != 0) {
-                    long timeBetweenTwoTaps =
-                            SystemClock.elapsedRealtime() - mTimeOfRevealTapInMillis;
-                    // Reset reveal time to zero for next reveal-confirm taps pair.
-                    mTimeOfRevealTapInMillis = 0;
-
-                    writeMetricsForConfirmTap(timeBetweenTwoTaps);
-                }
-
+        if (view.getId() == R.id.emergency_call_number_info_view) {
+            AccessibilityManager accessibilityMgr =
+                    (AccessibilityManager) getContext().getSystemService(
+                            Context.ACCESSIBILITY_SERVICE);
+            if (accessibilityMgr.isTouchExplorationEnabled()) {
+                // TalkBack itself includes a prompt to confirm click action implicitly,
+                // so we don't need an additional confirmation with second tap on button.
                 if (mOnConfirmClickListener != null) {
                     mOnConfirmClickListener.onConfirmClick(this);
                 }
-                break;
+            } else {
+                revealSelectedButton();
+            }
+        } else if (view.getId() == R.id.emergency_call_confirm_view) {
+            if (mOnConfirmClickListener != null) {
+                mOnConfirmClickListener.onConfirmClick(this);
+            }
         }
     }
 
@@ -226,7 +206,6 @@
         mConfirmViewHiding = false;
 
         mConfirmView.setVisibility(View.VISIBLE);
-        mTimeOfRevealTapInMillis = SystemClock.elapsedRealtime();
         int centerX = mCallNumberInfoView.getLeft() + mCallNumberInfoView.getWidth() / 2;
         int centerY = mCallNumberInfoView.getTop() + mCallNumberInfoView.getHeight() / 2;
         Animator reveal = ViewAnimationUtils.createCircularReveal(
@@ -263,8 +242,6 @@
             @Override
             public void onAnimationEnd(Animator animation) {
                 mConfirmView.setVisibility(INVISIBLE);
-                // Reset reveal time to zero for next reveal-confirm taps pair.
-                mTimeOfRevealTapInMillis = 0;
             }
         });
         reveal.start();
@@ -279,12 +256,4 @@
             hideSelectedButton();
         }
     };
-
-    private void writeMetricsForConfirmTap(long timeBetweenTwoTaps) {
-        LogMaker logContent = new LogMaker(MetricsEvent.EMERGENCY_DIALER_SHORTCUT_CONFIRM_TAP)
-                .setType(MetricsEvent.TYPE_ACTION)
-                .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_SHORTCUT_TAPS_INTERVAL,
-                        timeBetweenTwoTaps);
-        MetricsLogger.action(logContent);
-    }
 }
diff --git a/src/com/android/phone/GsmUmtsCallBarringOptions.java b/src/com/android/phone/GsmUmtsCallBarringOptions.java
index a6f9844..30e9b5c 100644
--- a/src/com/android/phone/GsmUmtsCallBarringOptions.java
+++ b/src/com/android/phone/GsmUmtsCallBarringOptions.java
@@ -27,7 +27,6 @@
 import android.preference.Preference;
 import android.preference.PreferenceScreen;
 import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.util.Log;
@@ -38,7 +37,6 @@
 import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.GsmCdmaPhone;
 import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.phone.settings.fdn.EditPinPreference;
 
 import java.util.ArrayList;
@@ -76,7 +74,6 @@
     private static final String DIALOG_PW_ENTRY_KEY = "dialog_pw_enter_key";
     private static final String KEY_STATUS = "toggle";
     private static final String PREFERENCE_ENABLED_KEY = "PREFERENCE_ENABLED";
-    private static final String PREFERENCE_SHOW_PASSWORD_KEY = "PREFERENCE_SHOW_PASSWORD";
     private static final String SAVED_BEFORE_LOAD_COMPLETED_KEY = "PROGRESS_SHOWING";
 
     private CallBarringEditPreference mButtonBAOC;
@@ -142,16 +139,13 @@
             return;
         }
 
-        String password = null;
-        if (mButtonDisableAll.isPasswordShown()) {
-            password = mButtonDisableAll.getText();
-            // Validate the length of password first, before submitting it to the
-            // RIL for CB disable.
-            if (!validatePassword(password)) {
-                mButtonDisableAll.setText("");
-                displayMessage(R.string.call_barring_right_pwd_number);
-                return;
-            }
+        String password = mButtonDisableAll.getText();
+        // Validate the length of password first, before submitting it to the
+        // RIL for CB disable.
+        if (!validatePassword(password)) {
+            mButtonDisableAll.setText("");
+            displayMessage(R.string.call_barring_right_pwd_number);
+            return;
         }
 
         // Submit the disable all request
@@ -418,36 +412,18 @@
         mPreferences.add(mButtonBAIC);
         mPreferences.add(mButtonBAICr);
 
-        // Find out if password is currently used.
-        boolean usePassword = true;
-        boolean useDisableaAll = true;
-
-        ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
-        if (imsPhone != null
-                && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
-                        || imsPhone.isUtEnabled())) {
-            usePassword = false;
-            useDisableaAll = false;
-        }
-
         // Find out if the sim card is ready.
         boolean isSimReady = TelephonyManager.from(this).getSimState(
                 SubscriptionManager.getSlotIndex(mPhone.getSubId()))
                         == TelephonyManager.SIM_STATE_READY;
 
-        // Deactivate all option is unavailable when sim card is not ready or Ut is enabled.
-        if (isSimReady && useDisableaAll) {
+        // Deactivate all option and Change password option are unavailable
+        // when sim card is not ready.
+        if (isSimReady) {
             mButtonDisableAll.setEnabled(true);
-            mButtonDisableAll.init(mPhone);
-        } else {
-            mButtonDisableAll.setEnabled(false);
-        }
-
-        // Change password option is unavailable when sim card is not ready or when the password is
-        // not used.
-        if (isSimReady && usePassword) {
             mButtonChangePW.setEnabled(true);
         } else {
+            mButtonDisableAll.setEnabled(false);
             mButtonChangePW.setEnabled(false);
             mButtonChangePW.setSummary(R.string.call_barring_change_pwd_description_disabled);
         }
@@ -475,8 +451,6 @@
                     pref.handleCallBarringResult(bundle.getBoolean(KEY_STATUS));
                     pref.init(this, true, mPhone);
                     pref.setEnabled(bundle.getBoolean(PREFERENCE_ENABLED_KEY, pref.isEnabled()));
-                    pref.setInputMethodNeeded(bundle.getBoolean(PREFERENCE_SHOW_PASSWORD_KEY,
-                            pref.needInputMethod()));
                 }
             }
             mPwChangeState = mIcicle.getInt(PW_CHANGE_STATE_KEY);
@@ -516,7 +490,6 @@
             Bundle bundle = new Bundle();
             bundle.putBoolean(KEY_STATUS, pref.mIsActivated);
             bundle.putBoolean(PREFERENCE_ENABLED_KEY, pref.isEnabled());
-            bundle.putBoolean(PREFERENCE_SHOW_PASSWORD_KEY, pref.needInputMethod());
             outState.putParcelable(pref.getKey(), bundle);
         }
         outState.putInt(PW_CHANGE_STATE_KEY, mPwChangeState);
diff --git a/src/com/android/phone/GsmUmtsCallForwardOptions.java b/src/com/android/phone/GsmUmtsCallForwardOptions.java
index b8ea8fd..10bd8d7 100644
--- a/src/com/android/phone/GsmUmtsCallForwardOptions.java
+++ b/src/com/android/phone/GsmUmtsCallForwardOptions.java
@@ -18,6 +18,7 @@
 import java.util.ArrayList;
 
 public class GsmUmtsCallForwardOptions extends TimeConsumingPreferenceActivity {
+    private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
     private static final String LOG_TAG = "GsmUmtsCallForwardOptions";
 
     private static final String NUM_PROJECTION[] = {
@@ -62,6 +63,7 @@
         mPhone = mSubscriptionInfoHelper.getPhone();
 
         PersistableBundle b = null;
+        boolean supportCFNRc = true;
         if (mSubscriptionInfoHelper.hasSubId()) {
             b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
                     mSubscriptionInfoHelper.getSubId());
@@ -73,6 +75,8 @@
                     CarrierConfigManager.KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL);
             mCallForwardByUssd = b.getBoolean(
                     CarrierConfigManager.KEY_USE_CALL_FORWARDING_USSD_BOOL);
+            supportCFNRc = b.getBoolean(
+                    CarrierConfigManager.KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL);
         }
 
         PreferenceScreen prefSet = getPreferenceScreen();
@@ -89,7 +93,16 @@
         mPreferences.add(mButtonCFU);
         mPreferences.add(mButtonCFB);
         mPreferences.add(mButtonCFNRy);
-        mPreferences.add(mButtonCFNRc);
+
+        if (supportCFNRc) {
+            mPreferences.add(mButtonCFNRc);
+        } else {
+            // When CFNRc is not supported, mButtonCFNRc is grayed out from the menu.
+            // Default state for the preferences in this PreferenceScreen is disabled.
+            // Only preferences listed in the ArrayList mPreferences will be enabled.
+            // By not adding mButtonCFNRc to mPreferences it will be kept disabled.
+            if (DBG) Log.d(LOG_TAG, "onCreate: CFNRc is not supported, grey out the item.");
+        }
 
         if (mCallForwardByUssd) {
             //the call forwarding ussd command's behavior is similar to the call forwarding when
diff --git a/src/com/android/phone/GsmUmtsOptions.java b/src/com/android/phone/GsmUmtsOptions.java
deleted file mode 100644
index 7f6207b..0000000
--- a/src/com/android/phone/GsmUmtsOptions.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-/**
- * List of Network-specific settings screens.
- */
-public class GsmUmtsOptions {
-    private static final String LOG_TAG = "GsmUmtsOptions";
-
-    private CarrierConfigManager mCarrierConfigManager;
-    private RestrictedPreference mButtonAPNExpand;
-    private Preference mCategoryAPNExpand;
-    Preference mCarrierSettingPref;
-
-    private NetworkOperators mNetworkOperator;
-
-    private static final String BUTTON_APN_EXPAND_KEY = "button_gsm_apn_key";
-    private static final String CATEGORY_APN_EXPAND_KEY = "category_gsm_apn_key";
-    private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-
-    public static final String EXTRA_SUB_ID = "sub_id";
-    private PreferenceFragment mPrefFragment;
-    private PreferenceScreen mPrefScreen;
-
-    public GsmUmtsOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
-            final int subId) {
-        final Context context = prefFragment.getContext();
-        mPrefFragment = prefFragment;
-        mPrefScreen = prefScreen;
-        mCarrierConfigManager = new CarrierConfigManager(context);
-        mPrefFragment.addPreferencesFromResource(R.xml.gsm_umts_options);
-        mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
-        mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
-        mNetworkOperator = (NetworkOperators) mPrefScreen
-                .findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
-        mCarrierSettingPref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-
-        mNetworkOperator.initialize();
-
-        update(subId);
-    }
-
-    // Unlike mPrefFragment or mPrefScreen, subId  may change during lifecycle of GsmUmtsOptions.
-    // When that happens, we update GsmUmtsOptions with new parameters.
-    protected void update(final int subId) {
-        boolean addAPNExpand = true;
-        boolean addNetworkOperatorsCategory = true;
-        boolean addCarrierSettings = true;
-        final TelephonyManager telephonyManager = TelephonyManager.from(mPrefFragment.getContext())
-                .createForSubscriptionId(subId);
-        if (telephonyManager.getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
-            log("Not a GSM phone");
-            addAPNExpand = false;
-            mNetworkOperator.setEnabled(false);
-        } else {
-            log("Not a CDMA phone");
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
-
-            // Determine which options to display. For GSM these are defaulted to true in
-            // CarrierConfigManager, but they maybe overriden by DefaultCarrierConfigService or a
-            // carrier app.
-            // Note: these settings used to be controlled with overlays in
-            // Telephony/res/values/config.xml
-            if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL)
-                    && mCategoryAPNExpand != null) {
-                addAPNExpand = false;
-            }
-            if (!carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)) {
-                addNetworkOperatorsCategory = false;
-            }
-
-            if (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)) {
-                if (telephonyManager.isManualNetworkSelectionAllowed()) {
-                    log("[CSP] Enabling Operator Selection menu.");
-                    mNetworkOperator.setEnabled(true);
-                } else {
-                    log("[CSP] Disabling Operator Selection menu.");
-                    addNetworkOperatorsCategory = false;
-                }
-            }
-
-            // Read platform settings for carrier settings
-            addCarrierSettings = carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-        }
-
-        // Making no assumptions of whether they are added or removed at this point.
-        // Calling add or remove explicitly to make sure they are updated.
-
-        if (addAPNExpand) {
-            log("update: addAPNExpand");
-            mButtonAPNExpand.setDisabledByAdmin(
-                    MobileNetworkSettings.isDpcApnEnforced(mButtonAPNExpand.getContext())
-                            ? RestrictedLockUtilsInternal.getDeviceOwner(
-                                    mButtonAPNExpand.getContext())
-                            : null);
-            mButtonAPNExpand.setOnPreferenceClickListener(
-                    new Preference.OnPreferenceClickListener() {
-                        @Override
-                        public boolean onPreferenceClick(Preference preference) {
-                            MetricsLogger.action(mButtonAPNExpand.getContext(),
-                                    MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
-                            // We need to build the Intent by hand as the Preference Framework
-                            // does not allow to add an Intent with some extras into a Preference
-                            // XML file
-                            final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
-                            // This will setup the Home and Search affordance
-                            intent.putExtra(":settings:show_fragment_as_subsetting", true);
-                            intent.putExtra(EXTRA_SUB_ID, subId);
-                            mPrefFragment.startActivity(intent);
-                            return true;
-                        }
-                    });
-            mPrefScreen.addPreference(mCategoryAPNExpand);
-        } else {
-            mPrefScreen.removePreference(mCategoryAPNExpand);
-        }
-
-        if (addNetworkOperatorsCategory) {
-            mPrefScreen.addPreference(mNetworkOperator);
-            mNetworkOperator.update(subId);
-        } else {
-            mPrefScreen.removePreference(mNetworkOperator);
-        }
-
-        if (addCarrierSettings) {
-            mPrefScreen.addPreference(mCarrierSettingPref);
-        } else {
-            mPrefScreen.removePreference(mCarrierSettingPref);
-        }
-
-    }
-
-    protected boolean preferenceTreeClick(Preference preference) {
-        return mNetworkOperator.preferenceTreeClick(preference);
-    }
-
-    protected void log(String s) {
-        android.util.Log.d(LOG_TAG, s);
-    }
-}
diff --git a/src/com/android/phone/INetworkQueryService.aidl b/src/com/android/phone/INetworkQueryService.aidl
deleted file mode 100644
index f65c971..0000000
--- a/src/com/android/phone/INetworkQueryService.aidl
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- 
-package com.android.phone;
-
-import com.android.phone.INetworkQueryServiceCallback;
- 
-/**
- * Service interface to handle queries for available networks.  The
- * Phone application lets this service interface handle carrier 
- * availability queries instead of making direct calls to the Phone layer.
- */
-oneway interface INetworkQueryService {
- 
-    /**
-     * Starts a network query if it has not been started yet, and
-     * request a callback through the INetworkQueryServiceCallback
-     * object on query completion.  If there is an existing request,
-     * then just add the callback to the list of notifications
-     * that will be sent upon query completion.
-     *
-     * It will send the network query with the use of
-     * <code>TelephonyManager.requestNetworkScan()</code> if the
-     * isIncrementalResult is true. And if the isIncrementalResult
-     * is set as false, it will try to send network query through
-     * <code>Phone.getAvailableNetworks()</code>.
-     */
-    void startNetworkQuery(in INetworkQueryServiceCallback cb, in int phoneId, boolean isIncrementalResult);
-
-    /**
-     * Tells the service that the requested query is to be ignored.
-     * This may not do anything for the Query request in the
-     * underlying RIL, but it ensures that the callback is removed
-     * from the list of notifications.
-     */
-    void stopNetworkQuery();
-
-    /**
-     * Tells the service to unregister the network query callback.
-     * Will not attempt to stop an ongoing network query.
-     * Functionally may be the same as stopNetworkQuery since that
-     * function also does not stop a query request in the underlying
-     * RIL.
-     */
-    void unregisterCallback(in INetworkQueryServiceCallback cb);
-}
diff --git a/src/com/android/phone/INetworkQueryServiceCallback.aidl b/src/com/android/phone/INetworkQueryServiceCallback.aidl
deleted file mode 100644
index 2299f5e..0000000
--- a/src/com/android/phone/INetworkQueryServiceCallback.aidl
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.telephony.CellInfo;
-import com.android.internal.telephony.OperatorInfo;
-
-/**
- * Service interface to handle callbacks into the activity from the
- * NetworkQueryService.  These objects are used to notify that a
- * query is complete and that the results are ready to process.
- */
-oneway interface INetworkQueryServiceCallback {
-
-    /**
-     * Returns the scan results to the user, this callback will be
-     * called at least one time.
-     */
-    void onResults(in List<CellInfo> results);
-
-    /**
-     * Informs the user that the scan has stopped.
-     *
-     * This callback will be called when the scan is finished or cancelled by the user.
-     * The related NetworkScanRequest will be deleted after this callback.
-     */
-    void onComplete();
-
-    /**
-     * Informs the user that there is some error about the scan.
-     *
-     * This callback will be called whenever there is any error about the scan,
-     * and the scan will be terminated. onComplete() will NOT be called.
-     */
-    void onError(int error);
-
-}
diff --git a/src/com/android/phone/IccNetworkDepersonalizationPanel.java b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
index 8bd10a2..7d854cd 100644
--- a/src/com/android/phone/IccNetworkDepersonalizationPanel.java
+++ b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
@@ -22,7 +22,10 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.PersistableBundle;
+import android.os.RemoteException;
+import android.os.ServiceManager;
 import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
 import android.text.Editable;
 import android.text.Spannable;
 import android.text.TextUtils;
@@ -37,6 +40,8 @@
 import android.widget.TextView;
 
 import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState;
 
 /**
  * "SIM network unlock" PIN entry screen.
@@ -52,7 +57,8 @@
      * Tracks whether there is an instance of the network depersonalization dialog showing or not.
      * Ensures only a single instance of the dialog is visible.
      */
-    private static boolean sShowingDialog = false;
+    private static boolean [] sShowingDialog =
+            new boolean[TelephonyManager.getDefault().getSimCount()];
 
     //debug constants
     private static final boolean DBG = false;
@@ -61,29 +67,48 @@
     private static final int EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT = 100;
 
     private Phone mPhone;
+    private int mPersoSubtype;
+    private static IccNetworkDepersonalizationPanel [] sNdpPanel =
+            new IccNetworkDepersonalizationPanel[TelephonyManager.getDefault().getSimCount()];
 
     //UI elements
     private EditText     mPinEntry;
     private LinearLayout mEntryPanel;
     private LinearLayout mStatusPanel;
+    private TextView     mPersoSubtypeText;
+    private PersoSubState mPersoSubState;
     private TextView     mStatusText;
 
     private Button       mUnlockButton;
     private Button       mDismissButton;
 
+    enum statusType {
+        ENTRY,
+        IN_PROGRESS,
+        ERROR,
+        SUCCESS
+    }
+
     /**
      * Shows the network depersonalization dialog, but only if it is not already visible.
      */
-    public static void showDialog(Phone phone) {
-        if (sShowingDialog) {
+    public static void showDialog(Phone phone, int subType) {
+        int phoneId = phone == null ? 0: phone.getPhoneId();
+        if (sShowingDialog[phoneId]) {
             Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; skipped already shown.");
             return;
         }
         Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; showing dialog.");
-        sShowingDialog = true;
-        IccNetworkDepersonalizationPanel ndpPanel =
-                new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance(), phone);
-        ndpPanel.show();
+        sShowingDialog[phoneId] = true;
+        sNdpPanel[phoneId] = new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance(),
+                phone, subType);
+        sNdpPanel[phoneId].show();
+    }
+
+    public static void dialogDismiss(int phoneId) {
+        if (sNdpPanel[phoneId] != null && sShowingDialog[phoneId]) {
+            sNdpPanel[phoneId].dismiss();
+        }
     }
 
     //private textwatcher to control text entry.
@@ -109,37 +134,41 @@
                 AsyncResult res = (AsyncResult) msg.obj;
                 if (res.exception != null) {
                     if (DBG) log("network depersonalization request failure.");
-                    indicateError();
+                    displayStatus(statusType.ERROR.name());
                     postDelayed(new Runnable() {
-                                    public void run() {
-                                        hideAlert();
-                                        mPinEntry.getText().clear();
-                                        mPinEntry.requestFocus();
-                                    }
-                                }, 3000);
+                        public void run() {
+                            hideAlert();
+                            mPinEntry.getText().clear();
+                            mPinEntry.requestFocus();
+                        }
+                    }, 3000);
                 } else {
                     if (DBG) log("network depersonalization success.");
-                    indicateSuccess();
+                    displayStatus(statusType.SUCCESS.name());
                     postDelayed(new Runnable() {
-                                    public void run() {
-                                        dismiss();
-                                    }
-                                }, 3000);
+                        public void run() {
+                            dismiss();
+                        }
+                    }, 3000);
                 }
             }
         }
     };
 
+
     //constructor
     public IccNetworkDepersonalizationPanel(Context context) {
         super(context);
         mPhone = PhoneGlobals.getPhone();
+        mPersoSubtype = PersoSubState.PERSOSUBSTATE_SIM_NETWORK.ordinal();
     }
 
     //constructor
-    public IccNetworkDepersonalizationPanel(Context context, Phone phone) {
+    public IccNetworkDepersonalizationPanel(Context context, Phone phone,
+            int subtype) {
         super(context);
         mPhone = phone == null ? PhoneGlobals.getPhone() : phone;
+        mPersoSubtype = subtype;
     }
 
     @Override
@@ -158,6 +187,8 @@
         span.setSpan(mPinEntryWatcher, 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
 
         mEntryPanel = (LinearLayout) findViewById(R.id.entry_panel);
+        mPersoSubtypeText = (TextView) findViewById(R.id.perso_subtype_text);
+        displayStatus(statusType.ENTRY.name());
 
         mUnlockButton = (Button) findViewById(R.id.ndp_unlock);
         mUnlockButton.setOnClickListener(mUnlockListener);
@@ -190,7 +221,8 @@
     public void onStop() {
         super.onStop();
         Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; hiding dialog.");
-        sShowingDialog = false;
+        int phoneId = mPhone == null ? 0 : mPhone.getPhoneId();
+        sShowingDialog[phoneId] = false;
     }
 
     //Mirrors IccPinUnlockPanel.onKeyDown().
@@ -210,29 +242,45 @@
                 return;
             }
 
-            if (DBG) log("requesting network depersonalization with code " + pin);
-            mPhone.getIccCard().supplyNetworkDepersonalization(pin,
-                    Message.obtain(mHandler, EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT));
-            indicateBusy();
+            log("Requesting De-Personalization for subtype " + mPersoSubtype);
+
+            try {
+                mPhone.getIccCard().supplySimDepersonalization(mPersoSubState,pin,
+                        Message.obtain(mHandler, EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT));
+            } catch (NullPointerException ex) {
+                log("NullPointerException @supplySimDepersonalization" + ex);
+            }
+            displayStatus(statusType.IN_PROGRESS.name());
         }
     };
 
-    private void indicateBusy() {
-        mStatusText.setText(R.string.requesting_unlock);
-        mEntryPanel.setVisibility(View.GONE);
-        mStatusPanel.setVisibility(View.VISIBLE);
-    }
+    private void displayStatus(String type) {
+        int label = 0;
 
-    private void indicateError() {
-        mStatusText.setText(R.string.unlock_failed);
-        mEntryPanel.setVisibility(View.GONE);
-        mStatusPanel.setVisibility(View.VISIBLE);
-    }
+        mPersoSubState = PersoSubState.values()[mPersoSubtype];
+        log("displayStatus mPersoSubState: " +mPersoSubState.name() +"type: " +type);
 
-    private void indicateSuccess() {
-        mStatusText.setText(R.string.unlock_success);
-        mEntryPanel.setVisibility(View.GONE);
-        mStatusPanel.setVisibility(View.VISIBLE);
+        label = getContext().getResources().getIdentifier(mPersoSubState.name()
+                + "_" + type, "string", "android");
+
+        if (label == 0) {
+            log ("Unable to get the PersoSubType string");
+            return;
+        }
+
+        if(!PersoSubState.isPersoLocked(mPersoSubState)) {
+            log ("Unsupported Perso Subtype :" + mPersoSubState.name());
+            return;
+        }
+
+        if (type == statusType.ENTRY.name()) {
+            String displayText = getContext().getString(label);
+            mPersoSubtypeText.setText(displayText);
+        } else {
+            mStatusText.setText(label);
+            mEntryPanel.setVisibility(View.GONE);
+            mStatusPanel.setVisibility(View.VISIBLE);
+        }
     }
 
     private void hideAlert() {
@@ -241,13 +289,13 @@
     }
 
     View.OnClickListener mDismissListener = new View.OnClickListener() {
-            public void onClick(View v) {
-                if (DBG) log("mDismissListener: skipping depersonalization...");
-                dismiss();
-            }
-        };
+        public void onClick(View v) {
+            if (DBG) log("mDismissListener: skipping depersonalization...");
+            dismiss();
+        }
+    };
 
     private void log(String msg) {
-        Log.v(TAG, "[IccNetworkDepersonalizationPanel] " + msg);
+        Log.d(TAG, "[IccNetworkDepersonalizationPanel] " + msg);
     }
 }
diff --git a/src/com/android/phone/IccPanel.java b/src/com/android/phone/IccPanel.java
index be182233..73dd8bc 100644
--- a/src/com/android/phone/IccPanel.java
+++ b/src/com/android/phone/IccPanel.java
@@ -74,13 +74,13 @@
     @Override
     protected void onStart() {
         super.onStart();
-        mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
+        mStatusBarManager.setDisabledForSimNetworkLock(true);
     }
 
     @Override
     public void onStop() {
         super.onStop();
-        mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
+        mStatusBarManager.setDisabledForSimNetworkLock(false);
     }
 
     public boolean onKeyDown(int keyCode, KeyEvent event) {
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
new file mode 100644
index 0000000..dcae24b
--- /dev/null
+++ b/src/com/android/phone/ImsRcsController.java
@@ -0,0 +1,393 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import android.net.Uri;
+import android.os.Binder;
+import android.os.RemoteException;
+import android.os.ServiceSpecificException;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyFrameworkInitializer;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IImsRcsController;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.telephony.ims.feature.RcsFeature;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.Log;
+
+import com.android.ims.ImsManager;
+import com.android.internal.telephony.IIntegerConsumer;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.TelephonyPermissions;
+import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.services.telephony.rcs.RcsFeatureController;
+import com.android.services.telephony.rcs.TelephonyRcsService;
+import com.android.services.telephony.rcs.UserCapabilityExchangeImpl;
+
+import java.util.List;
+
+/**
+ * Implementation of the IImsRcsController interface.
+ */
+public class ImsRcsController extends IImsRcsController.Stub {
+    private static final String TAG = "ImsRcsController";
+
+    /** The singleton instance. */
+    private static ImsRcsController sInstance;
+
+    private PhoneGlobals mApp;
+    private TelephonyRcsService mRcsService;
+
+    /**
+     * Initialize the singleton ImsRcsController instance.
+     * This is only done once, at startup, from PhoneApp.onCreate().
+     */
+    static ImsRcsController init(PhoneGlobals app) {
+        synchronized (ImsRcsController.class) {
+            if (sInstance == null) {
+                sInstance = new ImsRcsController(app);
+            } else {
+                Log.wtf(TAG, "init() called multiple times!  sInstance = " + sInstance);
+            }
+            return sInstance;
+        }
+    }
+
+    /** Private constructor; @see init() */
+    private ImsRcsController(PhoneGlobals app) {
+        Log.i(TAG, "ImsRcsController");
+        mApp = app;
+        TelephonyFrameworkInitializer
+                .getTelephonyServiceManager().getTelephonyImsServiceRegisterer().register(this);
+    }
+
+    /**
+     * Register a {@link RegistrationManager.RegistrationCallback} to receive IMS network
+     * registration state.
+     */
+    @Override
+    public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback callback) {
+        enforceReadPrivilegedPermission("registerImsRegistrationCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).registerImsRegistrationCallback(subId, callback);
+        } catch (ImsException e) {
+            Log.e(TAG, "registerImsRegistrationCallback: sudId=" + subId + ", " + e.getMessage());
+            throw new ServiceSpecificException(e.getCode());
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Removes an existing {@link RegistrationManager.RegistrationCallback}.
+     */
+    @Override
+    public void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback callback) {
+        enforceReadPrivilegedPermission("unregisterImsRegistrationCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).unregisterImsRegistrationCallback(subId, callback);
+        } catch (ServiceSpecificException e) {
+            Log.e(TAG, "unregisterImsRegistrationCallback: error=" + e.errorCode);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Get the IMS service registration state for the RcsFeature associated with this sub id.
+     */
+    @Override
+    public void getImsRcsRegistrationState(int subId, IIntegerConsumer consumer) {
+        enforceReadPrivilegedPermission("getImsRcsRegistrationState");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).getRegistrationState(regState -> {
+                try {
+                    consumer.accept((regState == null)
+                            ? RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED : regState);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "getImsRcsRegistrationState: callback is not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Gets the Transport Type associated with the current IMS RCS registration.
+     */
+    @Override
+    public void getImsRcsRegistrationTransportType(int subId, IIntegerConsumer consumer) {
+        enforceReadPrivilegedPermission("getImsRcsRegistrationTransportType");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).getRegistrationTech(regTech -> {
+                // Convert registration tech from ImsRegistrationImplBase -> RegistrationManager
+                int regTechConverted = (regTech == null)
+                        ? ImsRegistrationImplBase.REGISTRATION_TECH_NONE : regTech;
+                regTechConverted = RegistrationManager.IMS_REG_TO_ACCESS_TYPE_MAP.get(
+                        regTechConverted);
+                try {
+                    consumer.accept(regTechConverted);
+                } catch (RemoteException e) {
+                    Log.w(TAG, "getImsRcsRegistrationTransportType: callback is not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Register a capability callback which will provide RCS availability updates for the
+     * subscription specified.
+     *
+     * @param subId the subscription ID
+     * @param callback The ImsCapabilityCallback to be registered.
+     */
+    @Override
+    public void registerRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback) {
+        enforceReadPrivilegedPermission("registerRcsAvailabilityCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).registerRcsAvailabilityCallback(subId, callback);
+        } catch (ImsException e) {
+            Log.e(TAG, "registerRcsAvailabilityCallback: sudId=" + subId + ", " + e.getMessage());
+            throw new ServiceSpecificException(e.getCode());
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Remove the registered capability callback.
+     *
+     * @param subId the subscription ID
+     * @param callback The ImsCapabilityCallback to be removed.
+     */
+    @Override
+    public void unregisterRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback) {
+        enforceReadPrivilegedPermission("unregisterRcsAvailabilityCallback");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            getRcsFeatureController(subId).unregisterRcsAvailabilityCallback(subId, callback);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Query for the capability of an IMS RCS service
+     *
+     * @param subId the subscription ID
+     * @param capability the RCS capability to query.
+     * @param radioTech the radio tech that this capability failed for
+     * @return true if the RCS capability is capable for this subscription, false otherwise.
+     */
+    @Override
+    public boolean isCapable(int subId,
+            @RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability,
+            @ImsRegistrationImplBase.ImsRegistrationTech int radioTech) {
+        enforceReadPrivilegedPermission("isCapable");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            return getRcsFeatureController(subId).isCapable(capability, radioTech);
+        } catch (ImsException e) {
+            Log.e(TAG, "isCapable: sudId=" + subId
+                    + ", capability=" + capability + ", " + e.getMessage());
+            return false;
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Query the availability of an IMS RCS capability.
+     *
+     * @param subId the subscription ID
+     * @param capability the RCS capability to query.
+     * @return true if the RCS capability is currently available for the associated subscription,
+     * false otherwise.
+     */
+    @Override
+    public boolean isAvailable(int subId,
+            @RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability) {
+        enforceReadPrivilegedPermission("isAvailable");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            return getRcsFeatureController(subId).isAvailable(capability);
+        } catch (ImsException e) {
+            Log.e(TAG, "isAvailable: sudId=" + subId
+                    + ", capability=" + capability + ", " + e.getMessage());
+            return false;
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public void requestCapabilities(int subId, String callingPackage, String callingFeatureId,
+            List<Uri> contactNumbers, IRcsUceControllerCallback c) {
+        enforceReadPrivilegedPermission("requestCapabilities");
+        if (!isUceSettingEnabled(subId, callingPackage, callingFeatureId)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "The user has not enabled UCE for this subscription.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            UserCapabilityExchangeImpl uce = getRcsFeatureController(subId).getFeature(
+                    UserCapabilityExchangeImpl.class);
+            if (uce == null) {
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                        "This subscription does not support UCE.");
+            }
+            uce.requestCapabilities(contactNumbers, c);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public int getUcePublishState(int subId) {
+        enforceReadPrivilegedPermission("getUcePublishState");
+        final long token = Binder.clearCallingIdentity();
+        try {
+            UserCapabilityExchangeImpl uce = getRcsFeatureController(subId).getFeature(
+                    UserCapabilityExchangeImpl.class);
+            if (uce == null) {
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                        "This subscription does not support UCE.");
+            }
+            return uce.getUcePublishState();
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public boolean isUceSettingEnabled(int subId, String callingPackage, String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+                mApp, subId, callingPackage, callingFeatureId, "isUceSettingEnabled")) {
+            Log.w(TAG, "isUceSettingEnabled: READ_PHONE_STATE app op disabled when accessing "
+                    + "isUceSettingEnabled");
+            return false;
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            return SubscriptionManager.getBooleanSubscriptionProperty(subId,
+                    SubscriptionManager.IMS_RCS_UCE_ENABLED, false /*defaultValue*/, mApp);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public void setUceSettingEnabled(int subId, boolean isEnabled) {
+        enforceModifyPermission();
+        final long token = Binder.clearCallingIdentity();
+        try {
+            SubscriptionManager.setSubscriptionProperty(subId,
+                    SubscriptionManager.IMS_RCS_UCE_ENABLED, (isEnabled ? "1" : "0"));
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Make sure either called from same process as self (phone) or IPC caller has read privilege.
+     *
+     * @throws SecurityException if the caller does not have the required permission
+     */
+    private void enforceReadPrivilegedPermission(String message) {
+        mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, message);
+    }
+
+    /**
+     * Make sure the caller has the MODIFY_PHONE_STATE permission.
+     *
+     * @throws SecurityException if the caller does not have the required permission
+     */
+    private void enforceModifyPermission() {
+        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE, null);
+    }
+
+    /**
+     * Retrieve ImsPhone instance.
+     *
+     * @param subId the subscription ID
+     * @return The ImsPhone instance
+     * @throws ServiceSpecificException if getting ImsPhone instance failed.
+     */
+    private ImsPhone getImsPhone(int subId) {
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS is not available on device.");
+        }
+        Phone phone = PhoneGlobals.getPhone(subId);
+        if (phone == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION,
+                    "Invalid subscription Id: " + subId);
+        }
+        ImsPhone imsPhone = (ImsPhone) phone.getImsPhone();
+        if (imsPhone == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE,
+                    "Cannot find ImsPhone instance: " + subId);
+        }
+        return imsPhone;
+    }
+
+    /**
+     * Retrieve RcsFeatureManager instance.
+     *
+     * @param subId the subscription ID
+     * @return The RcsFeatureManager instance
+     * @throws ServiceSpecificException if getting RcsFeatureManager instance failed.
+     */
+    private RcsFeatureController getRcsFeatureController(int subId) {
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS is not available on device.");
+        }
+        if (mRcsService == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS is not available on device.");
+        }
+        Phone phone = PhoneGlobals.getPhone(subId);
+        if (phone == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION,
+                    "Invalid subscription Id: " + subId);
+        }
+        int slotId = phone.getPhoneId();
+        RcsFeatureController c = mRcsService.getFeatureController(slotId);
+        if (c == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "The requested operation is not supported for subId " + subId);
+        }
+        return c;
+    }
+
+    void setRcsService(TelephonyRcsService rcsService) {
+        mRcsService = rcsService;
+    }
+}
diff --git a/src/com/android/phone/MobileDataPreference.java b/src/com/android/phone/MobileDataPreference.java
deleted file mode 100644
index e1ceab0..0000000
--- a/src/com/android/phone/MobileDataPreference.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.DialogPreference;
-import android.preference.PreferenceScreen;
-import android.provider.Settings.Global;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.View;
-import android.widget.Checkable;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
-import java.util.List;
-
-/**
- * Customized Preference to enable / disable mobile data.
- * Basically copy of with com.android.settings.CellDataPreference.
- */
-public class MobileDataPreference extends DialogPreference {
-
-    private static final boolean DBG = false;
-    private static final String TAG = "MobileDataPreference";
-
-    public int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    public boolean mChecked;
-    // Whether to show the dialog to ask switching default data subscription.
-    // Should be true only when a multi-sim phone only supports data connection on a single phone,
-    // and user is enabling data on the non-default phone.
-    public boolean mMultiSimDialog;
-    private TelephonyManager mTelephonyManager;
-    private SubscriptionManager mSubscriptionManager;
-
-    public MobileDataPreference(Context context, AttributeSet attrs) {
-        super(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
-    }
-
-    // Must be called to avoid binder leakage.
-    void dispose() {
-        mListener.setListener(false, mSubId, getContext());
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Parcelable s) {
-        CellDataState state = (CellDataState) s;
-        super.onRestoreInstanceState(state.getSuperState());
-        mTelephonyManager = TelephonyManager.from(getContext());
-        mChecked = state.mChecked;
-        mMultiSimDialog = state.mMultiSimDialog;
-        if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            mSubId = state.mSubId;
-            setKey(getKey() + mSubId);
-        }
-        notifyChanged();
-    }
-
-    @Override
-    protected Parcelable onSaveInstanceState() {
-        CellDataState state = new CellDataState(super.onSaveInstanceState());
-        state.mChecked = mChecked;
-        state.mMultiSimDialog = mMultiSimDialog;
-        state.mSubId = mSubId;
-        return state;
-    }
-
-    @Override
-    protected void onAttachedToActivity() {
-        super.onAttachedToActivity();
-        mListener.setListener(true, mSubId, getContext());
-    }
-
-    @Override
-    protected void onPrepareForRemoval() {
-        mListener.setListener(false, mSubId, getContext());
-        super.onPrepareForRemoval();
-    }
-
-    /**
-     * Initialize this preference with subId.
-     */
-    public void initialize(int subId) {
-        if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            throw new IllegalArgumentException("MobileDataPreference needs a SubscriptionInfo");
-        }
-        mSubscriptionManager = SubscriptionManager.from(getContext());
-        mTelephonyManager = TelephonyManager.from(getContext());
-        if (mSubId != subId) {
-            mSubId = subId;
-            setKey(getKey() + subId);
-        }
-        updateChecked();
-    }
-
-    private void updateChecked() {
-        setChecked(mTelephonyManager.getDataEnabled(mSubId));
-    }
-
-    @Override
-    public void performClick(PreferenceScreen preferenceScreen) {
-        if (!isEnabled() || !SubscriptionManager.isValidSubscriptionId(mSubId)) {
-            return;
-        }
-        final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
-                mSubId);
-        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
-        final boolean isMultiSim = (mTelephonyManager.getSimCount() > 1);
-        final boolean isMultipleDataOnCapable =
-                (mTelephonyManager.getNumberOfModemsWithSimultaneousDataConnections() > 1);
-        final boolean isDefaultDataSubscription = (nextSir != null && currentSir != null
-                && currentSir.getSubscriptionId() == nextSir.getSubscriptionId());
-        if (mChecked) {
-            if (!isMultiSim) {
-                // disabling data; show confirmation dialog which eventually
-                // calls setMobileDataEnabled() once user confirms.
-                mMultiSimDialog = false;
-                super.performClick(preferenceScreen);
-            } else {
-                // Don't show any dialog.
-                setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
-            }
-        } else {
-            if (isMultiSim && !isMultipleDataOnCapable && !isDefaultDataSubscription) {
-                // enabling data and setting to default; show confirmation dialog which eventually
-                // calls setMobileDataEnabled() once user confirms.
-                mMultiSimDialog = true;
-                super.performClick(preferenceScreen);
-            } else {
-                // Don't show any dialog.
-                setMobileDataEnabled(true /* enabled */, false /* disableOtherSubscriptions */);
-            }
-        }
-    }
-
-    private void setMobileDataEnabled(boolean enabled, boolean disableOtherSubscriptions) {
-        if (DBG) Log.d(TAG, "setMobileDataEnabled(" + enabled + "," + mSubId + ")");
-
-        MetricsLogger.action(getContext(), MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE,
-                enabled);
-
-        mTelephonyManager.setDataEnabled(mSubId, enabled);
-
-        if (disableOtherSubscriptions) {
-            disableDataForOtherSubscriptions(mSubId);
-        }
-
-        setChecked(enabled);
-    }
-
-    private void setChecked(boolean checked) {
-        if (mChecked == checked) return;
-        mChecked = checked;
-        notifyChanged();
-    }
-
-    @Override
-    protected void onBindView(View view) {
-        super.onBindView(view);
-        View checkableView = view.findViewById(com.android.internal.R.id.switch_widget);
-        checkableView.setClickable(false);
-        ((Checkable) checkableView).setChecked(mChecked);
-    }
-
-    @Override
-    protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
-        if (mMultiSimDialog) {
-            showMultiSimDialog(builder);
-        } else {
-            showDisableDialog(builder);
-        }
-    }
-
-    private void showDisableDialog(AlertDialog.Builder builder) {
-        builder.setTitle(null)
-                .setMessage(R.string.data_usage_disable_mobile)
-                .setPositiveButton(android.R.string.ok, this)
-                .setNegativeButton(android.R.string.cancel, null);
-    }
-
-    private void showMultiSimDialog(AlertDialog.Builder builder) {
-        final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
-        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
-
-        final String previousName = (nextSir == null)
-                ? getContext().getResources().getString(R.string.sim_selection_required_pref)
-                : nextSir.getDisplayName().toString();
-
-        builder.setTitle(R.string.sim_change_data_title);
-        builder.setMessage(getContext().getString(R.string.sim_change_data_message,
-                String.valueOf(currentSir != null ? currentSir.getDisplayName() : null),
-                previousName));
-
-        builder.setPositiveButton(R.string.ok, this);
-        builder.setNegativeButton(R.string.cancel, null);
-    }
-
-    private void disableDataForOtherSubscriptions(int subId) {
-        List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
-        if (subInfoList != null) {
-            for (SubscriptionInfo subInfo : subInfoList) {
-                if (subInfo.getSubscriptionId() != subId) {
-                    mTelephonyManager.setDataEnabled(subInfo.getSubscriptionId(), false);
-                }
-            }
-        }
-    }
-
-    @Override
-    public void onClick(DialogInterface dialog, int which) {
-        if (which != DialogInterface.BUTTON_POSITIVE) {
-            return;
-        }
-        if (mMultiSimDialog) {
-            mSubscriptionManager.setDefaultDataSubId(mSubId);
-            setMobileDataEnabled(true /* enabled */, true /* disableOtherSubscriptions */);
-        } else {
-            // TODO: extend to modify policy enabled flag.
-            setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
-        }
-    }
-
-    private final DataStateListener mListener = new DataStateListener() {
-        @Override
-        public void onChange(boolean selfChange) {
-            updateChecked();
-        }
-    };
-
-    /**
-     * Listener that listens mobile data state change.
-     */
-    public abstract static class DataStateListener extends ContentObserver {
-        public DataStateListener() {
-            super(new Handler(Looper.getMainLooper()));
-        }
-
-        /**
-         * Set / Unset data state listening, specifying subId.
-         */
-        public void setListener(boolean listening, int subId, Context context) {
-            if (listening) {
-                Uri uri = Global.getUriFor(Global.MOBILE_DATA);
-                if (TelephonyManager.getDefault().getSimCount() != 1) {
-                    uri = Global.getUriFor(Global.MOBILE_DATA + subId);
-                }
-                context.getContentResolver().registerContentObserver(uri, false, this);
-            } else {
-                context.getContentResolver().unregisterContentObserver(this);
-            }
-        }
-    }
-
-    /**
-     * Class that represents state of mobile data state.
-     * Used by onSaveInstanceState and onRestoreInstanceState.
-     */
-    public static class CellDataState extends BaseSavedState {
-        public int mSubId;
-        public boolean mChecked;
-        public boolean mMultiSimDialog;
-
-        public CellDataState(Parcelable base) {
-            super(base);
-        }
-
-        public CellDataState(Parcel source) {
-            super(source);
-            mChecked = source.readByte() != 0;
-            mMultiSimDialog = source.readByte() != 0;
-            mSubId = source.readInt();
-        }
-
-        @Override
-        public void writeToParcel(Parcel dest, int flags) {
-            super.writeToParcel(dest, flags);
-            dest.writeByte((byte) (mChecked ? 1 : 0));
-            dest.writeByte((byte) (mMultiSimDialog ? 1 : 0));
-            dest.writeInt(mSubId);
-        }
-
-        public static final Creator<CellDataState> CREATOR = new Creator<CellDataState>() {
-            @Override
-            public CellDataState createFromParcel(Parcel source) {
-                return new CellDataState(source);
-            }
-
-            @Override
-            public CellDataState[] newArray(int size) {
-                return new CellDataState[size];
-            }
-        };
-    }
-}
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
deleted file mode 100644
index e67758d..0000000
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ /dev/null
@@ -1,2308 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.app.DialogFragment;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
-import android.provider.Settings;
-import android.sysprop.SetupWizardProperties;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.telephony.CarrierConfigManager;
-import android.telephony.PhoneStateListener;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.euicc.EuiccManager;
-import android.telephony.ims.ProvisioningManager;
-import android.telephony.ims.feature.ImsFeature;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TabHost;
-
-import com.android.ims.ImsConfig;
-import com.android.ims.ImsException;
-import com.android.ims.ImsManager;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.TelephonyIntents;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * "Mobile network settings" screen.  This screen lets you
- * enable/disable mobile data, and control data roaming and other
- * network-specific mobile data features.  It's used on non-voice-capable
- * tablets as well as regular phone devices.
- *
- * Note that this Activity is part of the phone app, even though
- * you reach it from the "Wireless & Networks" section of the main
- * Settings app.  It's not part of the "Call settings" hierarchy that's
- * available from the Phone app (see CallFeaturesSetting for that.)
- */
-
-public class MobileNetworkSettings extends Activity  {
-
-    // CID of the device.
-    private static final String KEY_CID = "ro.boot.cid";
-    // System Property which is used to decide whether the default eSIM UI will be shown,
-    // the default value is false.
-    private static final String KEY_ENABLE_ESIM_UI_BY_DEFAULT =
-            "esim.enable_esim_system_ui_by_default";
-
-    private static final String LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT =
-            "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
-
-    private enum TabState {
-        NO_TABS, UPDATE, DO_NOTHING
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        setIntent(intent);
-        MobileNetworkFragment fragment = (MobileNetworkFragment) getFragmentManager()
-                .findFragmentById(R.id.network_setting_content);
-        if (fragment != null) {
-            fragment.onIntentUpdate(intent);
-        }
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.network_setting);
-
-        FragmentManager fragmentManager = getFragmentManager();
-        Fragment fragment = fragmentManager.findFragmentById(R.id.network_setting_content);
-        if (fragment == null) {
-            fragmentManager.beginTransaction()
-                    .add(R.id.network_setting_content, new MobileNetworkFragment())
-                    .commit();
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(final MenuItem item) {
-        final int itemId = item.getItemId();
-        switch (itemId) {
-            // Respond to the action bar's Up/Home button
-            case android.R.id.home:
-                finish();
-                return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-
-    /**
-     * Returns true if Wifi calling is enabled for at least one subscription.
-     */
-    public static boolean isWifiCallingEnabled(Context context) {
-        SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class);
-        if (subManager == null) {
-            Log.e(MobileNetworkFragment.LOG_TAG,
-                    "isWifiCallingEnabled: couldn't get system service.");
-            return false;
-        }
-        for (int subId : subManager.getActiveSubscriptionIdList()) {
-            if (isWifiCallingEnabled(context, subId)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Returns true if Wifi calling is enabled for the specific subscription with id {@code subId}.
-     */
-    public static boolean isWifiCallingEnabled(Context context, int subId) {
-        final PhoneAccountHandle simCallManager =
-                TelecomManager.from(context).getSimCallManagerForSubscription(subId);
-        final int phoneId = SubscriptionManager.getSlotIndex(subId);
-
-        boolean isWifiCallingEnabled;
-        if (simCallManager != null) {
-            Intent intent = MobileNetworkSettings.buildPhoneAccountConfigureIntent(
-                    context, simCallManager);
-            PackageManager pm = context.getPackageManager();
-            isWifiCallingEnabled = intent != null
-                    && !pm.queryIntentActivities(intent, 0 /* flags */).isEmpty();
-        } else {
-            ImsManager imsMgr = ImsManager.getInstance(context, phoneId);
-            isWifiCallingEnabled = imsMgr != null
-                    && imsMgr.isWfcEnabledByPlatform()
-                    && imsMgr.isWfcProvisionedOnDevice()
-                    && isImsServiceStateReady(imsMgr);
-        }
-
-        return isWifiCallingEnabled;
-    }
-
-    /**
-     * Whether to show the entry point to eUICC settings.
-     *
-     * <p>We show the entry point on any device which supports eUICC as long as either the eUICC
-     * was ever provisioned (that is, at least one profile was ever downloaded onto it), or if
-     * the user has enabled development mode.
-     */
-    public static boolean showEuiccSettings(Context context) {
-        EuiccManager euiccManager =
-                (EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
-        if (!euiccManager.isEnabled()) {
-            return false;
-        }
-
-        ContentResolver cr = context.getContentResolver();
-
-        TelephonyManager tm =
-                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
-        String currentCountry = tm.getNetworkCountryIso().toLowerCase();
-        String supportedCountries =
-                Settings.Global.getString(cr, Settings.Global.EUICC_SUPPORTED_COUNTRIES);
-        boolean inEsimSupportedCountries = false;
-        if (TextUtils.isEmpty(currentCountry)) {
-            inEsimSupportedCountries = true;
-        } else if (!TextUtils.isEmpty(supportedCountries)) {
-            List<String> supportedCountryList =
-                    Arrays.asList(TextUtils.split(supportedCountries.toLowerCase(), ","));
-            if (supportedCountryList.contains(currentCountry)) {
-                inEsimSupportedCountries = true;
-            }
-        }
-        final boolean esimIgnoredDevice =
-                SetupWizardProperties.esim_cid_ignore()
-                        .contains(SystemProperties.get(KEY_CID, null));
-        final boolean enabledEsimUiByDefault =
-                SystemProperties.getBoolean(KEY_ENABLE_ESIM_UI_BY_DEFAULT, true);
-        final boolean euiccProvisioned =
-                Settings.Global.getInt(cr, Settings.Global.EUICC_PROVISIONED, 0) != 0;
-        final boolean inDeveloperMode =
-                Settings.Global.getInt(cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
-
-        return (inDeveloperMode || euiccProvisioned
-                || (!esimIgnoredDevice && enabledEsimUiByDefault && inEsimSupportedCountries));
-    }
-
-    /**
-     * Whether to show the Enhanced 4G LTE settings in search result.
-     *
-     * <p>We show this settings if the VoLTE can be enabled by this device and the carrier app
-     * doesn't set {@link CarrierConfigManager#KEY_HIDE_ENHANCED_4G_LTE_BOOL} to false.
-     */
-    public static boolean hideEnhanced4gLteSettings(Context context) {
-        final CarrierConfigManager carrierConfigManager = new CarrierConfigManager(context);
-        final List<SubscriptionInfo> sil =
-                SubscriptionManager.from(context).getActiveSubscriptionInfoList();
-        // Check all active subscriptions. We only hide the button if it's disabled for all
-        // active subscriptions.
-        if (sil != null) {
-            for (SubscriptionInfo subInfo : sil) {
-                int phoneId = SubscriptionManager.getPhoneId(subInfo.getSubscriptionId());
-                ImsManager imsManager = ImsManager.getInstance(context, phoneId);
-                PersistableBundle carrierConfig = carrierConfigManager.getConfigForSubId(
-                        subInfo.getSubscriptionId());
-                if ((imsManager.isVolteEnabledByPlatform()
-                        && imsManager.isVolteProvisionedOnDevice())
-                        || carrierConfig.getBoolean(
-                        CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL)) {
-                    return false;
-                }
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns if DPC APNs are enforced.
-     */
-    public static boolean isDpcApnEnforced(Context context) {
-        try (Cursor enforceCursor = context.getContentResolver().query(ENFORCE_MANAGED_URI,
-                null, null, null, null)) {
-            if (enforceCursor == null || enforceCursor.getCount() != 1) {
-                return false;
-            }
-            enforceCursor.moveToFirst();
-            return enforceCursor.getInt(0) > 0;
-        }
-    }
-
-    private static boolean isImsServiceStateReady(ImsManager imsMgr) {
-        boolean isImsServiceStateReady = false;
-
-        try {
-            if (imsMgr != null && imsMgr.getImsServiceState() == ImsFeature.STATE_READY) {
-                isImsServiceStateReady = true;
-            }
-        } catch (ImsException ex) {
-            Log.e(MobileNetworkFragment.LOG_TAG,
-                    "Exception when trying to get ImsServiceStatus: " + ex);
-        }
-
-        Log.d(MobileNetworkFragment.LOG_TAG, "isImsServiceStateReady=" + isImsServiceStateReady);
-        return isImsServiceStateReady;
-    }
-
-
-    private static Intent buildPhoneAccountConfigureIntent(
-            Context context, PhoneAccountHandle accountHandle) {
-        Intent intent = buildConfigureIntent(
-                context, accountHandle, TelecomManager.ACTION_CONFIGURE_PHONE_ACCOUNT);
-
-        if (intent == null) {
-            // If the new configuration didn't work, try the old configuration intent.
-            intent = buildConfigureIntent(
-                    context, accountHandle, LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT);
-            if (intent != null) {
-                Log.w(MobileNetworkFragment.LOG_TAG,
-                        "Phone account using old configuration intent: " + accountHandle);
-            }
-        }
-        return intent;
-    }
-
-    private static Intent buildConfigureIntent(
-            Context context, PhoneAccountHandle accountHandle, String actionStr) {
-        if (accountHandle == null || accountHandle.getComponentName() == null
-                || TextUtils.isEmpty(accountHandle.getComponentName().getPackageName())) {
-            return null;
-        }
-
-        // Build the settings intent.
-        Intent intent = new Intent(actionStr);
-        intent.setPackage(accountHandle.getComponentName().getPackageName());
-        intent.addCategory(Intent.CATEGORY_DEFAULT);
-        intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandle);
-
-        // Check to see that the phone account package can handle the setting intent.
-        PackageManager pm = context.getPackageManager();
-        List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
-        if (resolutions.size() == 0) {
-            intent = null;  // set no intent if the package cannot handle it.
-        }
-
-        return intent;
-    }
-
-    public static class MobileNetworkFragment extends PreferenceFragment implements
-            Preference.OnPreferenceChangeListener, RoamingDialogFragment.RoamingDialogListener {
-
-        // debug data
-        private static final String LOG_TAG = "NetworkSettings";
-        private static final boolean DBG = true;
-        public static final int REQUEST_CODE_EXIT_ECM = 17;
-
-        // Number of active Subscriptions to show tabs
-        private static final int TAB_THRESHOLD = 2;
-
-        // Number of last phone number digits shown in Euicc Setting tab
-        private static final int NUM_LAST_PHONE_DIGITS = 4;
-
-        // fragment tag for roaming data dialog
-        private static final String ROAMING_TAG = "RoamingDialogFragment";
-
-        //String keys for preference lookup
-        private static final String BUTTON_PREFERED_NETWORK_MODE = "preferred_network_mode_key";
-        private static final String BUTTON_ROAMING_KEY = "button_roaming_key";
-        private static final String BUTTON_CDMA_LTE_DATA_SERVICE_KEY = "cdma_lte_data_service_key";
-        private static final String BUTTON_ENABLED_NETWORKS_KEY = "enabled_networks_key";
-        private static final String BUTTON_4G_LTE_KEY = "enhanced_4g_lte";
-        private static final String BUTTON_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
-        private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-        private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
-        private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
-        private static final String BUTTON_CARRIER_SETTINGS_EUICC_KEY =
-                "carrier_settings_euicc_key";
-        private static final String BUTTON_WIFI_CALLING_KEY = "wifi_calling_key";
-        private static final String BUTTON_VIDEO_CALLING_KEY = "video_calling_key";
-        private static final String BUTTON_MOBILE_DATA_ENABLE_KEY = "mobile_data_enable";
-        private static final String BUTTON_DATA_USAGE_KEY = "data_usage_summary";
-        private static final String BUTTON_ADVANCED_OPTIONS_KEY = "advanced_options";
-        private static final String CATEGORY_CALLING_KEY = "calling";
-        private static final String CATEGORY_GSM_APN_EXPAND_KEY = "category_gsm_apn_key";
-        private static final String CATEGORY_CDMA_APN_EXPAND_KEY = "category_cdma_apn_key";
-        private static final String BUTTON_GSM_APN_EXPAND_KEY = "button_gsm_apn_key";
-        private static final String BUTTON_CDMA_APN_EXPAND_KEY = "button_cdma_apn_key";
-
-        private final BroadcastReceiver mPhoneChangeReceiver = new PhoneChangeReceiver();
-        private final ContentObserver mDpcEnforcedContentObserver = new DpcApnEnforcedObserver();
-
-        static final int preferredNetworkMode = Phone.PREFERRED_NT_MODE;
-
-        //Information about logical "up" Activity
-        private static final String UP_ACTIVITY_PACKAGE = "com.android.settings";
-        private static final String UP_ACTIVITY_CLASS =
-                "com.android.settings.Settings$WirelessSettingsActivity";
-
-        //Information that needs to save into Bundle.
-        private static final String EXPAND_ADVANCED_FIELDS = "expand_advanced_fields";
-        //Intent extra to indicate expand all fields.
-        private static final String EXPAND_EXTRA = "expandable";
-
-        private SubscriptionManager mSubscriptionManager;
-        private TelephonyManager mTelephonyManager;
-        private CarrierConfigManager mCarrierConfigManager;
-        private int mSubId;
-
-        //UI objects
-        private AdvancedOptionsPreference mAdvancedOptions;
-        private ListPreference mButtonPreferredNetworkMode;
-        private ListPreference mButtonEnabledNetworks;
-        private RestrictedSwitchPreference mButtonDataRoam;
-        private SwitchPreference mButton4glte;
-        private Preference mLteDataServicePref;
-        private Preference mEuiccSettingsPref;
-        private PreferenceCategory mCallingCategory;
-        private Preference mWiFiCallingPref;
-        private SwitchPreference mVideoCallingPref;
-        private NetworkSelectListPreference mButtonNetworkSelect;
-        private MobileDataPreference mMobileDataPref;
-        private DataUsagePreference mDataUsagePref;
-
-        private static final String iface = "rmnet0"; //TODO: this will go away
-        private List<SubscriptionInfo> mActiveSubInfos;
-
-        private UserManager mUm;
-        private ImsManager mImsMgr;
-        private MyHandler mHandler;
-        private boolean mOkClicked;
-        private boolean mExpandAdvancedFields;
-
-        // We assume the the value returned by mTabHost.getCurrentTab() == slotId
-        private TabHost mTabHost;
-
-        //GsmUmts options and Cdma options
-        GsmUmtsOptions mGsmUmtsOptions;
-        CdmaOptions mCdmaOptions;
-
-        private Preference mClickedPreference;
-        private boolean mShow4GForLTE = false;
-        private boolean mIsGlobalCdma;
-        private boolean mOnlyAutoSelectInHomeNW;
-        private boolean mUnavailable;
-
-        private class PhoneCallStateListener extends PhoneStateListener {
-            /*
-             * Enable/disable the 'Enhanced 4G LTE Mode' when in/out of a call
-             * and depending on TTY mode and TTY support over VoLTE.
-             * @see android.telephony.PhoneStateListener#onCallStateChanged(int,
-             * java.lang.String)
-             */
-            @Override
-            public void onCallStateChanged(int state, String incomingNumber) {
-                if (DBG) log("PhoneStateListener.onCallStateChanged: state=" + state);
-
-                updateEnhanced4gLteState();
-                updateWiFiCallState();
-                updateVideoCallState();
-                updatePreferredNetworkType();
-            }
-
-            /**
-             * Listen to different subId if it's changed.
-             */
-            protected void updateSubscriptionId(Integer subId) {
-                if (subId.equals(PhoneCallStateListener.this.mSubId)) {
-                    return;
-                }
-
-                mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
-
-                // Now, listen to new subId if it's valid. register the listener with
-                // mTelephonyManager instance created for the new subId.
-                if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                    mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
-                }
-            }
-        }
-
-        private final PhoneCallStateListener mPhoneStateListener = new PhoneCallStateListener();
-
-        @Override
-        public void onPositiveButtonClick(DialogFragment dialog) {
-            mTelephonyManager.setDataRoamingEnabled(true);
-            mButtonDataRoam.setChecked(true);
-            MetricsLogger.action(getContext(),
-                    getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
-                    true);
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            if (getListView() != null) {
-                getListView().setDivider(null);
-            }
-        }
-
-        public void onIntentUpdate(Intent intent) {
-            if (!mUnavailable) {
-                updateCurrentTab(intent.getExtras());
-            }
-        }
-
-        /**
-         * Invoked on each preference click in this hierarchy, overrides
-         * PreferenceActivity's implementation.  Used to make sure we track the
-         * preference click events.
-         */
-        @Override
-        public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
-                                             Preference preference) {
-            sendMetricsEventPreferenceClicked(preferenceScreen, preference);
-
-            /** TODO: Refactor and get rid of the if's using subclasses */
-            if (preference.getKey().equals(BUTTON_4G_LTE_KEY)) {
-                return true;
-            } else if (mGsmUmtsOptions != null &&
-                    mGsmUmtsOptions.preferenceTreeClick(preference) == true) {
-                return true;
-            } else if (mCdmaOptions != null &&
-                    mCdmaOptions.preferenceTreeClick(preference) == true) {
-                if (mTelephonyManager.getEmergencyCallbackMode()) {
-
-                    mClickedPreference = preference;
-
-                    // In ECM mode launch ECM app dialog
-                    startActivityForResult(
-                            new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
-                            REQUEST_CODE_EXIT_ECM);
-                }
-                return true;
-            } else if (preference == mButtonPreferredNetworkMode) {
-                //displays the value taken from the Settings.System
-                int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                        preferredNetworkMode);
-                mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
-                return true;
-            } else if (preference == mLteDataServicePref) {
-                String tmpl = android.provider.Settings.Global.getString(
-                        getActivity().getContentResolver(),
-                        android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
-                if (!TextUtils.isEmpty(tmpl)) {
-                    String imsi = mTelephonyManager.getSubscriberId();
-                    if (imsi == null) {
-                        imsi = "";
-                    }
-                    final String url = TextUtils.isEmpty(tmpl) ? null
-                            : TextUtils.expandTemplate(tmpl, imsi).toString();
-                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
-                    startActivity(intent);
-                } else {
-                    android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
-                }
-                return true;
-            }  else if (preference == mButtonEnabledNetworks) {
-                int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                        preferredNetworkMode);
-                mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
-                return true;
-            } else if (preference == mButtonDataRoam) {
-                // Do not disable the preference screen if the user clicks Data roaming.
-                return true;
-            } else if (preference == mEuiccSettingsPref) {
-                Intent intent = new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
-                startActivity(intent);
-                return true;
-            } else if (preference == mWiFiCallingPref || preference == mVideoCallingPref
-                    || preference == mMobileDataPref || preference == mDataUsagePref) {
-                return false;
-            } else if (preference == mAdvancedOptions) {
-                mExpandAdvancedFields = true;
-                updateBody();
-                return true;
-            } else {
-                // if the button is anything but the simple toggle preference,
-                // we'll need to disable all preferences to reject all click
-                // events until the sub-activity's UI comes up.
-                preferenceScreen.setEnabled(false);
-                // Let the intents be launched by the Preference manager
-                return false;
-            }
-        }
-
-        private final SubscriptionManager.OnSubscriptionsChangedListener
-                mOnSubscriptionsChangeListener
-                = new SubscriptionManager.OnSubscriptionsChangedListener() {
-            @Override
-            public void onSubscriptionsChanged() {
-                if (DBG) log("onSubscriptionsChanged:");
-                initializeSubscriptions();
-            }
-        };
-
-        private int getSlotIdFromBundle(Bundle data) {
-            int subId = -1;
-            if (data != null) {
-                subId = data.getInt(Settings.EXTRA_SUB_ID, -1);
-            }
-            return SubscriptionManager.getSlotIndex(subId);
-        }
-
-        private void initializeSubscriptions() {
-            final Activity activity = getActivity();
-            if (activity == null || activity.isDestroyed()) {
-                // Process preferences in activity only if its not destroyed
-                return;
-            }
-            int currentTab = 0;
-            if (DBG) log("initializeSubscriptions:+");
-
-            // Before updating the the active subscription list check
-            // if tab updating is needed as the list is changing.
-            List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList();
-            MobileNetworkSettings.TabState state = isUpdateTabsNeeded(sil);
-
-            // Update to the active subscription list
-            mActiveSubInfos.clear();
-            if (sil != null) {
-                mActiveSubInfos.addAll(sil);
-                // If there is only 1 sim then currenTab should represent slot no. of the sim.
-                if (sil.size() == 1) {
-                    currentTab = sil.get(0).getSimSlotIndex();
-                }
-            }
-
-            switch (state) {
-                case UPDATE: {
-                    if (DBG) log("initializeSubscriptions: UPDATE");
-                    currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
-
-                    mTabHost = (TabHost) getActivity().findViewById(android.R.id.tabhost);
-                    mTabHost.setup();
-
-                    // Update the tabName. Since the mActiveSubInfos are in slot order
-                    // we can iterate though the tabs and subscription info in one loop. But
-                    // we need to handle the case where a slot may be empty.
-
-                    Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.listIterator();
-                    SubscriptionInfo si = siIterator.hasNext() ? siIterator.next() : null;
-                    for (int simSlotIndex = 0; simSlotIndex  < mActiveSubInfos.size();
-                         simSlotIndex++) {
-                        String tabName;
-                        if (si != null && si.getSimSlotIndex() == simSlotIndex) {
-                            // Slot is not empty and we match
-                            tabName = String.valueOf(si.getDisplayName());
-                            si = siIterator.hasNext() ? siIterator.next() : null;
-                        } else {
-                            // Slot is empty, set name to unknown
-                            tabName = getResources().getString(R.string.unknown);
-                        }
-                        if (DBG) {
-                            log("initializeSubscriptions:tab=" + simSlotIndex + " name=" + tabName);
-                        }
-
-                        mTabHost.addTab(buildTabSpec(String.valueOf(simSlotIndex), tabName));
-                    }
-
-                    mTabHost.setOnTabChangedListener(mTabListener);
-                    mTabHost.setCurrentTab(currentTab);
-                    break;
-                }
-                case NO_TABS: {
-                    if (DBG) log("initializeSubscriptions: NO_TABS");
-
-                    if (mTabHost != null) {
-                        mTabHost.clearAllTabs();
-                        mTabHost = null;
-                    }
-                    break;
-                }
-                case DO_NOTHING: {
-                    if (DBG) log("initializeSubscriptions: DO_NOTHING");
-                    if (mTabHost != null) {
-                        currentTab = mTabHost.getCurrentTab();
-                    }
-                    break;
-                }
-            }
-            updatePhone(currentTab);
-            updateBody();
-            if (DBG) log("initializeSubscriptions:-");
-        }
-
-        private MobileNetworkSettings.TabState isUpdateTabsNeeded(List<SubscriptionInfo> newSil) {
-            TabState state = MobileNetworkSettings.TabState.DO_NOTHING;
-            if (newSil == null) {
-                if (mActiveSubInfos.size() >= TAB_THRESHOLD) {
-                    if (DBG) log("isUpdateTabsNeeded: NO_TABS, size unknown and was tabbed");
-                    state = MobileNetworkSettings.TabState.NO_TABS;
-                }
-            } else if (newSil.size() < TAB_THRESHOLD && mActiveSubInfos.size() >= TAB_THRESHOLD) {
-                if (DBG) log("isUpdateTabsNeeded: NO_TABS, size went to small");
-                state = MobileNetworkSettings.TabState.NO_TABS;
-            } else if (newSil.size() >= TAB_THRESHOLD && mActiveSubInfos.size() < TAB_THRESHOLD) {
-                if (DBG) log("isUpdateTabsNeeded: UPDATE, size changed");
-                state = MobileNetworkSettings.TabState.UPDATE;
-            } else if (newSil.size() >= TAB_THRESHOLD) {
-                Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.iterator();
-                for(SubscriptionInfo newSi : newSil) {
-                    SubscriptionInfo curSi = siIterator.next();
-                    if (!newSi.getDisplayName().equals(curSi.getDisplayName())) {
-                        if (DBG) log("isUpdateTabsNeeded: UPDATE, new name="
-                                + newSi.getDisplayName());
-                        state = MobileNetworkSettings.TabState.UPDATE;
-                        break;
-                    }
-                }
-            }
-            if (DBG) {
-                Log.i(LOG_TAG, "isUpdateTabsNeeded:- " + state
-                        + " newSil.size()=" + ((newSil != null) ? newSil.size() : 0)
-                        + " mActiveSubInfos.size()=" + mActiveSubInfos.size());
-            }
-            return state;
-        }
-
-        private TabHost.OnTabChangeListener mTabListener = new TabHost.OnTabChangeListener() {
-            @Override
-            public void onTabChanged(String tabId) {
-                if (DBG) log("onTabChanged:");
-                // The User has changed tab; update the body.
-                updatePhone(Integer.parseInt(tabId));
-                updateBody();
-            }
-        };
-
-        private void updatePhone(int slotId) {
-            final SubscriptionInfo sir = mSubscriptionManager
-                    .getActiveSubscriptionInfoForSimSlotIndex(slotId);
-
-            if (sir != null) {
-                mSubId = sir.getSubscriptionId();
-
-                Log.i(LOG_TAG, "updatePhone:- slotId=" + slotId + " sir=" + sir);
-
-                mImsMgr = ImsManager.getInstance(getContext(),
-                        SubscriptionManager.getPhoneId(mSubId));
-                mTelephonyManager = new TelephonyManager(getContext(), mSubId);
-                if (mImsMgr == null) {
-                    log("updatePhone :: Could not get ImsManager instance!");
-                } else if (DBG) {
-                    log("updatePhone :: mImsMgr=" + mImsMgr);
-                }
-            } else {
-                // There is no active subscription in the given slot.
-                mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-            }
-
-            mPhoneStateListener.updateSubscriptionId(mSubId);
-        }
-
-        private TabHost.TabContentFactory mEmptyTabContent = new TabHost.TabContentFactory() {
-            @Override
-            public View createTabContent(String tag) {
-                return new View(mTabHost.getContext());
-            }
-        };
-
-        private TabHost.TabSpec buildTabSpec(String tag, String title) {
-            return mTabHost.newTabSpec(tag).setIndicator(title).setContent(
-                    mEmptyTabContent);
-        }
-
-        private void updateCurrentTab(Bundle data) {
-            int slotId = getSlotIdFromBundle(data);
-            if (slotId >= 0 && mTabHost != null && mTabHost.getCurrentTab() != slotId) {
-                mTabHost.setCurrentTab(slotId);
-            }
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-
-            // If advanced fields are already expanded, we save it and expand it
-            // when it's re-created.
-            outState.putBoolean(EXPAND_ADVANCED_FIELDS, mExpandAdvancedFields);
-
-            // Save subId of currently shown tab.
-            outState.putInt(Settings.EXTRA_SUB_ID, mSubId);
-        }
-
-        @Override
-        public void onCreate(Bundle icicle) {
-            Log.i(LOG_TAG, "onCreate:+");
-            super.onCreate(icicle);
-
-            final Activity activity = getActivity();
-            if (activity == null || activity.isDestroyed()) {
-                Log.e(LOG_TAG, "onCreate:- with no valid activity.");
-                return;
-            }
-
-            mHandler = new MyHandler();
-            mUm = (UserManager) activity.getSystemService(Context.USER_SERVICE);
-            mSubscriptionManager = SubscriptionManager.from(activity);
-            mTelephonyManager = (TelephonyManager) activity.getSystemService(
-                            Context.TELEPHONY_SERVICE);
-            mCarrierConfigManager = new CarrierConfigManager(getContext());
-
-            if (icicle != null) {
-                mExpandAdvancedFields = icicle.getBoolean(EXPAND_ADVANCED_FIELDS, false);
-            } else if (getActivity().getIntent().getBooleanExtra(EXPAND_EXTRA, false)) {
-                mExpandAdvancedFields = true;
-            }
-
-            addPreferencesFromResource(R.xml.network_setting_fragment);
-
-            mButton4glte = (SwitchPreference)findPreference(BUTTON_4G_LTE_KEY);
-            mButton4glte.setOnPreferenceChangeListener(this);
-
-            mCallingCategory = (PreferenceCategory) findPreference(CATEGORY_CALLING_KEY);
-            mWiFiCallingPref = findPreference(BUTTON_WIFI_CALLING_KEY);
-            mVideoCallingPref = (SwitchPreference) findPreference(BUTTON_VIDEO_CALLING_KEY);
-            mMobileDataPref = (MobileDataPreference) findPreference(BUTTON_MOBILE_DATA_ENABLE_KEY);
-            mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
-
-            //get UI object references
-            PreferenceScreen prefSet = getPreferenceScreen();
-
-            mButtonDataRoam = (RestrictedSwitchPreference) prefSet.findPreference(
-                    BUTTON_ROAMING_KEY);
-            mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
-                    BUTTON_PREFERED_NETWORK_MODE);
-            mButtonEnabledNetworks = (ListPreference) prefSet.findPreference(
-                    BUTTON_ENABLED_NETWORKS_KEY);
-            mAdvancedOptions = (AdvancedOptionsPreference) prefSet.findPreference(
-                    BUTTON_ADVANCED_OPTIONS_KEY);
-            mButtonDataRoam.setOnPreferenceChangeListener(this);
-
-            mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
-
-            mEuiccSettingsPref = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_EUICC_KEY);
-            mEuiccSettingsPref.setOnPreferenceChangeListener(this);
-
-            // Initialize mActiveSubInfo
-            int max = mSubscriptionManager.getActiveSubscriptionInfoCountMax();
-            mActiveSubInfos = new ArrayList<SubscriptionInfo>(max);
-
-            int currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
-            updatePhone(currentTab);
-            if (hasActiveSubscriptions()) {
-                updateEnabledNetworksEntries();
-            }
-            Log.i(LOG_TAG, "onCreate:-");
-        }
-
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            return inflater.inflate(com.android.internal.R.layout.common_tab_settings,
-                    container, false);
-        }
-
-        @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
-            super.onActivityCreated(savedInstanceState);
-            if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
-                    || !mUm.isSystemUser()) {
-                mUnavailable = true;
-                getActivity().setContentView(R.layout.telephony_disallowed_preference_screen);
-            } else {
-                initializeSubscriptions();
-
-                if (savedInstanceState != null) {
-                    updateCurrentTab(savedInstanceState);
-                } else {
-                    updateCurrentTab(getActivity().getIntent().getExtras());
-                }
-            }
-        }
-
-        private class PhoneChangeReceiver extends BroadcastReceiver {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                Log.i(LOG_TAG, "onReceive:");
-                if (getActivity() == null || getContext() == null) {
-                    // Received broadcast and activity is in the process of being torn down.
-                    return;
-                }
-                // When the radio changes (ex: CDMA->GSM), refresh all options.
-                updateBody();
-            }
-        }
-
-        private class DpcApnEnforcedObserver extends ContentObserver {
-            DpcApnEnforcedObserver() {
-                super(null);
-            }
-
-            @Override
-            public void onChange(boolean selfChange) {
-                Log.i(LOG_TAG, "DPC enforced onChange:");
-                if (getActivity() == null || getContext() == null) {
-                    // Received content change and activity is in the process of being torn down.
-                    return;
-                }
-                updateBody();
-            }
-        }
-
-        private final ProvisioningManager.Callback mProvisioningCallback =
-                new ProvisioningManager.Callback() {
-            @Override
-            public void onProvisioningIntChanged(int item, int value) {
-                if (item == ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED
-                        || item == ImsConfig.ConfigConstants.VLT_SETTING_ENABLED
-                        || item == ImsConfig.ConfigConstants.LVC_SETTING_ENABLED) {
-                    updateBody();
-                }
-            }
-        };
-
-        @Override
-        public void onDestroy() {
-            super.onDestroy();
-            if (mMobileDataPref != null) {
-                mMobileDataPref.dispose();
-            }
-        }
-
-        @Override
-        public void onResume() {
-            super.onResume();
-            Log.i(LOG_TAG, "onResume:+");
-
-            if (mUnavailable) {
-                Log.i(LOG_TAG, "onResume:- ignore mUnavailable == false");
-                return;
-            }
-
-            // upon resumption from the sub-activity, make sure we re-enable the
-            // preferences.
-            getPreferenceScreen().setEnabled(true);
-
-            // Set UI state in onResume because a user could go home, launch some
-            // app to change this setting's backend, and re-launch this settings app
-            // and the UI state would be inconsistent with actual state
-            mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
-
-            if (getPreferenceScreen().findPreference(BUTTON_PREFERED_NETWORK_MODE) != null
-                    || getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null)  {
-                updatePreferredNetworkUIFromDb();
-            }
-
-            mTelephonyManager.createForSubscriptionId(mSubId)
-                    .listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
-
-            // NOTE: Buttons will be enabled/disabled in mPhoneStateListener
-            updateEnhanced4gLteState();
-
-            // Video calling and WiFi calling state might have changed.
-            updateCallingCategory();
-
-            mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
-            final Context context = getActivity();
-            IntentFilter intentFilter = new IntentFilter(
-                    TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
-            context.registerReceiver(mPhoneChangeReceiver, intentFilter);
-            context.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false,
-                    mDpcEnforcedContentObserver);
-
-            // Register callback for provisioning changes.
-            try {
-                if (mImsMgr != null) {
-                    mImsMgr.getConfigInterface().addConfigCallback(mProvisioningCallback);
-                }
-            } catch (ImsException e) {
-                Log.w(LOG_TAG, "onResume: Unable to register callback for provisioning changes.");
-            }
-
-            Log.i(LOG_TAG, "onResume:-");
-
-        }
-
-        private boolean hasActiveSubscriptions() {
-            return mActiveSubInfos.size() > 0;
-        }
-
-        private void updateBodyBasicFields(Activity activity, PreferenceScreen prefSet,
-                int phoneSubId, boolean hasActiveSubscriptions) {
-            Context context = activity.getApplicationContext();
-
-            ActionBar actionBar = activity.getActionBar();
-            if (actionBar != null) {
-                // android.R.id.home will be triggered in onOptionsItemSelected()
-                actionBar.setDisplayHomeAsUpEnabled(true);
-            }
-
-            prefSet.addPreference(mMobileDataPref);
-            prefSet.addPreference(mButtonDataRoam);
-            prefSet.addPreference(mDataUsagePref);
-
-            mMobileDataPref.setEnabled(hasActiveSubscriptions);
-            mButtonDataRoam.setEnabled(hasActiveSubscriptions);
-            mDataUsagePref.setEnabled(hasActiveSubscriptions);
-
-            if (hasActiveSubscriptions) {
-                // Customized preferences needs to be initialized with subId.
-                mMobileDataPref.initialize(phoneSubId);
-                mDataUsagePref.initialize(phoneSubId);
-
-                // Initialize states of mButtonDataRoam.
-                mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
-                mButtonDataRoam.setDisabledByAdmin(false);
-                if (mButtonDataRoam.isEnabled()) {
-                    if (RestrictedLockUtilsInternal.hasBaseUserRestriction(context,
-                            UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
-                        mButtonDataRoam.setEnabled(false);
-                    } else {
-                        mButtonDataRoam.checkRestrictionAndSetDisabled(
-                                UserManager.DISALLOW_DATA_ROAMING);
-                    }
-                }
-            }
-        }
-
-        private void updateBody() {
-            final Activity activity = getActivity();
-            final PreferenceScreen prefSet = getPreferenceScreen();
-            final boolean hasActiveSubscriptions = hasActiveSubscriptions();
-
-            if (activity == null || activity.isDestroyed()) {
-                Log.e(LOG_TAG, "updateBody with no valid activity.");
-                return;
-            }
-
-            if (prefSet == null) {
-                Log.e(LOG_TAG, "updateBody with no null prefSet.");
-                return;
-            }
-
-            prefSet.removeAll();
-
-            updateBodyBasicFields(activity, prefSet, mSubId, hasActiveSubscriptions);
-
-            if (hasActiveSubscriptions) {
-                if (mExpandAdvancedFields) {
-                    updateBodyAdvancedFields(activity, prefSet, mSubId, hasActiveSubscriptions);
-                } else {
-                    prefSet.addPreference(mAdvancedOptions);
-                }
-            } else {
-                // Shows the "Carrier" preference that allows user to add a e-sim profile.
-                if (showEuiccSettings(getContext())) {
-                    mEuiccSettingsPref.setSummary(null /* summary */);
-                    prefSet.addPreference(mEuiccSettingsPref);
-                }
-            }
-        }
-
-        private void updateBodyAdvancedFields(Activity activity, PreferenceScreen prefSet,
-                int phoneSubId, boolean hasActiveSubscriptions) {
-            boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
-                    == PhoneConstants.LTE_ON_CDMA_TRUE;
-
-            if (DBG) {
-                log("updateBody: isLteOnCdma=" + isLteOnCdma + " phoneSubId=" + phoneSubId);
-            }
-
-            prefSet.addPreference(mButtonPreferredNetworkMode);
-            prefSet.addPreference(mButtonEnabledNetworks);
-            prefSet.addPreference(mButton4glte);
-
-            if (showEuiccSettings(getActivity())) {
-                prefSet.addPreference(mEuiccSettingsPref);
-                String spn = mTelephonyManager.getSimOperatorName();
-                if (TextUtils.isEmpty(spn)) {
-                    mEuiccSettingsPref.setSummary(null);
-                } else {
-                    mEuiccSettingsPref.setSummary(spn);
-                }
-            }
-
-            int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                    getContext().getContentResolver(),
-                    android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                    preferredNetworkMode);
-
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-            mIsGlobalCdma = isLteOnCdma
-                    && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
-            if (carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)) {
-                prefSet.removePreference(mButtonPreferredNetworkMode);
-                prefSet.removePreference(mButtonEnabledNetworks);
-                prefSet.removePreference(mLteDataServicePref);
-            } else if (carrierConfig.getBoolean(CarrierConfigManager
-                    .KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
-                    && !mTelephonyManager.getServiceState().getRoaming()
-                    && mTelephonyManager.getServiceState().getDataRegState()
-                    == ServiceState.STATE_IN_SERVICE) {
-                prefSet.removePreference(mButtonPreferredNetworkMode);
-                prefSet.removePreference(mButtonEnabledNetworks);
-
-                final int phoneType = mTelephonyManager.getPhoneType();
-                if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
-                    updateCdmaOptions(this, prefSet, mSubId);
-                } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
-                    updateGsmUmtsOptions(this, prefSet, phoneSubId);
-                } else {
-                    throw new IllegalStateException("Unexpected phone type: " + phoneType);
-                }
-                // Since pref is being hidden from user, set network mode to default
-                // in case it is currently something else. That is possible if user
-                // changed the setting while roaming and is now back to home network.
-                settingsNetworkMode = preferredNetworkMode;
-            } else if (carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_WORLD_PHONE_BOOL) == true) {
-                prefSet.removePreference(mButtonEnabledNetworks);
-                // set the listener for the mButtonPreferredNetworkMode list preference so we can issue
-                // change Preferred Network Mode.
-                mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
-
-                updateCdmaOptions(this, prefSet, mSubId);
-                updateGsmUmtsOptions(this, prefSet, phoneSubId);
-            } else {
-                prefSet.removePreference(mButtonPreferredNetworkMode);
-                updateEnabledNetworksEntries();
-                mButtonEnabledNetworks.setOnPreferenceChangeListener(this);
-                if (DBG) log("settingsNetworkMode: " + settingsNetworkMode);
-            }
-
-            final boolean missingDataServiceUrl = TextUtils.isEmpty(
-                    android.provider.Settings.Global.getString(activity.getContentResolver(),
-                            android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL));
-            if (!isLteOnCdma || missingDataServiceUrl) {
-                prefSet.removePreference(mLteDataServicePref);
-            } else {
-                android.util.Log.d(LOG_TAG, "keep ltePref");
-            }
-
-            updateEnhanced4gLteState();
-            updatePreferredNetworkType();
-            updateCallingCategory();
-
-            // Enable link to CMAS app settings depending on the value in config.xml.
-            final boolean isCellBroadcastAppLinkEnabled = activity.getResources().getBoolean(
-                    com.android.internal.R.bool.config_cellBroadcastAppLinks);
-            if (!mUm.isAdminUser() || !isCellBroadcastAppLinkEnabled
-                    || mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS)) {
-                PreferenceScreen root = getPreferenceScreen();
-                Preference ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
-                if (ps != null) {
-                    root.removePreference(ps);
-                }
-            }
-
-            /**
-             * Listen to extra preference changes that need as Metrics events logging.
-             */
-            if (prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY) != null) {
-                prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                        .setOnPreferenceChangeListener(this);
-            }
-
-            if (prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY) != null) {
-                prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
-                        .setOnPreferenceChangeListener(this);
-            }
-
-            // Get the networkMode from Settings.System and displays it
-            mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
-            mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
-            UpdatePreferredNetworkModeSummary(settingsNetworkMode);
-            UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
-            // Display preferred network type based on what modem returns b/18676277
-            new SetPreferredNetworkAsyncTask(
-                    mTelephonyManager,
-                    mSubId,
-                    settingsNetworkMode,
-                    mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
-                    .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-
-            /**
-             * Enable/disable depending upon if there are any active subscriptions.
-             *
-             * I've decided to put this enable/disable code at the bottom as the
-             * code above works even when there are no active subscriptions, thus
-             * putting it afterwards is a smaller change. This can be refined later,
-             * but you do need to remember that this all needs to work when subscriptions
-             * change dynamically such as when hot swapping sims.
-             */
-            int variant4glteTitleIndex = carrierConfig.getInt(
-                    CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT);
-            CharSequence[] variantTitles = getContext().getResources()
-                    .getTextArray(R.array.enhanced_4g_lte_mode_title_variant);
-            CharSequence[] variantSumaries = getContext().getResources()
-                    .getTextArray(R.array.enhanced_4g_lte_mode_sumary_variant);
-            // Default index 0 indicates the default title/sumary string
-            CharSequence enhanced4glteModeTitle = variantTitles[0];
-            CharSequence enhanced4glteModeSummary = variantSumaries[0];
-            if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < variantTitles.length) {
-                enhanced4glteModeTitle = variantTitles[variant4glteTitleIndex];
-            }
-            if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < variantSumaries.length) {
-                enhanced4glteModeSummary = variantSumaries[variant4glteTitleIndex];
-            }
-
-            mOnlyAutoSelectInHomeNW = carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL);
-            mButton4glte.setTitle(enhanced4glteModeTitle);
-            mButton4glte.setSummary(enhanced4glteModeSummary);
-            mLteDataServicePref.setEnabled(hasActiveSubscriptions);
-            Preference ps;
-            ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(CATEGORY_GSM_APN_EXPAND_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(CATEGORY_CDMA_APN_EXPAND_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(CATEGORY_CALLING_KEY);
-            if (ps != null) {
-                ps.setEnabled(hasActiveSubscriptions);
-            }
-            ps = findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY);
-            if (ps != null) {
-                ps.setSummary(null);
-                if (mTelephonyManager.getServiceState().getRoaming()) {
-                    ps.setEnabled(true);
-                } else {
-                    ps.setEnabled(!mOnlyAutoSelectInHomeNW);
-                    if (mOnlyAutoSelectInHomeNW) {
-                        ps.setSummary(getResources().getString(
-                                R.string.manual_mode_disallowed_summary,
-                                mTelephonyManager.getSimOperatorName()));
-                    }
-                }
-            }
-        }
-
-        // Requires that mSubId is up to date
-        void updateEnabledNetworksEntries() {
-            final int phoneType = mTelephonyManager.getPhoneType();
-            final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-            mShow4GForLTE = carrierConfig != null ? carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL) : false;
-            if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
-                final int lteForced = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
-                        0);
-                final boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
-                        == PhoneConstants.LTE_ON_CDMA_TRUE;
-                final int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                        preferredNetworkMode);
-                if (isLteOnCdma) {
-                    if (lteForced == 0) {
-                        mButtonEnabledNetworks.setEntries(
-                                R.array.enabled_networks_cdma_choices);
-                        mButtonEnabledNetworks.setEntryValues(
-                                R.array.enabled_networks_cdma_values);
-                    } else {
-                        switch (settingsNetworkMode) {
-                            case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                            case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                            case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                                mButtonEnabledNetworks.setEntries(
-                                        R.array.enabled_networks_cdma_no_lte_choices);
-                                mButtonEnabledNetworks.setEntryValues(
-                                        R.array.enabled_networks_cdma_no_lte_values);
-                                break;
-                            case TelephonyManager.NETWORK_MODE_GLOBAL:
-                            case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                            case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                            case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                                mButtonEnabledNetworks.setEntries(
-                                        R.array.enabled_networks_cdma_only_lte_choices);
-                                mButtonEnabledNetworks.setEntryValues(
-                                        R.array.enabled_networks_cdma_only_lte_values);
-                                break;
-                            default:
-                                mButtonEnabledNetworks.setEntries(
-                                        R.array.enabled_networks_cdma_choices);
-                                mButtonEnabledNetworks.setEntryValues(
-                                        R.array.enabled_networks_cdma_values);
-                                break;
-                        }
-                    }
-                }
-                updateCdmaOptions(this, getPreferenceScreen(), mSubId);
-
-            } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
-                if (isSupportTdscdma()) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_tdscdma_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_tdscdma_values);
-                } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
-                        && !getResources().getBoolean(R.bool.config_enabled_lte)) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_except_gsm_lte_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_except_gsm_lte_values);
-                } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
-                    int select = mShow4GForLTE
-                            ? R.array.enabled_networks_except_gsm_4g_choices
-                            : R.array.enabled_networks_except_gsm_choices;
-                    mButtonEnabledNetworks.setEntries(select);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_except_gsm_values);
-                } else if (!getResources().getBoolean(R.bool.config_enabled_lte)) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_except_lte_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_except_lte_values);
-                } else if (mIsGlobalCdma) {
-                    mButtonEnabledNetworks.setEntries(
-                            R.array.enabled_networks_cdma_choices);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_cdma_values);
-                } else {
-                    int select = mShow4GForLTE ? R.array.enabled_networks_4g_choices
-                            : R.array.enabled_networks_choices;
-                    mButtonEnabledNetworks.setEntries(select);
-                    mButtonEnabledNetworks.setEntryValues(
-                            R.array.enabled_networks_values);
-                }
-                updateGsmUmtsOptions(this, getPreferenceScreen(), mSubId);
-            } else {
-                throw new IllegalStateException("Unexpected phone type: " + phoneType);
-            }
-            if (isWorldMode()) {
-                mButtonEnabledNetworks.setEntries(
-                        R.array.preferred_network_mode_choices_world_mode);
-                mButtonEnabledNetworks.setEntryValues(
-                        R.array.preferred_network_mode_values_world_mode);
-            }
-        }
-
-        @Override
-        public void onPause() {
-            super.onPause();
-            if (DBG) log("onPause:+");
-
-            mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
-
-            mSubscriptionManager
-                    .removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
-            final Context context = getActivity();
-            context.unregisterReceiver(mPhoneChangeReceiver);
-            context.getContentResolver().unregisterContentObserver(mDpcEnforcedContentObserver);
-
-            // Remove callback for provisioning changes.
-            try {
-                if (mImsMgr != null) {
-                    mImsMgr.getConfigInterface().removeConfigCallback(
-                            mProvisioningCallback.getBinder());
-                }
-            } catch (ImsException e) {
-                Log.w(LOG_TAG, "onPause: Unable to remove callback for provisioning changes");
-            }
-
-            if (DBG) log("onPause:-");
-        }
-
-        /**
-         * Implemented to support onPreferenceChangeListener to look for preference
-         * changes specifically on CLIR.
-         *
-         * @param preference is the preference to be changed, should be mButtonCLIR.
-         * @param objValue should be the value of the selection, NOT its localized
-         * display value.
-         */
-        public boolean onPreferenceChange(Preference preference, Object objValue) {
-            sendMetricsEventPreferenceChanged(getPreferenceScreen(), preference, objValue);
-
-            final int phoneSubId = mSubId;
-            if (preference == mButtonPreferredNetworkMode) {
-                //NOTE onPreferenceChange seems to be called even if there is no change
-                //Check if the button value is changed from the System.Setting
-                mButtonPreferredNetworkMode.setValue((String) objValue);
-                int buttonNetworkMode;
-                buttonNetworkMode = Integer.parseInt((String) objValue);
-                int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                        preferredNetworkMode);
-                if (buttonNetworkMode != settingsNetworkMode) {
-                    int modemNetworkMode;
-                    // if new mode is invalid ignore it
-                    switch (buttonNetworkMode) {
-                        case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                        case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                        case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
-                        case TelephonyManager.NETWORK_MODE_GSM_UMTS:
-                        case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                        case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                        case TelephonyManager.NETWORK_MODE_GLOBAL:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                        case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                            // This is one of the modes we recognize
-                            modemNetworkMode = buttonNetworkMode;
-                            break;
-                        default:
-                            loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
-                            return true;
-                    }
-
-                    android.provider.Settings.Global.putInt(
-                            getContext().getContentResolver(),
-                            android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                            buttonNetworkMode );
-                    //Set the modem network mode
-                    new SetPreferredNetworkAsyncTask(
-                            mTelephonyManager,
-                            mSubId,
-                            modemNetworkMode,
-                            mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
-                            .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-                }
-            } else if (preference == mButtonEnabledNetworks) {
-                mButtonEnabledNetworks.setValue((String) objValue);
-                int buttonNetworkMode;
-                buttonNetworkMode = Integer.parseInt((String) objValue);
-                if (DBG) log("buttonNetworkMode: " + buttonNetworkMode);
-                int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                        getContext().getContentResolver(),
-                        android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                        preferredNetworkMode);
-                if (buttonNetworkMode != settingsNetworkMode) {
-                    int modemNetworkMode;
-                    // if new mode is invalid ignore it
-                    switch (buttonNetworkMode) {
-                        case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                        case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                        case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                        case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                        case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                            // This is one of the modes we recognize
-                            modemNetworkMode = buttonNetworkMode;
-                            break;
-                        default:
-                            loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
-                            return true;
-                    }
-
-                    UpdateEnabledNetworksValueAndSummary(buttonNetworkMode);
-
-                    android.provider.Settings.Global.putInt(
-                            getContext().getContentResolver(),
-                            android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
-                            buttonNetworkMode );
-                    //Set the modem network mode
-                    new SetPreferredNetworkAsyncTask(
-                            mTelephonyManager,
-                            mSubId,
-                            modemNetworkMode,
-                            mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
-                            .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-                }
-            } else if (preference == mButton4glte) {
-                boolean enhanced4gMode = !mButton4glte.isChecked();
-                mButton4glte.setChecked(enhanced4gMode);
-                mImsMgr.setEnhanced4gLteModeSetting(mButton4glte.isChecked());
-            } else if (preference == mButtonDataRoam) {
-                if (DBG) log("onPreferenceTreeClick: preference == mButtonDataRoam.");
-
-                //normally called on the toggle click
-                if (!mButtonDataRoam.isChecked()) {
-                    PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
-                            mSubId);
-                    if (carrierConfig != null && carrierConfig.getBoolean(
-                            CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL)) {
-                        mTelephonyManager.setDataRoamingEnabled(true);
-                        MetricsLogger.action(getContext(),
-                                getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
-                                true);
-                    } else {
-                        // MetricsEvent with no value update.
-                        MetricsLogger.action(getContext(),
-                                getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam));
-                        // First confirm with a warning dialog about charges
-                        mOkClicked = false;
-                        RoamingDialogFragment fragment = new RoamingDialogFragment();
-                        Bundle b = new Bundle();
-                        b.putInt(RoamingDialogFragment.SUB_ID_KEY, mSubId);
-                        fragment.setArguments(b);
-                        fragment.show(getFragmentManager(), ROAMING_TAG);
-                        // Don't update the toggle unless the confirm button is actually pressed.
-                        return false;
-                    }
-                } else {
-                    mTelephonyManager.setDataRoamingEnabled(false);
-                    MetricsLogger.action(getContext(),
-                            getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
-                            false);
-                    return true;
-                }
-            } else if (preference == mVideoCallingPref) {
-                // If mButton4glte is not checked, mVideoCallingPref should be disabled.
-                // So it only makes sense to call phoneMgr.enableVideoCalling if it's checked.
-                if (mButton4glte.isChecked()) {
-                    mImsMgr.setVtSetting((boolean) objValue);
-                    return true;
-                } else {
-                    loge("mVideoCallingPref should be disabled if mButton4glte is not checked.");
-                    mVideoCallingPref.setEnabled(false);
-                    return false;
-                }
-            } else if (preference == getPreferenceScreen()
-                    .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                    || preference == getPreferenceScreen()
-                    .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-                return true;
-            }
-
-            updateBody();
-            // always let the preference setting proceed.
-            return true;
-        }
-
-        private boolean is4gLtePrefEnabled(PersistableBundle carrierConfig) {
-            return (mTelephonyManager.getCallState(mSubId)
-                    == TelephonyManager.CALL_STATE_IDLE)
-                    && mImsMgr != null
-                    && mImsMgr.isNonTtyOrTtyOnVolteEnabled()
-                    && carrierConfig.getBoolean(
-                            CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
-        }
-
-        private class MyHandler extends Handler {
-
-            static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 0;
-
-            @Override
-            public void handleMessage(Message msg) {
-                switch (msg.what) {
-                    case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
-                        handleSetPreferredNetworkTypeResponse(msg);
-                        break;
-                }
-            }
-
-            private void handleSetPreferredNetworkTypeResponse(Message msg) {
-                final Activity activity = getActivity();
-                if (activity == null || activity.isDestroyed()) {
-                    // Access preferences of activity only if it is not destroyed
-                    // or if fragment is not attached to an activity.
-                    return;
-                }
-
-                boolean success = (boolean) msg.obj;
-
-                if (success) {
-                    int networkMode;
-                    if (getPreferenceScreen().findPreference(
-                            BUTTON_PREFERED_NETWORK_MODE) != null)  {
-                        networkMode =  Integer.parseInt(mButtonPreferredNetworkMode.getValue());
-                        android.provider.Settings.Global.putInt(
-                                getContext().getContentResolver(),
-                                android.provider.Settings.Global.PREFERRED_NETWORK_MODE
-                                        + mSubId,
-                                networkMode );
-                    }
-                    if (getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
-                        networkMode = Integer.parseInt(mButtonEnabledNetworks.getValue());
-                        android.provider.Settings.Global.putInt(
-                                getContext().getContentResolver(),
-                                android.provider.Settings.Global.PREFERRED_NETWORK_MODE
-                                        + mSubId,
-                                networkMode );
-                    }
-                } else {
-                    Log.i(LOG_TAG, "handleSetPreferredNetworkTypeResponse:" +
-                            "exception in setting network mode.");
-                    updatePreferredNetworkUIFromDb();
-                }
-            }
-        }
-
-        private void updatePreferredNetworkUIFromDb() {
-            int settingsNetworkMode = android.provider.Settings.Global.getInt(
-                    getContext().getContentResolver(),
-                    android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
-                    preferredNetworkMode);
-
-            if (DBG) {
-                log("updatePreferredNetworkUIFromDb: settingsNetworkMode = " +
-                        settingsNetworkMode);
-            }
-
-            UpdatePreferredNetworkModeSummary(settingsNetworkMode);
-            UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
-            // changes the mButtonPreferredNetworkMode accordingly to settingsNetworkMode
-            mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
-        }
-
-        private void UpdatePreferredNetworkModeSummary(int NetworkMode) {
-            switch(NetworkMode) {
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_gsm_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_wcdma_perf_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_gsm_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_wcdma_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_GSM_UMTS:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                    switch (mTelephonyManager.getLteOnCdmaMode()) {
-                        case PhoneConstants.LTE_ON_CDMA_TRUE:
-                            mButtonPreferredNetworkMode.setSummary(
-                                    R.string.preferred_network_mode_cdma_summary);
-                            break;
-                        case PhoneConstants.LTE_ON_CDMA_FALSE:
-                        default:
-                            mButtonPreferredNetworkMode.setSummary(
-                                    R.string.preferred_network_mode_cdma_evdo_summary);
-                            break;
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_cdma_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_evdo_only_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_gsm_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_cdma_evdo_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                    if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
-                            || mIsGlobalCdma
-                            || isWorldMode()) {
-                        mButtonPreferredNetworkMode.setSummary(
-                                R.string.preferred_network_mode_global_summary);
-                    } else {
-                        mButtonPreferredNetworkMode.setSummary(
-                                R.string.preferred_network_mode_lte_summary);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_GLOBAL:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_tdscdma_wcdma_summary);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_lte_wcdma_summary);
-                    break;
-                default:
-                    mButtonPreferredNetworkMode.setSummary(
-                            R.string.preferred_network_mode_global_summary);
-            }
-        }
-
-        private void UpdateEnabledNetworksValueAndSummary(int NetworkMode) {
-            switch (NetworkMode) {
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
-                case TelephonyManager.NETWORK_MODE_GSM_UMTS:
-                case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
-                    if (!mIsGlobalCdma) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_WCDMA_PREF));
-                        mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_global);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_GSM_ONLY:
-                    if (!mIsGlobalCdma) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_GSM_ONLY));
-                        mButtonEnabledNetworks.setSummary(R.string.network_2G);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_global);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
-                    if (isWorldMode()) {
-                        mButtonEnabledNetworks.setSummary(
-                                R.string.preferred_network_mode_lte_gsm_umts_summary);
-                        controlCdmaOptions(false);
-                        controlGsmOptions(true);
-                        break;
-                    }
-                case TelephonyManager.NETWORK_MODE_LTE_ONLY:
-                case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
-                    if (!mIsGlobalCdma) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
-                                ? R.string.network_4G : R.string.network_lte);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_global);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
-                    if (isWorldMode()) {
-                        mButtonEnabledNetworks.setSummary(
-                                R.string.preferred_network_mode_lte_cdma_summary);
-                        controlCdmaOptions(true);
-                        controlGsmOptions(false);
-                    } else {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
-                        mButtonEnabledNetworks.setSummary(R.string.network_lte);
-                    }
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager
-                                    .NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
-                case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
-                case TelephonyManager.NETWORK_MODE_GLOBAL:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_EVDO));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO));
-                    mButtonEnabledNetworks.setSummary(R.string.network_1x);
-                    break;
-                case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
-                    mButtonEnabledNetworks.setValue(
-                            Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY));
-                    mButtonEnabledNetworks.setSummary(R.string.network_3G);
-                    break;
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                    if (isSupportTdscdma()) {
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-                        mButtonEnabledNetworks.setSummary(R.string.network_lte);
-                    } else {
-                        if (isWorldMode()) {
-                            controlCdmaOptions(true);
-                            controlGsmOptions(false);
-                        }
-                        mButtonEnabledNetworks.setValue(
-                                Integer.toString(TelephonyManager
-                                        .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-                        if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
-                                || mIsGlobalCdma
-                                || isWorldMode()) {
-                            mButtonEnabledNetworks.setSummary(R.string.network_global);
-                        } else {
-                            mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
-                                    ? R.string.network_4G : R.string.network_lte);
-                        }
-                    }
-                    break;
-                default:
-                    String errMsg = "Invalid Network Mode (" + NetworkMode + "). Ignore.";
-                    loge(errMsg);
-                    mButtonEnabledNetworks.setSummary(errMsg);
-            }
-        }
-
-        @Override
-        public void onActivityResult(int requestCode, int resultCode, Intent data) {
-            switch(requestCode) {
-                case REQUEST_CODE_EXIT_ECM:
-                    if (resultCode != Activity.RESULT_CANCELED) {
-                        // If the phone exits from ECM mode, show the CDMA Options
-                        mCdmaOptions.showDialog(mClickedPreference);
-                    }
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        private void updateWiFiCallState() {
-            if (mWiFiCallingPref == null || mCallingCategory == null) {
-                return;
-            }
-
-            // Removes the preference if the wifi calling is disabled.
-            if (!isWifiCallingEnabled(getContext(), mSubId)) {
-                mCallingCategory.removePreference(mWiFiCallingPref);
-                return;
-            }
-
-            // See what Telecom thinks the SIM call manager is.
-            final PhoneAccountHandle simCallManager =
-                    TelecomManager.from(getContext()).getSimCallManagerForSubscription(mSubId);
-
-            // Check which SIM call manager is for the current sub ID.
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-            String currentSubSimCallManager = null;
-            if (carrierConfig != null) {
-                currentSubSimCallManager = carrierConfig.getString(
-                        CarrierConfigManager.KEY_DEFAULT_SIM_CALL_MANAGER_STRING);
-            }
-
-            // Only try to configure the phone account if this is the sim call manager for the
-            // current sub.
-            if (simCallManager != null
-                    && simCallManager.getComponentName().flattenToString().equals(
-                    currentSubSimCallManager)) {
-                Intent intent = MobileNetworkSettings.buildPhoneAccountConfigureIntent(
-                        getContext(), simCallManager);
-                PackageManager pm = getContext().getPackageManager();
-                List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
-                mWiFiCallingPref.setTitle(resolutions.get(0).loadLabel(pm));
-                mWiFiCallingPref.setSummary(null);
-                mWiFiCallingPref.setIntent(intent);
-            } else {
-                String title = SubscriptionManager.getResourcesForSubId(getContext(), mSubId)
-                        .getString(R.string.wifi_calling_settings_title);
-                mWiFiCallingPref.setTitle(title);
-
-                int resId = com.android.internal.R.string.wifi_calling_off_summary;
-                if (mImsMgr.isWfcEnabledByUser()) {
-                    boolean isRoaming = mTelephonyManager.isNetworkRoaming();
-                    int wfcMode = mImsMgr.getWfcMode(isRoaming);
-
-                    switch (wfcMode) {
-                        case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
-                            resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
-                            break;
-                        case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
-                            resId = com.android.internal.R.string
-                                    .wfc_mode_cellular_preferred_summary;
-                            break;
-                        case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
-                            resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
-                            break;
-                        default:
-                            if (DBG) log("Unexpected WFC mode value: " + wfcMode);
-                    }
-                }
-                mWiFiCallingPref.setSummary(resId);
-            }
-
-            mCallingCategory.addPreference(mWiFiCallingPref);
-            mWiFiCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
-                    == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
-        }
-
-        private void updateEnhanced4gLteState() {
-            if (mButton4glte == null) {
-                return;
-            }
-
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
-            if ((mImsMgr == null
-                    || !mImsMgr.isVolteEnabledByPlatform()
-                    || !mImsMgr.isVolteProvisionedOnDevice()
-                    || !isImsServiceStateReady(mImsMgr)
-                    || carrierConfig.getBoolean(
-                    CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL))) {
-                getPreferenceScreen().removePreference(mButton4glte);
-            } else {
-                mButton4glte.setEnabled(is4gLtePrefEnabled(carrierConfig)
-                        && hasActiveSubscriptions());
-                boolean enh4glteMode = mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()
-                        && mImsMgr.isNonTtyOrTtyOnVolteEnabled();
-                mButton4glte.setChecked(enh4glteMode);
-            }
-        }
-
-        private void updateVideoCallState() {
-            if (mVideoCallingPref == null || mCallingCategory == null) {
-                return;
-            }
-
-            PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
-            if (mImsMgr != null
-                    && mImsMgr.isVtEnabledByPlatform()
-                    && mImsMgr.isVtProvisionedOnDevice()
-                    && isImsServiceStateReady(mImsMgr)
-                    && (carrierConfig.getBoolean(
-                        CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
-                        || mTelephonyManager.isDataEnabled())) {
-                mCallingCategory.addPreference(mVideoCallingPref);
-                if (!mButton4glte.isChecked()) {
-                    mVideoCallingPref.setEnabled(false);
-                    mVideoCallingPref.setChecked(false);
-                } else {
-                    mVideoCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
-                            == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
-                    mVideoCallingPref.setChecked(mImsMgr.isVtEnabledByUser());
-                    mVideoCallingPref.setOnPreferenceChangeListener(this);
-                }
-            } else {
-                mCallingCategory.removePreference(mVideoCallingPref);
-            }
-        }
-
-        private void updatePreferredNetworkType() {
-            boolean enabled = mTelephonyManager.getCallState(
-                    mSubId) == TelephonyManager.CALL_STATE_IDLE
-                    && hasActiveSubscriptions();
-            Log.i(LOG_TAG, "updatePreferredNetworkType: " + enabled);
-            // TODO: Disentangle enabled networks vs preferred network mode, it looks like
-            // both buttons are shown to the user as "Preferred network type" and the options change
-            // based on what looks like World mode.
-            if (mButtonEnabledNetworks != null) {
-                mButtonEnabledNetworks.setEnabled(enabled);
-            }
-            if (mButtonPreferredNetworkMode != null) {
-                mButtonPreferredNetworkMode.setEnabled(enabled);
-            }
-        }
-
-        private void updateCallingCategory() {
-            if (mCallingCategory == null) {
-                return;
-            }
-
-            updateWiFiCallState();
-            updateVideoCallState();
-
-            // If all items in calling category is removed, we remove it from
-            // the screen. Otherwise we'll see title of the category but nothing
-            // is in there.
-            if (mCallingCategory.getPreferenceCount() == 0) {
-                getPreferenceScreen().removePreference(mCallingCategory);
-            } else {
-                getPreferenceScreen().addPreference(mCallingCategory);
-            }
-        }
-
-        private static void log(String msg) {
-            Log.d(LOG_TAG, msg);
-        }
-
-        private static void loge(String msg) {
-            Log.e(LOG_TAG, msg);
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem item) {
-            final int itemId = item.getItemId();
-            if (itemId == android.R.id.home) {  // See ActionBar#setDisplayHomeAsUpEnabled()
-                // Commenting out "logical up" capability. This is a workaround for issue 5278083.
-                //
-                // Settings app may not launch this activity via UP_ACTIVITY_CLASS but the other
-                // Activity that looks exactly same as UP_ACTIVITY_CLASS ("SubSettings" Activity).
-                // At that moment, this Activity launches UP_ACTIVITY_CLASS on top of the Activity.
-                // which confuses users.
-                // TODO: introduce better mechanism for "up" capability here.
-            /*Intent intent = new Intent(Intent.ACTION_MAIN);
-            intent.setClassName(UP_ACTIVITY_PACKAGE, UP_ACTIVITY_CLASS);
-            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            startActivity(intent);*/
-                getActivity().finish();
-                return true;
-            }
-            return super.onOptionsItemSelected(item);
-        }
-
-        private boolean isWorldMode() {
-            boolean worldModeOn = false;
-            final String configString = getResources().getString(R.string.config_world_mode);
-
-            if (!TextUtils.isEmpty(configString)) {
-                String[] configArray = configString.split(";");
-                // Check if we have World mode configuration set to True only or config is set to True
-                // and SIM GID value is also set and matches to the current SIM GID.
-                if (configArray != null &&
-                        ((configArray.length == 1 && configArray[0].equalsIgnoreCase("true"))
-                                || (configArray.length == 2 && !TextUtils.isEmpty(configArray[1])
-                                && mTelephonyManager != null
-                                && configArray[1].equalsIgnoreCase(
-                                        mTelephonyManager.getGroupIdLevel1())))) {
-                    worldModeOn = true;
-                }
-            }
-
-            Log.d(LOG_TAG, "isWorldMode=" + worldModeOn);
-
-            return worldModeOn;
-        }
-
-        private void controlGsmOptions(boolean enable) {
-            PreferenceScreen prefSet = getPreferenceScreen();
-            if (prefSet == null) {
-                return;
-            }
-
-            updateGsmUmtsOptions(this, prefSet, mSubId);
-
-            PreferenceCategory networkOperatorCategory =
-                    (PreferenceCategory) prefSet.findPreference(
-                            NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
-            Preference carrierSettings = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-            if (networkOperatorCategory != null) {
-                if (enable) {
-                    networkOperatorCategory.setEnabled(true);
-                } else {
-                    prefSet.removePreference(networkOperatorCategory);
-                }
-            }
-            if (carrierSettings != null) {
-                prefSet.removePreference(carrierSettings);
-            }
-        }
-
-        private void controlCdmaOptions(boolean enable) {
-            PreferenceScreen prefSet = getPreferenceScreen();
-            if (prefSet == null) {
-                return;
-            }
-            updateCdmaOptions(this, prefSet, mSubId);
-            CdmaSystemSelectListPreference systemSelect =
-                    (CdmaSystemSelectListPreference)prefSet.findPreference
-                            (BUTTON_CDMA_SYSTEM_SELECT_KEY);
-            systemSelect.setSubscriptionId(mSubId);
-            if (systemSelect != null) {
-                systemSelect.setEnabled(enable);
-            }
-        }
-
-        private boolean isSupportTdscdma() {
-            if (getResources().getBoolean(R.bool.config_support_tdscdma)) {
-                return true;
-            }
-
-            String operatorNumeric = mTelephonyManager.getServiceState().getOperatorNumeric();
-            String[] numericArray = getResources().getStringArray(
-                    R.array.config_support_tdscdma_roaming_on_networks);
-            if (numericArray.length == 0 || operatorNumeric == null) {
-                return false;
-            }
-            for (String numeric : numericArray) {
-                if (operatorNumeric.equals(numeric)) {
-                    return true;
-                }
-            }
-            return false;
-        }
-
-        /**
-         * Metrics events related methods. it takes care of all preferences possible in this
-         * fragment(except a few that log on their own). It doesn't only include preferences in
-         * network_setting_fragment.xml, but also those defined in GsmUmtsOptions and CdmaOptions.
-         */
-        private void sendMetricsEventPreferenceClicked(
-                PreferenceScreen preferenceScreen, Preference preference) {
-            final int category = getMetricsEventCategory(preferenceScreen, preference);
-            if (category == MetricsEvent.VIEW_UNKNOWN) {
-                return;
-            }
-
-            // Send MetricsEvent on click. It includes preferences other than SwitchPreferences,
-            // which send MetricsEvent in onPreferenceChange.
-            // For ListPreferences, we log it here without a value, only indicating it's clicked to
-            // open the list dialog. When a value is chosen, another MetricsEvent is logged with
-            // new value in onPreferenceChange.
-            if (preference == mLteDataServicePref || preference == mDataUsagePref
-                    || preference == mEuiccSettingsPref || preference == mAdvancedOptions
-                    || preference == mWiFiCallingPref || preference == mButtonPreferredNetworkMode
-                    || preference == mButtonEnabledNetworks
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
-                MetricsLogger.action(getContext(), category);
-            }
-        }
-
-        private void sendMetricsEventPreferenceChanged(
-                PreferenceScreen preferenceScreen, Preference preference, Object newValue) {
-            final int category = getMetricsEventCategory(preferenceScreen, preference);
-            if (category == MetricsEvent.VIEW_UNKNOWN) {
-                return;
-            }
-
-            // MetricsEvent logging with new value, for SwitchPreferences and ListPreferences.
-            if (preference == mButton4glte || preference == mVideoCallingPref) {
-                MetricsLogger.action(getContext(), category, (Boolean) newValue);
-            } else if (preference == mButtonPreferredNetworkMode
-                    || preference == mButtonEnabledNetworks
-                    || preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
-                    || preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-                // Network select preference sends metrics event in its own listener.
-                MetricsLogger.action(getContext(), category, Integer.valueOf((String) newValue));
-            }
-        }
-
-        private int getMetricsEventCategory(
-                PreferenceScreen preferenceScreen, Preference preference) {
-
-            if (preference == null) {
-                return MetricsEvent.VIEW_UNKNOWN;
-            } else if (preference == mMobileDataPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE;
-            } else if (preference == mButtonDataRoam) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_DATA_ROAMING_TOGGLE;
-            } else if (preference == mDataUsagePref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_DATA_USAGE;
-            } else if (preference == mLteDataServicePref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_SET_UP_DATA_SERVICE;
-            } else if (preference == mAdvancedOptions) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_EXPAND_ADVANCED_FIELDS;
-            } else if (preference == mButton4glte) {
-                return MetricsEvent.ACTION_MOBILE_ENHANCED_4G_LTE_MODE_TOGGLE;
-            } else if (preference == mButtonPreferredNetworkMode) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_PREFERRED_NETWORK;
-            } else if (preference == mButtonEnabledNetworks) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_ENABLED_NETWORK;
-            } else if (preference == mEuiccSettingsPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_EUICC_SETTING;
-            } else if (preference == mWiFiCallingPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_WIFI_CALLING;
-            } else if (preference == mVideoCallingPref) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_VIDEO_CALLING_TOGGLE;
-            } else if (preference == preferenceScreen
-                            .findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE;
-            } else if (preference == preferenceScreen
-                            .findPreference(NetworkOperators.BUTTON_NETWORK_SELECT_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK;
-            } else if (preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SYSTEM_SELECT;
-            } else if (preference == preferenceScreen
-                            .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SUBSCRIPTION_SELECT;
-            } else if (preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
-                    || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS;
-            } else if (preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
-                return MetricsEvent.ACTION_MOBILE_NETWORK_CARRIER_SETTINGS;
-            } else {
-                return MetricsEvent.VIEW_UNKNOWN;
-            }
-        }
-
-        private void updateGsmUmtsOptions(PreferenceFragment prefFragment,
-                PreferenceScreen prefScreen, final int subId) {
-            // We don't want to re-create GsmUmtsOptions if already exists. Otherwise, the
-            // preferences inside it will also be re-created which causes unexpected behavior.
-            // For example, the open dialog gets dismissed or detached after pause / resume.
-            if (mGsmUmtsOptions == null) {
-                mGsmUmtsOptions = new GsmUmtsOptions(prefFragment, prefScreen, subId);
-            } else {
-                mGsmUmtsOptions.update(subId);
-            }
-        }
-
-        private void updateCdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
-                int subId) {
-            // We don't want to re-create CdmaOptions if already exists. Otherwise, the preferences
-            // inside it will also be re-created which causes unexpected behavior. For example,
-            // the open dialog gets dismissed or detached after pause / resume.
-            if (mCdmaOptions == null) {
-                mCdmaOptions = new CdmaOptions(prefFragment, prefScreen, subId);
-            } else {
-                mCdmaOptions.updateSubscriptionId(subId);
-            }
-        }
-    }
-
-    private static final class SetPreferredNetworkAsyncTask extends AsyncTask<Void, Void, Boolean> {
-
-        private final TelephonyManager mTelephonyManager;
-        private final int mSubId;
-        private final int mNetworkType;
-        private final Message mCallback;
-
-        SetPreferredNetworkAsyncTask(
-                TelephonyManager tm, int subId, int networkType, Message callback) {
-            mTelephonyManager = tm;
-            mSubId = subId;
-            mNetworkType = networkType;
-            mCallback = callback;
-        }
-
-        @Override
-        protected Boolean doInBackground(Void... voids) {
-            return mTelephonyManager.setPreferredNetworkType(mSubId, mNetworkType);
-        }
-
-        @Override
-        protected void onPostExecute(Boolean isSuccessed) {
-            mCallback.obj = isSuccessed;
-            mCallback.sendToTarget();
-        }
-    }
-}
diff --git a/src/com/android/phone/NetworkOperatorPreference.java b/src/com/android/phone/NetworkOperatorPreference.java
deleted file mode 100644
index 09c494c..0000000
--- a/src/com/android/phone/NetworkOperatorPreference.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.preference.Preference;
-import android.telephony.CellInfo;
-import android.telephony.SignalStrength;
-import android.util.Log;
-import android.view.Gravity;
-
-import com.android.settingslib.graph.SignalDrawable;
-
-import java.util.List;
-
-/**
- * A Preference represents a network operator in the NetworkSelectSetting fragment.
- */
-public class NetworkOperatorPreference extends Preference {
-
-    private static final String TAG = "NetworkOperatorPref";
-    private static final boolean DBG = false;
-    // number of signal strength level
-    public static final int NUMBER_OF_LEVELS = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
-    private CellInfo mCellInfo;
-    private List<String> mForbiddenPlmns;
-    private int mLevel = -1;
-    private boolean mShow4GForLTE;
-
-    // The following constants are used to draw signal icon.
-    private static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT);
-    private static final int NO_CELL_DATA_CONNECTED_ICON = 0;
-
-    public NetworkOperatorPreference(
-            CellInfo cellinfo, Context context, List<String> forbiddenPlmns, boolean show4GForLTE) {
-        super(context);
-        mCellInfo = cellinfo;
-        mForbiddenPlmns = forbiddenPlmns;
-        mShow4GForLTE = show4GForLTE;
-        refresh();
-    }
-
-    public CellInfo getCellInfo() {
-        return mCellInfo;
-    }
-
-    /**
-     * Refresh the NetworkOperatorPreference by updating the title and the icon.
-     */
-    public void refresh() {
-        if (DBG) Log.d(TAG, "refresh the network: " + CellInfoUtil.getNetworkTitle(mCellInfo));
-        String networkTitle = CellInfoUtil.getNetworkTitle(mCellInfo);
-        if (CellInfoUtil.isForbidden(mCellInfo, mForbiddenPlmns)) {
-            networkTitle += " " + getContext().getResources().getString(R.string.forbidden_network);
-        }
-        setTitle(networkTitle);
-        int level = mCellInfo.getCellSignalStrength().getLevel();
-        if (DBG) Log.d(TAG, "refresh level: " + String.valueOf(level));
-        if (mLevel != level) {
-            mLevel = level;
-            updateIcon(mLevel);
-        }
-    }
-
-    /**
-     * Update the icon according to the input signal strength level.
-     */
-    public void setIcon(int level) {
-        updateIcon(level);
-    }
-
-    private int getIconIdForCell(CellInfo ci) {
-        final int type = ci.getCellIdentity().getType();
-        switch (type) {
-            case CellInfo.TYPE_GSM: return R.drawable.signal_strength_g;
-            case CellInfo.TYPE_WCDMA: // fall through
-            case CellInfo.TYPE_TDSCDMA: return R.drawable.signal_strength_3g;
-            case CellInfo.TYPE_LTE:
-                return mShow4GForLTE
-                        ? R.drawable.signal_strength_4g : R.drawable.signal_strength_lte;
-            case CellInfo.TYPE_CDMA: return R.drawable.signal_strength_1x;
-            default: return 0;
-        }
-    }
-
-    private void updateIcon(int level) {
-        if (level < 0 || level >= NUMBER_OF_LEVELS) return;
-        Context context = getContext();
-        // Make the signal strength drawable
-        int iconId = 0;
-        if (DBG) Log.d(TAG, "updateIcon level: " + String.valueOf(level));
-        iconId = SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */);
-
-        SignalDrawable signalDrawable = new SignalDrawable(getContext());
-        signalDrawable.setLevel(iconId);
-        signalDrawable.setDarkIntensity(0);
-
-        // Make the network type drawable
-        int iconType = getIconIdForCell(mCellInfo);
-        Drawable networkDrawable =
-                iconType == NO_CELL_DATA_CONNECTED_ICON
-                        ? EMPTY_DRAWABLE
-                        : getContext()
-                        .getResources().getDrawable(iconType, getContext().getTheme());
-
-        // Overlay the two drawables
-        Drawable[] layers = {networkDrawable, signalDrawable};
-        final int iconSize =
-                context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size);
-
-        LayerDrawable icons = new LayerDrawable(layers);
-        // Set the network type icon at the top left
-        icons.setLayerGravity(0 /* index of networkDrawable */, Gravity.TOP | Gravity.LEFT);
-        // Set the signal strength icon at the bottom right
-        icons.setLayerGravity(1 /* index of SignalDrawable */, Gravity.BOTTOM | Gravity.RIGHT);
-        icons.setLayerSize(1 /* index of SignalDrawable */, iconSize, iconSize);
-        setIcon(icons);
-    }
-}
diff --git a/src/com/android/phone/NetworkOperators.java b/src/com/android/phone/NetworkOperators.java
deleted file mode 100644
index ec71656..0000000
--- a/src/com/android/phone/NetworkOperators.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.TwoStatePreference;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settingslib.utils.ThreadUtils;
-
-/**
- * "Networks" settings UI for the Phone app.
- */
-public class NetworkOperators extends PreferenceCategory
-        implements Preference.OnPreferenceChangeListener {
-
-    private static final String LOG_TAG = "NetworkOperators";
-    private static final boolean DBG = true;
-
-    private static final int EVENT_AUTO_SELECT_DONE = 100;
-    private static final int EVENT_GET_NETWORK_SELECTION_MODE_DONE = 200;
-
-    //String keys for preference lookup
-    public static final String BUTTON_NETWORK_SELECT_KEY = "button_network_select_key";
-    public static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
-    public static final String BUTTON_CHOOSE_NETWORK_KEY = "button_choose_network_key";
-    public static final String CATEGORY_NETWORK_OPERATORS_KEY = "network_operators_category_key";
-
-    //preference objects
-    private NetworkSelectListPreference mNetworkSelect;
-    private TwoStatePreference mAutoSelect;
-    private Preference mChooseNetwork;
-    private ProgressDialog mProgressDialog;
-
-    private int mSubId;
-    private TelephonyManager mTelephonyManager;
-
-    // There's two sets of Auto-Select UI in this class.
-    // If {@code com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI} set as true
-    // {@link mChooseNetwork} will be used, otherwise {@link mNetworkSelect} will be used.
-    boolean mEnableNewManualSelectNetworkUI;
-
-    public NetworkOperators(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public NetworkOperators(Context context) {
-        super(context);
-    }
-
-    /**
-     * Initialize NetworkOperators instance.
-     */
-    public void initialize() {
-        mEnableNewManualSelectNetworkUI = getContext().getResources().getBoolean(
-                com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
-        mAutoSelect = (TwoStatePreference) findPreference(BUTTON_AUTO_SELECT_KEY);
-        mChooseNetwork = findPreference(BUTTON_CHOOSE_NETWORK_KEY);
-        mNetworkSelect = (NetworkSelectListPreference) findPreference(BUTTON_NETWORK_SELECT_KEY);
-        if (mEnableNewManualSelectNetworkUI) {
-            removePreference(mNetworkSelect);
-        } else {
-            removePreference(mChooseNetwork);
-        }
-        mProgressDialog = new ProgressDialog(getContext());
-        mTelephonyManager = TelephonyManager.from(getContext());
-    }
-
-    /**
-     * Update NetworkOperators instance if like subId is updated.
-     *
-     * @param subId Corresponding subscription ID of this network.
-     */
-    protected void update(final int subId) {
-        mSubId = subId;
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-
-        if (mAutoSelect != null) {
-            mAutoSelect.setOnPreferenceChangeListener(this);
-        }
-
-        if (mEnableNewManualSelectNetworkUI) {
-            if (mChooseNetwork != null) {
-                ServiceState ss = mTelephonyManager.getServiceState();
-                if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) {
-                    mChooseNetwork.setSummary(mTelephonyManager.getNetworkOperatorName());
-                } else {
-                    mChooseNetwork.setSummary(R.string.network_disconnected);
-                }
-            }
-        } else {
-            if (mNetworkSelect != null) {
-                mNetworkSelect.initialize(mSubId, this, mProgressDialog);
-            }
-        }
-        getNetworkSelectionMode();
-    }
-
-    /**
-     * Implemented to support onPreferenceChangeListener to look for preference
-     * changes specifically on auto select button.
-     *
-     * @param preference is the preference to be changed, should be auto select button.
-     * @param newValue   should be the value of whether autoSelect is checked.
-     */
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        if (preference == mAutoSelect) {
-            boolean autoSelect = (Boolean) newValue;
-            if (DBG) logd("onPreferenceChange autoSelect: " + String.valueOf(autoSelect));
-            selectNetworkAutomatic(autoSelect);
-            MetricsLogger.action(getContext(),
-                    MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE, autoSelect);
-            return true;
-        }
-        return false;
-    }
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_AUTO_SELECT_DONE:
-                    mAutoSelect.setEnabled(true);
-                    dismissProgressBar();
-
-                    boolean isSuccessed = (boolean) msg.obj;
-
-                    if (isSuccessed) {
-                        if (DBG) logd("automatic network selection: succeeded!");
-                        displayNetworkSelectionSucceeded();
-                    } else {
-                        if (DBG) logd("automatic network selection: failed!");
-                        displayNetworkSelectionFailed();
-                    }
-
-                    break;
-                case EVENT_GET_NETWORK_SELECTION_MODE_DONE:
-                    int networkSelectionMode = msg.arg1;
-                    if (networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN) {
-                        if (DBG) logd("get network selection mode: failed!");
-                    } else {
-                        boolean autoSelect = networkSelectionMode
-                                == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
-                        if (DBG) {
-                            logd("get network selection mode: "
-                                    + (autoSelect ? "auto" : "manual") + " selection");
-                        }
-                        if (mAutoSelect != null) {
-                            mAutoSelect.setChecked(autoSelect);
-                        }
-                        if (mEnableNewManualSelectNetworkUI) {
-                            if (mChooseNetwork != null) {
-                                mChooseNetwork.setEnabled(!autoSelect);
-                            }
-                        } else {
-                            if (mNetworkSelect != null) {
-                                mNetworkSelect.setEnabled(!autoSelect);
-                            }
-                        }
-                    }
-            }
-            return;
-        }
-    };
-
-    // Used by both mAutoSelect and mNetworkSelect buttons.
-    protected void displayNetworkSelectionFailed() {
-        Toast.makeText(getContext(), R.string.connect_later, Toast.LENGTH_LONG).show();
-    }
-
-    // Used by both mAutoSelect and mNetworkSelect buttons.
-    protected void displayNetworkSelectionSucceeded() {
-        Toast.makeText(getContext(), R.string.registration_done, Toast.LENGTH_LONG).show();
-    }
-
-    private void selectNetworkAutomatic(boolean autoSelect) {
-        if (DBG) logd("selectNetworkAutomatic: " + String.valueOf(autoSelect));
-
-        if (autoSelect) {
-            if (mEnableNewManualSelectNetworkUI) {
-                if (mChooseNetwork != null) {
-                    mChooseNetwork.setEnabled(!autoSelect);
-                }
-            } else {
-                if (mNetworkSelect != null) {
-                    mNetworkSelect.setEnabled(!autoSelect);
-                }
-            }
-            if (DBG) logd("select network automatically...");
-            showAutoSelectProgressBar();
-            mAutoSelect.setEnabled(false);
-            if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
-                ThreadUtils.postOnBackgroundThread(() -> {
-                    mTelephonyManager.setNetworkSelectionModeAutomatic();
-                    // Because TelephonyManager#setNetworkSelectionModeAutomatic doesn't have a
-                    // return value, we query the current network selection mode to tell if the
-                    // TelephonyManager#setNetworkSelectionModeAutomatic is successed.
-                    int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
-                    Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
-                    msg.obj = networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
-                    msg.sendToTarget();
-                });
-            }
-        } else {
-            if (mEnableNewManualSelectNetworkUI) {
-                if (mChooseNetwork != null) {
-                    // Open the choose Network page automatically when user turn off the auto-select
-                    openChooseNetworkPage();
-                }
-            } else {
-                if (mNetworkSelect != null) {
-                    mNetworkSelect.onClick();
-                }
-            }
-        }
-    }
-
-    protected void getNetworkSelectionMode() {
-        if (DBG) logd("getting network selection mode...");
-        ThreadUtils.postOnBackgroundThread(() -> {
-            int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
-            Message msg = mHandler.obtainMessage(EVENT_GET_NETWORK_SELECTION_MODE_DONE);
-            msg.arg1 = networkSelectionMode;
-            msg.sendToTarget();
-        });
-    }
-
-    private void dismissProgressBar() {
-        if (mProgressDialog != null && mProgressDialog.isShowing()) {
-            mProgressDialog.dismiss();
-        }
-    }
-
-    private void showAutoSelectProgressBar() {
-        mProgressDialog.setMessage(
-                getContext().getResources().getString(R.string.register_automatically));
-        mProgressDialog.setCanceledOnTouchOutside(false);
-        mProgressDialog.setCancelable(false);
-        mProgressDialog.setIndeterminate(true);
-        mProgressDialog.show();
-    }
-
-    /**
-     * Open the Choose network page via {@alink NetworkSelectSettingActivity}
-     */
-    public void openChooseNetworkPage() {
-        Intent intent = NetworkSelectSettingActivity.getIntent(getContext(), mSubId);
-        getContext().startActivity(intent);
-    }
-
-    protected boolean preferenceTreeClick(Preference preference) {
-        if (mEnableNewManualSelectNetworkUI) {
-            if (DBG) logd("enable New AutoSelectNetwork UI");
-            if (preference == mChooseNetwork) {
-                openChooseNetworkPage();
-            }
-            return (preference == mAutoSelect || preference == mChooseNetwork);
-        } else {
-            return (preference == mAutoSelect || preference == mNetworkSelect);
-        }
-    }
-
-    private void logd(String msg) {
-        Log.d(LOG_TAG, "[NetworksList] " + msg);
-    }
-
-    private void loge(String msg) {
-        Log.e(LOG_TAG, "[NetworksList] " + msg);
-    }
-}
diff --git a/src/com/android/phone/NetworkQueryService.java b/src/com/android/phone/NetworkQueryService.java
deleted file mode 100644
index e67582f..0000000
--- a/src/com/android/phone/NetworkQueryService.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.RemoteCallbackList;
-import android.os.RemoteException;
-import android.telephony.AccessNetworkConstants;
-import android.telephony.CellIdentityGsm;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoGsm;
-import android.telephony.NetworkScan;
-import android.telephony.NetworkScanRequest;
-import android.telephony.RadioAccessSpecifier;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.TelephonyScanManager;
-import android.util.Log;
-
-import com.android.internal.telephony.CellNetworkScanResult;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Service code used to assist in querying the network for service
- * availability.
- */
-public class NetworkQueryService extends Service {
-    // debug data
-    private static final String LOG_TAG = "NetworkQuery";
-    private static final boolean DBG = true;
-
-    // static events
-    private static final int EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED = 100;
-    private static final int EVENT_NETWORK_SCAN_RESULTS = 200;
-    private static final int EVENT_NETWORK_SCAN_ERROR = 300;
-    private static final int EVENT_NETWORK_SCAN_COMPLETED = 400;
-
-    // static states indicating the query status of the service
-    private static final int QUERY_READY = -1;
-    private static final int QUERY_IS_RUNNING = -2;
-
-    // error statuses that will be retured in the callback.
-    public static final int QUERY_OK = 0;
-    public static final int QUERY_EXCEPTION = 1;
-
-    static final String ACTION_LOCAL_BINDER = "com.android.phone.intent.action.LOCAL_BINDER";
-
-    /** state of the query service */
-    private int mState;
-
-    private NetworkScan mNetworkScan;
-
-    // NetworkScanRequest parameters
-    private static final int SCAN_TYPE = NetworkScanRequest.SCAN_TYPE_ONE_SHOT;
-    private static final boolean INCREMENTAL_RESULTS = true;
-    // The parameters below are in seconds
-    private static final int SEARCH_PERIODICITY_SEC = 5;
-    private static final int MAX_SEARCH_TIME_SEC = 300;
-    private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
-
-    /**
-     * Class for clients to access.  Because we know this service always
-     * runs in the same process as its clients, we don't need to deal with
-     * IPC.
-     */
-    public class LocalBinder extends Binder {
-        INetworkQueryService getService() {
-            return mBinder;
-        }
-    }
-    private final IBinder mLocalBinder = new LocalBinder();
-
-    /**
-     * Local handler to receive the network query compete callback
-     * from the RIL.
-     */
-    Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                // if the scan is complete, broadcast the results.
-                // to all registerd callbacks.
-                case EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED:
-                    if (DBG) log("scan via Phone completed, broadcasting results");
-                    broadcastQueryResults(msg);
-                    break;
-
-                case EVENT_NETWORK_SCAN_RESULTS:
-                    if (DBG) log("get scan results, broadcasting results");
-                    broadcastQueryResults(msg);
-                    break;
-
-                case EVENT_NETWORK_SCAN_ERROR:
-                    if (DBG) log("get scan error, broadcasting error code");
-                    broadcastQueryResults(msg);
-                    break;
-
-                case EVENT_NETWORK_SCAN_COMPLETED:
-                    if (DBG) log("network scan or stop network query completed");
-                    broadcastQueryResults(msg);
-                    break;
-            }
-        }
-    };
-
-    /**
-     * List of callback objects, also used to synchronize access to 
-     * itself and to changes in state.
-     */
-    final RemoteCallbackList<INetworkQueryServiceCallback> mCallbacks =
-            new RemoteCallbackList<INetworkQueryServiceCallback>();
-
-    /**
-     * This implementation of NetworkScanCallbackImpl is used to receive callback notifications from
-     * the Telephony Manager.
-     */
-    public class NetworkScanCallbackImpl extends TelephonyScanManager.NetworkScanCallback {
-
-        /** Returns the scan results to the user, this callback will be called at least one time. */
-        public void onResults(List<CellInfo> results) {
-            if (DBG) log("got network scan results: " + results.size());
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
-            msg.sendToTarget();
-        }
-
-        /**
-         * Informs the user that the scan has stopped.
-         *
-         * This callback will be called when the scan is finished or cancelled by the user.
-         * The related NetworkScanRequest will be deleted after this callback.
-         */
-        public void onComplete() {
-            if (DBG) log("network scan completed");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
-            msg.sendToTarget();
-        }
-
-        /**
-         * Informs the user that there is some error about the scan.
-         *
-         * This callback will be called whenever there is any error about the scan, and the scan
-         * will be terminated. onComplete() will NOT be called.
-         */
-        public void onError(int error) {
-            if (DBG) log("network scan got error: " + error);
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error, 0 /* arg2 */);
-            msg.sendToTarget();
-        }
-    }
-
-    /**
-     * Implementation of the INetworkQueryService interface.
-     */
-    private final INetworkQueryService.Stub mBinder = new INetworkQueryService.Stub() {
-
-        /**
-         * Starts a query with a INetworkQueryServiceCallback object if
-         * one has not been started yet.  Ignore the new query request
-         * if the query has been started already.  Either way, place the
-         * callback object in the queue to be notified upon request
-         * completion.
-         */
-        public void startNetworkQuery(
-                INetworkQueryServiceCallback cb, int subId, boolean isIncrementalResult) {
-            if (cb != null) {
-                // register the callback to the list of callbacks.
-                synchronized (mCallbacks) {
-                    mCallbacks.register(cb);
-                    if (DBG) log("registering callback " + cb.getClass().toString());
-
-                    switch (mState) {
-                        case QUERY_READY:
-
-                            if (isIncrementalResult) {
-                                if (DBG) log("start network scan via TelephonManager");
-                                TelephonyManager tm = (TelephonyManager) getSystemService(
-                                        Context.TELEPHONY_SERVICE);
-                                // The Radio Access Specifiers below are meant to scan
-                                // all the bands for all the supported technologies.
-                                RadioAccessSpecifier gsm = new RadioAccessSpecifier(
-                                        AccessNetworkConstants.AccessNetworkType.GERAN,
-                                        null /* bands */,
-                                        null /* channels */);
-                                RadioAccessSpecifier lte = new RadioAccessSpecifier(
-                                        AccessNetworkConstants.AccessNetworkType.EUTRAN,
-                                        null /* bands */,
-                                        null /* channels */);
-                                RadioAccessSpecifier wcdma = new RadioAccessSpecifier(
-                                        AccessNetworkConstants.AccessNetworkType.UTRAN,
-                                        null /* bands */,
-                                        null /* channels */);
-                                RadioAccessSpecifier[] radioAccessSpecifier = {gsm, lte, wcdma};
-                                NetworkScanRequest networkScanRequest = new NetworkScanRequest(
-                                        SCAN_TYPE,
-                                        radioAccessSpecifier,
-                                        SEARCH_PERIODICITY_SEC,
-                                        MAX_SEARCH_TIME_SEC,
-                                        INCREMENTAL_RESULTS,
-                                        INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                                        null /* List of PLMN ids (MCC-MNC) */);
-
-                                // Construct a NetworkScanCallback
-                                NetworkQueryService.NetworkScanCallbackImpl
-                                        networkScanCallback =
-                                        new NetworkQueryService.NetworkScanCallbackImpl();
-
-                                // Request network scan
-                                mNetworkScan = tm.requestNetworkScan(networkScanRequest,
-                                        networkScanCallback);
-                                mState = QUERY_IS_RUNNING;
-                            } else {
-                                if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                                    mState = QUERY_IS_RUNNING;
-                                    ThreadUtils.postOnBackgroundThread(() -> {
-                                        if (DBG) log("start network scan via Phone xxx");
-                                        TelephonyManager telephonyManager =
-                                                TelephonyManager.from(getApplicationContext())
-                                                        .createForSubscriptionId(subId);
-                                        CellNetworkScanResult result =
-                                                telephonyManager.getAvailableNetworks();
-                                        Message msg = mHandler.obtainMessage(
-                                                EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED);
-                                        msg.obj = result;
-                                        msg.sendToTarget();
-                                    });
-                                } else {
-                                    if (DBG) {
-                                        log("SubscriptionId is invalid");
-                                    }
-                                }
-                            }
-
-                            break;
-                        // do nothing if we're currently busy.
-                        case QUERY_IS_RUNNING:
-                            if (DBG) log("query already in progress");
-                            break;
-                        default:
-                    }
-                }
-            }
-        }
-
-        /**
-         * Stops a query with a INetworkQueryServiceCallback object as
-         * a token.
-         */
-        public void stopNetworkQuery() {
-            if (DBG) log("stop network query");
-            // Tells the RIL to terminate the query request.
-            if (mNetworkScan != null) {
-                try {
-                    mNetworkScan.stop();
-                    mState = QUERY_READY;
-                } catch (RemoteException e) {
-                    if (DBG) log("stop mNetworkScan failed");
-                } catch (IllegalArgumentException e) {
-                    // Do nothing, scan has already completed.
-                }
-            }
-        }
-
-        /**
-         * Unregisters the callback without impacting an underlying query.
-         */
-        public void unregisterCallback(INetworkQueryServiceCallback cb) {
-            if (cb != null) {
-                synchronized (mCallbacks) {
-                    if (DBG) log("unregistering callback " + cb.getClass().toString());
-                    mCallbacks.unregister(cb);
-                }
-            }
-        }
-    };
-
-    @Override
-    public void onCreate() {
-        mState = QUERY_READY;
-    }
-
-    /**
-     * Required for service implementation.
-     */
-    @Override
-    public void onStart(Intent intent, int startId) {
-    }
-
-    /**
-     * Handle the bind request.
-     */
-    @Override
-    public IBinder onBind(Intent intent) {
-        if (DBG) log("binding service implementation");
-        if (ACTION_LOCAL_BINDER.equals(intent.getAction())) {
-            return mLocalBinder;
-        }
-
-        return mBinder;
-    }
-
-    /**
-     * Broadcast the results from the query to all registered callback objects.
-     */
-    private void broadcastQueryResults(Message msg) {
-        // reset the state.
-        synchronized (mCallbacks) {
-            mState = QUERY_READY;
-
-            // Make the calls to all the registered callbacks.
-            for (int i = (mCallbacks.beginBroadcast() - 1); i >= 0; i--) {
-                INetworkQueryServiceCallback cb = mCallbacks.getBroadcastItem(i);
-                if (DBG) log("broadcasting results to " + cb.getClass().toString());
-                try {
-                    switch (msg.what) {
-                        case EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED:
-                            CellNetworkScanResult result = (CellNetworkScanResult) msg.obj;
-                            if (result.getOperators() != null) {
-                                cb.onResults(getCellInfoList(result.getOperators()));
-                            } else {
-                                if (DBG) log("Operators list is null.");
-                            }
-                            // Send the onComplete() callback to indicate the one-time network
-                            // scan has completed.
-                            cb.onComplete();
-                            break;
-
-                        case EVENT_NETWORK_SCAN_RESULTS:
-                            cb.onResults((List<CellInfo>) msg.obj);
-                            break;
-
-                        case EVENT_NETWORK_SCAN_COMPLETED:
-                            cb.onComplete();
-                            break;
-
-                        case EVENT_NETWORK_SCAN_ERROR:
-                            cb.onError(msg.arg1);
-                            break;
-                    }
-                } catch (RemoteException e) {
-                }
-            }
-
-            // finish up.
-            mCallbacks.finishBroadcast();
-        }
-    }
-
-    /**
-     * Wraps up a list of OperatorInfo object to a list of CellInfo object. GsmCellInfo is used here
-     * only because operatorInfo does not contain technology type while CellInfo is an abstract
-     * object that requires to specify technology type. It doesn't matter which CellInfo type to
-     * use here, since we only want to wrap the operator info and PLMN to a CellInfo object.
-     */
-    private List<CellInfo> getCellInfoList(List<OperatorInfo> operatorInfoList) {
-        List<CellInfo> cellInfoList = new ArrayList<>();
-        for (OperatorInfo oi: operatorInfoList) {
-            String operatorNumeric = oi.getOperatorNumeric();
-            String mcc = null;
-            String mnc = null;
-            log("operatorNumeric: " + operatorNumeric);
-            if (operatorNumeric != null && operatorNumeric.matches("^[0-9]{5,6}$")) {
-                mcc = operatorNumeric.substring(0, 3);
-                mnc = operatorNumeric.substring(3);
-            }
-            CellIdentityGsm cig = new CellIdentityGsm(
-                    Integer.MAX_VALUE /* lac */,
-                    Integer.MAX_VALUE /* cid */,
-                    Integer.MAX_VALUE /* arfcn */,
-                    Integer.MAX_VALUE /* bsic */,
-                    mcc,
-                    mnc,
-                    oi.getOperatorAlphaLong(),
-                    oi.getOperatorAlphaShort());
-
-            CellInfoGsm ci = new CellInfoGsm();
-            ci.setCellIdentity(cig);
-            cellInfoList.add(ci);
-        }
-        return cellInfoList;
-    }
-
-    private static void log(String msg) {
-        Log.d(LOG_TAG, msg);
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/phone/NetworkScanHelper.java b/src/com/android/phone/NetworkScanHelper.java
deleted file mode 100644
index a21f547..0000000
--- a/src/com/android/phone/NetworkScanHelper.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.annotation.IntDef;
-import android.telephony.AccessNetworkConstants.AccessNetworkType;
-import android.telephony.CellInfo;
-import android.telephony.NetworkScan;
-import android.telephony.NetworkScanRequest;
-import android.telephony.RadioAccessSpecifier;
-import android.telephony.TelephonyManager;
-import android.telephony.TelephonyScanManager;
-import android.util.Log;
-
-import com.android.internal.telephony.CellNetworkScanResult;
-
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.List;
-import java.util.concurrent.Executor;
-import java.util.stream.Collectors;
-
-/**
- * A helper class that builds the common interface and performs the network scan for two different
- * network scan APIs.
- */
-public class NetworkScanHelper {
-    public static final String TAG = "NetworkScanHelper";
-    private static final boolean DBG = true;
-
-    /**
-     * Callbacks interface to inform the network scan results.
-     */
-    public interface NetworkScanCallback {
-        /**
-         * Called when the results is returned from {@link TelephonyManager}. This method will be
-         * called at least one time if there is no error occurred during the network scan.
-         *
-         * <p> This method can be called multiple times in one network scan, until
-         * {@link #onComplete()} or {@link #onError(int)} is called.
-         *
-         * @param results
-         */
-        void onResults(List<CellInfo> results);
-
-        /**
-         * Called when the current network scan process is finished. No more
-         * {@link #onResults(List)} will be called for the current network scan after this method is
-         * called.
-         */
-        void onComplete();
-
-        /**
-         * Called when an error occurred during the network scan process.
-         *
-         * <p> There is no more result returned from {@link TelephonyManager} if an error occurred.
-         *
-         * <p> {@link #onComplete()} will not be called if an error occurred.
-         *
-         * @see {@link android.telephony.NetworkScan.ScanErrorCode}
-         */
-        void onError(int errorCode);
-    }
-
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS, NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS})
-    public @interface NetworkQueryType {}
-
-    /**
-     * Performs the network scan using {@link TelephonyManager#getAvailableNetworks()}. The network
-     * scan results won't be returned to the caller until the network scan is completed.
-     *
-     * <p> This is typically used when the modem doesn't support the new network scan api
-     * {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
-     */
-    public static final int NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS = 1;
-
-    /**
-     * Performs the network scan using {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)} The network scan
-     * results will be returned to the caller periodically in a small time window until the network
-     * scan is completed. The complete results should be returned in the last called of
-     * {@link NetworkScanCallback#onResults(List)}.
-     *
-     * <p> This is recommended to be used if modem supports the new network scan api
-     * {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}
-     */
-    public static final int NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS = 2;
-
-    /** The constants below are used in the async network scan. */
-    private static final boolean INCREMENTAL_RESULTS = true;
-    private static final int SEARCH_PERIODICITY_SEC = 5;
-    private static final int MAX_SEARCH_TIME_SEC = 300;
-    private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
-
-    private static final NetworkScanRequest NETWORK_SCAN_REQUEST =
-            new NetworkScanRequest(
-                    NetworkScanRequest.SCAN_TYPE_ONE_SHOT,
-                    new RadioAccessSpecifier[]{
-                            // GSM
-                            new RadioAccessSpecifier(
-                                    AccessNetworkType.GERAN,
-                                    null /* bands */,
-                                    null /* channels */),
-                            // LTE
-                            new RadioAccessSpecifier(
-                                    AccessNetworkType.EUTRAN,
-                                    null /* bands */,
-                                    null /* channels */),
-                            // WCDMA
-                            new RadioAccessSpecifier(
-                                    AccessNetworkType.UTRAN,
-                                    null /* bands */,
-                                    null /* channels */)
-                    },
-                    SEARCH_PERIODICITY_SEC,
-                    MAX_SEARCH_TIME_SEC,
-                    INCREMENTAL_RESULTS,
-                    INCREMENTAL_RESULTS_PERIODICITY_SEC,
-                    null /* List of PLMN ids (MCC-MNC) */);
-
-    private final NetworkScanCallback mNetworkScanCallback;
-    private final TelephonyManager mTelephonyManager;
-    private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
-    private final Executor mExecutor;
-
-    private NetworkScan mNetworkScanRequester;
-
-    /** Callbacks for sync network scan */
-    private ListenableFuture<List<CellInfo>> mNetworkScanFuture;
-
-    public NetworkScanHelper(TelephonyManager tm, NetworkScanCallback callback, Executor executor) {
-        mTelephonyManager = tm;
-        mNetworkScanCallback = callback;
-        mInternalNetworkScanCallback = new NetworkScanCallbackImpl();
-        mExecutor = executor;
-    }
-
-    /**
-     * Performs a network scan for the given type {@code type}.
-     * {@link #NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS} is recommended if modem supports
-     * {@link TelephonyManager#requestNetworkScan(
-     * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
-     *
-     * @param type used to tell which network scan API should be used.
-     */
-    public void startNetworkScan(@NetworkQueryType int type) {
-        if (type == NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS) {
-            mNetworkScanFuture = SettableFuture.create();
-            Futures.addCallback(mNetworkScanFuture, new FutureCallback<List<CellInfo>>() {
-                @Override
-                public void onSuccess(List<CellInfo> result) {
-                    onResults(result);
-                    onComplete();
-                }
-
-                @Override
-                public void onFailure(Throwable t) {
-                    int errCode = Integer.parseInt(t.getMessage());
-                    onError(errCode);
-                }
-            });
-            mExecutor.execute(new NetworkScanSyncTask(
-                    mTelephonyManager, (SettableFuture) mNetworkScanFuture));
-        } else if (type == NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS) {
-            if (DBG) Log.d(TAG, "start network scan async");
-            mNetworkScanRequester = mTelephonyManager.requestNetworkScan(
-                    NETWORK_SCAN_REQUEST,
-                    mExecutor,
-                    mInternalNetworkScanCallback);
-        }
-    }
-
-    /**
-     * The network scan of type {@link #NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS} can't be stopped,
-     * however, the result of the current network scan won't be returned to the callback after
-     * calling this method.
-     */
-    public void stopNetworkQuery() {
-        if (mNetworkScanRequester != null) {
-            mNetworkScanRequester.stopScan();
-            mNetworkScanFuture = null;
-        }
-
-        if (mNetworkScanFuture != null) {
-            mNetworkScanFuture.cancel(true /* mayInterruptIfRunning */);
-            mNetworkScanFuture = null;
-        }
-    }
-
-    private void onResults(List<CellInfo> cellInfos) {
-        mNetworkScanCallback.onResults(cellInfos);
-    }
-
-    private void onComplete() {
-        mNetworkScanCallback.onComplete();
-    }
-
-    private void onError(int errCode) {
-        mNetworkScanCallback.onError(errCode);
-    }
-
-    /**
-     * Converts the status code of {@link CellNetworkScanResult} to one of the
-     * {@link android.telephony.NetworkScan.ScanErrorCode}.
-     * @param errCode status code from {@link CellNetworkScanResult}.
-     *
-     * @return one of the scan error code from {@link android.telephony.NetworkScan.ScanErrorCode}.
-     */
-    private static int convertToScanErrorCode(int errCode) {
-        switch (errCode) {
-            case CellNetworkScanResult.STATUS_RADIO_NOT_AVAILABLE:
-                return NetworkScan.ERROR_RADIO_INTERFACE_ERROR;
-            case CellNetworkScanResult.STATUS_RADIO_GENERIC_FAILURE:
-            default:
-                return NetworkScan.ERROR_MODEM_ERROR;
-        }
-    }
-
-    private final class NetworkScanCallbackImpl extends TelephonyScanManager.NetworkScanCallback {
-        public void onResults(List<CellInfo> results) {
-            if (DBG) Log.d(TAG, "async scan onResults() results = " + results);
-            NetworkScanHelper.this.onResults(results);
-        }
-
-        public void onComplete() {
-            if (DBG) Log.d(TAG, "async scan onComplete()");
-            NetworkScanHelper.this.onComplete();
-        }
-
-        public void onError(@NetworkScan.ScanErrorCode int errCode) {
-            if (DBG) Log.d(TAG, "async scan onError() errorCode = " + errCode);
-            NetworkScanHelper.this.onError(errCode);
-        }
-    }
-
-    private static final class NetworkScanSyncTask implements Runnable {
-        private final SettableFuture<List<CellInfo>> mCallback;
-        private final TelephonyManager mTelephonyManager;
-
-        NetworkScanSyncTask(
-                TelephonyManager telephonyManager, SettableFuture<List<CellInfo>> callback) {
-            mTelephonyManager = telephonyManager;
-            mCallback = callback;
-        }
-
-        @Override
-        public void run() {
-            if (DBG) Log.d(TAG, "sync scan start");
-            CellNetworkScanResult result = mTelephonyManager.getAvailableNetworks();
-            if (result.getStatus() == CellNetworkScanResult.STATUS_SUCCESS) {
-                List<CellInfo> cellInfos = result.getOperators()
-                        .stream()
-                        .map(operatorInfo
-                                -> CellInfoUtil.convertOperatorInfoToCellInfo(operatorInfo))
-                        .collect(Collectors.toList());
-                if (DBG) Log.d(TAG, "sync scan complete");
-                mCallback.set(cellInfos);
-            } else {
-                mCallback.setException(new Throwable(
-                        Integer.toString(convertToScanErrorCode(result.getStatus()))));
-            }
-        }
-    }
-}
diff --git a/src/com/android/phone/NetworkSelectListPreference.java b/src/com/android/phone/NetworkSelectListPreference.java
deleted file mode 100644
index df3f44a..0000000
--- a/src/com/android/phone/NetworkSelectListPreference.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Message;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoCdma;
-import android.telephony.CellInfoGsm;
-import android.telephony.CellInfoLte;
-import android.telephony.CellInfoWcdma;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.phone.NetworkScanHelper.NetworkScanCallback;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-
-/**
- * "Networks" preference in "Mobile network" settings UI for the Phone app.
- * It's used to manually search and choose mobile network. Enabled only when
- * autoSelect preference is turned off.
- */
-public class NetworkSelectListPreference extends ListPreference
-        implements DialogInterface.OnCancelListener,
-        Preference.OnPreferenceChangeListener{
-
-    private static final String LOG_TAG = "networkSelect";
-    private static final boolean DBG = true;
-
-    private static final int EVENT_MANUALLY_NETWORK_SELECTION_DONE = 1;
-    private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
-    private static final int EVENT_NETWORK_SCAN_COMPLETED = 3;
-    private static final int EVENT_NETWORK_SCAN_ERROR = 4;
-
-    //dialog ids
-    private static final int DIALOG_NETWORK_SELECTION = 100;
-    private static final int DIALOG_NETWORK_LIST_LOAD = 200;
-
-    private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
-
-    private List<CellInfo> mCellInfoList;
-    private CellInfo mCellInfo;
-
-    private int mSubId;
-    private TelephonyManager mTelephonyManager;
-    private NetworkScanHelper mNetworkScanHelper;
-    private NetworkOperators mNetworkOperators;
-    private List<String> mForbiddenPlmns;
-
-    private ProgressDialog mProgressDialog;
-    public NetworkSelectListPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public NetworkSelectListPreference(Context context, AttributeSet attrs, int defStyleAttr,
-                                       int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-    }
-
-    @Override
-    protected void onClick() {
-        showProgressDialog(DIALOG_NETWORK_LIST_LOAD);
-        TelephonyManager telephonyManager = (TelephonyManager)
-                getContext().getSystemService(Context.TELEPHONY_SERVICE);
-        new AsyncTask<Void, Void, List<String>>() {
-            @Override
-            protected List<String> doInBackground(Void... voids) {
-                String[] forbiddenPlmns = telephonyManager.getForbiddenPlmns();
-                return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
-            }
-
-            @Override
-            protected void onPostExecute(List<String> result) {
-                mForbiddenPlmns = result;
-                loadNetworksList();
-            }
-        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-    }
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_MANUALLY_NETWORK_SELECTION_DONE:
-                    if (DBG) logd("hideProgressPanel");
-                    dismissProgressDialog();
-
-                    boolean isSuccessed = (boolean) msg.obj;
-                    if (isSuccessed) {
-                        if (DBG) {
-                            logd("manual network selection: succeeded! "
-                                    + getNetworkTitle(mCellInfo));
-                        }
-                        mNetworkOperators.displayNetworkSelectionSucceeded();
-                    } else {
-                        if (DBG) logd("manual network selection: failed!");
-                        mNetworkOperators.displayNetworkSelectionFailed();
-                    }
-                    mNetworkOperators.getNetworkSelectionMode();
-                    break;
-
-                case EVENT_NETWORK_SCAN_RESULTS:
-                    List<CellInfo> results = (List<CellInfo>) msg.obj;
-                    results.removeIf(cellInfo -> cellInfo == null);
-                    mCellInfoList = new ArrayList<>(results);
-                    if (DBG) logd("CALLBACK_SCAN_RESULTS" + mCellInfoList.toString());
-                    break;
-
-                case EVENT_NETWORK_SCAN_COMPLETED:
-                    if (DBG) logd("scan complete, load the cellInfosList");
-                    dismissProgressDialog();
-                    networksListLoaded();
-                    break;
-                case EVENT_NETWORK_SCAN_ERROR:
-                    dismissProgressDialog();
-                    displayNetworkQueryFailed();
-                    mNetworkOperators.getNetworkSelectionMode();
-                    break;
-            }
-            return;
-        }
-    };
-
-    private final NetworkScanHelper.NetworkScanCallback mCallback = new NetworkScanCallback() {
-        public void onResults(List<CellInfo> results) {
-            if (DBG) logd("get scan results: " + results.toString());
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
-            msg.sendToTarget();
-        }
-
-        public void onComplete() {
-            if (DBG) logd("network scan completed.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
-            msg.sendToTarget();
-        }
-
-        public void onError(int error) {
-            if (DBG) logd("network scan error.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR);
-            msg.sendToTarget();
-        }
-    };
-
-    @Override
-    //implemented for DialogInterface.OnCancelListener
-    public void onCancel(DialogInterface dialog) {
-        if (DBG) logd("user manually close the dialog");
-        mNetworkScanHelper.stopNetworkQuery();
-
-        // If cancelled, we query NetworkSelectMode and update states of AutoSelect button.
-        mNetworkOperators.getNetworkSelectionMode();
-    }
-
-    @Override
-    protected void onDialogClosed(boolean positiveResult) {
-        super.onDialogClosed(positiveResult);
-        // If dismissed, we query NetworkSelectMode and update states of AutoSelect button.
-        if (!positiveResult) {
-            mNetworkOperators.getNetworkSelectionMode();
-        }
-    }
-
-    // This initialize method needs to be called for this preference to work properly.
-    protected void initialize(int subId, NetworkOperators networkOperators,
-            ProgressDialog progressDialog) {
-        mSubId = subId;
-        mNetworkOperators = networkOperators;
-        // This preference should share the same progressDialog with networkOperators category.
-        mProgressDialog = progressDialog;
-
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-        mNetworkScanHelper = new NetworkScanHelper(
-                mTelephonyManager, mCallback, mNetworkScanExecutor);
-
-        setSummary(mTelephonyManager.getNetworkOperatorName());
-
-        setOnPreferenceChangeListener(this);
-    }
-
-    @Override
-    protected void onPrepareForRemoval() {
-        destroy();
-        super.onPrepareForRemoval();
-    }
-
-    private void destroy() {
-        dismissProgressDialog();
-
-        if (mNetworkScanHelper != null) {
-            mNetworkScanHelper.stopNetworkQuery();
-        }
-
-        mNetworkScanExecutor.shutdown();
-    }
-
-    private void displayEmptyNetworkList() {
-        Toast.makeText(getContext(), R.string.empty_networks_list, Toast.LENGTH_LONG).show();
-    }
-
-    private void displayNetworkQueryFailed() {
-        Toast.makeText(getContext(), R.string.network_query_error, Toast.LENGTH_LONG).show();
-    }
-
-    private void loadNetworksList() {
-        if (DBG) logd("load networks list...");
-        mNetworkScanHelper.startNetworkScan(
-                NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
-    }
-
-    private void networksListLoaded() {
-        if (DBG) logd("networks list loaded");
-
-        mNetworkOperators.getNetworkSelectionMode();
-        if (mCellInfoList != null) {
-            // create a preference for each item in the list.
-            // just use the operator name instead of the mildly
-            // confusing mcc/mnc.
-            List<CharSequence> networkEntriesList = new ArrayList<>();
-            List<CharSequence> networkEntryValuesList = new ArrayList<>();
-            for (CellInfo cellInfo: mCellInfoList) {
-                // Display each operator name only once.
-                String networkTitle = getNetworkTitle(cellInfo);
-                if (CellInfoUtil.isForbidden(cellInfo, mForbiddenPlmns)) {
-                    networkTitle += " "
-                            + getContext().getResources().getString(R.string.forbidden_network);
-                }
-                networkEntriesList.add(networkTitle);
-                networkEntryValuesList.add(getOperatorNumeric(cellInfo));
-            }
-            setEntries(networkEntriesList.toArray(new CharSequence[networkEntriesList.size()]));
-            setEntryValues(networkEntryValuesList.toArray(
-                    new CharSequence[networkEntryValuesList.size()]));
-
-            super.onClick();
-        } else {
-            displayEmptyNetworkList();
-        }
-    }
-
-    private void dismissProgressDialog() {
-        if (mProgressDialog != null && mProgressDialog.isShowing()) {
-            try {
-                mProgressDialog.dismiss();
-            } catch (IllegalArgumentException ex) {
-                loge("Can't close the progress dialog " + ex);
-            }
-        }
-    }
-
-    private void showProgressDialog(int id) {
-        if (mProgressDialog == null) {
-            mProgressDialog = new ProgressDialog(getContext());
-        } else {
-            // Dismiss progress bar if it's showing now.
-            dismissProgressDialog();
-        }
-
-        switch (id) {
-            case DIALOG_NETWORK_SELECTION:
-                final String networkSelectMsg = getContext().getResources()
-                        .getString(R.string.register_on_network,
-                                getNetworkTitle(mCellInfo));
-                mProgressDialog.setMessage(networkSelectMsg);
-                mProgressDialog.setCanceledOnTouchOutside(false);
-                mProgressDialog.setCancelable(false);
-                mProgressDialog.setIndeterminate(true);
-                break;
-            case DIALOG_NETWORK_LIST_LOAD:
-                mProgressDialog.setMessage(
-                        getContext().getResources().getString(R.string.load_networks_progress));
-                mProgressDialog.setCanceledOnTouchOutside(false);
-                mProgressDialog.setCancelable(true);
-                mProgressDialog.setIndeterminate(false);
-                mProgressDialog.setOnCancelListener(this);
-                break;
-            default:
-        }
-        mProgressDialog.show();
-    }
-
-    /**
-     * Implemented to support onPreferenceChangeListener to look for preference
-     * changes specifically on this button.
-     *
-     * @param preference is the preference to be changed, should be network select button.
-     * @param newValue should be the value of the selection as index of operators.
-     */
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        int operatorIndex = findIndexOfValue((String) newValue);
-        mCellInfo = mCellInfoList.get(operatorIndex);
-        if (DBG) logd("selected network: " + mCellInfo.toString());
-
-        MetricsLogger.action(getContext(),
-                MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
-        if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
-            ThreadUtils.postOnBackgroundThread(() -> {
-                final OperatorInfo operatorInfo = getOperatorInfoFromCellInfo(mCellInfo);
-                if (DBG) logd("manually selected network: " + operatorInfo.toString());
-                boolean isSuccessed = mTelephonyManager.setNetworkSelectionModeManual(
-                        operatorInfo, true /* persistSelection */);
-                Message msg = mHandler.obtainMessage(EVENT_MANUALLY_NETWORK_SELECTION_DONE);
-                msg.obj = isSuccessed;
-                msg.sendToTarget();
-            });
-        } else {
-            loge("Error selecting network, subscription Id is invalid " + mSubId);
-        }
-
-        return true;
-    }
-
-    /**
-     * Returns the title of the network obtained in the manual search.
-     *
-     * @param cellInfo contains the information of the network.
-     * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
-     * else MCCMNC string.
-     */
-    private String getNetworkTitle(CellInfo cellInfo) {
-        OperatorInfo ni = getOperatorInfoFromCellInfo(cellInfo);
-
-        if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
-            return ni.getOperatorAlphaLong();
-        } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
-            return ni.getOperatorAlphaShort();
-        } else {
-            BidiFormatter bidiFormatter = BidiFormatter.getInstance();
-            return bidiFormatter.unicodeWrap(ni.getOperatorNumeric(), TextDirectionHeuristics.LTR);
-        }
-    }
-
-    /**
-     * Returns the operator numeric (MCCMNC) obtained in the manual search.
-     *
-     * @param cellInfo contains the information of the network.
-     * @return MCCMNC string.
-     */
-    private String getOperatorNumeric(CellInfo cellInfo) {
-        return getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
-    }
-
-    /**
-     * Wrap a cell info into an operator info.
-     */
-    private OperatorInfo getOperatorInfoFromCellInfo(CellInfo cellInfo) {
-        OperatorInfo oi;
-        if (cellInfo instanceof CellInfoLte) {
-            CellInfoLte lte = (CellInfoLte) cellInfo;
-            oi = new OperatorInfo(
-                    (String) lte.getCellIdentity().getOperatorAlphaLong(),
-                    (String) lte.getCellIdentity().getOperatorAlphaShort(),
-                    lte.getCellIdentity().getMobileNetworkOperator());
-        } else if (cellInfo instanceof CellInfoWcdma) {
-            CellInfoWcdma wcdma = (CellInfoWcdma) cellInfo;
-            oi = new OperatorInfo(
-                    (String) wcdma.getCellIdentity().getOperatorAlphaLong(),
-                    (String) wcdma.getCellIdentity().getOperatorAlphaShort(),
-                    wcdma.getCellIdentity().getMobileNetworkOperator());
-        } else if (cellInfo instanceof CellInfoGsm) {
-            CellInfoGsm gsm = (CellInfoGsm) cellInfo;
-            oi = new OperatorInfo(
-                    (String) gsm.getCellIdentity().getOperatorAlphaLong(),
-                    (String) gsm.getCellIdentity().getOperatorAlphaShort(),
-                    gsm.getCellIdentity().getMobileNetworkOperator());
-        } else if (cellInfo instanceof CellInfoCdma) {
-            CellInfoCdma cdma = (CellInfoCdma) cellInfo;
-            oi = new OperatorInfo(
-                    (String) cdma.getCellIdentity().getOperatorAlphaLong(),
-                    (String) cdma.getCellIdentity().getOperatorAlphaShort(),
-                    "" /* operator numeric */);
-        } else {
-            oi = new OperatorInfo("", "", "");
-        }
-        return oi;
-    }
-
-    @Override
-    protected Parcelable onSaveInstanceState() {
-        final Parcelable superState = super.onSaveInstanceState();
-        if (isPersistent()) {
-            // No need to save instance state since it's persistent
-            return superState;
-        }
-
-        final SavedState myState = new SavedState(superState);
-        myState.mDialogListEntries = getEntries();
-        myState.mDialogListEntryValues = getEntryValues();
-        myState.mCellInfoList = mCellInfoList;
-        return myState;
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Parcelable state) {
-        if (state == null || !state.getClass().equals(SavedState.class)) {
-            // Didn't save state for us in onSaveInstanceState
-            super.onRestoreInstanceState(state);
-            return;
-        }
-
-        SavedState myState = (SavedState) state;
-
-        if (getEntries() == null && myState.mDialogListEntries != null) {
-            setEntries(myState.mDialogListEntries);
-        }
-        if (getEntryValues() == null && myState.mDialogListEntryValues != null) {
-            setEntryValues(myState.mDialogListEntryValues);
-        }
-        if (mCellInfoList == null && myState.mCellInfoList != null) {
-            mCellInfoList = myState.mCellInfoList;
-        }
-
-        super.onRestoreInstanceState(myState.getSuperState());
-    }
-
-    /**
-     *  We save entries, entryValues and operatorInfoList into bundle.
-     *  At onCreate of fragment, dialog will be restored if it was open. In this case,
-     *  we need to restore entries, entryValues and operatorInfoList. Without those information,
-     *  onPreferenceChange will fail if user select network from the dialog.
-     */
-    private static class SavedState extends BaseSavedState {
-        CharSequence[] mDialogListEntries;
-        CharSequence[] mDialogListEntryValues;
-        List<CellInfo> mCellInfoList;
-
-        SavedState(Parcel source) {
-            super(source);
-            final ClassLoader boot = Object.class.getClassLoader();
-            mDialogListEntries = source.readCharSequenceArray();
-            mDialogListEntryValues = source.readCharSequenceArray();
-            mCellInfoList = source.readParcelableList(mCellInfoList, boot);
-        }
-
-        @Override
-        public void writeToParcel(Parcel dest, int flags) {
-            super.writeToParcel(dest, flags);
-            dest.writeCharSequenceArray(mDialogListEntries);
-            dest.writeCharSequenceArray(mDialogListEntryValues);
-            dest.writeParcelableList(mCellInfoList, flags);
-        }
-
-        SavedState(Parcelable superState) {
-            super(superState);
-        }
-
-        public static final Parcelable.Creator<SavedState> CREATOR =
-                new Parcelable.Creator<SavedState>() {
-                    public SavedState createFromParcel(Parcel in) {
-                        return new SavedState(in);
-                    }
-
-                    public SavedState[] newArray(int size) {
-                        return new SavedState[size];
-                    }
-                };
-    }
-
-    private void logd(String msg) {
-        Log.d(LOG_TAG, "[NetworksList] " + msg);
-    }
-
-    private void loge(String msg) {
-        Log.e(LOG_TAG, "[NetworksList] " + msg);
-    }
-}
diff --git a/src/com/android/phone/NetworkSelectSetting.java b/src/com/android/phone/NetworkSelectSetting.java
deleted file mode 100644
index 45478d9..0000000
--- a/src/com/android/phone/NetworkSelectSetting.java
+++ /dev/null
@@ -1,569 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.PersistableBundle;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.telephony.AccessNetworkConstants;
-import android.telephony.CarrierConfigManager;
-import android.telephony.CellIdentity;
-import android.telephony.CellInfo;
-import android.telephony.NetworkRegistrationInfo;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.phone.NetworkScanHelper.NetworkScanCallback;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * "Choose network" settings UI for the Phone app.
- */
-public class NetworkSelectSetting extends PreferenceFragment {
-
-    private static final String TAG = "NetworkSelectSetting";
-    private static final boolean DBG = true;
-
-    private static final int EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE = 1;
-    private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
-    private static final int EVENT_NETWORK_SCAN_ERROR = 3;
-    private static final int EVENT_NETWORK_SCAN_COMPLETED = 4;
-
-    private static final String PREF_KEY_CONNECTED_NETWORK_OPERATOR =
-            "connected_network_operator_preference";
-    private static final String PREF_KEY_NETWORK_OPERATORS = "network_operators_preference";
-
-    // used to add/remove NetworkOperatorsPreference.
-    private PreferenceCategory mNetworkOperatorsPreferences;
-    // used to add/remove connected NetworkOperatorPreference.
-    private PreferenceCategory mConnectedNetworkOperatorsPreference;
-    // manage the progress bar on the top of the page.
-    private View mProgressHeader;
-    private Preference mStatusMessagePreference;
-    private List<CellInfo> mCellInfoList;
-    private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    private ViewGroup mFrameLayout;
-    private NetworkOperatorPreference mSelectedNetworkOperatorPreference;
-    private TelephonyManager mTelephonyManager;
-    private List<String> mForbiddenPlmns;
-    private boolean mShow4GForLTE = false;
-    private NetworkScanHelper mNetworkScanHelper;
-    private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
-
-    private final Runnable mUpdateNetworkOperatorsRunnable = () -> {
-        updateNetworkOperatorsPreferenceCategory();
-    };
-
-    /**
-     * Create a new instance of this fragment.
-     */
-    public static NetworkSelectSetting newInstance(int subId) {
-        Bundle args = new Bundle();
-        args.putInt(NetworkSelectSettingActivity.KEY_SUBSCRIPTION_ID, subId);
-        NetworkSelectSetting fragment = new NetworkSelectSetting();
-        fragment.setArguments(args);
-
-        return fragment;
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        if (DBG) logd("onCreate");
-        super.onCreate(icicle);
-
-        mSubId = getArguments().getInt(NetworkSelectSettingActivity.KEY_SUBSCRIPTION_ID);
-
-        addPreferencesFromResource(R.xml.choose_network);
-        mConnectedNetworkOperatorsPreference =
-                (PreferenceCategory) findPreference(PREF_KEY_CONNECTED_NETWORK_OPERATOR);
-        mNetworkOperatorsPreferences =
-                (PreferenceCategory) findPreference(PREF_KEY_NETWORK_OPERATORS);
-        mStatusMessagePreference = new Preference(getContext());
-        mSelectedNetworkOperatorPreference = null;
-        mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-        mNetworkScanHelper = new NetworkScanHelper(
-                mTelephonyManager, mCallback, mNetworkScanExecutor);
-        PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService(
-                Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId);
-        if (bundle != null) {
-            mShow4GForLTE = bundle.getBoolean(
-                    CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
-        }
-        setRetainInstance(true);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        if (DBG) logd("onViewCreated");
-        super.onViewCreated(view, savedInstanceState);
-
-        if (getListView() != null) {
-            getListView().setDivider(null);
-        }
-        // Inflate progress bar
-        final Activity activity = getActivity();
-        if (activity != null) {
-            ActionBar actionBar = activity.getActionBar();
-            if (actionBar != null) {
-                // android.R.id.home will be triggered in
-                // {@link NetworkSelectSettingAcitivity#onOptionsItemSelected()}
-                actionBar.setDisplayHomeAsUpEnabled(true);
-            }
-            mFrameLayout = activity.findViewById(R.id.choose_network_content);
-            final LayoutInflater inflater = activity.getLayoutInflater();
-            final View pinnedHeader =
-                    inflater.inflate(R.layout.choose_network_progress_header, mFrameLayout, false);
-            mFrameLayout.addView(pinnedHeader);
-            mFrameLayout.setVisibility(View.VISIBLE);
-            mProgressHeader = pinnedHeader.findViewById(R.id.progress_bar_animation);
-            setProgressBarVisible(false);
-        }
-        forceConfigConnectedNetworkOperatorsPreferenceCategory();
-    }
-
-    @Override
-    public void onStart() {
-        if (DBG) logd("onStart");
-        super.onStart();
-        new AsyncTask<Void, Void, List<String>>() {
-            @Override
-            protected List<String> doInBackground(Void... voids) {
-                String[] forbiddenPlmns = mTelephonyManager.getForbiddenPlmns();
-                return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
-            }
-
-            @Override
-            protected void onPostExecute(List<String> result) {
-                mForbiddenPlmns = result;
-                loadNetworksList();
-            }
-        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-    }
-
-    /**
-     * Invoked on each preference click in this hierarchy, overrides
-     * PreferenceActivity's implementation.  Used to make sure we track the
-     * preference click events.
-     * Since the connected network operator is either faked (when no data connection) or already
-     * connected, we do not allow user to click the connected network operator.
-     */
-    @Override
-    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
-                                         Preference preference) {
-        if (DBG) logd("User clicked the screen");
-        stopNetworkQuery();
-        setProgressBarVisible(false);
-        if (preference instanceof  NetworkOperatorPreference) {
-            // Refresh the last selected item in case users reselect network.
-            if (mSelectedNetworkOperatorPreference != null) {
-                mSelectedNetworkOperatorPreference.setSummary("");
-            }
-
-            mSelectedNetworkOperatorPreference = (NetworkOperatorPreference) preference;
-            CellInfo cellInfo = mSelectedNetworkOperatorPreference.getCellInfo();
-            if (DBG) logd("User click a NetworkOperatorPreference: " + cellInfo.toString());
-
-            // Send metrics event
-            MetricsLogger.action(getContext(),
-                    MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
-            // Connect to the network
-            if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
-                if (DBG) {
-                    logd("Connect to the network: " + CellInfoUtil.getNetworkTitle(cellInfo));
-                }
-                // Set summary as "Connecting" to the selected network.
-                mSelectedNetworkOperatorPreference.setSummary(R.string.network_connecting);
-
-                // Set summary as "Disconnected" to the previously connected network
-                if (mConnectedNetworkOperatorsPreference.getPreferenceCount() > 0) {
-                    NetworkOperatorPreference connectedNetworkOperator = (NetworkOperatorPreference)
-                            (mConnectedNetworkOperatorsPreference.getPreference(0));
-                    if (!CellInfoUtil.getNetworkTitle(cellInfo).equals(
-                            CellInfoUtil.getNetworkTitle(connectedNetworkOperator.getCellInfo()))) {
-                        connectedNetworkOperator.setSummary(R.string.network_disconnected);
-                    }
-                }
-
-                OperatorInfo operatorInfo = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo);
-                if (DBG) logd("manually selected network operator: " + operatorInfo.toString());
-
-                ThreadUtils.postOnBackgroundThread(() -> {
-                    Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
-                    msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
-                            operatorInfo, true /* persistSelection */);
-                    msg.sendToTarget();
-                });
-
-                setProgressBarVisible(true);
-                return true;
-            } else {
-                loge("Error selecting network. Subscription Id is invalid.");
-                mSelectedNetworkOperatorPreference = null;
-                return false;
-            }
-
-        } else {
-            preferenceScreen.setEnabled(false);
-            return false;
-        }
-    }
-
-    @Override
-    public void onAttach(Activity activity) {
-        super.onAttach(activity);
-        if (!(getActivity() instanceof NetworkSelectSettingActivity)) {
-            throw new IllegalStateException("Parent activity is not NetworkSelectSettingActivity");
-        }
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        if (DBG) logd("onStop");
-        getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
-        stopNetworkQuery();
-    }
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE:
-                    if (DBG) logd("network selection done: hide the progress header");
-                    setProgressBarVisible(false);
-
-                    boolean isSuccessed = (boolean) msg.obj;
-                    if (isSuccessed) {
-                        if (DBG) logd("manual network selection: succeeded! ");
-                        // Set summary as "Connected" to the selected network.
-                        mSelectedNetworkOperatorPreference.setSummary(R.string.network_connected);
-                    } else {
-                        if (DBG) logd("manual network selection: failed! ");
-                        // Set summary as "Couldn't connect" to the selected network.
-                        mSelectedNetworkOperatorPreference.setSummary(
-                                R.string.network_could_not_connect);
-                    }
-                    break;
-
-                case EVENT_NETWORK_SCAN_RESULTS:
-                    List<CellInfo> results = aggregateCellInfoList((List<CellInfo>) msg.obj);
-                    mCellInfoList = new ArrayList<>(results);
-                    if (DBG) logd("after aggregate: " + mCellInfoList.toString());
-                    if (mCellInfoList != null && mCellInfoList.size() != 0) {
-                        updateNetworkOperators();
-                    } else {
-                        addMessagePreference(R.string.empty_networks_list);
-                    }
-
-                    break;
-
-                case EVENT_NETWORK_SCAN_ERROR:
-                    int error = msg.arg1;
-                    if (DBG) logd("error while querying available networks " + error);
-                    stopNetworkQuery();
-                    addMessagePreference(R.string.network_query_error);
-                    break;
-
-                case EVENT_NETWORK_SCAN_COMPLETED:
-                    stopNetworkQuery();
-                    if (DBG) logd("scan complete");
-                    if (mCellInfoList == null) {
-                        // In case the scan timeout before getting any results
-                        addMessagePreference(R.string.empty_networks_list);
-                    }
-                    break;
-            }
-            return;
-        }
-    };
-
-    private void loadNetworksList() {
-        if (DBG) logd("load networks list...");
-        setProgressBarVisible(true);
-        mNetworkScanHelper.startNetworkScan(
-                NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS);
-    }
-
-    private final NetworkScanHelper.NetworkScanCallback mCallback = new NetworkScanCallback() {
-        public void onResults(List<CellInfo> results) {
-            if (DBG) logd("get scan results.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
-            msg.sendToTarget();
-        }
-
-        public void onComplete() {
-            if (DBG) logd("network scan completed.");
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
-            msg.sendToTarget();
-        }
-
-        public void onError(int error) {
-            if (DBG) logd("get onError callback with error code: " + error);
-            Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error, 0 /* arg2 */);
-            msg.sendToTarget();
-        }
-    };
-
-    private void updateNetworkOperators() {
-        if (DBG) logd("updateNetworkOperators");
-        if (getActivity() != null) {
-            final View view = getView();
-            final Handler handler = view.getHandler();
-            if (handler != null && handler.hasCallbacks(mUpdateNetworkOperatorsRunnable)) {
-                return;
-            }
-            view.post(mUpdateNetworkOperatorsRunnable);
-        }
-    }
-
-    /**
-     * Update the currently available network operators list, which only contains the unregistered
-     * network operators. So if the device has no data and the network operator in the connected
-     * network operator category shows "Disconnected", it will also exist in the available network
-     * operator category for user to select. On the other hand, if the device has data and the
-     * network operator in the connected network operator category shows "Connected", it will not
-     * exist in the available network category.
-     */
-    private void updateNetworkOperatorsPreferenceCategory() {
-        mNetworkOperatorsPreferences.removeAll();
-
-        configConnectedNetworkOperatorsPreferenceCategory();
-        for (int index = 0; index < mCellInfoList.size(); index++) {
-            if (!mCellInfoList.get(index).isRegistered()) {
-                NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                        mCellInfoList.get(index), getContext(), mForbiddenPlmns, mShow4GForLTE);
-                pref.setKey(CellInfoUtil.getNetworkTitle(mCellInfoList.get(index)));
-                pref.setOrder(index);
-                mNetworkOperatorsPreferences.addPreference(pref);
-            }
-        }
-    }
-
-    /**
-     * Config the connected network operator preference when the page was created. When user get
-     * into this page, the device might or might not have data connection.
-     *   - If the device has data:
-     *     1. use {@code ServiceState#getNetworkRegistrationInfoList()} to get the currently
-     *        registered cellIdentity, wrap it into a CellInfo;
-     *     2. set the signal strength level as strong;
-     *     3. use {@link TelephonyManager#getNetworkOperatorName()} to get the title of the
-     *        previously connected network operator, since the CellIdentity got from step 1 only has
-     *        PLMN.
-     *   - If the device has no data, we will remove the connected network operators list from the
-     *     screen.
-     */
-    private void forceConfigConnectedNetworkOperatorsPreferenceCategory() {
-        if (DBG) logd("Force config ConnectedNetworkOperatorsPreferenceCategory");
-        if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) {
-            // Try to get the network registration states
-            ServiceState ss = mTelephonyManager.getServiceState();
-            List<NetworkRegistrationInfo> networkList =
-                    ss.getNetworkRegistrationInfoListForTransportType(
-                            AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
-            if (networkList == null || networkList.size() == 0) {
-                loge("getNetworkRegistrationInfoList return null");
-                // Remove the connected network operators category
-                removeConnectedNetworkOperatorPreference();
-                return;
-            }
-            CellIdentity cellIdentity = networkList.get(0).getCellIdentity();
-            CellInfo cellInfo = CellInfoUtil.wrapCellInfoWithCellIdentity(cellIdentity);
-            if (cellInfo != null) {
-                if (DBG) logd("Currently registered cell: " + cellInfo.toString());
-                NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                        cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
-                pref.setTitle(mTelephonyManager.getNetworkOperatorName());
-                pref.setSummary(R.string.network_connected);
-                // Update the signal strength icon, since the default signalStrength value would be
-                // zero (it would be quite confusing why the connected network has no signal)
-                pref.setIcon(NetworkOperatorPreference.NUMBER_OF_LEVELS - 1);
-
-                mConnectedNetworkOperatorsPreference.addPreference(pref);
-            } else {
-                // Remove the connected network operators category
-                removeConnectedNetworkOperatorPreference();
-            }
-        } else {
-            if (DBG) logd("No currently registered cell");
-            // Remove the connected network operators category
-            removeConnectedNetworkOperatorPreference();
-        }
-    }
-
-    /**
-     * Configure the ConnectedNetworkOperatorsPreferenceCategory. The category only need to be
-     * configured if the category is currently empty or the operator network title of the previous
-     * connected network is different from the new one.
-     */
-    private void configConnectedNetworkOperatorsPreferenceCategory() {
-        if (DBG) logd("config ConnectedNetworkOperatorsPreferenceCategory");
-        // Remove the category if the CellInfo list is empty or does not have registered cell.
-        if (mCellInfoList.size() == 0) {
-            if (DBG) logd("empty cellinfo list");
-            removeConnectedNetworkOperatorPreference();
-        }
-        CellInfo connectedNetworkOperator = null;
-        for (CellInfo cellInfo: mCellInfoList) {
-            if (cellInfo.isRegistered()) {
-                connectedNetworkOperator = cellInfo;
-                break;
-            }
-        }
-        if (connectedNetworkOperator == null) {
-            if (DBG) logd("no registered network");
-            removeConnectedNetworkOperatorPreference();
-            return;
-        }
-
-        // config the category if it is empty.
-        if (mConnectedNetworkOperatorsPreference.getPreferenceCount() == 0) {
-            if (DBG) logd("ConnectedNetworkSelectList is empty, add one");
-            addConnectedNetworkOperatorPreference(connectedNetworkOperator);
-            return;
-        }
-        NetworkOperatorPreference previousConnectedNetworkOperator = (NetworkOperatorPreference)
-                (mConnectedNetworkOperatorsPreference.getPreference(0));
-
-        // config the category if the network title of the previous connected network is different
-        // from the new one.
-        String cTitle = CellInfoUtil.getNetworkTitle(connectedNetworkOperator);
-        String pTitle = CellInfoUtil.getNetworkTitle(
-                previousConnectedNetworkOperator.getCellInfo());
-        if (!cTitle.equals(pTitle)) {
-            if (DBG) logd("reconfig the category: connected network changed");
-            addConnectedNetworkOperatorPreference(connectedNetworkOperator);
-            return;
-        }
-        if (DBG) logd("same network operator is connected, only refresh the connected network");
-        // Otherwise same network operator is connected, only refresh the connected network
-        // operator preference (first and the only one in this category).
-        ((NetworkOperatorPreference) mConnectedNetworkOperatorsPreference.getPreference(0))
-                .refresh();
-        return;
-    }
-
-    /**
-     * Creates a Preference for the given {@link CellInfo} and adds it to the
-     * {@link #mConnectedNetworkOperatorsPreference}.
-     */
-    private void addConnectedNetworkOperatorPreference(CellInfo cellInfo) {
-        if (DBG) logd("addConnectedNetworkOperatorPreference");
-        // Remove the current ConnectedNetworkOperatorsPreference
-        removeConnectedNetworkOperatorPreference();
-        final NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
-        pref.setSummary(R.string.network_connected);
-        mConnectedNetworkOperatorsPreference.addPreference(pref);
-        PreferenceScreen preferenceScreen = getPreferenceScreen();
-        preferenceScreen.addPreference(mConnectedNetworkOperatorsPreference);
-    }
-
-    /** Removes all preferences and hide the {@link #mConnectedNetworkOperatorsPreference}. */
-    private void removeConnectedNetworkOperatorPreference() {
-        mConnectedNetworkOperatorsPreference.removeAll();
-        PreferenceScreen preferenceScreen = getPreferenceScreen();
-        preferenceScreen.removePreference(mConnectedNetworkOperatorsPreference);
-    }
-
-    protected void setProgressBarVisible(boolean visible) {
-        if (mProgressHeader != null) {
-            mProgressHeader.setVisibility(visible ? View.VISIBLE : View.GONE);
-        }
-    }
-
-    private void addMessagePreference(int messageId) {
-        if (DBG) logd("remove callback");
-        getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
-        setProgressBarVisible(false);
-        if (DBG) logd("addMessagePreference");
-        mStatusMessagePreference.setTitle(messageId);
-        removeConnectedNetworkOperatorPreference();
-        mNetworkOperatorsPreferences.removeAll();
-        mNetworkOperatorsPreferences.addPreference(mStatusMessagePreference);
-    }
-
-    /**
-     * The Scan results may contains several cell infos with different radio technologies and signal
-     * strength for one network operator. Aggregate the CellInfoList by retaining only the cell info
-     * with the strongest signal strength.
-     */
-    private List<CellInfo> aggregateCellInfoList(List<CellInfo> cellInfoList) {
-        if (DBG) logd("before aggregate: " + cellInfoList.toString());
-        Map<String, CellInfo> map = new HashMap<>();
-        for (CellInfo cellInfo: cellInfoList) {
-            String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
-            if (cellInfo.isRegistered() || !map.containsKey(plmn)) {
-                map.put(plmn, cellInfo);
-            } else {
-                if (map.get(plmn).isRegistered()
-                        || map.get(plmn).getCellSignalStrength().getLevel()
-                        > cellInfo.getCellSignalStrength().getLevel()) {
-                    // Skip if the stored cellInfo is registered or has higher signal strength level
-                    continue;
-                }
-                // Otherwise replace it with the new CellInfo
-                map.put(plmn, cellInfo);
-            }
-        }
-        return new ArrayList<>(map.values());
-    }
-
-    private void stopNetworkQuery() {
-        if (mNetworkScanHelper != null) {
-            mNetworkScanHelper.stopNetworkQuery();
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        mNetworkScanExecutor.shutdown();
-        super.onDestroy();
-    }
-
-    private void logd(String msg) {
-        Log.d(TAG, msg);
-    }
-
-    private void loge(String msg) {
-        Log.e(TAG, msg);
-    }
-}
diff --git a/src/com/android/phone/NetworkSelectSettingActivity.java b/src/com/android/phone/NetworkSelectSettingActivity.java
deleted file mode 100644
index 5b29b281..0000000
--- a/src/com/android/phone/NetworkSelectSettingActivity.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.MenuItem;
-
-
-/**
- * Activity associated with NetworkSelectSetting fragment
- */
-public class NetworkSelectSettingActivity extends Activity {
-    private static final String TAG = "NetworkSelectSettingActivity";
-    public static final String KEY_SUBSCRIPTION_ID = "subscription_id";
-
-    /**
-     * Returns the Android Intent that led to this Activity being created.
-     */
-    public static Intent getIntent(Context context, int subId) {
-        Intent intent = new Intent(context, NetworkSelectSettingActivity.class);
-        intent.putExtra(KEY_SUBSCRIPTION_ID, subId);
-        return intent;
-    }
-
-    @Override
-    public void onCreate(Bundle savedState) {
-        Log.d(TAG, "onCreate()");
-        super.onCreate(savedState);
-        int subId = getIntent().getExtras().getInt(KEY_SUBSCRIPTION_ID);
-        setContentView(R.layout.choose_network);
-
-        FragmentManager fragmentManager = getFragmentManager();
-        Fragment fragment = fragmentManager.findFragmentById(R.id.choose_network_content);
-        if (fragment == null) {
-            fragmentManager.beginTransaction()
-                    .add(R.id.choose_network_content,
-                            NetworkSelectSetting.newInstance(subId), TAG)
-                    .commit();
-        }
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        final int itemId = item.getItemId();
-        if (itemId == android.R.id.home) {
-            onBackPressed();
-            return true;
-        }
-        return super.onOptionsItemSelected(item);
-    }
-}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 27749e4..c2dece5 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -27,8 +27,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.net.Uri;
 import android.os.Handler;
@@ -41,7 +41,6 @@
 import android.preference.PreferenceManager;
 import android.provider.ContactsContract.PhoneLookup;
 import android.provider.Settings;
-import android.telecom.DefaultDialerManager;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -63,6 +62,7 @@
 import com.android.internal.telephony.util.NotificationChannelController;
 import com.android.phone.settings.VoicemailSettingsActivity;
 
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -112,7 +112,6 @@
     private PhoneGlobals mApp;
 
     private Context mContext;
-    private NotificationManager mNotificationManager;
     private StatusBarManager mStatusBarManager;
     private UserManager mUserManager;
     private Toast mToast;
@@ -160,13 +159,11 @@
     private NotificationMgr(PhoneGlobals app) {
         mApp = app;
         mContext = app;
-        mNotificationManager =
-                (NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE);
         mStatusBarManager =
                 (StatusBarManager) app.getSystemService(Context.STATUS_BAR_SERVICE);
         mUserManager = (UserManager) app.getSystemService(Context.USER_SERVICE);
         mSubscriptionManager = SubscriptionManager.from(mContext);
-        mTelecomManager = TelecomManager.from(mContext);
+        mTelecomManager = app.getSystemService(TelecomManager.class);
         mTelephonyManager = (TelephonyManager) app.getSystemService(Context.TELEPHONY_SERVICE);
     }
 
@@ -358,7 +355,8 @@
             }
 
             PendingIntent pendingIntent =
-                    PendingIntent.getActivity(mContext, subId /* requestCode */, intent, 0);
+                    PendingIntent.getActivity(mContext, subId /* requestCode */, intent,
+                            PendingIntent.FLAG_IMMUTABLE);
 
             Resources res = mContext.getResources();
             PersistableBundle carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
@@ -373,20 +371,18 @@
                     .setColor(res.getColor(R.color.dialer_theme_color))
                     .setOngoing(carrierConfig.getBoolean(
                             CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
-                    .setChannel(NotificationChannelController.CHANNEL_ID_VOICE_MAIL)
+                    .setChannelId(NotificationChannelController.CHANNEL_ID_VOICE_MAIL)
                     .setOnlyAlertOnce(isRefresh);
 
             final Notification notification = builder.build();
-            List<UserInfo> users = mUserManager.getUsers(true);
-            for (int i = 0; i < users.size(); i++) {
-                final UserInfo user = users.get(i);
-                final UserHandle userHandle = user.getUserHandle();
-                if (!mUserManager.hasUserRestriction(
+            List<UserHandle> users = getUsersExcludeDying();
+            for (UserHandle userHandle : users) {
+                if (!hasUserRestriction(
                         UserManager.DISALLOW_OUTGOING_CALLS, userHandle)
-                        && !user.isManagedProfile()) {
+                        && !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
                     if (!maybeSendVoicemailNotificationUsingDefaultDialer(phone, vmCount, vmNumber,
                             pendingIntent, isSettingsIntent, userHandle, isRefresh)) {
-                        mNotificationManager.notifyAsUser(
+                        notifyAsUser(
                                 Integer.toString(subId) /* tag */,
                                 VOICEMAIL_NOTIFICATION,
                                 notification,
@@ -395,16 +391,14 @@
                 }
             }
         } else {
-            List<UserInfo> users = mUserManager.getUsers(true /* excludeDying */);
-            for (int i = 0; i < users.size(); i++) {
-                final UserInfo user = users.get(i);
-                final UserHandle userHandle = user.getUserHandle();
-                if (!mUserManager.hasUserRestriction(
+            List<UserHandle> users = getUsersExcludeDying();
+            for (UserHandle userHandle : users) {
+                if (!hasUserRestriction(
                         UserManager.DISALLOW_OUTGOING_CALLS, userHandle)
-                        && !user.isManagedProfile()) {
+                        && !mUserManager.isManagedProfile(userHandle.getIdentifier())) {
                     if (!maybeSendVoicemailNotificationUsingDefaultDialer(phone, 0, null, null,
                             false, userHandle, isRefresh)) {
-                        mNotificationManager.cancelAsUser(
+                        cancelAsUser(
                                 Integer.toString(subId) /* tag */,
                                 VOICEMAIL_NOTIFICATION,
                                 userHandle);
@@ -414,6 +408,22 @@
         }
     }
 
+    private List<UserHandle> getUsersExcludeDying() {
+        long[] serialNumbersOfUsers =
+                mUserManager.getSerialNumbersOfUsers(/* excludeDying= */ true);
+        List<UserHandle> users = new ArrayList<>(serialNumbersOfUsers.length);
+        for (long serialNumber : serialNumbersOfUsers) {
+            users.add(mUserManager.getUserForSerialNumber(serialNumber));
+        }
+        return users;
+    }
+
+    private boolean hasUserRestriction(String restrictionKey, UserHandle userHandle) {
+        final List<UserManager.EnforcingUser> sources = mUserManager
+                .getUserRestrictionSources(restrictionKey, userHandle);
+        return (sources != null && !sources.isEmpty());
+    }
+
     /**
      * Sends a broadcast with the voicemail notification information to the default dialer. This
      * method is also used to indicate to the default dialer when to clear the
@@ -468,8 +478,8 @@
     }
 
     private Intent getShowVoicemailIntentForDefaultDialer(UserHandle userHandle) {
-        String dialerPackage = DefaultDialerManager
-                .getDefaultDialerApplication(mContext, userHandle.getIdentifier());
+        String dialerPackage = mContext.getSystemService(TelecomManager.class)
+                .getDefaultDialerPackage(userHandle);
         return new Intent(TelephonyManager.ACTION_SHOW_VOICEMAIL_NOTIFICATION)
                 .setPackage(dialerPackage);
     }
@@ -538,7 +548,7 @@
                     .setContentText(mContext.getString(R.string.sum_cfu_enabled_indicator))
                     .setShowWhen(false)
                     .setOngoing(true)
-                    .setChannel(NotificationChannelController.CHANNEL_ID_CALL_FORWARD)
+                    .setChannelId(NotificationChannelController.CHANNEL_ID_CALL_FORWARD)
                     .setOnlyAlertOnce(isRefresh);
 
             Intent intent = new Intent(Intent.ACTION_MAIN);
@@ -547,23 +557,22 @@
             SubscriptionInfoHelper.addExtrasToIntent(
                     intent, mSubscriptionManager.getActiveSubscriptionInfo(subId));
             builder.setContentIntent(PendingIntent.getActivity(mContext, subId /* requestCode */,
-                    intent, 0));
-            mNotificationManager.notifyAsUser(
+                    intent, PendingIntent.FLAG_IMMUTABLE));
+            notifyAsUser(
                     Integer.toString(subId) /* tag */,
                     CALL_FORWARD_NOTIFICATION,
                     builder.build(),
                     UserHandle.ALL);
         } else {
-            List<UserInfo> users = mUserManager.getUsers(true);
-            for (UserInfo user : users) {
-                if (user.isManagedProfile()) {
+            List<UserHandle> users = getUsersExcludeDying();
+            for (UserHandle user : users) {
+                if (mUserManager.isManagedProfile(user.getIdentifier())) {
                     continue;
                 }
-                UserHandle userHandle = user.getUserHandle();
-                mNotificationManager.cancelAsUser(
+                cancelAsUser(
                         Integer.toString(subId) /* tag */,
                         CALL_FORWARD_NOTIFICATION,
-                        userHandle);
+                        user);
             }
         }
     }
@@ -590,7 +599,8 @@
         // "Mobile network settings" screen / dialog
         Intent intent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);
         intent.putExtra(Settings.EXTRA_SUB_ID, subId);
-        PendingIntent contentIntent = PendingIntent.getActivity(mContext, subId, intent, 0);
+        PendingIntent contentIntent = PendingIntent.getActivity(
+                mContext, subId, intent, PendingIntent.FLAG_IMMUTABLE);
 
         CharSequence contentTitle = mContext.getText(roamingOn
                 ? R.string.roaming_on_notification_title
@@ -604,12 +614,39 @@
                 .setContentTitle(contentTitle)
                 .setColor(mContext.getResources().getColor(R.color.dialer_theme_color))
                 .setContentText(contentText)
-                .setChannel(NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS)
+                .setChannelId(NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS)
                 .setContentIntent(contentIntent);
         final Notification notif =
                 new Notification.BigTextStyle(builder).bigText(contentText).build();
-        mNotificationManager.notifyAsUser(
-                null /* tag */, DATA_ROAMING_NOTIFICATION, notif, UserHandle.ALL);
+        notifyAsUser(null /* tag */, DATA_ROAMING_NOTIFICATION, notif, UserHandle.ALL);
+    }
+
+    private void notifyAsUser(String tag, int id, Notification notification, UserHandle user) {
+        try {
+            Context contextForUser =
+                    mContext.createPackageContextAsUser(mContext.getPackageName(), 0, user);
+            NotificationManager notificationManager =
+                    (NotificationManager) contextForUser.getSystemService(
+                            Context.NOTIFICATION_SERVICE);
+            notificationManager.notify(tag, id, notification);
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(LOG_TAG, "unable to notify for user " + user);
+            e.printStackTrace();
+        }
+    }
+
+    private void cancelAsUser(String tag, int id, UserHandle user) {
+        try {
+            Context contextForUser =
+                    mContext.createPackageContextAsUser(mContext.getPackageName(), 0, user);
+            NotificationManager notificationManager =
+                    (NotificationManager) contextForUser.getSystemService(
+                            Context.NOTIFICATION_SERVICE);
+            notificationManager.cancel(tag, id);
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(LOG_TAG, "unable to cancel for user " + user);
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -617,7 +654,7 @@
      */
     /* package */ void hideDataRoamingNotification() {
         if (DBG) log("hideDataRoamingNotification()...");
-        mNotificationManager.cancel(DATA_ROAMING_NOTIFICATION);
+        cancelAsUser(null, DATA_ROAMING_NOTIFICATION, UserHandle.ALL);
     }
 
     /**
@@ -637,7 +674,7 @@
         }
         // Navigate to "Network Selection Settings" which list all subscriptions.
         PendingIntent contentIntent = PendingIntent.getActivity(mContext, 0,
-                new Intent(ACTION_MOBILE_NETWORK_LIST), 0);
+                new Intent(ACTION_MOBILE_NETWORK_LIST), PendingIntent.FLAG_IMMUTABLE);
         // Display phone number from the other sub
         String line1Num = null;
         SubscriptionManager subMgr = (SubscriptionManager) mContext.getSystemService(
@@ -661,12 +698,12 @@
                 .setContentText(contentText)
                 .setOnlyAlertOnce(true)
                 .setOngoing(true)
-                .setChannel(NotificationChannelController.CHANNEL_ID_SIM_HIGH_PRIORITY)
+                .setChannelId(NotificationChannelController.CHANNEL_ID_SIM_HIGH_PRIORITY)
                 .setContentIntent(contentIntent);
         final Notification notification = new Notification.BigTextStyle(builder).bigText(
                 contentText).build();
 
-        mNotificationManager.notifyAsUser(Integer.toString(subId),
+        notifyAsUser(Integer.toString(subId),
                 LIMITED_SIM_FUNCTION_NOTIFICATION,
                 notification, UserHandle.ALL);
         mLimitedSimFunctionNotify.add(subId);
@@ -680,12 +717,12 @@
         if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             // dismiss all notifications
             for (int id : mLimitedSimFunctionNotify) {
-                mNotificationManager.cancelAsUser(Integer.toString(id),
+                cancelAsUser(Integer.toString(id),
                         LIMITED_SIM_FUNCTION_NOTIFICATION, UserHandle.ALL);
             }
             mLimitedSimFunctionNotify.clear();
         } else if (mLimitedSimFunctionNotify.contains(subId)) {
-            mNotificationManager.cancelAsUser(Integer.toString(subId),
+            cancelAsUser(Integer.toString(subId),
                     LIMITED_SIM_FUNCTION_NOTIFICATION, UserHandle.ALL);
             mLimitedSimFunctionNotify.remove(subId);
         }
@@ -701,7 +738,7 @@
         // from the old SIM if both old & new SIM configured to display the notification.
         mLimitedSimFunctionNotify.removeIf(id -> {
             if (!mSubscriptionManager.isActiveSubId(id)) {
-                mNotificationManager.cancelAsUser(Integer.toString(id),
+                cancelAsUser(Integer.toString(id),
                         LIMITED_SIM_FUNCTION_NOTIFICATION, UserHandle.ALL);
                 return true;
             }
@@ -727,7 +764,7 @@
                         mContext.getString(R.string.notification_network_selection_text, operator))
                 .setShowWhen(false)
                 .setOngoing(true)
-                .setChannel(NotificationChannelController.CHANNEL_ID_ALERT);
+                .setChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
 
         // create the target network operators settings intent
         Intent intent = new Intent(Intent.ACTION_MAIN);
@@ -737,9 +774,10 @@
         intent.setComponent(new ComponentName(
                 mContext.getString(R.string.mobile_network_settings_package),
                 mContext.getString(R.string.mobile_network_settings_class)));
-        intent.putExtra(GsmUmtsOptions.EXTRA_SUB_ID, subId);
-        builder.setContentIntent(PendingIntent.getActivity(mContext, 0, intent, 0));
-        mNotificationManager.notifyAsUser(
+        intent.putExtra(Settings.EXTRA_SUB_ID, subId);
+        builder.setContentIntent(
+                PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_IMMUTABLE));
+        notifyAsUser(
                 Integer.toString(subId) /* tag */,
                 SELECTED_OPERATOR_FAIL_NOTIFICATION,
                 builder.build(),
@@ -752,7 +790,7 @@
      */
     private void cancelNetworkSelection(int subId) {
         if (DBG) log("cancelNetworkSelection()...");
-        mNotificationManager.cancelAsUser(
+        cancelAsUser(
                 Integer.toString(subId) /* tag */, SELECTED_OPERATOR_FAIL_NOTIFICATION,
                 UserHandle.ALL);
     }
diff --git a/src/com/android/phone/NumberVerificationManager.java b/src/com/android/phone/NumberVerificationManager.java
index 9ec16f8..2298d40 100644
--- a/src/com/android/phone/NumberVerificationManager.java
+++ b/src/com/android/phone/NumberVerificationManager.java
@@ -135,7 +135,7 @@
                 }
 
                 // make sure at least one phone is registered for voice
-                if (phone.getServiceState().getVoiceRegState() == ServiceState.STATE_IN_SERVICE) {
+                if (phone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE) {
                     isAnyPhoneVoiceRegistered = true;
                 }
                 // make sure at least one phone has room for an incoming call.
diff --git a/src/com/android/phone/PhoneDisplayMessage.java b/src/com/android/phone/PhoneDisplayMessage.java
index 2b86a61..199fbb8 100644
--- a/src/com/android/phone/PhoneDisplayMessage.java
+++ b/src/com/android/phone/PhoneDisplayMessage.java
@@ -78,10 +78,11 @@
         sDisplayMessageDialog.getWindow().setType(
                 WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
         sDisplayMessageDialog.getWindow().addFlags(
-                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+                WindowManager.LayoutParams.FLAG_DIM_BEHIND
+                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
 
         sDisplayMessageDialog.show();
-        PhoneGlobals.getInstance().wakeUpScreen();
     }
 
     /**
@@ -91,6 +92,9 @@
         if (DBG) log("Dissmissing Display Info Record...");
 
         if (sDisplayMessageDialog != null) {
+            sDisplayMessageDialog.getWindow().clearFlags(
+                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
             sDisplayMessageDialog.dismiss();
             sDisplayMessageDialog = null;
         }
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 77a4152..5e3c224 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -26,6 +26,7 @@
 import android.content.ContextWrapper;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.content.res.XmlResourceParser;
 import android.media.AudioManager;
 import android.net.ConnectivityManager;
@@ -37,12 +38,11 @@
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.os.PowerManager;
-import android.os.SystemClock;
 import android.os.SystemProperties;
-import android.os.UpdateLock;
 import android.os.UserManager;
 import android.preference.PreferenceManager;
 import android.provider.Settings;
+import android.sysprop.TelephonyProperties;
 import android.telecom.TelecomManager;
 import android.telephony.AnomalyReporter;
 import android.telephony.CarrierConfigManager;
@@ -67,9 +67,11 @@
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.telephony.dataconnection.DataConnectionReasons;
 import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataDisallowedReasonType;
+import com.android.internal.telephony.ims.ImsResolver;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.phone.settings.SettingsConstants;
 import com.android.phone.vvm.CarrierVvmPackageInstalledReceiver;
+import com.android.services.telephony.rcs.TelephonyRcsService;
 import com.android.services.telephony.sip.SipAccountRegistry;
 import com.android.services.telephony.sip.SipUtil;
 
@@ -147,7 +149,10 @@
     CallNotifier notifier;
     CallerInfoCache callerInfoCache;
     NotificationMgr notificationMgr;
+    ImsResolver mImsResolver;
+    TelephonyRcsService mTelephonyRcsService;
     public PhoneInterfaceManager phoneMgr;
+    public ImsRcsController imsRcsController;
     CarrierConfigLoader configLoader;
 
     private Phone phoneInEcm;
@@ -187,8 +192,6 @@
     private PowerManager.WakeLock mPartialWakeLock;
     private KeyguardManager mKeyguardManager;
 
-    private UpdateLock mUpdateLock;
-
     private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private final LocalLog mDataRoamingNotifLog = new LocalLog(50);
 
@@ -202,6 +205,16 @@
 
     private final SettingsObserver mSettingsObserver;
 
+    private static class EventSimStateChangedBag {
+        final int mPhoneId;
+        final String mIccStatus;
+
+        EventSimStateChangedBag(int phoneId, String iccStatus) {
+            mPhoneId = phoneId;
+            mIccStatus = iccStatus;
+        }
+    }
+
     Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -222,7 +235,8 @@
                         // they enter a valid SIM network PIN.
                         Log.i(LOG_TAG, "show sim depersonal panel");
                         Phone phone = (Phone) ((AsyncResult) msg.obj).userObj;
-                        IccNetworkDepersonalizationPanel.showDialog(phone);
+                        int subType = (Integer)((AsyncResult)msg.obj).result;
+                        IccNetworkDepersonalizationPanel.showDialog(phone, subType);
                     }
                     break;
 
@@ -250,8 +264,9 @@
                     // Marks the event where the SIM goes into ready state.
                     // Right now, this is only used for the PUK-unlocking
                     // process.
-                    if (msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_READY)
-                            || msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_LOADED)) {
+                    EventSimStateChangedBag bag = (EventSimStateChangedBag)msg.obj;
+                    if (bag.mIccStatus == IccCardConstants.INTENT_VALUE_ICC_READY
+                            || bag.mIccStatus == IccCardConstants.INTENT_VALUE_ICC_LOADED) {
                         // when the right event is triggered and there
                         // are UI objects in the foreground, we close
                         // them to display the lock panel.
@@ -263,6 +278,8 @@
                             mPUKEntryProgressDialog.dismiss();
                             mPUKEntryProgressDialog = null;
                         }
+                        Log.i(LOG_TAG, "Dismissing depersonal panel");
+                        IccNetworkDepersonalizationPanel.dialogDismiss(bag.mPhoneId);
                     }
                     break;
 
@@ -274,7 +291,8 @@
                     // not want this running if the device is still in the FBE encrypted state.
                     // This is the same procedure that is triggered in the SipIncomingCallReceiver
                     // upon BOOT_COMPLETED.
-                    UserManager userManager = UserManager.get(sMe);
+                    UserManager userManager =
+                            (UserManager) sMe.getSystemService(Context.USER_SERVICE);
                     if (userManager != null && userManager.isUserUnlocked()) {
                         SipUtil.startSipService();
                     }
@@ -301,8 +319,8 @@
         // Cache the "voice capable" flag.
         // This flag currently comes from a resource (which is
         // overrideable on a per-product basis):
-        sVoiceCapable =
-                getResources().getBoolean(com.android.internal.R.bool.config_voice_capable);
+        sVoiceCapable = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE))
+                .isVoiceCapable();
         // ...but this might eventually become a PackageManager "system
         // feature" instead, in which case we'd do something like:
         // sVoiceCapable =
@@ -318,6 +336,19 @@
             // Initialize the telephony framework
             PhoneFactory.makeDefaultPhones(this);
 
+            // Only bring up ImsResolver if the device supports having an IMS stack.
+            if (getPackageManager().hasSystemFeature(
+                    PackageManager.FEATURE_TELEPHONY_IMS)) {
+                // Get the package name of the default IMS implementation.
+                String defaultImsMmtelPackage = getResources().getString(
+                        R.string.config_ims_mmtel_package);
+                String defaultImsRcsPackage = getResources().getString(
+                        R.string.config_ims_rcs_package);
+                mImsResolver = new ImsResolver(this, defaultImsMmtelPackage,
+                        defaultImsRcsPackage, PhoneFactory.getPhones().length);
+                mImsResolver.initialize();
+            }
+
             // Start TelephonyDebugService After the default phone is created.
             Intent intent = new Intent(this, TelephonyDebugService.class);
             startService(intent);
@@ -347,12 +378,6 @@
 
             mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
 
-            // Get UpdateLock to suppress system-update related events (e.g. dialog show-up)
-            // during phone calls.
-            mUpdateLock = new UpdateLock("phone");
-
-            if (DBG) Log.d(LOG_TAG, "onCreate: mUpdateLock: " + mUpdateLock);
-
             // Create the CallerInfoCache singleton, which remembers custom ring tone and
             // send-to-voicemail settings.
             //
@@ -361,6 +386,15 @@
 
             phoneMgr = PhoneInterfaceManager.init(this);
 
+            imsRcsController = ImsRcsController.init(this);
+
+            if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS)) {
+                mTelephonyRcsService = new TelephonyRcsService(this,
+                        PhoneFactory.getPhones().length);
+                mTelephonyRcsService.initialize();
+                imsRcsController.setRcsService(mTelephonyRcsService);
+            }
+
             configLoader = CarrierConfigLoader.init(this);
 
             // Create the CallNotifier singleton, which handles
@@ -392,14 +426,12 @@
             IntentFilter sipIntentFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED);
             sipIntentFilter.addAction(SipManager.ACTION_SIP_SERVICE_UP);
             sipIntentFilter.addAction(SipManager.ACTION_SIP_CALL_OPTION_CHANGED);
-            sipIntentFilter.addAction(SipManager.ACTION_SIP_REMOVE_PHONE);
+            sipIntentFilter.addAction(SipManager.ACTION_SIP_REMOVE_PROFILE);
             registerReceiver(mSipReceiver, sipIntentFilter);
 
             mCarrierVvmPackageInstalledReceiver.register(this);
 
             //set the default values for the preferences in the phone.
-            PreferenceManager.setDefaultValues(this, R.xml.network_setting_fragment, false);
-
             PreferenceManager.setDefaultValues(this, R.xml.call_feature_setting, false);
         }
 
@@ -416,9 +448,9 @@
                     android.provider.Settings.System.HEARING_AID,
                     0);
             AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
-            audioManager.setParameter(SettingsConstants.HAC_KEY,
-                    hac == SettingsConstants.HAC_ENABLED
-                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF);
+            audioManager.setParameters(
+                    SettingsConstants.HAC_KEY + "=" + (hac == SettingsConstants.HAC_ENABLED
+                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF));
         }
     }
 
@@ -445,6 +477,10 @@
         return PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId));
     }
 
+    public ImsResolver getImsResolver() {
+        return mImsResolver;
+    }
+
     /* package */ CallManager getCallManager() {
         return mCM;
     }
@@ -454,7 +490,8 @@
     }
 
     public PersistableBundle getCarrierConfigForSubId(int subId) {
-        return configLoader.getConfigForSubId(subId, getOpPackageName());
+        return configLoader.getConfigForSubIdWithFeature(subId, getOpPackageName(),
+                getAttributionTag());
     }
 
     private void registerSettingsObserver() {
@@ -511,19 +548,6 @@
         mPUKEntryProgressDialog = dialog;
     }
 
-    /**
-     * If we are not currently keeping the screen on, then poke the power
-     * manager to wake up the screen for the user activity timeout duration.
-     */
-    /* package */ void wakeUpScreen() {
-        synchronized (this) {
-            if (mWakeState == WakeState.SLEEP) {
-                if (DBG) Log.d(LOG_TAG, "pulse screen lock");
-                mPowerManager.wakeUp(SystemClock.uptimeMillis(), "android.phone:WAKE");
-            }
-        }
-    }
-
     KeyguardManager getKeyguardManager() {
         return mKeyguardManager;
     }
@@ -555,6 +579,9 @@
                 maybeTurnCellOn(context, isAirplaneNewlyOn);
                 break;
         }
+        for (Phone phone : PhoneFactory.getPhones()) {
+            phone.getServiceStateTracker().onAirplaneModeChanged(isAirplaneNewlyOn);
+        }
     }
 
     /*
@@ -571,7 +598,7 @@
         Log.i(LOG_TAG, "Turning radio off - airplane");
         Settings.Global.putInt(context.getContentResolver(), Settings.Global.CELL_ON,
                  PhoneConstants.CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG);
-        SystemProperties.set("persist.radio.airplane_mode_on", "1");
+        TelephonyProperties.airplane_mode_on(true); // true means int value 1
         Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT, 0);
         PhoneUtils.setRadioPower(false);
     }
@@ -582,7 +609,7 @@
                 PhoneConstants.CELL_ON_FLAG);
         Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT,
                 1);
-        SystemProperties.set("persist.radio.airplane_mode_on", "0");
+        TelephonyProperties.airplane_mode_on(false); // false means int value 0
         PhoneUtils.setRadioPower(true);
     }
 
@@ -594,7 +621,9 @@
 
             if (tm != null && tm.isInEmergencyCall()) {
                 // Switch airplane mode back to off.
-                ConnectivityManager.from(this).setAirplaneMode(false);
+                ConnectivityManager cm =
+                        (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
+                cm.setAirplaneMode(false);
                 Toast.makeText(this, R.string.radio_off_during_emergency_call, Toast.LENGTH_LONG)
                         .show();
                 Log.i(LOG_TAG, "Ignoring airplane mode: emergency call. Turning airplane off");
@@ -635,14 +664,9 @@
                     PhoneUtils.unregisterIccStatus(mHandler, phoneId);
                     PhoneUtils.registerIccStatus(mHandler, EVENT_SIM_NETWORK_LOCKED, phoneId);
                 }
-                if (mPUKEntryActivity != null) {
-                    // if an attempt to un-PUK-lock the device was made, while we're
-                    // receiving this state change notification, notify the handler.
-                    // NOTE: This is ONLY triggered if an attempt to un-PUK-lock has
-                    // been attempted.
-                    mHandler.sendMessage(mHandler.obtainMessage(EVENT_SIM_STATE_CHANGED,
-                            intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE)));
-                }
+                String iccStatus = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE);
+                mHandler.sendMessage(mHandler.obtainMessage(EVENT_SIM_STATE_CHANGED,
+                        new EventSimStateChangedBag(phoneId, iccStatus)));
             } else if (action.equals(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
                 String newPhone = intent.getStringExtra(PhoneConstants.PHONE_NAME_KEY);
                 Log.d(LOG_TAG, "Radio technology switched. Now " + newPhone + " is active.");
@@ -657,7 +681,8 @@
                     if (TelephonyCapabilities.supportsEcm(phoneInEcm)) {
                         Log.d(LOG_TAG, "Emergency Callback Mode arrived in PhoneApp.");
                         // Start Emergency Callback Mode service
-                        if (intent.getBooleanExtra("phoneinECMState", false)) {
+                        if (intent.getBooleanExtra(
+                                TelephonyManager.EXTRA_PHONE_IN_ECM_STATE, false)) {
                             context.startService(new Intent(context,
                                     EmergencyCallbackModeService.class));
                         } else {
@@ -703,7 +728,7 @@
             } else if (action.equals(SipManager.ACTION_SIP_SERVICE_UP)
                     || action.equals(SipManager.ACTION_SIP_CALL_OPTION_CHANGED)) {
                 sipAccountRegistry.setup(context);
-            } else if (action.equals(SipManager.ACTION_SIP_REMOVE_PHONE)) {
+            } else if (action.equals(SipManager.ACTION_SIP_REMOVE_PROFILE)) {
                 if (DBG) {
                     Log.d(LOG_TAG, "SIP_REMOVE_PHONE "
                             + intent.getStringExtra(SipManager.EXTRA_LOCAL_URI));
@@ -892,6 +917,20 @@
         pw.increaseIndent();
         mDataRoamingNotifLog.dump(fd, pw, args);
         pw.decreaseIndent();
+        pw.println("ImsResolver:");
+        pw.increaseIndent();
+        try {
+            if (mImsResolver != null) mImsResolver.dump(fd, pw, args);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        pw.decreaseIndent();
+        pw.println("RcsService:");
+        try {
+            if (mTelephonyRcsService != null) mTelephonyRcsService.dump(fd, pw, args);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
         pw.decreaseIndent();
         pw.println("------- End PhoneGlobals -------");
     }
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 31eea78..d265e6b 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -18,9 +18,11 @@
 
 import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 
+import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_IMS;
 import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
 
 import android.Manifest.permission;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.AppOpsManager;
 import android.app.PendingIntent;
@@ -33,7 +35,6 @@
 import android.content.pm.ComponentInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.net.NetworkStats;
 import android.net.Uri;
 import android.os.AsyncResult;
 import android.os.Binder;
@@ -44,13 +45,13 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.Messenger;
+import android.os.ParcelFileDescriptor;
 import android.os.ParcelUuid;
 import android.os.PersistableBundle;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
-import android.os.ServiceManager;
-import android.os.ShellCallback;
-import android.os.SystemProperties;
+import android.os.ServiceSpecificException;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.os.WorkSource;
@@ -58,15 +59,20 @@
 import android.provider.DeviceConfig;
 import android.provider.Settings;
 import android.provider.Telephony;
+import android.sysprop.TelephonyProperties;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import android.telephony.Annotation.ApnType;
+import android.telephony.CallForwardingInfo;
 import android.telephony.CarrierConfigManager;
 import android.telephony.CarrierRestrictionRules;
+import android.telephony.CellIdentity;
+import android.telephony.CellIdentityCdma;
+import android.telephony.CellIdentityGsm;
 import android.telephony.CellInfo;
 import android.telephony.CellInfoGsm;
 import android.telephony.CellInfoWcdma;
-import android.telephony.CellLocation;
 import android.telephony.ClientRequestStats;
 import android.telephony.ICellInfoCallback;
 import android.telephony.IccOpenLogicalChannelResponse;
@@ -78,11 +84,11 @@
 import android.telephony.PhoneNumberRange;
 import android.telephony.RadioAccessFamily;
 import android.telephony.RadioAccessSpecifier;
-import android.telephony.Rlog;
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyFrameworkInitializer;
 import android.telephony.TelephonyHistogram;
 import android.telephony.TelephonyManager;
 import android.telephony.TelephonyScanManager;
@@ -90,12 +96,11 @@
 import android.telephony.UiccSlotInfo;
 import android.telephony.UssdResponse;
 import android.telephony.VisualVoicemailSmsFilterSettings;
-import android.telephony.cdma.CdmaCellLocation;
 import android.telephony.data.ApnSetting;
-import android.telephony.data.ApnSetting.ApnType;
 import android.telephony.emergency.EmergencyNumber;
-import android.telephony.gsm.GsmCellLocation;
+import android.telephony.ims.ImsException;
 import android.telephony.ims.ProvisioningManager;
+import android.telephony.ims.RegistrationManager;
 import android.telephony.ims.aidl.IImsCapabilityCallback;
 import android.telephony.ims.aidl.IImsConfig;
 import android.telephony.ims.aidl.IImsConfigCallback;
@@ -103,33 +108,34 @@
 import android.telephony.ims.aidl.IImsRcsFeature;
 import android.telephony.ims.aidl.IImsRegistration;
 import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.feature.ImsFeature;
 import android.telephony.ims.feature.MmTelFeature;
+import android.telephony.ims.feature.RcsFeature;
 import android.telephony.ims.stub.ImsConfigImplBase;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
 import android.text.TextUtils;
 import android.util.ArraySet;
 import android.util.Log;
 import android.util.Pair;
-import android.util.Slog;
 
-import com.android.ims.ImsException;
 import com.android.ims.ImsManager;
 import com.android.ims.internal.IImsServiceFeatureCallback;
-import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.CallForwardInfo;
 import com.android.internal.telephony.CallManager;
 import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.CarrierInfoManager;
 import com.android.internal.telephony.CarrierResolver;
 import com.android.internal.telephony.CellNetworkScanResult;
 import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.DefaultPhoneNotifier;
 import com.android.internal.telephony.HalVersion;
+import com.android.internal.telephony.IBooleanConsumer;
 import com.android.internal.telephony.IIntegerConsumer;
 import com.android.internal.telephony.INumberVerificationCallback;
 import com.android.internal.telephony.ITelephony;
 import com.android.internal.telephony.IccCard;
 import com.android.internal.telephony.LocaleTracker;
-import com.android.internal.telephony.MccTable;
 import com.android.internal.telephony.NetworkScanRequestTracker;
 import com.android.internal.telephony.OperatorInfo;
 import com.android.internal.telephony.Phone;
@@ -141,18 +147,21 @@
 import com.android.internal.telephony.RIL;
 import com.android.internal.telephony.RILConstants;
 import com.android.internal.telephony.ServiceStateTracker;
-import com.android.internal.telephony.SmsApplication;
-import com.android.internal.telephony.SmsApplication.SmsApplicationData;
 import com.android.internal.telephony.SmsController;
 import com.android.internal.telephony.SmsPermissions;
 import com.android.internal.telephony.SubscriptionController;
+import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.telephony.TelephonyPermissions;
 import com.android.internal.telephony.dataconnection.ApnSettingUtils;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 import com.android.internal.telephony.euicc.EuiccConnector;
 import com.android.internal.telephony.ims.ImsResolver;
+import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
 import com.android.internal.telephony.metrics.TelephonyMetrics;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
 import com.android.internal.telephony.uicc.IccIoResult;
+import com.android.internal.telephony.uicc.IccRecords;
 import com.android.internal.telephony.uicc.IccUtils;
 import com.android.internal.telephony.uicc.SIMRecords;
 import com.android.internal.telephony.uicc.UiccCard;
@@ -160,6 +169,7 @@
 import com.android.internal.telephony.uicc.UiccController;
 import com.android.internal.telephony.uicc.UiccProfile;
 import com.android.internal.telephony.uicc.UiccSlot;
+import com.android.internal.telephony.util.LocaleUtils;
 import com.android.internal.telephony.util.VoicemailNotificationSettingsUtil;
 import com.android.internal.util.HexDump;
 import com.android.phone.settings.PickSmsSubscriptionActivity;
@@ -167,12 +177,12 @@
 import com.android.phone.vvm.RemoteVvmTaskManager;
 import com.android.phone.vvm.VisualVoicemailSettingsUtil;
 import com.android.phone.vvm.VisualVoicemailSmsFilterConfig;
+import com.android.telephony.Rlog;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -180,6 +190,8 @@
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Consumer;
 
 /**
  * Implementation of the ITelephony interface.
@@ -257,8 +269,25 @@
     private static final int EVENT_ENABLE_MODEM_DONE = 69;
     private static final int CMD_GET_MODEM_STATUS = 70;
     private static final int EVENT_GET_MODEM_STATUS_DONE = 71;
-    private static final int CMD_ERASE_MODEM_CONFIG = 72;
-    private static final int EVENT_ERASE_MODEM_CONFIG_DONE = 73;
+    private static final int CMD_SET_FORBIDDEN_PLMNS = 72;
+    private static final int EVENT_SET_FORBIDDEN_PLMNS_DONE = 73;
+    private static final int CMD_ERASE_MODEM_CONFIG = 74;
+    private static final int EVENT_ERASE_MODEM_CONFIG_DONE = 75;
+    private static final int CMD_CHANGE_ICC_LOCK_PASSWORD = 76;
+    private static final int EVENT_CHANGE_ICC_LOCK_PASSWORD_DONE = 77;
+    private static final int CMD_SET_ICC_LOCK_ENABLED = 78;
+    private static final int EVENT_SET_ICC_LOCK_ENABLED_DONE = 79;
+    private static final int CMD_SET_SYSTEM_SELECTION_CHANNELS = 80;
+    private static final int EVENT_SET_SYSTEM_SELECTION_CHANNELS_DONE = 81;
+    private static final int MSG_NOTIFY_USER_ACTIVITY = 82;
+    private static final int CMD_GET_CALL_FORWARDING = 83;
+    private static final int EVENT_GET_CALL_FORWARDING_DONE = 84;
+    private static final int CMD_SET_CALL_FORWARDING = 85;
+    private static final int EVENT_SET_CALL_FORWARDING_DONE = 86;
+    private static final int CMD_GET_CALL_WAITING = 87;
+    private static final int EVENT_GET_CALL_WAITING_DONE = 88;
+    private static final int CMD_SET_CALL_WAITING = 89;
+    private static final int EVENT_SET_CALL_WAITING_DONE = 90;
 
     // Parameters of select command.
     private static final int SELECT_COMMAND = 0xA4;
@@ -266,15 +295,12 @@
     private static final int SELECT_P2 = 0;
     private static final int SELECT_P3 = 0x10;
 
-    private static final String DEFAULT_NETWORK_MODE_PROPERTY_NAME = "ro.telephony.default_network";
-    private static final String DEFAULT_DATA_ROAMING_PROPERTY_NAME = "ro.com.android.dataroaming";
-    private static final String DEFAULT_MOBILE_DATA_PROPERTY_NAME = "ro.com.android.mobiledata";
-
     /** The singleton instance. */
     private static PhoneInterfaceManager sInstance;
 
     private PhoneGlobals mApp;
     private CallManager mCM;
+    private ImsResolver mImsResolver;
     private UserManager mUserManager;
     private AppOpsManager mAppOps;
     private MainThreadHandler mMainThreadHandler;
@@ -282,6 +308,10 @@
     private SharedPreferences mTelephonySharedPreferences;
     private PhoneConfigurationManager mPhoneConfigurationManager;
 
+    /** User Activity */
+    private AtomicBoolean mNotifyUserActivity;
+    private static final int USER_ACTIVITY_NOTIFICATION_DELAY = 200;
+
     private static final String PREF_CARRIERS_ALPHATAG_PREFIX = "carrier_alphtag_";
     private static final String PREF_CARRIERS_NUMBER_PREFIX = "carrier_number_";
     private static final String PREF_CARRIERS_SUBSCRIBER_PREFIX = "carrier_subscriber_";
@@ -796,6 +826,148 @@
                     getPhoneFromRequest(request).getAvailableNetworks(onCompleted);
                     break;
 
+                case CMD_GET_CALL_FORWARDING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_GET_CALL_FORWARDING_DONE, request);
+                    int callForwardingReason = (Integer) request.argument;
+                    getPhoneFromRequest(request).getCallForwardingOption(
+                            callForwardingReason, onCompleted);
+                    break;
+
+                case EVENT_GET_CALL_FORWARDING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    CallForwardingInfo callForwardingInfo = null;
+                    if (ar.exception == null && ar.result != null) {
+                        CallForwardInfo[] callForwardInfos = (CallForwardInfo[]) ar.result;
+                        for (CallForwardInfo callForwardInfo : callForwardInfos) {
+                            // Service Class is a bit mask per 3gpp 27.007. Search for
+                            // any service for voice call.
+                            if ((callForwardInfo.serviceClass
+                                    & CommandsInterface.SERVICE_CLASS_VOICE) > 0) {
+                                callForwardingInfo = new CallForwardingInfo(
+                                        callForwardInfo.serviceClass, callForwardInfo.reason,
+                                                callForwardInfo.number,
+                                                        callForwardInfo.timeSeconds);
+                                break;
+                            }
+                        }
+                        // Didn't find a call forward info for voice call.
+                        if (callForwardingInfo == null) {
+                            callForwardingInfo = new CallForwardingInfo(
+                                    CallForwardingInfo.STATUS_UNKNOWN_ERROR,
+                                            0 /* reason */, null /* number */, 0 /* timeout */);
+                        }
+                    } else {
+                        if (ar.result == null) {
+                            loge("EVENT_GET_CALL_FORWARDING_DONE: Empty response");
+                        }
+                        if (ar.exception != null) {
+                            loge("EVENT_GET_CALL_FORWARDING_DONE: Exception: " + ar.exception);
+                        }
+                        int errorCode = CallForwardingInfo.STATUS_UNKNOWN_ERROR;
+                        if (ar.exception instanceof CommandException) {
+                            CommandException.Error error =
+                                    ((CommandException) (ar.exception)).getCommandError();
+                            if (error == CommandException.Error.FDN_CHECK_FAILURE) {
+                                errorCode = CallForwardingInfo.STATUS_FDN_CHECK_FAILURE;
+                            } else if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
+                                errorCode = CallForwardingInfo.STATUS_NOT_SUPPORTED;
+                            }
+                        }
+                        callForwardingInfo = new CallForwardingInfo(
+                                errorCode, 0 /* reason */, null /* number */, 0 /* timeout */);
+                    }
+                    request.result = callForwardingInfo;
+                    notifyRequester(request);
+                    break;
+
+                case CMD_SET_CALL_FORWARDING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_CALL_FORWARDING_DONE, request);
+                    CallForwardingInfo callForwardingInfoToSet =
+                            (CallForwardingInfo) request.argument;
+                    getPhoneFromRequest(request).setCallForwardingOption(
+                            callForwardingInfoToSet.getStatus(),
+                            callForwardingInfoToSet.getReason(),
+                            callForwardingInfoToSet.getNumber(),
+                            callForwardingInfoToSet.getTimeoutSeconds(), onCompleted);
+                    break;
+
+                case EVENT_SET_CALL_FORWARDING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = true;
+                    } else {
+                        request.result = false;
+                        loge("setCallForwarding exception: " + ar.exception);
+                    }
+                    notifyRequester(request);
+                    break;
+
+                case CMD_GET_CALL_WAITING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_GET_CALL_WAITING_DONE, request);
+                    getPhoneFromRequest(request).getCallWaiting(onCompleted);
+                    break;
+
+                case EVENT_GET_CALL_WAITING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    int callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR;
+                    if (ar.exception == null && ar.result != null) {
+                        int[] callForwardResults = (int[]) ar.result;
+                        // Service Class is a bit mask per 3gpp 27.007.
+                        // Search for any service for voice call.
+                        if (callForwardResults.length > 1
+                                && ((callForwardResults[1]
+                                        & CommandsInterface.SERVICE_CLASS_VOICE) > 0)) {
+                            callForwardingStatus = callForwardResults[0] == 0
+                                    ? TelephonyManager.CALL_WAITING_STATUS_INACTIVE
+                                            : TelephonyManager.CALL_WAITING_STATUS_ACTIVE;
+                        } else {
+                            callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_INACTIVE;
+                        }
+                    } else {
+                        if (ar.result == null) {
+                            loge("EVENT_GET_CALL_WAITING_DONE: Empty response");
+                        }
+                        if (ar.exception != null) {
+                            loge("EVENT_GET_CALL_WAITING_DONE: Exception: " + ar.exception);
+                        }
+                        if (ar.exception instanceof CommandException) {
+                            CommandException.Error error =
+                                    ((CommandException) (ar.exception)).getCommandError();
+                            if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
+                                callForwardingStatus =
+                                        TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED;
+                            }
+                        }
+                    }
+                    request.result = callForwardingStatus;
+                    notifyRequester(request);
+                    break;
+
+                case CMD_SET_CALL_WAITING:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_CALL_WAITING_DONE, request);
+                    boolean isEnable = (Boolean) request.argument;
+                    getPhoneFromRequest(request).setCallWaiting(isEnable, onCompleted);
+                    break;
+
+                case EVENT_SET_CALL_WAITING_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = true;
+                    } else {
+                        request.result = false;
+                        loge("setCallWaiting exception: " + ar.exception);
+                    }
+                    notifyRequester(request);
+                    break;
+
                 case EVENT_PERFORM_NETWORK_SCAN_DONE:
                     ar = (AsyncResult) msg.obj;
                     request = (MainThreadRequest) ar.userObj;
@@ -855,14 +1027,47 @@
                     onCompleted = obtainMessage(EVENT_GET_MODEM_ACTIVITY_INFO_DONE, request);
                     if (defaultPhone != null) {
                         defaultPhone.getModemActivityInfo(onCompleted, request.workSource);
+                    } else {
+                        ResultReceiver result = (ResultReceiver) request.argument;
+                        Bundle bundle = new Bundle();
+                        bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY,
+                                new ModemActivityInfo(0, 0, 0, new int[0], 0));
+                        result.send(0, bundle);
                     }
                     break;
 
                 case EVENT_GET_MODEM_ACTIVITY_INFO_DONE:
                     ar = (AsyncResult) msg.obj;
                     request = (MainThreadRequest) ar.userObj;
+                    ResultReceiver result = (ResultReceiver) request.argument;
+
+                    ModemActivityInfo ret = new ModemActivityInfo(0, 0, 0, new int[0], 0);
                     if (ar.exception == null && ar.result != null) {
-                        request.result = ar.result;
+                        // Update the last modem activity info and the result of the request.
+                        ModemActivityInfo info = (ModemActivityInfo) ar.result;
+                        if (isModemActivityInfoValid(info)) {
+                            int[] mergedTxTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS];
+                            int[] txTimeMs = info.getTransmitTimeMillis();
+                            int[] lastModemTxTimeMs = mLastModemActivityInfo
+                                    .getTransmitTimeMillis();
+                            for (int i = 0; i < mergedTxTimeMs.length; i++) {
+                                mergedTxTimeMs[i] = txTimeMs[i] + lastModemTxTimeMs[i];
+                            }
+                            mLastModemActivityInfo.setTimestamp(info.getTimestamp());
+                            mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
+                                    + mLastModemActivityInfo.getSleepTimeMillis());
+                            mLastModemActivityInfo.setIdleTimeMillis(info.getIdleTimeMillis()
+                                    + mLastModemActivityInfo.getIdleTimeMillis());
+                            mLastModemActivityInfo.setTransmitTimeMillis(mergedTxTimeMs);
+                            mLastModemActivityInfo.setReceiveTimeMillis(
+                                    info.getReceiveTimeMillis()
+                                            + mLastModemActivityInfo.getReceiveTimeMillis());
+                        }
+                        ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestamp(),
+                                mLastModemActivityInfo.getSleepTimeMillis(),
+                                mLastModemActivityInfo.getIdleTimeMillis(),
+                                mLastModemActivityInfo.getTransmitTimeMillis(),
+                                mLastModemActivityInfo.getReceiveTimeMillis());
                     } else {
                         if (ar.result == null) {
                             loge("queryModemActivityInfo: Empty response");
@@ -873,10 +1078,9 @@
                             loge("queryModemActivityInfo: Unknown exception");
                         }
                     }
-                    // Result cannot be null. Return ModemActivityInfo with all fields set to 0.
-                    if (request.result == null) {
-                        request.result = new ModemActivityInfo(0, 0, 0, null, 0, 0);
-                    }
+                    Bundle bundle = new Bundle();
+                    bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
+                    result.send(0, bundle);
                     notifyRequester(request);
                     break;
 
@@ -1080,11 +1284,13 @@
                     try {
                         if (ar.exception != null) {
                             Log.e(LOG_TAG, "Exception retrieving CellInfo=" + ar.exception);
-                            cb.onError(TelephonyManager.CellInfoCallback.ERROR_MODEM_ERROR,
-                                    new android.os.ParcelableException(ar.exception));
+                            cb.onError(
+                                    TelephonyManager.CellInfoCallback.ERROR_MODEM_ERROR,
+                                    ar.exception.getClass().getName(),
+                                    ar.exception.toString());
                         } else if (ar.result == null) {
                             Log.w(LOG_TAG, "Timeout Waiting for CellInfo!");
-                            cb.onError(TelephonyManager.CellInfoCallback.ERROR_TIMEOUT, null);
+                            cb.onError(TelephonyManager.CellInfoCallback.ERROR_TIMEOUT, null, null);
                         } else {
                             // use the result as returned
                             cb.onCellInfo((List<CellInfo>) ar.result);
@@ -1097,7 +1303,7 @@
                     request = (MainThreadRequest) msg.obj;
                     WorkSource ws = (WorkSource) request.argument;
                     Phone phone = getPhoneFromRequest(request);
-                    phone.getCellLocation(ws, obtainMessage(EVENT_GET_CELL_LOCATION_DONE, request));
+                    phone.getCellIdentity(ws, obtainMessage(EVENT_GET_CELL_LOCATION_DONE, request));
                     break;
                 case EVENT_GET_CELL_LOCATION_DONE:
                     ar = (AsyncResult) msg.obj;
@@ -1107,7 +1313,7 @@
                     } else {
                         phone = getPhoneFromRequest(request);
                         request.result = (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)
-                                ? new CdmaCellLocation() : new GsmCellLocation();
+                                ? new CellIdentityCdma() : new CellIdentityGsm();
                     }
 
                     synchronized (request) {
@@ -1172,6 +1378,67 @@
                     }
                     notifyRequester(request);
                     break;
+                case CMD_SET_SYSTEM_SELECTION_CHANNELS: {
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_SYSTEM_SELECTION_CHANNELS_DONE, request);
+                    Pair<List<RadioAccessSpecifier>, Consumer<Boolean>> args =
+                            (Pair<List<RadioAccessSpecifier>, Consumer<Boolean>>) request.argument;
+                    request.phone.setSystemSelectionChannels(args.first, onCompleted);
+                    break;
+                }
+                case EVENT_SET_SYSTEM_SELECTION_CHANNELS_DONE: {
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    Pair<List<RadioAccessSpecifier>, Consumer<Boolean>> args =
+                            (Pair<List<RadioAccessSpecifier>, Consumer<Boolean>>) request.argument;
+                    args.second.accept(ar.exception == null);
+                    notifyRequester(request);
+                    break;
+                }
+                case EVENT_SET_FORBIDDEN_PLMNS_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null && ar.result != null) {
+                        request.result = ar.result;
+                    } else {
+                        request.result = -1;
+                        loge("Failed to set Forbidden Plmns");
+                        if (ar.result == null) {
+                            loge("setForbidenPlmns: Empty response");
+                        } else if (ar.exception != null) {
+                            loge("setForbiddenPlmns: Exception: " + ar.exception);
+                            request.result = -1;
+                        } else {
+                            loge("setForbiddenPlmns: Unknown exception");
+                        }
+                    }
+                    notifyRequester(request);
+                    break;
+                case CMD_SET_FORBIDDEN_PLMNS:
+                    request = (MainThreadRequest) msg.obj;
+                    uiccCard = getUiccCardFromRequest(request);
+                    if (uiccCard == null) {
+                        loge("setForbiddenPlmns: UiccCard is null");
+                        request.result = -1;
+                        notifyRequester(request);
+                        break;
+                    }
+                    Pair<Integer, List<String>> setFplmnsArgs =
+                            (Pair<Integer, List<String>>) request.argument;
+                    appType = setFplmnsArgs.first;
+                    List<String> fplmns = setFplmnsArgs.second;
+                    uiccApp = uiccCard.getApplicationByType(appType);
+                    if (uiccApp == null) {
+                        loge("setForbiddenPlmns: no app with specified type -- " + appType);
+                        request.result = -1;
+                        loge("Failed to get UICC App");
+                        notifyRequester(request);
+                    } else {
+                        onCompleted = obtainMessage(EVENT_SET_FORBIDDEN_PLMNS_DONE, request);
+                        ((SIMRecords) uiccApp.getIccRecords())
+                                .setForbiddenPlmns(onCompleted, fplmns);
+                    }
+                    break;
                 case CMD_ERASE_MODEM_CONFIG:
                     request = (MainThreadRequest) msg.obj;
                     onCompleted = obtainMessage(EVENT_ERASE_MODEM_CONFIG_DONE, request);
@@ -1180,6 +1447,50 @@
                 case EVENT_ERASE_MODEM_CONFIG_DONE:
                     handleNullReturnEvent(msg, "eraseModemConfig");
                     break;
+
+                case CMD_CHANGE_ICC_LOCK_PASSWORD:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_CHANGE_ICC_LOCK_PASSWORD_DONE, request);
+                    Pair<String, String> changed = (Pair<String, String>) request.argument;
+                    getPhoneFromRequest(request).getIccCard().changeIccLockPassword(
+                            changed.first, changed.second, onCompleted);
+                    break;
+                case EVENT_CHANGE_ICC_LOCK_PASSWORD_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = TelephonyManager.CHANGE_ICC_LOCK_SUCCESS;
+                    } else {
+                        request.result = msg.arg1;
+                    }
+                    notifyRequester(request);
+                    break;
+
+                case CMD_SET_ICC_LOCK_ENABLED:
+                    request = (MainThreadRequest) msg.obj;
+                    onCompleted = obtainMessage(EVENT_SET_ICC_LOCK_ENABLED_DONE, request);
+                    Pair<Boolean, String> enabled = (Pair<Boolean, String>) request.argument;
+                    getPhoneFromRequest(request).getIccCard().setIccLockEnabled(
+                            enabled.first, enabled.second, onCompleted);
+                    break;
+                case EVENT_SET_ICC_LOCK_ENABLED_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = TelephonyManager.CHANGE_ICC_LOCK_SUCCESS;
+                    } else {
+                        request.result = msg.arg1;
+                    }
+                    notifyRequester(request);
+                    break;
+
+                case MSG_NOTIFY_USER_ACTIVITY:
+                    removeMessages(MSG_NOTIFY_USER_ACTIVITY);
+                    Intent intent = new Intent(TelephonyIntents.ACTION_USER_ACTIVITY_NOTIFICATION);
+                    intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY);
+                    getDefaultPhone().getContext().sendBroadcastAsUser(
+                            intent, UserHandle.ALL, permission.USER_ACTIVITY);
+                    break;
                 default:
                     Log.w(LOG_TAG, "MainThreadHandler: unexpected message code: " + msg.what);
                     break;
@@ -1338,10 +1649,10 @@
     }
 
     /** Private constructor; @see init() */
-    @VisibleForTesting
-    /* package */ PhoneInterfaceManager(PhoneGlobals app) {
+    private PhoneInterfaceManager(PhoneGlobals app) {
         mApp = app;
         mCM = PhoneGlobals.getInstance().mCM;
+        mImsResolver = PhoneGlobals.getInstance().getImsResolver();
         mUserManager = (UserManager) app.getSystemService(Context.USER_SERVICE);
         mAppOps = (AppOpsManager)app.getSystemService(Context.APP_OPS_SERVICE);
         mMainThreadHandler = new MainThreadHandler();
@@ -1350,6 +1661,7 @@
                 PreferenceManager.getDefaultSharedPreferences(mApp);
         mNetworkScanRequestTracker = new NetworkScanRequestTracker();
         mPhoneConfigurationManager = PhoneConfigurationManager.getInstance();
+        mNotifyUserActivity = new AtomicBoolean(false);
 
         publish();
     }
@@ -1362,7 +1674,10 @@
     private void publish() {
         if (DBG) log("publish: " + this);
 
-        ServiceManager.addService("phone", this);
+        TelephonyFrameworkInitializer
+                .getTelephonyServiceManager()
+                .getTelephonyServiceRegisterer()
+                .register(this);
     }
 
     private Phone getPhoneFromRequest(MainThreadRequest request) {
@@ -1403,6 +1718,16 @@
         }
     }
 
+    private boolean isImsAvailableOnDevice() {
+        PackageManager pm = getDefaultPhone().getContext().getPackageManager();
+        if (pm == null) {
+            // For some reason package manger is not available.. This will fail internally anyway,
+            // so do not throw error and allow.
+            return true;
+        }
+        return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS, 0);
+    }
+
     public void dial(String number) {
         dialForSubscriber(getPreferredVoiceSubscription(), number);
     }
@@ -1444,7 +1769,7 @@
         // from the context of the phone app.
         enforceCallPermission();
 
-        if (mAppOps.noteOp(AppOpsManager.OP_CALL_PHONE, Binder.getCallingUid(), callingPackage)
+        if (mAppOps.noteOp(AppOpsManager.OPSTR_CALL_PHONE, Binder.getCallingUid(), callingPackage)
                 != AppOpsManager.MODE_ALLOWED) {
             return;
         }
@@ -1479,29 +1804,16 @@
         }
     }
 
-    public boolean supplyPin(String pin) {
-        return supplyPinForSubscriber(getDefaultSubscription(), pin);
-    }
-
     public boolean supplyPinForSubscriber(int subId, String pin) {
         int [] resultArray = supplyPinReportResultForSubscriber(subId, pin);
         return (resultArray[0] == PhoneConstants.PIN_RESULT_SUCCESS) ? true : false;
     }
 
-    public boolean supplyPuk(String puk, String pin) {
-        return supplyPukForSubscriber(getDefaultSubscription(), puk, pin);
-    }
-
     public boolean supplyPukForSubscriber(int subId, String puk, String pin) {
         int [] resultArray = supplyPukReportResultForSubscriber(subId, puk, pin);
         return (resultArray[0] == PhoneConstants.PIN_RESULT_SUCCESS) ? true : false;
     }
 
-    /** {@hide} */
-    public int[] supplyPinReportResult(String pin) {
-        return supplyPinReportResultForSubscriber(getDefaultSubscription(), pin);
-    }
-
     public int[] supplyPinReportResultForSubscriber(int subId, String pin) {
         enforceModifyPermission();
 
@@ -1515,11 +1827,6 @@
         }
     }
 
-    /** {@hide} */
-    public int[] supplyPukReportResult(String puk, String pin) {
-        return supplyPukReportResultForSubscriber(getDefaultSubscription(), puk, pin);
-    }
-
     public int[] supplyPukReportResultForSubscriber(int subId, String puk, String pin) {
         enforceModifyPermission();
 
@@ -1652,15 +1959,30 @@
         }
     }
 
+    @Deprecated
     @Override
     public boolean isRadioOn(String callingPackage) {
-        return isRadioOnForSubscriber(getDefaultSubscription(), callingPackage);
+        return isRadioOnWithFeature(callingPackage, null);
+    }
+
+
+    @Override
+    public boolean isRadioOnWithFeature(String callingPackage, String callingFeatureId) {
+        return isRadioOnForSubscriberWithFeature(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
+    }
+
+    @Deprecated
+    @Override
+    public boolean isRadioOnForSubscriber(int subId, String callingPackage) {
+        return isRadioOnForSubscriberWithFeature(subId, callingPackage, null);
     }
 
     @Override
-    public boolean isRadioOnForSubscriber(int subId, String callingPackage) {
+    public boolean isRadioOnForSubscriberWithFeature(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isRadioOnForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId, "isRadioOnForSubscriber")) {
             return false;
         }
 
@@ -1727,6 +2049,7 @@
     }
 
     public boolean needMobileRadioShutdown() {
+        enforceReadPrivilegedPermission("needMobileRadioShutdown");
         /*
          * If any of the Radios are available, it will need to be
          * shutdown. So return true if any Radio is available.
@@ -1946,7 +2269,7 @@
     }
 
     @Override
-    public Bundle getCellLocation(String callingPackage) {
+    public CellIdentity getCellLocation(String callingPackage, String callingFeatureId) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -1954,6 +2277,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getCellLocation")
@@ -1964,18 +2288,16 @@
             case DENIED_HARD:
                 throw new SecurityException("Not allowed to access cell location");
             case DENIED_SOFT:
-                return new Bundle();
+                return (getDefaultPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA)
+                        ? new CellIdentityCdma() : new CellIdentityGsm();
         }
 
         WorkSource workSource = getWorkSource(Binder.getCallingUid());
         final long identity = Binder.clearCallingIdentity();
         try {
             if (DBG_LOC) log("getCellLocation: is active user");
-            Bundle data = new Bundle();
             int subId = mSubscriptionController.getDefaultDataSubId();
-            CellLocation cl = (CellLocation) sendRequest(CMD_GET_CELL_LOCATION, workSource, subId);
-            cl.fillInNotifierBundle(data);
-            return data;
+            return (CellIdentity) sendRequest(CMD_GET_CELL_LOCATION, workSource, subId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -1992,28 +2314,15 @@
                 phoneId = SubscriptionManager.DEFAULT_PHONE_INDEX;
             }
             final int subId = mSubscriptionController.getSubIdUsingPhoneId(phoneId);
-            // Todo: fix this when we can get the actual cellular network info when the device
-            // is on IWLAN.
-            if (TelephonyManager.NETWORK_TYPE_IWLAN
-                    == getVoiceNetworkTypeForSubscriber(subId, mApp.getPackageName())) {
-                return "";
-            }
             Phone phone = PhoneFactory.getPhone(phoneId);
-            if (phone != null) {
-                ServiceStateTracker sst = phone.getServiceStateTracker();
-                EmergencyNumberTracker emergencyNumberTracker = phone.getEmergencyNumberTracker();
-                if (sst != null) {
-                    LocaleTracker lt = sst.getLocaleTracker();
-                    if (lt != null) {
-                        if (!TextUtils.isEmpty(lt.getCurrentCountry())) {
-                            return lt.getCurrentCountry();
-                        } else if (emergencyNumberTracker != null) {
-                            return emergencyNumberTracker.getEmergencyCountryIso();
-                        }
-                    }
-                }
-            }
-            return "";
+            if (phone == null) return "";
+            ServiceStateTracker sst = phone.getServiceStateTracker();
+            if (sst == null) return "";
+            LocaleTracker lt = sst.getLocaleTracker();
+            if (lt == null) return "";
+            if (!TextUtils.isEmpty(lt.getCurrentCountry())) return lt.getCurrentCountry();
+            EmergencyNumberTracker ent = phone.getEmergencyNumberTracker();
+            return (ent == null) ? "" : ent.getEmergencyCountryIso();
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -2071,7 +2380,7 @@
     private int getTargetSdk(String packageName) {
         try {
             final ApplicationInfo ai = mApp.getPackageManager().getApplicationInfoAsUser(
-                    packageName, 0, UserHandle.getUserId(Binder.getCallingUid()));
+                    packageName, 0, UserHandle.getUserHandleForUid(Binder.getCallingUid()));
             if (ai != null) return ai.targetSdkVersion;
         } catch (PackageManager.NameNotFoundException unexpected) {
             loge("Failed to get package info for pkg="
@@ -2082,21 +2391,22 @@
 
     @Override
     @SuppressWarnings("unchecked")
-    public List<NeighboringCellInfo> getNeighboringCellInfo(String callingPackage) {
+    public List<NeighboringCellInfo> getNeighboringCellInfo(String callingPackage,
+            String callingFeatureId) {
         final int targetSdk = getTargetSdk(callingPackage);
         if (targetSdk >= android.os.Build.VERSION_CODES.Q) {
             throw new SecurityException(
                     "getNeighboringCellInfo() is unavailable to callers targeting Q+ SDK levels.");
         }
 
-        if (mAppOps.noteOp(AppOpsManager.OP_NEIGHBORING_CELLS, Binder.getCallingUid(),
+        if (mAppOps.noteOp(AppOpsManager.OPSTR_NEIGHBORING_CELLS, Binder.getCallingUid(),
                 callingPackage) != AppOpsManager.MODE_ALLOWED) {
             return null;
         }
 
         if (DBG_LOC) log("getNeighboringCellInfo: is active user");
 
-        List<CellInfo> info = getAllCellInfo(callingPackage);
+        List<CellInfo> info = getAllCellInfo(callingPackage, callingFeatureId);
         if (info == null) return null;
 
         List<NeighboringCellInfo> neighbors = new ArrayList<NeighboringCellInfo>();
@@ -2120,7 +2430,7 @@
     }
 
     @Override
-    public List<CellInfo> getAllCellInfo(String callingPackage) {
+    public List<CellInfo> getAllCellInfo(String callingPackage, String callingFeatureId) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -2128,6 +2438,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getAllCellInfo")
@@ -2163,20 +2474,21 @@
     }
 
     @Override
-    public void requestCellInfoUpdate(int subId, ICellInfoCallback cb, String callingPackage) {
-        requestCellInfoUpdateInternal(
-                subId, cb, callingPackage, getWorkSource(Binder.getCallingUid()));
+    public void requestCellInfoUpdate(int subId, ICellInfoCallback cb, String callingPackage,
+            String callingFeatureId) {
+        requestCellInfoUpdateInternal(subId, cb, callingPackage, callingFeatureId,
+                getWorkSource(Binder.getCallingUid()));
     }
 
     @Override
-    public void requestCellInfoUpdateWithWorkSource(
-            int subId, ICellInfoCallback cb, String callingPackage, WorkSource workSource) {
+    public void requestCellInfoUpdateWithWorkSource(int subId, ICellInfoCallback cb,
+            String callingPackage, String callingFeatureId, WorkSource workSource) {
         enforceModifyPermission();
-        requestCellInfoUpdateInternal(subId, cb, callingPackage, workSource);
+        requestCellInfoUpdateInternal(subId, cb, callingPackage, callingFeatureId, workSource);
     }
 
-    private void requestCellInfoUpdateInternal(
-            int subId, ICellInfoCallback cb, String callingPackage, WorkSource workSource) {
+    private void requestCellInfoUpdateInternal(int subId, ICellInfoCallback cb,
+            String callingPackage, String callingFeatureId, WorkSource workSource) {
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
@@ -2184,6 +2496,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("requestCellInfoUpdate")
@@ -2222,14 +2535,14 @@
     }
 
     @Override
-    public String getImeiForSlot(int slotIndex, String callingPackage) {
+    public String getImeiForSlot(int slotIndex, String callingPackage, String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) {
             return null;
         }
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
-                callingPackage, "getImeiForSlot")) {
+                callingPackage, callingFeatureId, "getImeiForSlot")) {
             return null;
         }
 
@@ -2253,7 +2566,7 @@
     }
 
     @Override
-    public String getMeidForSlot(int slotIndex, String callingPackage) {
+    public String getMeidForSlot(int slotIndex, String callingPackage, String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) {
             return null;
@@ -2261,7 +2574,7 @@
 
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
-                callingPackage, "getMeidForSlot")) {
+                callingPackage, callingFeatureId, "getMeidForSlot")) {
             return null;
         }
 
@@ -2285,14 +2598,16 @@
     }
 
     @Override
-    public String getDeviceSoftwareVersionForSlot(int slotIndex, String callingPackage) {
+    public String getDeviceSoftwareVersionForSlot(int slotIndex, String callingPackage,
+            String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) {
             return null;
         }
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getDeviceSoftwareVersionForSlot")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getDeviceSoftwareVersionForSlot")) {
             return null;
         }
 
@@ -2380,6 +2695,22 @@
     }
 
     /**
+     * Make sure the caller is system.
+     *
+     * @throws SecurityException if the caller is not system.
+     */
+    private void enforceSystemCaller() {
+        if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+            throw new SecurityException("Caller must be system");
+        }
+    }
+
+    private void enforceActiveEmergencySessionPermission() {
+        mApp.enforceCallingOrSelfPermission(
+                android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION, null);
+    }
+
+    /**
      * Make sure the caller has the CALL_PHONE permission.
      *
      * @throws SecurityException if the caller does not have the required permission
@@ -2388,9 +2719,8 @@
         mApp.enforceCallingOrSelfPermission(android.Manifest.permission.CALL_PHONE, null);
     }
 
-    private void enforceConnectivityInternalPermission() {
-        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL,
-                "ConnectivityService");
+    private void enforceSettingsPermission() {
+        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.NETWORK_SETTINGS, null);
     }
 
     private String createTelUrl(String number) {
@@ -2437,14 +2767,17 @@
      * Returns the CDMA ERI icon index to display
      */
     @Override
-    public int getCdmaEriIconIndex(String callingPackage) {
-        return getCdmaEriIconIndexForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getCdmaEriIconIndex(String callingPackage, String callingFeatureId) {
+        return getCdmaEriIconIndexForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public int getCdmaEriIconIndexForSubscriber(int subId, String callingPackage) {
+    public int getCdmaEriIconIndexForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getCdmaEriIconIndexForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getCdmaEriIconIndexForSubscriber")) {
             return -1;
         }
 
@@ -2467,14 +2800,17 @@
      * 1 - FLASHING
      */
     @Override
-    public int getCdmaEriIconMode(String callingPackage) {
-        return getCdmaEriIconModeForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getCdmaEriIconMode(String callingPackage, String callingFeatureId) {
+        return getCdmaEriIconModeForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public int getCdmaEriIconModeForSubscriber(int subId, String callingPackage) {
+    public int getCdmaEriIconModeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getCdmaEriIconModeForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getCdmaEriIconModeForSubscriber")) {
             return -1;
         }
 
@@ -2495,14 +2831,17 @@
      * Returns the CDMA ERI text,
      */
     @Override
-    public String getCdmaEriText(String callingPackage) {
-        return getCdmaEriTextForSubscriber(getDefaultSubscription(), callingPackage);
+    public String getCdmaEriText(String callingPackage, String callingFeatureId) {
+        return getCdmaEriTextForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public String getCdmaEriTextForSubscriber(int subId, String callingPackage) {
+    public String getCdmaEriTextForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getCdmaEriIconTextForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getCdmaEriIconTextForSubscriber")) {
             return null;
         }
 
@@ -2603,7 +2942,8 @@
      */
     @Override
     public boolean setVoiceMailNumber(int subId, String alphaTag, String number) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(subId, "setVoiceMailNumber");
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+                mApp, subId, "setVoiceMailNumber");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -2618,7 +2958,8 @@
     @Override
     public Bundle getVisualVoicemailSettings(String callingPackage, int subId) {
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        String systemDialer = TelecomManager.from(mApp).getSystemDialerPackage();
+        TelecomManager tm = mApp.getSystemService(TelecomManager.class);
+        String systemDialer = tm.getSystemDialerPackage();
         if (!TextUtils.equals(callingPackage, systemDialer)) {
             throw new SecurityException("caller must be system dialer");
         }
@@ -2636,10 +2977,12 @@
     }
 
     @Override
-    public String getVisualVoicemailPackageName(String callingPackage, int subId) {
+    public String getVisualVoicemailPackageName(String callingPackage, String callingFeatureId,
+            int subId) {
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getVisualVoicemailPackageName")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getVisualVoicemailPackageName")) {
             return null;
         }
 
@@ -2706,14 +3049,15 @@
     }
 
     @Override
-    public void sendVisualVoicemailSmsForSubscriber(String callingPackage, int subId,
-            String number, int port, String text, PendingIntent sentIntent) {
+    public void sendVisualVoicemailSmsForSubscriber(String callingPackage,
+            String callingAttributionTag, int subId, String number, int port, String text,
+            PendingIntent sentIntent) {
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
         enforceVisualVoicemailPackage(callingPackage, subId);
         enforceSendSmsPermission();
         SmsController smsController = PhoneFactory.getSmsController();
-        smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, subId, number, port, text,
-                sentIntent);
+        smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, callingAttributionTag,
+                subId, number, port, text, sentIntent);
     }
 
     /**
@@ -2751,7 +3095,7 @@
             if (phone != null) {
                 phone.setDataActivationState(activationState);
             } else {
-                loge("setVoiceActivationState fails with invalid subId: " + subId);
+                loge("setDataActivationState fails with invalid subId: " + subId);
             }
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -2802,9 +3146,11 @@
      * Returns the unread count of voicemails for a subId
      */
     @Override
-    public int getVoiceMessageCountForSubscriber(int subId, String callingPackage) {
+    public int getVoiceMessageCountForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getVoiceMessageCountForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getVoiceMessageCountForSubscriber")) {
             return 0;
         }
         final long identity = Binder.clearCallingIdentity();
@@ -2844,10 +3190,10 @@
     public void sendDialerSpecialCode(String callingPackage, String inputCode) {
         final Phone defaultPhone = getDefaultPhone();
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        String defaultDialer = TelecomManager.from(defaultPhone.getContext())
-                .getDefaultDialerPackage();
+        TelecomManager tm = defaultPhone.getContext().getSystemService(TelecomManager.class);
+        String defaultDialer = tm.getDefaultDialerPackage();
         if (!TextUtils.equals(callingPackage, defaultDialer)) {
-            TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+            TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                     getDefaultSubscription(), "sendDialerSpecialCode");
         }
 
@@ -2861,11 +3207,18 @@
 
     @Override
     public int getNetworkSelectionMode(int subId) {
-        if (!isActiveSubscription(subId)) {
-            return TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN;
+        TelephonyPermissions
+                    .enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                    mApp, subId, "getNetworkSelectionMode");
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (!isActiveSubscription(subId)) {
+                return TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN;
+            }
+            return (int) sendRequest(CMD_GET_NETWORK_SELECTION_MODE, null /* argument */, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
         }
-
-        return (int) sendRequest(CMD_GET_NETWORK_SELECTION_MODE, null /* argument */, subId);
     }
 
     @Override
@@ -2884,73 +3237,181 @@
         return false;
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback c)
             throws RemoteException {
-        enforceReadPrivilegedPermission("registerImsRegistrationCallback");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "registerImsRegistrationCallback");
+
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
         final long token = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .addRegistrationCallbackForSubscription(c, subId);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(token);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback c) {
-        enforceReadPrivilegedPermission("unregisterImsRegistrationCallback");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "unregisterImsRegistrationCallback");
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
         }
-        Binder.withCleanCallingIdentity(() -> {
-            try {
-                // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
-                ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
-                        .removeRegistrationCallbackForSubscription(c, subId);
-            } catch (IllegalArgumentException e) {
-                Log.i(LOG_TAG, "unregisterImsRegistrationCallback: " + subId
-                        + "is inactive, ignoring unregister.");
-                // If the subscription is no longer active, just return, since the callback
-                // will already have been removed internally.
-            }
-        });
+        final long token = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
+            ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
+                    .removeRegistrationCallbackForSubscription(c, subId);
+        } catch (ImsException e) {
+            Log.i(LOG_TAG, "unregisterImsRegistrationCallback: " + subId
+                    + "is inactive, ignoring unregister.");
+            // If the subscription is no longer active, just return, since the callback
+            // will already have been removed internally.
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
     }
 
+    /**
+     * Get the IMS service registration state for the MmTelFeature associated with this sub id.
+     */
+    @Override
+    public void getImsMmTelRegistrationState(int subId, IIntegerConsumer consumer) {
+        enforceReadPrivilegedPermission("getImsMmTelRegistrationState");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) {
+                Log.w(LOG_TAG, "getImsMmTelRegistrationState: called with an invalid subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            phone.getImsRegistrationState(regState -> {
+                try {
+                    consumer.accept((regState == null)
+                            ? RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED : regState);
+                } catch (RemoteException e) {
+                    // Ignore if the remote process is no longer available to call back.
+                    Log.w(LOG_TAG, "getImsMmTelRegistrationState: callback not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Get the transport type for the IMS service registration state.
+     */
+    @Override
+    public void getImsMmTelRegistrationTransportType(int subId, IIntegerConsumer consumer) {
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "getImsMmTelRegistrationTransportType");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) {
+                Log.w(LOG_TAG, "getImsMmTelRegistrationState: called with an invalid subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            phone.getImsRegistrationTech(regTech -> {
+                // Convert registration tech from ImsRegistrationImplBase -> RegistrationManager
+                int regTechConverted = (regTech == null)
+                        ? ImsRegistrationImplBase.REGISTRATION_TECH_NONE : regTech;
+                regTechConverted = RegistrationManager.IMS_REG_TO_ACCESS_TYPE_MAP.get(
+                        regTechConverted);
+                try {
+                    consumer.accept(regTechConverted);
+                } catch (RemoteException e) {
+                    // Ignore if the remote process is no longer available to call back.
+                    Log.w(LOG_TAG, "getImsMmTelRegistrationState: callback not available.");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void registerMmTelCapabilityCallback(int subId, IImsCapabilityCallback c)
             throws RemoteException {
-        enforceReadPrivilegedPermission("registerMmTelCapabilityCallback");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "registerMmTelCapabilityCallback");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
         // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
         final long token = Binder.clearCallingIdentity();
         try {
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .addCapabilitiesCallbackForSubscription(c, subId);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(token);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     * @param c The callback that will be used to send the result.
+     */
     @Override
     public void unregisterMmTelCapabilityCallback(int subId, IImsCapabilityCallback c) {
-        enforceReadPrivilegedPermission("unregisterMmTelCapabilityCallback");
-
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "unregisterMmTelCapabilityCallback");
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
         }
-        Binder.withCleanCallingIdentity(() -> {
-            try {
-                // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
-                ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
+
+        final long token = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
+            ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                         .removeCapabilitiesCallbackForSubscription(c, subId);
-            } catch (IllegalArgumentException e) {
-                Log.i(LOG_TAG, "unregisterMmTelCapabilityCallback: " + subId
-                        + "is inactive, ignoring unregister.");
-                // If the subscription is no longer active, just return, since the callback
-                // will already have been removed internally.
-            }
-        });
+        } catch (ImsException e) {
+            Log.i(LOG_TAG, "unregisterMmTelCapabilityCallback: " + subId
+                     + "is inactive, ignoring unregister.");
+             // If the subscription is no longer active, just return, since the callback
+             // will already have been removed internally.
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
     }
 
     @Override
@@ -2961,10 +3422,10 @@
         try {
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).queryMmTelCapability(capability, regTech);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "IMS isCapable - service unavailable: " + e.getMessage());
             return false;
-        } catch (IllegalArgumentException e) {
+        } catch (ImsException e) {
             Log.i(LOG_TAG, "isCapable: " + subId + " is inactive, returning false.");
             return false;
         } finally {
@@ -2980,19 +3441,68 @@
             Phone phone = getPhone(subId);
             if (phone == null) return false;
             return phone.isImsCapabilityAvailable(capability, regTech);
+        } catch (com.android.ims.ImsException e) {
+            Log.w(LOG_TAG, "IMS isAvailable - service unavailable: " + e.getMessage());
+            return false;
         } finally {
             Binder.restoreCallingIdentity(token);
         }
     }
 
+    /**
+     * Determines if the MmTel feature capability is supported by the carrier configuration for this
+     * subscription.
+     * @param subId The subscription to use to check the configuration.
+     * @param callback The callback that will be used to send the result.
+     * @param capability The MmTelFeature capability that will be used to send the result.
+     * @param transportType The transport type of the MmTelFeature capability.
+     */
+    @Override
+    public void isMmTelCapabilitySupported(int subId, IIntegerConsumer callback, int capability,
+            int transportType) {
+        enforceReadPrivilegedPermission("isMmTelCapabilitySupported");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            int slotId = getSlotIndex(subId);
+            if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+                Log.w(LOG_TAG, "isMmTelCapabilitySupported: called with an inactive subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            ImsManager.getInstance(mApp, slotId).isSupported(capability,
+                    transportType, aBoolean -> {
+                        try {
+                            callback.accept((aBoolean == null) ? 0 : (aBoolean ? 1 : 0));
+                        } catch (RemoteException e) {
+                            Log.w(LOG_TAG, "isMmTelCapabilitySupported: remote caller is not "
+                                    + "running. Ignore");
+                        }
+                    });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isAdvancedCallingSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("enforceReadPrivilegedPermission");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isAdvancedCallingSettingEnabled");
+
         // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
         final long token = Binder.clearCallingIdentity();
         try {
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isEnhanced4gLteModeSettingEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(token);
         }
@@ -3007,19 +3517,27 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setEnhanced4gLteModeSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isVtSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("isVtSettingEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isVtSettingEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            return ImsManager.getInstance(mApp,
-                    getSlotIndexOrException(subId)).isVtEnabledByUser();
+            return ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).isVtEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3033,19 +3551,28 @@
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setVtSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isVoWiFiSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("isVoWiFiSettingEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isVoWiFiSettingEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isWfcEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3059,19 +3586,28 @@
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setWfcSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isVoWiFiRoamingSettingEnabled(int subId) {
-        enforceReadPrivilegedPermission("isVoWiFiRoamingSettingEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isVoWiFiRoamingSettingEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isWfcRoamingEnabledByUser();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3086,6 +3622,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcRoamingSetting(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3100,19 +3638,28 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcNonPersistent(isCapable, mode);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public int getVoWiFiModeSetting(int subId) {
-        enforceReadPrivilegedPermission("getVoWiFiModeSetting");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "getVoWiFiModeSetting");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).getWfcMode(false /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3127,6 +3674,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcMode(mode, false /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3140,6 +3689,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).getWfcMode(true /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3154,6 +3705,8 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).setWfcMode(mode, true /*isRoaming*/);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3166,21 +3719,29 @@
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            ImsManager.getInstance(mApp,
-                    getSlotIndexOrException(subId)).setRttEnabled(isEnabled);
+            ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setRttEnabled(isEnabled);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+     * @param subId The subscription to use to check the configuration.
+     */
     @Override
     public boolean isTtyOverVolteEnabled(int subId) {
-        enforceReadPrivilegedPermission("isTtyOverVolteEnabled");
+        TelephonyPermissions.enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isTtyOverVolteEnabled");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             return ImsManager.getInstance(mApp,
                     getSlotIndexOrException(subId)).isTtyOnVoLteCapable();
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3191,9 +3752,15 @@
         enforceReadPrivilegedPermission("registerImsProvisioningChangedCallback");
         final long identity = Binder.clearCallingIdentity();
         try {
+            if (!isImsAvailableOnDevice()) {
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                        "IMS not available on device.");
+            }
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .addProvisioningCallbackForSubscription(callback, subId);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -3210,7 +3777,7 @@
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
             ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
                     .removeProvisioningCallbackForSubscription(callback, subId);
-        } catch (IllegalArgumentException e) {
+        } catch (ImsException e) {
             Log.i(LOG_TAG, "unregisterImsProvisioningChangedCallback: " + subId
                     + "is inactive, ignoring unregister.");
             // If the subscription is no longer active, just return, since the callback will already
@@ -3220,6 +3787,91 @@
         }
     }
 
+
+    private void checkModifyPhoneStatePermission(int subId, String message) {
+        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp, subId,
+                message);
+    }
+
+    private boolean isImsProvisioningRequired(int subId, int capability,
+            boolean isMmtelCapability) {
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            loge("phone instance null for subid " + subId);
+            return false;
+        }
+        if (isMmtelCapability) {
+            if (!doesImsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+                return false;
+            }
+        } else {
+            if (!doesRcsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public void setRcsProvisioningStatusForCapability(int subId, int capability,
+            boolean isProvisioned) {
+        checkModifyPhoneStatePermission(subId, "setRcsProvisioningStatusForCapability");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
+            if (!isImsProvisioningRequired(subId, capability, false)) {
+                return;
+            }
+
+            // this capability requires provisioning, route to the correct API.
+            ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
+            switch (capability) {
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE:
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE:
+                    ims.setEabProvisioned(isProvisioned);
+                    break;
+                default: {
+                    throw new IllegalArgumentException("Tried to set provisioning for "
+                            + "rcs capability '" + capability + "', which does not require "
+                            + "provisioning.");
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+
+    }
+
+
+    @Override
+    public boolean getRcsProvisioningStatusForCapability(int subId, int capability) {
+        enforceReadPrivilegedPermission("getRcsProvisioningStatusForCapability");
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
+            if (!isImsProvisioningRequired(subId, capability, false)) {
+                return true;
+            }
+
+            ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
+            switch (capability) {
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE:
+                case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE:
+                    return ims.isEabProvisionedOnDevice();
+
+                default: {
+                    throw new IllegalArgumentException("Tried to get rcs provisioning for "
+                            + "capability '" + capability + "', which does not require "
+                            + "provisioning.");
+                }
+            }
+
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     @Override
     public void setImsProvisioningStatusForCapability(int subId, int capability, int tech,
             boolean isProvisioned) {
@@ -3227,18 +3879,11 @@
                 && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
             throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
         }
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp, subId,
-                "setProvisioningStatusForCapability");
+        checkModifyPhoneStatePermission(subId, "setImsProvisioningStatusForCapability");
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            Phone phone = getPhone(subId);
-            if (phone == null) {
-                loge("setImsProvisioningStatusForCapability: phone instance null for subid "
-                        + subId);
-                return;
-            }
-            if (!doesImsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+            if (!isImsProvisioningRequired(subId, capability, true)) {
                 return;
             }
 
@@ -3269,15 +3914,16 @@
                     cacheMmTelCapabilityProvisioning(subId, capability, tech, isProvisioned);
                     try {
                         ims.changeMmTelCapability(capability, tech, isProvisioned);
-                    } catch (ImsException e) {
+                    } catch (com.android.ims.ImsException e) {
                         loge("setImsProvisioningStatusForCapability: couldn't change UT capability"
                                 + ", Exception" + e.getMessage());
                     }
                     break;
                 }
                 default: {
-                    throw new IllegalArgumentException("Tried to set provisioning for capability '"
-                            + capability + "', which does not require provisioning.");
+                    throw new IllegalArgumentException("Tried to set provisioning for "
+                            + "MmTel capability '" + capability + "', which does not require "
+                            + "provisioning. ");
                 }
             }
 
@@ -3296,16 +3942,7 @@
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            Phone phone = getPhone(subId);
-            if (phone == null) {
-                loge("getImsProvisioningStatusForCapability: phone instance null for subid "
-                        + subId);
-                // We will fail with "true" as the provisioning status because this is the default
-                // if we do not require provisioning.
-                return true;
-            }
-
-            if (!doesImsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
+            if (!isImsProvisioningRequired(subId, capability, true)) {
                 return true;
             }
 
@@ -3331,8 +3968,9 @@
                     return isMmTelCapabilityProvisionedInCache(subId, capability, tech);
                 }
                 default: {
-                    throw new IllegalArgumentException("Tried to get provisioning for capability '"
-                            + capability + "', which does not require provisioning.");
+                    throw new IllegalArgumentException(
+                            "Tried to get provisioning for MmTel capability '" + capability
+                                    + "', which does not require provisioning.");
                 }
             }
 
@@ -3413,10 +4051,7 @@
         CarrierConfigManager configManager = new CarrierConfigManager(context);
         PersistableBundle c = configManager.getConfigForSubId(subId);
         boolean requireUtProvisioning = c.getBoolean(
-                // By default, this config is true (even if there is no SIM). We also check to make
-                // sure the subscription needs provisioning here, so we do not need to check for
-                // the no-SIM case, where we would normally shortcut this to false.
-                CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, true)
+                CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, false)
                 && c.getBoolean(CarrierConfigManager.KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL,
                 false);
         boolean requireVoiceVtProvisioning = c.getBoolean(
@@ -3444,6 +4079,29 @@
         return false;
     }
 
+    private boolean doesRcsCapabilityRequireProvisioning(Context context, int subId,
+            int capability) {
+        CarrierConfigManager configManager = new CarrierConfigManager(context);
+        PersistableBundle c = configManager.getConfigForSubId(subId);
+
+        boolean requireRcsProvisioning = c.getBoolean(
+                CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, false);
+
+        // First check to make sure that the capability requires provisioning.
+        switch (capability) {
+            case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE:
+                // intentional fallthrough
+            case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE: {
+                if (requireRcsProvisioning) {
+                    // OPTION or PRESENCE requires provisioning
+                    return true;
+                }
+                break;
+            }
+        }
+        return false;
+    }
+
     @Override
     public int getImsProvisioningInt(int subId, int key) {
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
@@ -3460,7 +4118,7 @@
                 return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().getConfigInt(key);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "getImsProvisioningInt: ImsService is not available for subscription '"
                     + subId + "' for key:" + key);
             return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
@@ -3485,7 +4143,7 @@
                 return ProvisioningManager.STRING_QUERY_RESULT_ERROR_GENERIC;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().getConfigString(key);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "getImsProvisioningString: ImsService is not available for sub '"
                     + subId + "' for key:" + key);
             return ProvisioningManager.STRING_QUERY_RESULT_ERROR_NOT_READY;
@@ -3511,7 +4169,7 @@
                 return ImsConfigImplBase.CONFIG_RESULT_FAILED;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().setConfig(key, value);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "setImsProvisioningInt: ImsService unavailable for sub '" + subId
                     + "' for key:" + key);
             return ImsConfigImplBase.CONFIG_RESULT_FAILED;
@@ -3537,7 +4195,7 @@
                 return ImsConfigImplBase.CONFIG_RESULT_FAILED;
             }
             return ImsManager.getInstance(mApp, slotId).getConfigInterface().setConfig(key, value);
-        } catch (ImsException e) {
+        } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "setImsProvisioningString: ImsService unavailable for sub '" + subId
                     + "' for key:" + key);
             return ImsConfigImplBase.CONFIG_RESULT_FAILED;
@@ -3546,10 +4204,11 @@
         }
     }
 
-    private int getSlotIndexOrException(int subId) throws IllegalArgumentException {
+    private int getSlotIndexOrException(int subId) throws ImsException {
         int slotId = SubscriptionManager.getSlotIndex(subId);
         if (!SubscriptionManager.isValidSlotIndex(slotId)) {
-            throw new IllegalArgumentException("Invalid Subscription Id, subId=" + subId);
+            throw new ImsException("Invalid Subscription Id, subId=" + subId,
+                    ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
         }
         return slotId;
     }
@@ -3566,10 +4225,15 @@
      * Returns the data network type for a subId; does not throw SecurityException.
      */
     @Override
-    public int getNetworkTypeForSubscriber(int subId, String callingPackage) {
-        if (getTargetSdk(callingPackage) >= android.os.Build.VERSION_CODES.Q
+    public int getNetworkTypeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
+        final int targetSdk = getTargetSdk(callingPackage);
+        if (targetSdk > android.os.Build.VERSION_CODES.Q) {
+            return getDataNetworkTypeForSubscriber(subId, callingPackage, callingFeatureId);
+        } else if (targetSdk == android.os.Build.VERSION_CODES.Q
                 && !TelephonyPermissions.checkCallingOrSelfReadPhoneStateNoThrow(
-                        mApp, subId, callingPackage, "getNetworkTypeForSubscriber")) {
+                        mApp, subId, callingPackage, callingFeatureId,
+                "getNetworkTypeForSubscriber")) {
             return TelephonyManager.NETWORK_TYPE_UNKNOWN;
         }
 
@@ -3590,17 +4254,20 @@
      * Returns the data network type
      */
     @Override
-    public int getDataNetworkType(String callingPackage) {
-        return getDataNetworkTypeForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getDataNetworkType(String callingPackage, String callingFeatureId) {
+        return getDataNetworkTypeForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     /**
      * Returns the data network type for a subId
      */
     @Override
-    public int getDataNetworkTypeForSubscriber(int subId, String callingPackage) {
+    public int getDataNetworkTypeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getDataNetworkTypeForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getDataNetworkTypeForSubscriber")) {
             return TelephonyManager.NETWORK_TYPE_UNKNOWN;
         }
 
@@ -3621,9 +4288,11 @@
      * Returns the Voice network type for a subId
      */
     @Override
-    public int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage) {
+    public int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getDataNetworkTypeForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getDataNetworkTypeForSubscriber")) {
             return TelephonyManager.NETWORK_TYPE_UNKNOWN;
         }
 
@@ -3677,14 +4346,17 @@
      * or {@link Phone#LTE_ON_CDMA_TRUE}
      */
     @Override
-    public int getLteOnCdmaMode(String callingPackage) {
-        return getLteOnCdmaModeForSubscriber(getDefaultSubscription(), callingPackage);
+    public int getLteOnCdmaMode(String callingPackage, String callingFeatureId) {
+        return getLteOnCdmaModeForSubscriber(getDefaultSubscription(), callingPackage,
+                callingFeatureId);
     }
 
     @Override
-    public int getLteOnCdmaModeForSubscriber(int subId, String callingPackage) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getLteOnCdmaModeForSubscriber")) {
+    public int getLteOnCdmaModeForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
+        try {
+            enforceReadPrivilegedPermission("getLteOnCdmaModeForSubscriber");
+        } catch (SecurityException e) {
             return PhoneConstants.LTE_ON_CDMA_UNKNOWN;
         }
 
@@ -4008,9 +4680,10 @@
      * Get the forbidden PLMN List from the given app type (ex APPTYPE_USIM)
      * on a particular subscription
      */
-    public String[] getForbiddenPlmns(int subId, int appType, String callingPackage) {
+    public String[] getForbiddenPlmns(int subId, int appType, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getForbiddenPlmns")) {
+                mApp, subId, callingPackage, callingFeatureId, "getForbiddenPlmns")) {
             return null;
         }
 
@@ -4026,7 +4699,7 @@
             if (response instanceof String[]) {
                 return (String[]) response;
             }
-            // Response is an Exception of some kind,
+            // Response is an Exception of some kind
             // which is signalled to the user as a NULL retval
             return null;
         } finally {
@@ -4034,6 +4707,48 @@
         }
     }
 
+    /**
+     * Set the forbidden PLMN list from the given app type (ex APPTYPE_USIM) on a particular
+     * subscription.
+     *
+     * @param subId the id of the subscription.
+     * @param appType the uicc app type, must be USIM or SIM.
+     * @param fplmns the Forbiden plmns list that needed to be written to the SIM.
+     * @param callingPackage the op Package name.
+     * @param callingFeatureId the feature in the package.
+     * @return number of fplmns that is successfully written to the SIM.
+     */
+    public int setForbiddenPlmns(int subId, int appType, List<String> fplmns, String callingPackage,
+            String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, subId, callingPackage,
+                callingFeatureId, "setForbiddenPlmns")) {
+            if (DBG) logv("no permissions for setForbiddenplmns");
+            throw new IllegalStateException("No Permissions for setForbiddenPlmns");
+        }
+        if (appType != TelephonyManager.APPTYPE_USIM && appType != TelephonyManager.APPTYPE_SIM) {
+            loge("setForbiddenPlmnList(): App Type must be USIM or SIM");
+            throw new IllegalArgumentException("Invalid appType: App Type must be USIM or SIM");
+        }
+        if (fplmns == null) {
+            throw new IllegalArgumentException("Fplmn List provided is null");
+        }
+        for (String fplmn : fplmns) {
+            if (!CellIdentity.isValidPlmn(fplmn)) {
+                throw new IllegalArgumentException("Invalid fplmn provided: " + fplmn);
+            }
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Object response = sendRequest(
+                    CMD_SET_FORBIDDEN_PLMNS,
+                    new Pair<Integer, List<String>>(new Integer(appType), fplmns),
+                    subId);
+            return (int) response;
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     @Override
     public String sendEnvelopeWithStatus(int subId, String content) {
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
@@ -4182,10 +4897,11 @@
         return false;
     }
 
-    public String[] getPcscfAddress(String apnType, String callingPackage) {
+    public String[] getPcscfAddress(String apnType, String callingPackage,
+            String callingFeatureId) {
         final Phone defaultPhone = getDefaultPhone();
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, defaultPhone.getSubId(), callingPackage, "getPcscfAddress")) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, defaultPhone.getSubId(),
+                callingPackage, callingFeatureId, "getPcscfAddress")) {
             return new String[0];
         }
 
@@ -4198,6 +4914,27 @@
     }
 
     /**
+     * Toggle IMS disable and enable for the framework to reset it. See {@link #enableIms(int)} and
+     * {@link #disableIms(int)}.
+     * @param slotIndex device slot.
+     */
+    public void resetIms(int slotIndex) {
+        enforceModifyPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (mImsResolver == null) {
+                // may happen if the does not support IMS.
+                return;
+            }
+            mImsResolver.disableIms(slotIndex);
+            mImsResolver.enableIms(slotIndex);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
      * Enables IMS for the framework. This will trigger IMS registration and ImsFeature capability
      * status updates, if not already enabled.
      */
@@ -4206,12 +4943,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return;
             }
-            resolver.enableIms(slotId);
+            mImsResolver.enableIms(slotId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4226,12 +4962,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return;
             }
-            resolver.disableIms(slotId);
+            mImsResolver.disableIms(slotId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4248,12 +4983,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getMmTelFeatureAndListen(slotId, callback);
+            return mImsResolver.getMmTelFeatureAndListen(slotId, callback);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4270,12 +5004,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getRcsFeatureAndListen(slotId, callback);
+            return mImsResolver.getRcsFeatureAndListen(slotId, callback);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4290,12 +5023,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getImsRegistration(slotId, feature);
+            return mImsResolver.getImsRegistration(slotId, feature);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4310,12 +5042,11 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return null;
             }
-            return resolver.getImsConfig(slotId, feature);
+            return mImsResolver.getImsConfig(slotId, feature);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4324,61 +5055,104 @@
     /**
      * Sets the ImsService Package Name that Telephony will bind to.
      *
-     * @param slotId the slot ID that the ImsService should bind for.
-     * @param isCarrierImsService true if the ImsService is the carrier override, false if the
+     * @param slotIndex the slot ID that the ImsService should bind for.
+     * @param isCarrierService true if the ImsService is the carrier override, false if the
      *         ImsService is the device default ImsService.
-     * @param packageName The package name of the application that contains the ImsService to bind
-     *         to.
+     * @param featureTypes An integer array of feature types associated with a packageName.
+     * @param packageName The name of the package that the current configuration will be replaced
+     *                    with.
      * @return true if setting the ImsService to bind to succeeded, false if it did not.
-     * @hide
      */
-    public boolean setImsService(int slotId, boolean isCarrierImsService, String packageName) {
-        int[] subIds = SubscriptionManager.getSubId(slotId);
+    public boolean setBoundImsServiceOverride(int slotIndex, boolean isCarrierService,
+            int[] featureTypes, String packageName) {
+        int[] subIds = SubscriptionManager.getSubId(slotIndex);
+        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setBoundImsServiceOverride");
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
                 (subIds != null ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID),
-                "setImsService");
+                "setBoundImsServiceOverride");
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return false;
             }
-            return resolver.overrideImsServiceConfiguration(slotId, isCarrierImsService,
-                    packageName);
+            Map<Integer, String> featureConfig = new HashMap<>();
+            for (int featureType : featureTypes) {
+                featureConfig.put(featureType, packageName);
+            }
+            return mImsResolver.overrideImsServiceConfiguration(slotIndex, isCarrierService,
+                    featureConfig);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
     /**
-     * Return the ImsService configuration.
+     * Return the package name of the currently bound ImsService.
      *
      * @param slotId The slot that the ImsService is associated with.
      * @param isCarrierImsService true, if the ImsService is a carrier override, false if it is
      *         the device default.
+     * @param featureType The feature associated with the queried configuration.
      * @return the package name of the ImsService configuration.
      */
-    public String getImsService(int slotId, boolean isCarrierImsService) {
+    public String getBoundImsServicePackage(int slotId, boolean isCarrierImsService,
+            @ImsFeature.FeatureType int featureType) {
         int[] subIds = SubscriptionManager.getSubId(slotId);
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
-                (subIds != null ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID),
-                "getImsService");
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+                mApp, (subIds != null ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID),
+                "getBoundImsServicePackage");
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ImsResolver resolver = PhoneFactory.getImsResolver();
-            if (resolver == null) {
+            if (mImsResolver == null) {
                 // may happen if the device does not support IMS.
                 return "";
             }
-            return resolver.getImsServiceConfiguration(slotId, isCarrierImsService);
+            // TODO: change API to query RCS separately.
+            return mImsResolver.getImsServiceConfiguration(slotId, isCarrierImsService,
+                    featureType);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
     }
 
+    /**
+     * Get the MmTelFeature state associated with the requested subscription id.
+     * @param subId The subscription that the MmTelFeature is associated with.
+     * @param callback A callback with an integer containing the
+     * {@link android.telephony.ims.feature.ImsFeature.ImsState} associated with the MmTelFeature.
+     */
+    @Override
+    public void getImsMmTelFeatureState(int subId, IIntegerConsumer callback) {
+        enforceReadPrivilegedPermission("getImsMmTelFeatureState");
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            int slotId = getSlotIndex(subId);
+            if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+                Log.w(LOG_TAG, "getImsMmTelFeatureState: called with an inactive subscription '"
+                        + subId + "'");
+                throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+            }
+            ImsManager.getInstance(mApp, slotId).getImsServiceState(anInteger -> {
+                try {
+                    callback.accept(anInteger == null ? ImsFeature.STATE_UNAVAILABLE : anInteger);
+                } catch (RemoteException e) {
+                    Log.w(LOG_TAG, "getImsMmTelFeatureState: remote caller is no longer running. "
+                            + "Ignore");
+                }
+            });
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
     public void setImsRegistrationState(boolean registered) {
         enforceModifyPermission();
 
@@ -4399,12 +5173,11 @@
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                 mApp, subId, "setNetworkSelectionModeAutomatic");
 
-        if (!isActiveSubscription(subId)) {
-            return;
-        }
-
         final long identity = Binder.clearCallingIdentity();
         try {
+            if (!isActiveSubscription(subId)) {
+                return;
+            }
             if (DBG) log("setNetworkSelectionModeAutomatic: subId " + subId);
             sendRequest(CMD_SET_NETWORK_SELECTION_MODE_AUTOMATIC, null, subId);
         } finally {
@@ -4446,18 +5219,50 @@
             Binder.restoreCallingIdentity(identity);
         }
     }
+     /**
+     * Get the manual network selection
+     *
+     * @param subId the id of the subscription.
+     *
+     * @return the previously saved user selected PLMN
+     */
+    @Override
+    public String getManualNetworkSelectionPlmn(int subId) {
+        TelephonyPermissions
+                    .enforeceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                    mApp, subId, "getManualNetworkSelectionPlmn");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (!isActiveSubscription(subId)) {
+                return "";
+            }
+
+            final Phone phone = getPhone(subId);
+            if (phone == null) {
+                return "";
+            }
+            OperatorInfo networkSelection = phone.getSavedNetworkSelection();
+            return TextUtils.isEmpty(networkSelection.getOperatorNumeric())
+                ? phone.getManualNetworkSelectionPlmn() : networkSelection.getOperatorNumeric();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
 
     /**
      * Scans for available networks.
      */
     @Override
-    public CellNetworkScanResult getCellNetworkScanResults(int subId, String callingPackage) {
+    public CellNetworkScanResult getCellNetworkScanResults(int subId, String callingPackage,
+            String callingFeatureId) {
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                 mApp, subId, "getCellNetworkScanResults");
         LocationAccessPolicy.LocationPermissionResult locationResult =
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getCellNetworkScanResults")
@@ -4481,6 +5286,75 @@
     }
 
     /**
+     * Get the call forwarding info, given the call forwarding reason.
+     */
+    @Override
+    public CallForwardingInfo getCallForwarding(int subId, int callForwardingReason) {
+        enforceReadPrivilegedPermission("getCallForwarding");
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) {
+                log("getCallForwarding: subId " + subId
+                        + " callForwardingReason" + callForwardingReason);
+            }
+            return (CallForwardingInfo) sendRequest(
+                    CMD_GET_CALL_FORWARDING, callForwardingReason, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Sets the voice call forwarding info including status (enable/disable), call forwarding
+     * reason, the number to forward, and the timeout before the forwarding is attempted.
+     */
+    @Override
+    public boolean setCallForwarding(int subId, CallForwardingInfo callForwardingInfo) {
+        enforceModifyPermission();
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) {
+                log("setCallForwarding: subId " + subId
+                        + " callForwardingInfo" + callForwardingInfo);
+            }
+            return (Boolean) sendRequest(CMD_SET_CALL_FORWARDING, callForwardingInfo, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Get the call forwarding info, given the call forwarding reason.
+     */
+    @Override
+    public int getCallWaitingStatus(int subId) {
+        enforceReadPrivilegedPermission("getCallForwarding");
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) log("getCallWaitingStatus: subId " + subId);
+            return (Integer) sendRequest(CMD_GET_CALL_WAITING, null, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Sets the voice call forwarding info including status (enable/disable), call forwarding
+     * reason, the number to forward, and the timeout before the forwarding is attempted.
+     */
+    @Override
+    public boolean setCallWaitingStatus(int subId, boolean isEnable) {
+        enforceModifyPermission();
+        long identity = Binder.clearCallingIdentity();
+        try {
+            if (DBG) log("setCallWaitingStatus: subId " + subId + " isEnable: " + isEnable);
+            return (Boolean) sendRequest(CMD_SET_CALL_WAITING, isEnable, subId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
      * Starts a new network scan and returns the id of this scan.
      *
      * @param subId id of the subscription
@@ -4491,13 +5365,14 @@
      */
     @Override
     public int requestNetworkScan(int subId, NetworkScanRequest request, Messenger messenger,
-            IBinder binder, String callingPackage) {
+            IBinder binder, String callingPackage, String callingFeatureId) {
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                 mApp, subId, "requestNetworkScan");
         LocationAccessPolicy.LocationPermissionResult locationResult =
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("requestNetworkScan")
@@ -4578,10 +5453,10 @@
      * @return the preferred network type, defined in RILConstants.java.
      */
     @Override
-    public int getCalculatedPreferredNetworkType(String callingPackage) {
+    public int getCalculatedPreferredNetworkType(String callingPackage, String callingFeatureId) {
         final Phone defaultPhone = getDefaultPhone();
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, defaultPhone.getSubId(),
-                callingPackage, "getCalculatedPreferredNetworkType")) {
+                callingPackage, callingFeatureId, "getCalculatedPreferredNetworkType")) {
             return RILConstants.PREFERRED_NETWORK_MODE;
         }
 
@@ -4620,7 +5495,6 @@
 
     /**
      * Set the preferred network type.
-     * Used for device configuration by some CDMA operators.
      *
      * @param networkType the preferred network type, defined in RILConstants.java.
      * @return true on success; false on any failure.
@@ -4632,14 +5506,12 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            if (DBG) log("setPreferredNetworkType: subId " + subId + " type " + networkType);
+            Settings.Global.putInt(mApp.getContentResolver(),
+                    Settings.Global.PREFERRED_NETWORK_MODE + subId, networkType);
+
             Boolean success = (Boolean) sendRequest(
                     CMD_SET_PREFERRED_NETWORK_TYPE, networkType, subId);
             if (DBG) log("setPreferredNetworkType: " + (success ? "ok" : "fail"));
-            if (success) {
-                Settings.Global.putInt(mApp.getContentResolver(),
-                        Settings.Global.PREFERRED_NETWORK_MODE + subId, networkType);
-            }
             return success;
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -4647,6 +5519,49 @@
     }
 
     /**
+     * Get the allowed network types that store in the telephony provider.
+     *
+     * @param subId the id of the subscription.
+     * @return allowedNetworkTypes the allowed network types.
+     */
+    @Override
+    public long getAllowedNetworkTypes(int subId) {
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+                    mApp, subId, "getAllowedNetworkTypes");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return SubscriptionManager.getLongSubscriptionProperty(
+                    subId, SubscriptionManager.ALLOWED_NETWORK_TYPES, -1, mApp);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Set the allowed network types.
+     *
+     * @param subId the id of the subscription.
+     * @param allowedNetworkTypes the allowed network types.
+     * @return true on success; false on any failure.
+     */
+    @Override
+    public boolean setAllowedNetworkTypes(int subId, long allowedNetworkTypes) {
+        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+                mApp, subId, "setAllowedNetworkTypes");
+
+        SubscriptionManager.setSubscriptionProperty(subId,
+                SubscriptionManager.ALLOWED_NETWORK_TYPES,
+                String.valueOf(allowedNetworkTypes));
+
+        int preferredNetworkMode = Settings.Global.getInt(mApp.getContentResolver(),
+                Settings.Global.PREFERRED_NETWORK_MODE + subId,
+                RILConstants.PREFERRED_NETWORK_MODE);
+        return setPreferredNetworkType(subId, preferredNetworkMode);
+    }
+
+    /**
      * Check whether DUN APN is required for tethering with subId.
      *
      * @param subId the id of the subscription to require tethering.
@@ -4654,7 +5569,7 @@
      * @hide
      */
     @Override
-    public boolean getTetherApnRequiredForSubscriber(int subId) {
+    public boolean isTetheringApnRequiredForSubscriber(int subId) {
         enforceModifyPermission();
         final long identity = Binder.clearCallingIdentity();
         final Phone phone = getPhone(subId);
@@ -4697,6 +5612,34 @@
     }
 
     /**
+     * Enable or disable always reporting signal strength changes from radio.
+     *
+     * @param isEnable {@code true} for enabling; {@code false} for disabling.
+     */
+    @Override
+    public void setAlwaysReportSignalStrength(int subId, boolean isEnable) {
+        enforceModifyPermission();
+        enforceSystemCaller();
+
+        final long identity = Binder.clearCallingIdentity();
+        final Phone phone = getPhone(subId);
+        try {
+            if (phone != null) {
+                if (DBG) {
+                    log("setAlwaysReportSignalStrength: subId=" + subId
+                            + " isEnable=" + isEnable);
+                }
+                phone.setAlwaysReportSignalStrength(isEnable);
+            } else {
+                loge("setAlwaysReportSignalStrength: no phone found for subId="
+                        + subId);
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
      * Get the user enabled state of Mobile Data.
      *
      * TODO: remove and use isUserDataEnabled.
@@ -4750,24 +5693,15 @@
     }
 
     /**
-     * Get whether mobile data is enabled.
+     * Checks if the device is capable of mobile data by considering whether whether the
+     * user has enabled mobile data, whether the carrier has enabled mobile data, and
+     * whether the network policy allows data connections.
      *
-     * Comparable to {@link #isUserDataEnabled(int)}, this considers all factors deciding
-     * whether mobile data is actually enabled.
-     *
-     * Accepts either ACCESS_NETWORK_STATE, MODIFY_PHONE_STATE or carrier privileges.
-     *
-     * @return {@code true} if data is enabled else {@code false}
+     * @return {@code true} if the overall data connection is capable; {@code false} if not.
      */
     @Override
     public boolean isDataEnabled(int subId) {
-        try {
-            mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
-                    null);
-        } catch (Exception e) {
-            TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
-                    mApp, subId, "isDataEnabled");
-        }
+        enforceReadPrivilegedPermission("isDataEnabled");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -4787,14 +5721,13 @@
         }
     }
 
-    private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim,
+    private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim, int uid,
             Phone phone) {
         //load access rules from carrier configs, and check those as well: b/139133814
         SubscriptionController subController = SubscriptionController.getInstance();
         if (privilegeFromSim == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS
                 || subController == null) return privilegeFromSim;
 
-        int uid = Binder.getCallingUid();
         PackageManager pkgMgr = phone.getContext().getPackageManager();
         String[] packages = pkgMgr.getPackagesForUid(uid);
 
@@ -4848,25 +5781,26 @@
 
         return getCarrierPrivilegeStatusFromCarrierConfigRules(
             card.getCarrierPrivilegeStatusForCurrentTransaction(
-                phone.getContext().getPackageManager()), phone);
+                phone.getContext().getPackageManager()), Binder.getCallingUid(), phone);
     }
 
     @Override
     public int getCarrierPrivilegeStatusForUid(int subId, int uid) {
+        enforceReadPrivilegedPermission("getCarrierPrivilegeStatusForUid");
         final Phone phone = getPhone(subId);
         if (phone == null) {
-            loge("getCarrierPrivilegeStatus: Invalid subId");
+            loge("getCarrierPrivilegeStatusForUid: Invalid subId");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
         }
         UiccProfile profile =
                 UiccController.getInstance().getUiccProfileForPhone(phone.getPhoneId());
         if (profile == null) {
-            loge("getCarrierPrivilegeStatus: No UICC");
+            loge("getCarrierPrivilegeStatusForUid: No UICC");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
         }
         return getCarrierPrivilegeStatusFromCarrierConfigRules(
-            profile.getCarrierPrivilegeStatusForUid(
-                phone.getContext().getPackageManager(), uid), phone);
+                profile.getCarrierPrivilegeStatusForUid(
+                        phone.getContext().getPackageManager(), uid), uid, phone);
     }
 
     @Override
@@ -4917,7 +5851,7 @@
         }
         UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
         if (card == null) {
-            loge("getCarrierPackageNamesForIntent: No UICC");
+            loge("getCarrierPackageNamesForIntentAndPhone: No UICC");
             return null ;
         }
         return card.getCarrierPackageNamesForIntent(mApp.getPackageManager(), intent);
@@ -4938,7 +5872,7 @@
                         PackageManager.MATCH_DISABLED_COMPONENTS
                             | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
                             | PackageManager.GET_SIGNING_CERTIFICATES,
-                            UserHandle.USER_SYSTEM);
+                            UserHandle.SYSTEM.getIdentifier());
                 }
                 for (int p = packages.size() - 1; p >= 0; p--) {
                     PackageInfo pkgInfo = packages.get(p);
@@ -4955,9 +5889,17 @@
 
     @Override
     public List<String> getPackagesWithCarrierPrivilegesForAllPhones() {
+        enforceReadPrivilegedPermission("getPackagesWithCarrierPrivilegesForAllPhones");
+
+        final long identity = Binder.clearCallingIdentity();
+
         List<String> privilegedPackages = new ArrayList<>();
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
-           privilegedPackages.addAll(getPackagesWithCarrierPrivileges(i));
+        try {
+            for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+                privilegedPackages.addAll(getPackagesWithCarrierPrivileges(i));
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
         }
         return privilegedPackages;
     }
@@ -4980,7 +5922,7 @@
     @Override
     public boolean setLine1NumberForDisplayForSubscriber(int subId, String alphaTag,
             String number) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                 subId, "setLine1NumberForDisplayForSubscriber");
 
         final long identity = Binder.clearCallingIdentity();
@@ -4993,7 +5935,7 @@
             final String subscriberId = phone.getSubscriberId();
 
             if (DBG_MERGE) {
-                Slog.d(LOG_TAG, "Setting line number for ICC=" + iccId + ", subscriberId="
+                Rlog.d(LOG_TAG, "Setting line number for ICC=" + iccId + ", subscriberId="
                         + subscriberId + " to " + number);
             }
 
@@ -5030,10 +5972,11 @@
     }
 
     @Override
-    public String getLine1NumberForDisplay(int subId, String callingPackage) {
+    public String getLine1NumberForDisplay(int subId, String callingPackage,
+            String callingFeatureId) {
         // This is open to apps with WRITE_SMS.
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneNumber(
-                mApp, subId, callingPackage, "getLine1NumberForDisplay")) {
+                mApp, subId, callingPackage, callingFeatureId, "getLine1NumberForDisplay")) {
             if (DBG_MERGE) log("getLine1NumberForDisplay returning null due to permission");
             return null;
         }
@@ -5057,9 +6000,10 @@
     }
 
     @Override
-    public String getLine1AlphaTagForDisplay(int subId, String callingPackage) {
+    public String getLine1AlphaTagForDisplay(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getLine1AlphaTagForDisplay")) {
+                mApp, subId, callingPackage, callingFeatureId, "getLine1AlphaTagForDisplay")) {
             return null;
         }
 
@@ -5077,12 +6021,13 @@
     }
 
     @Override
-    public String[] getMergedSubscriberIds(int subId, String callingPackage) {
+    public String[] getMergedSubscriberIds(int subId, String callingPackage,
+            String callingFeatureId) {
         // This API isn't public, so no need to provide a valid subscription ID - we're not worried
         // about carrier-privileged callers not having access.
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
                 mApp, SubscriptionManager.INVALID_SUBSCRIPTION_ID, callingPackage,
-                "getMergedSubscriberIds")) {
+                callingFeatureId, "getMergedSubscriberIds")) {
             return null;
         }
 
@@ -5116,7 +6061,7 @@
                         final String numberKey = PREF_CARRIERS_NUMBER_PREFIX + iccId;
                         mergeNumber = (String) prefs.get(numberKey);
                         if (DBG_MERGE) {
-                            Slog.d(LOG_TAG, "Found line number " + mergeNumber
+                            Rlog.d(LOG_TAG, "Found line number " + mergeNumber
                                     + " for active subscriber " + subscriberId);
                         }
                         if (!TextUtils.isEmpty(mergeNumber)) {
@@ -5150,7 +6095,7 @@
             final String[] resultArray = result.toArray(new String[result.size()]);
             Arrays.sort(resultArray);
             if (DBG_MERGE) {
-                Slog.d(LOG_TAG,
+                Rlog.d(LOG_TAG,
                         "Found subscribers " + Arrays.toString(resultArray) + " after merge");
             }
             return resultArray;
@@ -5160,8 +6105,8 @@
     }
 
     @Override
-    public String[] getMergedSubscriberIdsFromGroup(int subId, String callingPackage) {
-        enforceReadPrivilegedPermission("getMergedSubscriberIdsFromGroup");
+    public String[] getMergedImsisFromGroup(int subId, String callingPackage) {
+        enforceReadPrivilegedPermission("getMergedImsisFromGroup");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -5170,7 +6115,7 @@
             String subscriberId = telephonyManager.getSubscriberId(subId);
             if (subscriberId == null) {
                 if (DBG) {
-                    log("getMergedSubscriberIdsFromGroup can't find subscriberId for subId "
+                    log("getMergedImsisFromGroup can't find subscriberId for subId "
                             + subId);
                 }
                 return null;
@@ -5187,7 +6132,8 @@
             // Get all subscriberIds from the group.
             final List<String> mergedSubscriberIds = new ArrayList<>();
             final List<SubscriptionInfo> groupInfos = SubscriptionController.getInstance()
-                    .getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName());
+                    .getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName(),
+                            mApp.getAttributionTag());
             for (SubscriptionInfo subInfo : groupInfos) {
                 subscriberId = telephonyManager.getSubscriberId(subInfo.getSubscriptionId());
                 if (subscriberId != null) {
@@ -5204,7 +6150,7 @@
 
     @Override
     public boolean setOperatorBrandOverride(int subId, String brand) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(mApp,
                 subId, "setOperatorBrandOverride");
 
         final long identity = Binder.clearCallingIdentity();
@@ -5220,7 +6166,8 @@
     public boolean setRoamingOverride(int subId, List<String> gsmRoamingList,
             List<String> gsmNonRoamingList, List<String> cdmaRoamingList,
             List<String> cdmaNonRoamingList) {
-        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(subId, "setRoamingOverride");
+        TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+                mApp, subId, "setRoamingOverride");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -5311,10 +6258,10 @@
     }
 
     @Override
-    public boolean isVideoCallingEnabled(String callingPackage) {
+    public boolean isVideoCallingEnabled(String callingPackage, String callingFeatureId) {
         final Phone defaultPhone = getDefaultPhone();
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, defaultPhone.getSubId(), callingPackage, "isVideoCallingEnabled")) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, defaultPhone.getSubId(),
+                callingPackage, callingFeatureId, "isVideoCallingEnabled")) {
             return false;
         }
 
@@ -5335,9 +6282,11 @@
     }
 
     @Override
-    public boolean canChangeDtmfToneLength(int subId, String callingPackage) {
+    public boolean canChangeDtmfToneLength(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isVideoCallingEnabled")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "isVideoCallingEnabled")) {
             return false;
         }
 
@@ -5353,9 +6302,9 @@
     }
 
     @Override
-    public boolean isWorldPhone(int subId, String callingPackage) {
+    public boolean isWorldPhone(int subId, String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isVideoCallingEnabled")) {
+                mApp, subId, callingPackage, callingFeatureId, "isVideoCallingEnabled")) {
             return false;
         }
 
@@ -5372,7 +6321,7 @@
 
     @Override
     public boolean isTtyModeSupported() {
-        TelecomManager telecomManager = TelecomManager.from(mApp);
+        TelecomManager telecomManager = mApp.getSystemService(TelecomManager.class);
         return telecomManager.isTtySupported();
     }
 
@@ -5430,6 +6379,12 @@
         }
     }
 
+    @Deprecated
+    @Override
+    public String getDeviceId(String callingPackage) {
+        return getDeviceIdWithFeature(callingPackage, null);
+    }
+
     /**
      * Returns the unique device ID of phone, for example, the IMEI for
      * GSM and the MEID for CDMA phones. Return null if device ID is not available.
@@ -5438,14 +6393,14 @@
      *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
      */
     @Override
-    public String getDeviceId(String callingPackage) {
+    public String getDeviceIdWithFeature(String callingPackage, String callingFeatureId) {
         final Phone phone = PhoneFactory.getPhone(0);
         if (phone == null) {
             return null;
         }
         int subId = phone.getSubId();
         if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
-                callingPackage, "getDeviceId")) {
+                callingPackage, callingFeatureId, "getDeviceId")) {
             return null;
         }
 
@@ -5483,6 +6438,21 @@
     }
 
     @Override
+    public int getSubIdForPhoneAccountHandle(
+            PhoneAccountHandle phoneAccountHandle, String callingPackage, String callingFeatureId) {
+        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, getDefaultSubscription(),
+                callingPackage, callingFeatureId, "getSubIdForPhoneAccountHandle")) {
+            throw new SecurityException("Requires READ_PHONE_STATE permission.");
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
     public @Nullable PhoneAccountHandle getPhoneAccountHandleForSubscriptionId(int subscriptionId) {
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -5550,7 +6520,7 @@
 
     @Override
     public void factoryReset(int subId) {
-        enforceConnectivityInternalPermission();
+        enforceSettingsPermission();
         if (mUserManager.hasUserRestriction(UserManager.DISALLOW_NETWORK_RESET)) {
             return;
         }
@@ -5571,6 +6541,11 @@
             // in and combined with those stale ones. In case this happens again,
             // user can reset all network settings which will clean up this table.
             cleanUpSmsRawTable(getDefaultPhone().getContext());
+            // Clean up IMS settings as well here.
+            int slotId = getSlotIndex(subId);
+            if (slotId > SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+                ImsManager.getInstance(mApp, slotId).factoryReset();
+            }
 
             // Erase modem config if erase modem on network setting is enabled.
             String configValue = DeviceConfig.getProperty(DeviceConfig.NAMESPACE_TELEPHONY,
@@ -5600,7 +6575,7 @@
         final long identity = Binder.clearCallingIdentity();
         try {
             final SubscriptionInfo info = mSubscriptionController.getActiveSubscriptionInfo(subId,
-                    phone.getContext().getOpPackageName());
+                    phone.getContext().getOpPackageName(), phone.getContext().getAttributionTag());
             if (info == null) {
                 log("getSimLocaleForSubscriber, inactive subId: " + subId);
                 return null;
@@ -5624,7 +6599,7 @@
             // exact locale (e.g. fr_FR = French/France). So, if the locale returned from
             // the SIM and carrier preferences does not include a country we add the country
             // determined from the SIM MCC to provide an exact locale.
-            final Locale mccLocale = MccTable.getLocaleFromMcc(mApp, mcc, simLanguage);
+            final Locale mccLocale = LocaleUtils.getLocaleFromMcc(mApp, mcc, simLanguage);
             if (mccLocale != null) {
                 if (DBG) log("No locale from SIM, using mcc locale:" + mccLocale);
                 return mccLocale.toLanguageTag();
@@ -5638,18 +6613,20 @@
     }
 
     private List<SubscriptionInfo> getAllSubscriptionInfoList() {
-        return mSubscriptionController.getAllSubInfoList(mApp.getOpPackageName());
+        return mSubscriptionController.getAllSubInfoList(mApp.getOpPackageName(),
+                mApp.getAttributionTag());
     }
 
     /**
      * NOTE: this method assumes permission checks are done and caller identity has been cleared.
      */
     private List<SubscriptionInfo> getActiveSubscriptionInfoListPrivileged() {
-        return mSubscriptionController.getActiveSubscriptionInfoList(mApp.getOpPackageName());
+        return mSubscriptionController.getActiveSubscriptionInfoList(mApp.getOpPackageName(),
+                mApp.getAttributionTag());
     }
 
     private final ModemActivityInfo mLastModemActivityInfo =
-            new ModemActivityInfo(0, 0, 0, new int[0], 0, 0);
+            new ModemActivityInfo(0, 0, 0, new int[0], 0);
 
     /**
      * Responds to the ResultReceiver with the {@link android.telephony.ModemActivityInfo} object
@@ -5666,38 +6643,7 @@
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            ModemActivityInfo ret = null;
-            synchronized (mLastModemActivityInfo) {
-                ModemActivityInfo info = (ModemActivityInfo) sendRequest(
-                        CMD_GET_MODEM_ACTIVITY_INFO,
-                        null, workSource);
-                if (isModemActivityInfoValid(info)) {
-                    int[] mergedTxTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS];
-                    for (int i = 0; i < mergedTxTimeMs.length; i++) {
-                        mergedTxTimeMs[i] = info.getTxTimeMillis()[i]
-                                + mLastModemActivityInfo.getTxTimeMillis()[i];
-                    }
-                    mLastModemActivityInfo.setTimestamp(info.getTimestamp());
-                    mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
-                            + mLastModemActivityInfo.getSleepTimeMillis());
-                    mLastModemActivityInfo.setIdleTimeMillis(
-                            info.getIdleTimeMillis() + mLastModemActivityInfo.getIdleTimeMillis());
-                    mLastModemActivityInfo.setTxTimeMillis(mergedTxTimeMs);
-                    mLastModemActivityInfo.setRxTimeMillis(
-                            info.getRxTimeMillis() + mLastModemActivityInfo.getRxTimeMillis());
-                    mLastModemActivityInfo.setEnergyUsed(
-                            info.getEnergyUsed() + mLastModemActivityInfo.getEnergyUsed());
-                }
-                ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestamp(),
-                        mLastModemActivityInfo.getSleepTimeMillis(),
-                        mLastModemActivityInfo.getIdleTimeMillis(),
-                        mLastModemActivityInfo.getTxTimeMillis(),
-                        mLastModemActivityInfo.getRxTimeMillis(),
-                        mLastModemActivityInfo.getEnergyUsed());
-            }
-            Bundle bundle = new Bundle();
-            bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
-            result.send(0, bundle);
+            sendRequestAsync(CMD_GET_MODEM_ACTIVITY_INFO, result, null, workSource);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -5712,13 +6658,14 @@
         int activityDurationMs =
             (int) (info.getTimestamp() - mLastModemActivityInfo.getTimestamp());
         int totalTxTimeMs = 0;
-        for (int i = 0; i < info.getTxTimeMillis().length; i++) {
-            totalTxTimeMs += info.getTxTimeMillis()[i];
+        int[] txTimeMs = info.getTransmitTimeMillis();
+        for (int i = 0; i < info.getTransmitPowerInfo().size(); i++) {
+            totalTxTimeMs += txTimeMs[i];
         }
         return (info.isValid()
             && (info.getSleepTimeMillis() <= activityDurationMs)
             && (info.getIdleTimeMillis() <= activityDurationMs)
-            && (info.getRxTimeMillis() <= activityDurationMs)
+            && (info.getReceiveTimeMillis() <= activityDurationMs)
             && (totalTxTimeMs <= activityDurationMs));
     }
 
@@ -5727,9 +6674,10 @@
      * Returns the service state information on specified subscription.
      */
     @Override
-    public ServiceState getServiceStateForSubscriber(int subId, String callingPackage) {
+    public ServiceState getServiceStateForSubscriber(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getServiceStateForSubscriber")) {
+                mApp, subId, callingPackage, callingFeatureId, "getServiceStateForSubscriber")) {
             return null;
         }
 
@@ -5737,6 +6685,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getServiceStateForSubscriber")
@@ -5748,6 +6697,7 @@
                 LocationAccessPolicy.checkLocationPermission(mApp,
                         new LocationAccessPolicy.LocationPermissionQuery.Builder()
                                 .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
                                 .setCallingPid(Binder.getCallingPid())
                                 .setCallingUid(Binder.getCallingUid())
                                 .setMethod("getServiceStateForSubscriber")
@@ -5772,8 +6722,8 @@
             // Scrub out the location info in ServiceState depending on what level of access
             // the caller has.
             if (hasFinePermission) return ss;
-            if (hasCoarsePermission) return ss.sanitizeLocationInfo(false);
-            return ss.sanitizeLocationInfo(true);
+            if (hasCoarsePermission) return ss.createLocationInfoSanitizedCopy(false);
+            return ss.createLocationInfoSanitizedCopy(true);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -5818,8 +6768,8 @@
             PhoneAccountHandle phoneAccountHandle, Uri uri) {
         final Phone defaultPhone = getDefaultPhone();
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        if (!TextUtils.equals(callingPackage,
-                TelecomManager.from(defaultPhone.getContext()).getDefaultDialerPackage())) {
+        TelecomManager tm = defaultPhone.getContext().getSystemService(TelecomManager.class);
+        if (!TextUtils.equals(callingPackage, tm.getDefaultDialerPackage())) {
             TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                     mApp, PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle),
                     "setVoicemailRingtoneUri");
@@ -5875,8 +6825,8 @@
             PhoneAccountHandle phoneAccountHandle, boolean enabled) {
         final Phone defaultPhone = getDefaultPhone();
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        if (!TextUtils.equals(callingPackage,
-                TelecomManager.from(defaultPhone.getContext()).getDefaultDialerPackage())) {
+        TelecomManager tm = defaultPhone.getContext().getSystemService(TelecomManager.class);
+        if (!TextUtils.equals(callingPackage, tm.getDefaultDialerPackage())) {
             TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
                     mApp, PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle),
                     "setVoicemailVibrationEnabled");
@@ -6216,37 +7166,12 @@
     }
 
     @Override
-    public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err,
-            String[] args, ShellCallback callback, ResultReceiver resultReceiver)
-            throws RemoteException {
-        (new TelephonyShellCommand(this)).exec(this, in, out, err, args, callback, resultReceiver);
-    }
-
-    /**
-     * Get aggregated video call data usage since boot.
-     *
-     * @param perUidStats True if requesting data usage per uid, otherwise overall usage.
-     * @return Snapshot of video call data usage
-     * {@hide}
-     */
-    @Override
-    public NetworkStats getVtDataUsage(int subId, boolean perUidStats) {
-        mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_NETWORK_USAGE_HISTORY,
-                null);
-
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            // NetworkStatsService keeps tracking the active network interface and identity. It
-            // records the delta with the corresponding network identity.
-            // We just return the total video call data usage snapshot since boot.
-            Phone phone = getPhone(subId);
-            if (phone != null) {
-                return phone.getVtDataUsage(perUidStats);
-            }
-            return null;
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
+    public int handleShellCommand(@NonNull ParcelFileDescriptor in,
+            @NonNull ParcelFileDescriptor out, @NonNull ParcelFileDescriptor err,
+            @NonNull String[] args) {
+        return new TelephonyShellCommand(this, getDefaultPhone().getContext()).exec(
+                this, in.getFileDescriptor(), out.getFileDescriptor(),
+                        err.getFileDescriptor(), args);
     }
 
     /**
@@ -6276,9 +7201,10 @@
      * @hide
      */
     @Override
-    public List<ClientRequestStats> getClientRequestStats(String callingPackage, int subId) {
+    public List<ClientRequestStats> getClientRequestStats(String callingPackage,
+            String callingFeatureId, int subId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getClientRequestStats")) {
+                mApp, subId, callingPackage, callingFeatureId, "getClientRequestStats")) {
             return null;
         }
         Phone phone = getPhone(subId);
@@ -6389,14 +7315,15 @@
      * Get the current modem radio state for the given slot.
      * @param slotIndex slot index.
      * @param callingPackage the name of the package making the call.
+     * @param callingFeatureId The feature in the package.
      * @return the current radio power state from the modem
      */
     @Override
-    public int getRadioPowerState(int slotIndex, String callingPackage) {
+    public int getRadioPowerState(int slotIndex, String callingPackage, String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone != null) {
-            if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                    mApp, phone.getSubId(), callingPackage, "getRadioPowerState")) {
+            if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, phone.getSubId(),
+                    callingPackage, callingFeatureId, "getRadioPowerState")) {
                 return TelephonyManager.RADIO_POWER_UNAVAILABLE;
             }
 
@@ -6470,7 +7397,8 @@
 
     @Override
     public boolean isManualNetworkSelectionAllowed(int subId) {
-        TelephonyPermissions.enforeceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
                 mApp, subId, "isManualNetworkSelectionAllowed");
 
         boolean isAllowed = true;
@@ -6568,6 +7496,12 @@
                     }
                 }
 
+                if (cardId != null) {
+                    // if cardId is an ICCID, strip off trailing Fs before exposing to user
+                    // if cardId is an EID, it's all digits so this is fine
+                    cardId = IccUtils.stripTrailingFs(cardId);
+                }
+
                 int cardState = 0;
                 switch (slot.getCardState()) {
                     case CARDSTATE_ABSENT:
@@ -6624,23 +7558,6 @@
         }
     }
 
-    @Override
-    public void setRadioIndicationUpdateMode(int subId, int filters, int mode) {
-        enforceModifyPermission();
-        final Phone phone = getPhone(subId);
-        if (phone == null) {
-            loge("setRadioIndicationUpdateMode fails with invalid subId: " + subId);
-            return;
-        }
-
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            phone.setRadioIndicationUpdateMode(filters, mode);
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-    }
-
     /**
      * A test API to reload the UICC profile.
      *
@@ -6676,8 +7593,7 @@
      * Returns false if the mobile data is disabled by default, otherwise return true.
      */
     private boolean getDefaultDataEnabled() {
-        return "true".equalsIgnoreCase(
-                SystemProperties.get(DEFAULT_MOBILE_DATA_PROPERTY_NAME, "true"));
+        return TelephonyProperties.mobile_data().orElse(true);
     }
 
     /**
@@ -6688,8 +7604,7 @@
     private boolean getDefaultDataRoamingEnabled(int subId) {
         final CarrierConfigManager configMgr = (CarrierConfigManager)
                 mApp.getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        boolean isDataRoamingEnabled = "true".equalsIgnoreCase(
-                SystemProperties.get(DEFAULT_DATA_ROAMING_PROPERTY_NAME, "false"));
+        boolean isDataRoamingEnabled = TelephonyProperties.data_roaming().orElse(true);
         isDataRoamingEnabled |= configMgr.getConfigForSubId(subId).getBoolean(
                 CarrierConfigManager.KEY_CARRIER_DEFAULT_DATA_ROAMING_ENABLED_BOOL);
         return isDataRoamingEnabled;
@@ -6700,11 +7615,12 @@
      * not set, return {@link Phone#PREFERRED_NT_MODE}.
      */
     private int getDefaultNetworkType(int subId) {
-        return Integer.parseInt(
-                TelephonyManager.getTelephonyProperty(
-                        mSubscriptionController.getPhoneId(subId),
-                        DEFAULT_NETWORK_MODE_PROPERTY_NAME,
-                        String.valueOf(Phone.PREFERRED_NT_MODE)));
+        List<Integer> list = TelephonyProperties.default_network();
+        int phoneId = mSubscriptionController.getPhoneId(subId);
+        if (phoneId >= 0 && phoneId < list.size() && list.get(phoneId) != null) {
+            return list.get(phoneId);
+        }
+        return Phone.PREFERRED_NT_MODE;
     }
 
     @Override
@@ -6744,9 +7660,11 @@
     }
 
     @Override
-    public int getNumberOfModemsWithSimultaneousDataConnections(int subId, String callingPackage) {
+    public int getNumberOfModemsWithSimultaneousDataConnections(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "getNumberOfModemsWithSimultaneousDataConnections")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "getNumberOfModemsWithSimultaneousDataConnections")) {
             return -1;
         }
 
@@ -6760,7 +7678,8 @@
 
     @Override
     public int getCdmaRoamingMode(int subId) {
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+        TelephonyPermissions
+                .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
                 mApp, subId, "getCdmaRoamingMode");
 
         final long identity = Binder.clearCallingIdentity();
@@ -6797,80 +7716,12 @@
         }
     }
 
-    private void ensureUserRunning(int userId) {
-        if (!mUserManager.isUserRunning(userId)) {
-            throw new IllegalStateException("User " + userId + " does not exist or not running");
-        }
-    }
-
-    /**
-     * Returns a list of SMS apps on a given user.
-     *
-     * Only the shell user (UID 2000 or 0) can call it.
-     * Target user must be running.
-     */
-    @Override
-    public String[] getSmsApps(int userId) {
-        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "getSmsApps");
-        ensureUserRunning(userId);
-
-        final Collection<SmsApplicationData> apps =
-                SmsApplication.getApplicationCollectionAsUser(mApp, userId);
-
-        String[] ret = new String[apps.size()];
-        int i = 0;
-        for (SmsApplicationData app : apps) {
-            ret[i++] = app.mPackageName;
-        }
-        return ret;
-    }
-
-    /**
-     * Returns the default SMS app package name on a given user.
-     *
-     * Only the shell user (UID 2000 or 0) can call it.
-     * Target user must be running.
-     */
-    @Override
-    public String getDefaultSmsApp(int userId) {
-        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "getDefaultSmsApp");
-        ensureUserRunning(userId);
-
-        final ComponentName cn = SmsApplication.getDefaultSmsApplicationAsUser(mApp,
-                /* updateIfNeeded= */ true, userId);
-        return cn == null ? null : cn.getPackageName();
-    }
-
-    /**
-     * Set a package as the default SMS app on a given user.
-     *
-     * Only the shell user (UID 2000 or 0) can call it.
-     * Target user must be running.
-     */
-    @Override
-    public void setDefaultSmsApp(int userId, String packageName) {
-        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setDefaultSmsApp");
-        ensureUserRunning(userId);
-
-        boolean found = false;
-        for (String pkg : getSmsApps(userId)) {
-            if (TextUtils.equals(packageName, pkg)) {
-                found = true;
-                break;
-            }
-        }
-        if (!found) {
-            throw new IllegalArgumentException("Package " + packageName + " is not an SMS app");
-        }
-
-        SmsApplication.setDefaultApplicationAsUser(packageName, mApp, userId);
-    }
-
     @Override
     public Map<Integer, List<EmergencyNumber>> getEmergencyNumberList(
-            String callingPackage) {
+            String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, getDefaultSubscription(), callingPackage, "getEmergencyNumberList")) {
+                mApp, getDefaultSubscription(), callingPackage, callingFeatureId,
+                "getEmergencyNumberList")) {
             throw new SecurityException("Requires READ_PHONE_STATE permission.");
         }
         final long identity = Binder.clearCallingIdentity();
@@ -6962,6 +7813,74 @@
     }
 
     @Override
+    public int getEmergencyNumberDbVersion(int subId) {
+        enforceReadPrivilegedPermission("getEmergencyNumberDbVersion");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            final Phone phone = getPhone(subId);
+            if (phone == null) {
+                loge("getEmergencyNumberDbVersion fails with invalid subId: " + subId);
+                return TelephonyManager.INVALID_EMERGENCY_NUMBER_DB_VERSION;
+            }
+            return phone.getEmergencyNumberDbVersion();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void notifyOtaEmergencyNumberDbInstalled() {
+        enforceModifyPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            for (Phone phone: PhoneFactory.getPhones()) {
+                EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+                if (tracker != null) {
+                    tracker.updateOtaEmergencyNumberDatabase();
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void updateOtaEmergencyNumberDbFilePath(ParcelFileDescriptor otaParcelFileDescriptor) {
+        enforceActiveEmergencySessionPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            for (Phone phone: PhoneFactory.getPhones()) {
+                EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+                if (tracker != null) {
+                    tracker.updateOtaEmergencyNumberDbFilePath(otaParcelFileDescriptor);
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void resetOtaEmergencyNumberDbFilePath() {
+        enforceActiveEmergencySessionPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            for (Phone phone: PhoneFactory.getPhones()) {
+                EmergencyNumberTracker tracker = phone.getEmergencyNumberTracker();
+                if (tracker != null) {
+                    tracker.resetOtaEmergencyNumberDbFilePath();
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
     public List<String> getCertsFromCarrierPrivilegeAccessRules(int subId) {
         enforceReadPrivilegedPermission("getCertsFromCarrierPrivilegeAccessRules");
         Phone phone = getPhone(subId);
@@ -7005,12 +7924,14 @@
      * Whether a modem stack is enabled or not.
      */
     @Override
-    public boolean isModemEnabledForSlot(int slotIndex, String callingPackage) {
+    public boolean isModemEnabledForSlot(int slotIndex, String callingPackage,
+            String callingFeatureId) {
         Phone phone = PhoneFactory.getPhone(slotIndex);
         if (phone == null) return false;
 
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, phone.getSubId(), callingPackage, "isModemEnabledForSlot")) {
+                mApp, phone.getSubId(), callingPackage, callingFeatureId,
+                "isModemEnabledForSlot")) {
             throw new SecurityException("Requires READ_PHONE_STATE permission.");
         }
 
@@ -7042,9 +7963,10 @@
 
     @Override
     @TelephonyManager.IsMultiSimSupportedResult
-    public int isMultiSimSupported(String callingPackage) {
+    public int isMultiSimSupported(String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp,
-                getDefaultPhone().getSubId(), callingPackage, "isMultiSimSupported")) {
+                getDefaultPhone().getSubId(), callingPackage, callingFeatureId,
+                "isMultiSimSupported")) {
             return TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_HARDWARE;
         }
 
@@ -7113,14 +8035,43 @@
         }
     }
 
+    @Override
+    public boolean isApplicationOnUicc(int subId, int appType) {
+        enforceReadPrivilegedPermission("isApplicationOnUicc");
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            return false;
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            UiccCard uiccCard = phone.getUiccCard();
+            if (uiccCard == null) {
+                return false;
+            }
+            UiccProfile uiccProfile = uiccCard.getUiccProfile();
+            if (uiccProfile == null) {
+                return false;
+            }
+            if (TelephonyManager.APPTYPE_SIM <= appType
+                    && appType <= TelephonyManager.APPTYPE_ISIM) {
+                return uiccProfile.isApplicationOnIcc(AppType.values()[appType]);
+            }
+            return false;
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
     /**
      * Get whether making changes to modem configurations will trigger reboot.
      * Return value defaults to true.
      */
     @Override
-    public boolean doesSwitchMultiSimConfigTriggerReboot(int subId, String callingPackage) {
+    public boolean doesSwitchMultiSimConfigTriggerReboot(int subId, String callingPackage,
+            String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "doesSwitchMultiSimConfigTriggerReboot")) {
+                mApp, subId, callingPackage, callingFeatureId,
+                "doesSwitchMultiSimConfigTriggerReboot")) {
             return false;
         }
         final long identity = Binder.clearCallingIdentity();
@@ -7171,6 +8122,15 @@
     }
 
     /**
+     * Get the current calling package name.
+     * @return the current calling package name
+     */
+    @Override
+    public String getCurrentPackageName() {
+        return mApp.getPackageManager().getPackagesForUid(Binder.getCallingUid())[0];
+    }
+
+    /**
      * Return whether data is enabled for certain APN type. This will tell if framework will accept
      * corresponding network requests on a subId.
      *
@@ -7178,7 +8138,7 @@
      *  1) user data is turned on, or
      *  2) APN is un-metered for this subscription, or
      *  3) APN type is whitelisted. E.g. MMS is whitelisted if
-     *  {@link SubscriptionManager#setAlwaysAllowMmsData} is turned on.
+     *  {@link TelephonyManager#setAlwaysAllowMmsData} is turned on.
      *
      * @return whether data is allowed for a apn type.
      *
@@ -7186,10 +8146,8 @@
      */
     @Override
     public boolean isDataEnabledForApn(int apnType, int subId, String callingPackage) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, "isDataEnabledForApn")) {
-            throw new SecurityException("Needs READ_PHONE_STATE for isDataEnabledForApn");
-        }
+        enforceReadPrivilegedPermission("Needs READ_PRIVILEGED_PHONE_STATE for "
+                + "isDataEnabledForApn");
 
         // Now that all security checks passes, perform the operation as ourselves.
         final long identity = Binder.clearCallingIdentity();
@@ -7221,10 +8179,60 @@
     }
 
     @Override
-    public void enqueueSmsPickResult(String callingPackage, IIntegerConsumer pendingSubIdResult) {
+    public void setSystemSelectionChannels(List<RadioAccessSpecifier> specifiers,
+            int subscriptionId, IBooleanConsumer resultCallback) {
+        enforceModifyPermission();
+        long token = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subscriptionId);
+            if (phone == null) {
+                try {
+                    if (resultCallback != null) {
+                        resultCallback.accept(false);
+                    }
+                } catch (RemoteException e) {
+                    // ignore
+                }
+                return;
+            }
+            Pair<List<RadioAccessSpecifier>, Consumer<Boolean>> argument =
+                    Pair.create(specifiers, (x) -> {
+                        try {
+                            if (resultCallback != null) {
+                                resultCallback.accept(x);
+                            }
+                        } catch (RemoteException e) {
+                            // ignore
+                        }
+                    });
+            sendRequestAsync(CMD_SET_SYSTEM_SELECTION_CHANNELS, argument, phone, null);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    @Override
+    public boolean isMvnoMatched(int subId, int mvnoType, @NonNull String mvnoMatchData) {
+        enforceReadPrivilegedPermission("isMvnoMatched");
+        IccRecords iccRecords = UiccController.getInstance().getIccRecords(
+                SubscriptionManager.getPhoneId(subId), UiccController.APP_FAM_3GPP);
+        if (iccRecords == null) {
+            Log.d(LOG_TAG, "isMvnoMatched# IccRecords is null");
+            return false;
+        }
+        return ApnSettingUtils.mvnoMatches(iccRecords, mvnoType, mvnoMatchData);
+    }
+
+    @Override
+    public void enqueueSmsPickResult(String callingPackage, String callingAttributionTag,
+            IIntegerConsumer pendingSubIdResult) {
+        if (callingPackage == null) {
+            callingPackage = getCurrentPackageName();
+        }
         SmsPermissions permissions = new SmsPermissions(getDefaultPhone(), mApp,
                 (AppOpsManager) mApp.getSystemService(Context.APP_OPS_SERVICE));
-        if (!permissions.checkCallingCanSendSms(callingPackage, "Sending message")) {
+        if (!permissions.checkCallingCanSendSms(callingPackage, callingAttributionTag,
+                "Sending message")) {
             throw new SecurityException("Requires SEND_SMS permission to perform this operation");
         }
         PickSmsSubscriptionActivity.addPendingResult(pendingSubIdResult);
@@ -7292,4 +8300,199 @@
             Binder.restoreCallingIdentity(identity);
         }
     }
+
+    @Override
+    public boolean setAlwaysAllowMmsData(int subId, boolean alwaysAllow) {
+        enforceModifyPermission();
+
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) return false;
+
+            return phone.getDataEnabledSettings().setAlwaysAllowMmsData(alwaysAllow);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Updates whether conference event pacakge handling is enabled.
+     * @param isCepEnabled {@code true} if CEP handling is enabled (default), or {@code false}
+     *                                 otherwise.
+     */
+    @Override
+    public void setCepEnabled(boolean isCepEnabled) {
+        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setCepEnabled");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled);
+            for (Phone phone : PhoneFactory.getPhones()) {
+                Phone defaultPhone = phone.getImsPhone();
+                if (defaultPhone != null && defaultPhone.getPhoneType() == PHONE_TYPE_IMS) {
+                    ImsPhone imsPhone = (ImsPhone) defaultPhone;
+                    ImsPhoneCallTracker imsPhoneCallTracker =
+                            (ImsPhoneCallTracker) imsPhone.getCallTracker();
+                    imsPhoneCallTracker.setConferenceEventPackageEnabled(isCepEnabled);
+                    Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled + ", for imsPhone "
+                            + imsPhone.getMsisdn());
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Notify that an RCS autoconfiguration XML file has been received for provisioning.
+     *
+     * @param config       The XML file to be read. ASCII/UTF8 encoded text if not compressed.
+     * @param isCompressed The XML file is compressed in gzip format and must be decompressed
+     *                     before being read.
+     */
+    @Override
+    public void notifyRcsAutoConfigurationReceived(int subId, @NonNull byte[] config, boolean
+            isCompressed) {
+        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+                mApp, subId, "notifyRcsAutoConfigurationReceived");
+        try {
+            IImsConfig configBinder = getImsConfig(getSlotIndex(subId), ImsFeature.FEATURE_RCS);
+            if (configBinder == null) {
+                Rlog.e(LOG_TAG, "null result for getImsConfig");
+            } else {
+                configBinder.notifyRcsAutoConfigurationReceived(config, isCompressed);
+            }
+        } catch (RemoteException e) {
+            Rlog.e(LOG_TAG, "fail to getImsConfig " + e.getMessage());
+        }
+    }
+
+    @Override
+    public boolean isIccLockEnabled(int subId) {
+        enforceReadPrivilegedPermission("isIccLockEnabled");
+
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone != null && phone.getIccCard() != null) {
+                return phone.getIccCard().getIccLockEnabled();
+            } else {
+                return false;
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    /**
+     * Set the ICC pin lock enabled or disabled.
+     *
+     * @return an integer representing the status of IccLock enabled or disabled in the following
+     * three cases:
+     *   - {@link TelephonyManager#CHANGE_ICC_LOCK_SUCCESS} if enabled or disabled IccLock
+     *   successfully.
+     *   - Positive number and zero for remaining password attempts.
+     *   - Negative number for other failure cases (such like enabling/disabling PIN failed).
+     *
+     */
+    @Override
+    public int setIccLockEnabled(int subId, boolean enabled, String password) {
+        enforceModifyPermission();
+
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            return 0;
+        }
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            int attemptsRemaining = (int) sendRequest(CMD_SET_ICC_LOCK_ENABLED,
+                    new Pair<Boolean, String>(enabled, password), phone, null);
+            return attemptsRemaining;
+
+        } catch (Exception e) {
+            Log.e(LOG_TAG, "setIccLockEnabled. Exception e =" + e);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+        return 0;
+    }
+
+    /**
+     * Change the ICC password used in ICC pin lock.
+     *
+     * @return an integer representing the status of IccLock changed in the following three cases:
+     *   - {@link TelephonyManager#CHANGE_ICC_LOCK_SUCCESS} if changed IccLock successfully.
+     *   - Positive number and zero for remaining password attempts.
+     *   - Negative number for other failure cases (such like enabling/disabling PIN failed).
+     *
+     */
+    @Override
+    public int changeIccLockPassword(int subId, String oldPassword, String newPassword) {
+        enforceModifyPermission();
+
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            return 0;
+        }
+        // Now that all security checks passes, perform the operation as ourselves.
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            int attemptsRemaining = (int) sendRequest(CMD_CHANGE_ICC_LOCK_PASSWORD,
+                    new Pair<String, String>(oldPassword, newPassword), phone, null);
+            return attemptsRemaining;
+
+        } catch (Exception e) {
+            Log.e(LOG_TAG, "changeIccLockPassword. Exception e =" + e);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+        return 0;
+    }
+
+    /**
+     * Request for receiving user activity notification
+     */
+    @Override
+    public void requestUserActivityNotification() {
+        if (!mNotifyUserActivity.get()
+                && !mMainThreadHandler.hasMessages(MSG_NOTIFY_USER_ACTIVITY)) {
+            mNotifyUserActivity.set(true);
+        }
+    }
+
+    /**
+     * Called when userActivity is signalled in the power manager.
+     * This is safe to call from any thread, with any window manager locks held or not.
+     */
+    @Override
+    public void userActivity() {
+        // ***************************************
+        // *  Inherited from PhoneWindowManager  *
+        // ***************************************
+        // THIS IS CALLED FROM DEEP IN THE POWER MANAGER
+        // WITH ITS LOCKS HELD.
+        //
+        // This code must be VERY careful about the locks
+        // it acquires.
+        // In fact, the current code acquires way too many,
+        // and probably has lurking deadlocks.
+
+        if (Binder.getCallingUid() != Process.SYSTEM_UID) {
+            throw new SecurityException("Only the OS may call notifyUserActivity()");
+        }
+
+        if (mNotifyUserActivity.getAndSet(false)) {
+            mMainThreadHandler.sendEmptyMessageDelayed(MSG_NOTIFY_USER_ACTIVITY,
+                    USER_ACTIVITY_NOTIFICATION_DELAY);
+        }
+    }
+
+    @Override
+    public boolean canConnectTo5GInDsdsMode() {
+        return mApp.getResources().getBoolean(R.bool.config_5g_connection_in_dsds_mode);
+    }
 }
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index 20c8276..95cb785 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -43,10 +43,7 @@
 import android.widget.Toast;
 
 import com.android.internal.telephony.Call;
-import com.android.internal.telephony.CallManager;
 import com.android.internal.telephony.CallStateException;
-import com.android.internal.telephony.CallerInfo;
-import com.android.internal.telephony.CallerInfoAsyncQuery;
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.IccCard;
 import com.android.internal.telephony.MmiCode;
@@ -54,10 +51,9 @@
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.TelephonyCapabilities;
-import com.android.phone.CallGatewayManager.RawGatewayInfo;
 import com.android.phone.settings.SuppServicesUiUtil;
+import com.android.telephony.Rlog;
 
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -91,7 +87,6 @@
     private static final int THEME = com.android.internal.R.style.Theme_DeviceDefault_Dialog_Alert;
 
     /** USSD information used to aggregate all USSD messages */
-    private static AlertDialog sUssdDialog = null;
     private static StringBuilder sUssdMsg = new StringBuilder();
 
     private static final ComponentName PSTN_CONNECTION_SERVICE_COMPONENT =
@@ -131,79 +126,35 @@
     }
 
     /**
-     * @see placeCall below
-     */
-    public static int placeCall(Context context, Phone phone, String number, Uri contactRef,
-            boolean isEmergencyCall) {
-        return placeCall(context, phone, number, contactRef, isEmergencyCall,
-                CallGatewayManager.EMPTY_INFO, null);
-    }
-
-    /**
      * Dial the number using the phone passed in.
      *
-     * If the connection is establised, this method issues a sync call
-     * that may block to query the caller info.
-     * TODO: Change the logic to use the async query.
-     *
      * @param context To perform the CallerInfo query.
      * @param phone the Phone object.
      * @param number to be dialed as requested by the user. This is
      * NOT the phone number to connect to. It is used only to build the
      * call card and to update the call log. See above for restrictions.
-     * @param contactRef that triggered the call. Typically a 'tel:'
-     * uri but can also be a 'content://contacts' one.
-     * @param isEmergencyCall indicates that whether or not this is an
-     * emergency call
-     * @param gatewayUri Is the address used to setup the connection, null
-     * if not using a gateway
-     * @param callGateway Class for setting gateway data on a successful call.
      *
      * @return either CALL_STATUS_DIALED or CALL_STATUS_FAILED
      */
-    public static int placeCall(Context context, Phone phone, String number, Uri contactRef,
-            boolean isEmergencyCall, RawGatewayInfo gatewayInfo, CallGatewayManager callGateway) {
-        final Uri gatewayUri = gatewayInfo.gatewayUri;
+    public static int placeOtaspCall(Context context, Phone phone, String number) {
+        final Uri gatewayUri = null;
 
         if (VDBG) {
             log("placeCall()... number: '" + number + "'"
-                    + ", GW:'" + gatewayUri + "'"
-                    + ", contactRef:" + contactRef
-                    + ", isEmergencyCall: " + isEmergencyCall);
+                    + ", GW:'" + gatewayUri + "'");
         } else {
             log("placeCall()... number: " + toLogSafePhoneNumber(number)
-                    + ", GW: " + (gatewayUri != null ? "non-null" : "null")
-                    + ", emergency? " + isEmergencyCall);
+                    + ", GW: " + (gatewayUri != null ? "non-null" : "null"));
         }
         final PhoneGlobals app = PhoneGlobals.getInstance();
 
         boolean useGateway = false;
-        if (null != gatewayUri &&
-            !isEmergencyCall &&
-            PhoneUtils.isRoutableViaGateway(number)) {  // Filter out MMI, OTA and other codes.
-            useGateway = true;
-        }
+        Uri contactRef = null;
 
         int status = CALL_STATUS_DIALED;
         Connection connection;
         String numberToDial;
-        if (useGateway) {
-            // TODO: 'tel' should be a constant defined in framework base
-            // somewhere (it is in webkit.)
-            if (null == gatewayUri || !PhoneAccount.SCHEME_TEL.equals(gatewayUri.getScheme())) {
-                Log.e(LOG_TAG, "Unsupported URL:" + gatewayUri);
-                return CALL_STATUS_FAILED;
-            }
-
-            // We can use getSchemeSpecificPart because we don't allow #
-            // in the gateway numbers (treated a fragment delim.) However
-            // if we allow more complex gateway numbers sequence (with
-            // passwords or whatnot) that use #, this may break.
-            // TODO: Need to support MMI codes.
-            numberToDial = gatewayUri.getSchemeSpecificPart();
-        } else {
-            numberToDial = number;
-        }
+        numberToDial = number;
 
         try {
             connection = app.mCM.dial(phone, numberToDial, VideoProfile.STATE_AUDIO_ONLY);
@@ -228,33 +179,6 @@
             if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
                 updateCdmaCallStateOnNewOutgoingCall(app, connection);
             }
-
-            if (gatewayUri == null) {
-                // phone.dial() succeeded: we're now in a normal phone call.
-                // attach the URI to the CallerInfo Object if it is there,
-                // otherwise just attach the Uri Reference.
-                // if the uri does not have a "content" scheme, then we treat
-                // it as if it does NOT have a unique reference.
-                String content = context.getContentResolver().SCHEME_CONTENT;
-                if ((contactRef != null) && (contactRef.getScheme().equals(content))) {
-                    Object userDataObject = connection.getUserData();
-                    if (userDataObject == null) {
-                        connection.setUserData(contactRef);
-                    } else {
-                        // TODO: This branch is dead code, we have
-                        // just created the connection which has
-                        // no user data (null) by default.
-                        if (userDataObject instanceof CallerInfo) {
-                        ((CallerInfo) userDataObject).contactRefUri = contactRef;
-                        } else {
-                        ((CallerInfoToken) userDataObject).currentInfo.contactRefUri =
-                            contactRef;
-                        }
-                    }
-                }
-            }
-
-            startGetCallerInfo(context, connection, null, null, gatewayInfo);
         }
 
         return status;
@@ -299,7 +223,7 @@
                                           MmiCode mmiCode,
                                           Message buttonCallbackMessage,
                                           Dialog previousAlert) {
-        log("displayMMIInitiate: " + android.telecom.Log.pii(mmiCode.toString()));
+        log("displayMMIInitiate: " + Rlog.pii(LOG_TAG, mmiCode.toString()));
         if (previousAlert != null) {
             previousAlert.dismiss();
         }
@@ -448,7 +372,7 @@
             app.setPukEntryProgressDialog(pd);
 
         } else if ((app.getPUKEntryActivity() != null) && (state == MmiCode.State.FAILED)) {
-            createUssdDialog(app, context, text,
+            createUssdDialog(app, context, text, phone,
                     WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
             // In case of failure to unlock, we'll need to reset the
             // PUK unlock activity, so that the user may try again.
@@ -463,7 +387,7 @@
             // A USSD in a pending state means that it is still
             // interacting with the user.
             if (state != MmiCode.State.PENDING) {
-                createUssdDialog(app, context, text,
+                createUssdDialog(app, context, text, phone,
                         WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
             } else {
                 log("displayMMIComplete: USSD code has requested user input. Constructing input "
@@ -584,10 +508,11 @@
      * @param app This is {@link PhoneGlobals}
      * @param context Context to get strings.
      * @param text This is message's result.
+     * @param phone This is phone to create sssd dialog.
      * @param windowType The new window type. {@link WindowManager.LayoutParams}.
      */
     public static void createUssdDialog(PhoneGlobals app, Context context, CharSequence text,
-            int windowType) {
+            Phone phone, int windowType) {
         log("displayMMIComplete: MMI code has finished running.");
 
         log("displayMMIComplete: Extended NW displayMMIInitiate (" + text + ")");
@@ -598,32 +523,36 @@
         // displaying system alert dialog on the screen instead of
         // using another activity to display the message.  This
         // places the message at the forefront of the UI.
+        AlertDialog ussdDialog = new AlertDialog.Builder(context, THEME)
+                .setPositiveButton(R.string.ok, null)
+                .setCancelable(true)
+                .setOnDismissListener(new DialogInterface.OnDismissListener() {
+                    @Override
+                    public void onDismiss(DialogInterface dialog) {
+                        sUssdMsg.setLength(0);
+                    }
+                })
+                .create();
 
-        if (sUssdDialog == null) {
-            sUssdDialog = new AlertDialog.Builder(context, THEME)
-                    .setPositiveButton(R.string.ok, null)
-                    .setCancelable(true)
-                    .setOnDismissListener(new DialogInterface.OnDismissListener() {
-                        @Override
-                        public void onDismiss(DialogInterface dialog) {
-                            sUssdMsg.setLength(0);
-                        }
-                    })
-                    .create();
+        ussdDialog.getWindow().setType(windowType);
+        ussdDialog.getWindow().addFlags(
+                WindowManager.LayoutParams.FLAG_DIM_BEHIND);
 
-            sUssdDialog.getWindow().setType(windowType);
-            sUssdDialog.getWindow().addFlags(
-                    WindowManager.LayoutParams.FLAG_DIM_BEHIND);
-        }
         if (sUssdMsg.length() != 0) {
-            sUssdMsg
-                    .insert(0, "\n")
+            sUssdMsg.insert(0, "\n")
                     .insert(0, app.getResources().getString(R.string.ussd_dialog_sep))
                     .insert(0, "\n");
         }
+        if (phone != null && phone.getCarrierName() != null) {
+            ussdDialog.setTitle(app.getResources().getString(R.string.carrier_mmi_msg_title,
+                    phone.getCarrierName()));
+        } else {
+            ussdDialog
+                    .setTitle(app.getResources().getString(R.string.default_carrier_mmi_msg_title));
+        }
         sUssdMsg.insert(0, text);
-        sUssdDialog.setMessage(sUssdMsg.toString());
-        sUssdDialog.show();
+        ussdDialog.setMessage(sUssdMsg.toString());
+        ussdDialog.show();
     }
 
     /**
@@ -654,533 +583,12 @@
         return canceled;
     }
 
-    /**
-     * Returns the caller-id info corresponding to the specified Connection.
-     * (This is just a simple wrapper around CallerInfo.getCallerInfo(): we
-     * extract a phone number from the specified Connection, and feed that
-     * number into CallerInfo.getCallerInfo().)
-     *
-     * The returned CallerInfo may be null in certain error cases, like if the
-     * specified Connection was null, or if we weren't able to get a valid
-     * phone number from the Connection.
-     *
-     * Finally, if the getCallerInfo() call did succeed, we save the resulting
-     * CallerInfo object in the "userData" field of the Connection.
-     *
-     * NOTE: This API should be avoided, with preference given to the
-     * asynchronous startGetCallerInfo API.
-     */
-    static CallerInfo getCallerInfo(Context context, Connection c) {
-        CallerInfo info = null;
-
-        if (c != null) {
-            //See if there is a URI attached.  If there is, this means
-            //that there is no CallerInfo queried yet, so we'll need to
-            //replace the URI with a full CallerInfo object.
-            Object userDataObject = c.getUserData();
-            if (userDataObject instanceof Uri) {
-                info = CallerInfo.getCallerInfo(context, (Uri) userDataObject);
-                if (info != null) {
-                    c.setUserData(info);
-                }
-            } else {
-                if (userDataObject instanceof CallerInfoToken) {
-                    //temporary result, while query is running
-                    info = ((CallerInfoToken) userDataObject).currentInfo;
-                } else {
-                    //final query result
-                    info = (CallerInfo) userDataObject;
-                }
-                if (info == null) {
-                    // No URI, or Existing CallerInfo, so we'll have to make do with
-                    // querying a new CallerInfo using the connection's phone number.
-                    String number = c.getAddress();
-
-                    if (DBG) log("getCallerInfo: number = " + toLogSafePhoneNumber(number));
-
-                    if (!TextUtils.isEmpty(number)) {
-                        info = CallerInfo.getCallerInfo(context, number);
-                        if (info != null) {
-                            c.setUserData(info);
-                        }
-                    }
-                }
-            }
-        }
-        return info;
-    }
-
-    /**
-     * Class returned by the startGetCallerInfo call to package a temporary
-     * CallerInfo Object, to be superceded by the CallerInfo Object passed
-     * into the listener when the query with token mAsyncQueryToken is complete.
-     */
-    public static class CallerInfoToken {
-        /**indicates that there will no longer be updates to this request.*/
-        public boolean isFinal;
-
-        public CallerInfo currentInfo;
-        public CallerInfoAsyncQuery asyncQuery;
-    }
-
-    /**
-     * place a temporary callerinfo object in the hands of the caller and notify
-     * caller when the actual query is done.
-     */
-    static CallerInfoToken startGetCallerInfo(Context context, Connection c,
-            CallerInfoAsyncQuery.OnQueryCompleteListener listener, Object cookie,
-            RawGatewayInfo info) {
-        CallerInfoToken cit;
-
-        if (c == null) {
-            //TODO: perhaps throw an exception here.
-            cit = new CallerInfoToken();
-            cit.asyncQuery = null;
-            return cit;
-        }
-
-        Object userDataObject = c.getUserData();
-
-        // There are now 3 states for the Connection's userData object:
-        //
-        //   (1) Uri - query has not been executed yet
-        //
-        //   (2) CallerInfoToken - query is executing, but has not completed.
-        //
-        //   (3) CallerInfo - query has executed.
-        //
-        // In each case we have slightly different behaviour:
-        //   1. If the query has not been executed yet (Uri or null), we start
-        //      query execution asynchronously, and note it by attaching a
-        //      CallerInfoToken as the userData.
-        //   2. If the query is executing (CallerInfoToken), we've essentially
-        //      reached a state where we've received multiple requests for the
-        //      same callerInfo.  That means that once the query is complete,
-        //      we'll need to execute the additional listener requested.
-        //   3. If the query has already been executed (CallerInfo), we just
-        //      return the CallerInfo object as expected.
-        //   4. Regarding isFinal - there are cases where the CallerInfo object
-        //      will not be attached, like when the number is empty (caller id
-        //      blocking).  This flag is used to indicate that the
-        //      CallerInfoToken object is going to be permanent since no
-        //      query results will be returned.  In the case where a query
-        //      has been completed, this flag is used to indicate to the caller
-        //      that the data will not be updated since it is valid.
-        //
-        //      Note: For the case where a number is NOT retrievable, we leave
-        //      the CallerInfo as null in the CallerInfoToken.  This is
-        //      something of a departure from the original code, since the old
-        //      code manufactured a CallerInfo object regardless of the query
-        //      outcome.  From now on, we will append an empty CallerInfo
-        //      object, to mirror previous behaviour, and to avoid Null Pointer
-        //      Exceptions.
-
-        if (userDataObject instanceof Uri) {
-            // State (1): query has not been executed yet
-
-            //create a dummy callerinfo, populate with what we know from URI.
-            cit = new CallerInfoToken();
-            cit.currentInfo = new CallerInfo();
-            cit.asyncQuery = CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context,
-                    (Uri) userDataObject, sCallerInfoQueryListener, c);
-            cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
-            cit.isFinal = false;
-
-            c.setUserData(cit);
-
-            if (DBG) log("startGetCallerInfo: query based on Uri: " + userDataObject);
-
-        } else if (userDataObject == null) {
-            // No URI, or Existing CallerInfo, so we'll have to make do with
-            // querying a new CallerInfo using the connection's phone number.
-            String number = c.getAddress();
-
-            if (info != null && info != CallGatewayManager.EMPTY_INFO) {
-                // Gateway number, the connection number is actually the gateway number.
-                // need to lookup via dialed number.
-                number = info.trueNumber;
-            }
-
-            if (DBG) {
-                log("PhoneUtils.startGetCallerInfo: new query for phone number...");
-                log("- number (address): " + toLogSafePhoneNumber(number));
-                log("- c: " + c);
-                log("- phone: " + c.getCall().getPhone());
-                int phoneType = c.getCall().getPhone().getPhoneType();
-                log("- phoneType: " + phoneType);
-                switch (phoneType) {
-                    case PhoneConstants.PHONE_TYPE_NONE: log("  ==> PHONE_TYPE_NONE"); break;
-                    case PhoneConstants.PHONE_TYPE_GSM: log("  ==> PHONE_TYPE_GSM"); break;
-                    case PhoneConstants.PHONE_TYPE_IMS: log("  ==> PHONE_TYPE_IMS"); break;
-                    case PhoneConstants.PHONE_TYPE_CDMA: log("  ==> PHONE_TYPE_CDMA"); break;
-                    case PhoneConstants.PHONE_TYPE_SIP: log("  ==> PHONE_TYPE_SIP"); break;
-                    case PhoneConstants.PHONE_TYPE_THIRD_PARTY:
-                        log("  ==> PHONE_TYPE_THIRD_PARTY");
-                        break;
-                    default: log("  ==> Unknown phone type"); break;
-                }
-            }
-
-            cit = new CallerInfoToken();
-            cit.currentInfo = new CallerInfo();
-
-            // Store CNAP information retrieved from the Connection (we want to do this
-            // here regardless of whether the number is empty or not).
-            cit.currentInfo.cnapName =  c.getCnapName();
-            cit.currentInfo.name = cit.currentInfo.cnapName; // This can still get overwritten
-                                                             // by ContactInfo later
-            cit.currentInfo.numberPresentation = c.getNumberPresentation();
-            cit.currentInfo.namePresentation = c.getCnapNamePresentation();
-
-            if (VDBG) {
-                log("startGetCallerInfo: number = " + number);
-                log("startGetCallerInfo: CNAP Info from FW(1): name="
-                    + cit.currentInfo.cnapName
-                    + ", Name/Number Pres=" + cit.currentInfo.numberPresentation);
-            }
-
-            // handling case where number is null (caller id hidden) as well.
-            if (!TextUtils.isEmpty(number)) {
-                // Check for special CNAP cases and modify the CallerInfo accordingly
-                // to be sure we keep the right information to display/log later
-                number = modifyForSpecialCnapCases(context, cit.currentInfo, number,
-                        cit.currentInfo.numberPresentation);
-
-                cit.currentInfo.phoneNumber = number;
-                // For scenarios where we may receive a valid number from the network but a
-                // restricted/unavailable presentation, we do not want to perform a contact query
-                // (see note on isFinal above). So we set isFinal to true here as well.
-                if (cit.currentInfo.numberPresentation != PhoneConstants.PRESENTATION_ALLOWED) {
-                    cit.isFinal = true;
-                } else {
-                    if (DBG) log("==> Actually starting CallerInfoAsyncQuery.startQuery()...");
-                    cit.asyncQuery = CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context,
-                            number, sCallerInfoQueryListener, c);
-                    cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
-                    cit.isFinal = false;
-                }
-            } else {
-                // This is the case where we are querying on a number that
-                // is null or empty, like a caller whose caller id is
-                // blocked or empty (CLIR).  The previous behaviour was to
-                // throw a null CallerInfo object back to the user, but
-                // this departure is somewhat cleaner.
-                if (DBG) log("startGetCallerInfo: No query to start, send trivial reply.");
-                cit.isFinal = true; // please see note on isFinal, above.
-            }
-
-            c.setUserData(cit);
-
-            if (DBG) {
-                log("startGetCallerInfo: query based on number: " + toLogSafePhoneNumber(number));
-            }
-
-        } else if (userDataObject instanceof CallerInfoToken) {
-            // State (2): query is executing, but has not completed.
-
-            // just tack on this listener to the queue.
-            cit = (CallerInfoToken) userDataObject;
-
-            // handling case where number is null (caller id hidden) as well.
-            if (cit.asyncQuery != null) {
-                cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
-
-                if (DBG) log("startGetCallerInfo: query already running, adding listener: " +
-                        listener.getClass().toString());
-            } else {
-                // handling case where number/name gets updated later on by the network
-                String updatedNumber = c.getAddress();
-
-                if (info != null) {
-                    // Gateway number, the connection number is actually the gateway number.
-                    // need to lookup via dialed number.
-                    updatedNumber = info.trueNumber;
-                }
-
-                if (DBG) {
-                    log("startGetCallerInfo: updatedNumber initially = "
-                            + toLogSafePhoneNumber(updatedNumber));
-                }
-                if (!TextUtils.isEmpty(updatedNumber)) {
-                    // Store CNAP information retrieved from the Connection
-                    cit.currentInfo.cnapName =  c.getCnapName();
-                    // This can still get overwritten by ContactInfo
-                    cit.currentInfo.name = cit.currentInfo.cnapName;
-                    cit.currentInfo.numberPresentation = c.getNumberPresentation();
-                    cit.currentInfo.namePresentation = c.getCnapNamePresentation();
-
-                    updatedNumber = modifyForSpecialCnapCases(context, cit.currentInfo,
-                            updatedNumber, cit.currentInfo.numberPresentation);
-
-                    cit.currentInfo.phoneNumber = updatedNumber;
-                    if (DBG) {
-                        log("startGetCallerInfo: updatedNumber="
-                                + toLogSafePhoneNumber(updatedNumber));
-                    }
-                    if (VDBG) {
-                        log("startGetCallerInfo: CNAP Info from FW(2): name="
-                                + cit.currentInfo.cnapName
-                                + ", Name/Number Pres=" + cit.currentInfo.numberPresentation);
-                    } else if (DBG) {
-                        log("startGetCallerInfo: CNAP Info from FW(2)");
-                    }
-                    // For scenarios where we may receive a valid number from the network but a
-                    // restricted/unavailable presentation, we do not want to perform a contact query
-                    // (see note on isFinal above). So we set isFinal to true here as well.
-                    if (cit.currentInfo.numberPresentation != PhoneConstants.PRESENTATION_ALLOWED) {
-                        cit.isFinal = true;
-                    } else {
-                        cit.asyncQuery = CallerInfoAsyncQuery.startQuery(QUERY_TOKEN, context,
-                                updatedNumber, sCallerInfoQueryListener, c);
-                        cit.asyncQuery.addQueryListener(QUERY_TOKEN, listener, cookie);
-                        cit.isFinal = false;
-                    }
-                } else {
-                    if (DBG) log("startGetCallerInfo: No query to attach to, send trivial reply.");
-                    if (cit.currentInfo == null) {
-                        cit.currentInfo = new CallerInfo();
-                    }
-                    // Store CNAP information retrieved from the Connection
-                    cit.currentInfo.cnapName = c.getCnapName();  // This can still get
-                                                                 // overwritten by ContactInfo
-                    cit.currentInfo.name = cit.currentInfo.cnapName;
-                    cit.currentInfo.numberPresentation = c.getNumberPresentation();
-                    cit.currentInfo.namePresentation = c.getCnapNamePresentation();
-
-                    if (VDBG) {
-                        log("startGetCallerInfo: CNAP Info from FW(3): name="
-                                + cit.currentInfo.cnapName
-                                + ", Name/Number Pres=" + cit.currentInfo.numberPresentation);
-                    } else if (DBG) {
-                        log("startGetCallerInfo: CNAP Info from FW(3)");
-                    }
-                    cit.isFinal = true; // please see note on isFinal, above.
-                }
-            }
-        } else {
-            // State (3): query is complete.
-
-            // The connection's userDataObject is a full-fledged
-            // CallerInfo instance.  Wrap it in a CallerInfoToken and
-            // return it to the user.
-
-            cit = new CallerInfoToken();
-            cit.currentInfo = (CallerInfo) userDataObject;
-            cit.asyncQuery = null;
-            cit.isFinal = true;
-            // since the query is already done, call the listener.
-            if (DBG) log("startGetCallerInfo: query already done, returning CallerInfo");
-            if (DBG) log("==> cit.currentInfo = " + cit.currentInfo);
-        }
-        return cit;
-    }
-
-    /**
-     * Static CallerInfoAsyncQuery.OnQueryCompleteListener instance that
-     * we use with all our CallerInfoAsyncQuery.startQuery() requests.
-     */
-    private static final int QUERY_TOKEN = -1;
-    static CallerInfoAsyncQuery.OnQueryCompleteListener sCallerInfoQueryListener =
-        new CallerInfoAsyncQuery.OnQueryCompleteListener () {
-            /**
-             * When the query completes, we stash the resulting CallerInfo
-             * object away in the Connection's "userData" (where it will
-             * later be retrieved by the in-call UI.)
-             */
-            public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
-                if (DBG) log("query complete, updating connection.userdata");
-                Connection conn = (Connection) cookie;
-
-                // Added a check if CallerInfo is coming from ContactInfo or from Connection.
-                // If no ContactInfo, then we want to use CNAP information coming from network
-                if (DBG) log("- onQueryComplete: CallerInfo:" + ci);
-                if (ci.contactExists || ci.isEmergencyNumber() || ci.isVoiceMailNumber()) {
-                    // If the number presentation has not been set by
-                    // the ContactInfo, use the one from the
-                    // connection.
-
-                    // TODO: Need a new util method to merge the info
-                    // from the Connection in a CallerInfo object.
-                    // Here 'ci' is a new CallerInfo instance read
-                    // from the DB. It has lost all the connection
-                    // info preset before the query (see PhoneUtils
-                    // line 1334). We should have a method to merge
-                    // back into this new instance the info from the
-                    // connection object not set by the DB. If the
-                    // Connection already has a CallerInfo instance in
-                    // userData, then we could use this instance to
-                    // fill 'ci' in. The same routine could be used in
-                    // PhoneUtils.
-                    if (0 == ci.numberPresentation) {
-                        ci.numberPresentation = conn.getNumberPresentation();
-                    }
-                } else {
-                    // No matching contact was found for this number.
-                    // Return a new CallerInfo based solely on the CNAP
-                    // information from the network.
-
-                    CallerInfo newCi = getCallerInfo(null, conn);
-
-                    // ...but copy over the (few) things we care about
-                    // from the original CallerInfo object:
-                    if (newCi != null) {
-                        newCi.phoneNumber = ci.phoneNumber; // To get formatted phone number
-                        newCi.geoDescription = ci.geoDescription; // To get geo description string
-                        ci = newCi;
-                    }
-                }
-
-                if (DBG) log("==> Stashing CallerInfo " + ci + " into the connection...");
-                conn.setUserData(ci);
-            }
-        };
-
-
-    /**
-     * Returns a single "name" for the specified given a CallerInfo object.
-     * If the name is null, return defaultString as the default value, usually
-     * context.getString(R.string.unknown).
-     */
-    static String getCompactNameFromCallerInfo(CallerInfo ci, Context context) {
-        if (DBG) log("getCompactNameFromCallerInfo: info = " + ci);
-
-        String compactName = null;
-        if (ci != null) {
-            if (TextUtils.isEmpty(ci.name)) {
-                // Perform any modifications for special CNAP cases to
-                // the phone number being displayed, if applicable.
-                compactName = modifyForSpecialCnapCases(context, ci, ci.phoneNumber,
-                                                        ci.numberPresentation);
-            } else {
-                // Don't call modifyForSpecialCnapCases on regular name. See b/2160795.
-                compactName = ci.name;
-            }
-        }
-
-        if ((compactName == null) || (TextUtils.isEmpty(compactName))) {
-            // If we're still null/empty here, then check if we have a presentation
-            // string that takes precedence that we could return, otherwise display
-            // "unknown" string.
-            if (ci != null && ci.numberPresentation == PhoneConstants.PRESENTATION_RESTRICTED) {
-                compactName = context.getString(R.string.private_num);
-            } else if (ci != null && ci.numberPresentation == PhoneConstants.PRESENTATION_PAYPHONE) {
-                compactName = context.getString(R.string.payphone);
-            } else {
-                compactName = context.getString(R.string.unknown);
-            }
-        }
-        if (VDBG) log("getCompactNameFromCallerInfo: compactName=" + compactName);
-        return compactName;
-    }
-
-    static boolean isInEmergencyCall(CallManager cm) {
-        Call fgCall = cm.getActiveFgCall();
-        // isIdle includes checks for the DISCONNECTING/DISCONNECTED state.
-        if(!fgCall.isIdle()) {
-            for (Connection cn : fgCall.getConnections()) {
-                if (PhoneNumberUtils.isLocalEmergencyNumber(PhoneGlobals.getInstance(),
-                        cn.getAddress())) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
 
     //
     // Misc UI policy helper functions
     //
 
     /**
-     * Based on the input CNAP number string,
-     * @return _RESTRICTED or _UNKNOWN for all the special CNAP strings.
-     * Otherwise, return CNAP_SPECIAL_CASE_NO.
-     */
-    private static int checkCnapSpecialCases(String n) {
-        if (n.equals("PRIVATE") ||
-                n.equals("P") ||
-                n.equals("RES")) {
-            if (DBG) log("checkCnapSpecialCases, PRIVATE string: " + n);
-            return PhoneConstants.PRESENTATION_RESTRICTED;
-        } else if (n.equals("UNAVAILABLE") ||
-                n.equals("UNKNOWN") ||
-                n.equals("UNA") ||
-                n.equals("U")) {
-            if (DBG) log("checkCnapSpecialCases, UNKNOWN string: " + n);
-            return PhoneConstants.PRESENTATION_UNKNOWN;
-        } else {
-            if (DBG) log("checkCnapSpecialCases, normal str. number: " + n);
-            return CNAP_SPECIAL_CASE_NO;
-        }
-    }
-
-    /**
-     * Handles certain "corner cases" for CNAP. When we receive weird phone numbers
-     * from the network to indicate different number presentations, convert them to
-     * expected number and presentation values within the CallerInfo object.
-     * @param number number we use to verify if we are in a corner case
-     * @param presentation presentation value used to verify if we are in a corner case
-     * @return the new String that should be used for the phone number
-     */
-    /* package */ static String modifyForSpecialCnapCases(Context context, CallerInfo ci,
-            String number, int presentation) {
-        // Obviously we return number if ci == null, but still return number if
-        // number == null, because in these cases the correct string will still be
-        // displayed/logged after this function returns based on the presentation value.
-        if (ci == null || number == null) return number;
-
-        if (DBG) {
-            log("modifyForSpecialCnapCases: initially, number="
-                    + toLogSafePhoneNumber(number)
-                    + ", presentation=" + presentation + " ci " + ci);
-        }
-
-        // "ABSENT NUMBER" is a possible value we could get from the network as the
-        // phone number, so if this happens, change it to "Unknown" in the CallerInfo
-        // and fix the presentation to be the same.
-        final String[] absentNumberValues =
-                context.getResources().getStringArray(R.array.absent_num);
-        if (Arrays.asList(absentNumberValues).contains(number)
-                && presentation == PhoneConstants.PRESENTATION_ALLOWED) {
-            number = context.getString(R.string.unknown);
-            ci.numberPresentation = PhoneConstants.PRESENTATION_UNKNOWN;
-        }
-
-        // Check for other special "corner cases" for CNAP and fix them similarly. Corner
-        // cases only apply if we received an allowed presentation from the network, so check
-        // if we think we have an allowed presentation, or if the CallerInfo presentation doesn't
-        // match the presentation passed in for verification (meaning we changed it previously
-        // because it's a corner case and we're being called from a different entry point).
-        if (ci.numberPresentation == PhoneConstants.PRESENTATION_ALLOWED
-                || (ci.numberPresentation != presentation
-                        && presentation == PhoneConstants.PRESENTATION_ALLOWED)) {
-            int cnapSpecialCase = checkCnapSpecialCases(number);
-            if (cnapSpecialCase != CNAP_SPECIAL_CASE_NO) {
-                // For all special strings, change number & numberPresentation.
-                if (cnapSpecialCase == PhoneConstants.PRESENTATION_RESTRICTED) {
-                    number = context.getString(R.string.private_num);
-                } else if (cnapSpecialCase == PhoneConstants.PRESENTATION_UNKNOWN) {
-                    number = context.getString(R.string.unknown);
-                }
-                if (DBG) {
-                    log("SpecialCnap: number=" + toLogSafePhoneNumber(number)
-                            + "; presentation now=" + cnapSpecialCase);
-                }
-                ci.numberPresentation = cnapSpecialCase;
-            }
-        }
-        if (DBG) {
-            log("modifyForSpecialCnapCases: returning number string="
-                    + toLogSafePhoneNumber(number));
-        }
-        return number;
-    }
-
-    //
-    // Support for 3rd party phone service providers.
-    //
-
-    /**
      * Check if a phone number can be route through a 3rd party
      * gateway. The number must be a global phone number in numerical
      * form (1-800-666-SEXY won't work).
@@ -1289,7 +697,7 @@
      * {@code false} otherwise.
      */
     public static boolean isPhoneAccountActive(SubscriptionManager sm, PhoneAccountHandle handle) {
-        return sm.getActiveSubscriptionInfoForIccIndex(handle.getId()) != null;
+        return sm.getActiveSubscriptionInfoForIcc(handle.getId()) != null;
     }
 
     private static ComponentName getPstnConnectionServiceName() {
diff --git a/src/com/android/phone/RestrictedPreference.java b/src/com/android/phone/RestrictedPreference.java
deleted file mode 100644
index b8b6fe7..0000000
--- a/src/com/android/phone/RestrictedPreference.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import android.content.Context;
-import android.preference.Preference;
-import android.preference.PreferenceScreen;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.settingslib.RestrictedLockUtils;
-
-/**
- * Preference class that supports being disabled by a device admin.
- *
- * <p>This class is a mimic of ../../../frameworks/base/packages/SettingsLib/src/com/android
- * /settingslib/RestrictedPreference.java,
- * but support framework {@link Preference}.
- */
-public class RestrictedPreference extends Preference {
-    private final Context mContext;
-
-    private boolean mDisabledByAdmin;
-    private EnforcedAdmin mEnforcedAdmin;
-
-    public RestrictedPreference(Context context, AttributeSet attrs,
-            int defStyleAttr, int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-        mContext = context;
-
-        setLayoutResource(com.android.settingslib.R.layout.preference_two_target);
-        setWidgetLayoutResource(R.layout.restricted_icon);
-    }
-
-    public RestrictedPreference(Context context, AttributeSet attrs, int defStyleAttr) {
-        this(context, attrs, defStyleAttr, 0);
-    }
-
-    public RestrictedPreference(Context context, AttributeSet attrs) {
-        this(context, attrs, android.R.attr.preferenceStyle);
-    }
-
-    public RestrictedPreference(Context context) {
-        this(context, null);
-    }
-
-    @Override
-    public void performClick(PreferenceScreen preferenceScreen) {
-        if (mDisabledByAdmin) {
-            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, mEnforcedAdmin);
-        } else {
-            super.performClick(preferenceScreen);
-        }
-    }
-
-    @Override
-    protected void onBindView(View view) {
-        super.onBindView(view);
-
-        final View divider = view.findViewById(com.android.settingslib.R.id.two_target_divider);
-        final View widgetFrame = view.findViewById(android.R.id.widget_frame);
-        final View restrictedIcon = view.findViewById(R.id.restricted_icon);
-        final TextView summaryView = view.findViewById(android.R.id.summary);
-        if (divider != null) {
-            divider.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
-        }
-        if (widgetFrame != null) {
-            widgetFrame.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
-        }
-        if (restrictedIcon != null) {
-            restrictedIcon.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
-        }
-        if (summaryView != null && mDisabledByAdmin) {
-            summaryView.setText(com.android.settingslib.R.string.disabled_by_admin_summary_text);
-            summaryView.setVisibility(View.VISIBLE);
-        }
-
-        if (mDisabledByAdmin) {
-            view.setEnabled(true);
-        }
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        if (enabled && mDisabledByAdmin) {
-            setDisabledByAdmin(null);
-            return;
-        }
-        super.setEnabled(enabled);
-    }
-
-    /**
-     * Disable this preference based on the enforce admin.
-     *
-     * @param admin Details of the admin who enforced the restriction. If it is {@code null}, then
-     * this preference will be enabled. Otherwise, it will be disabled.
-     */
-    public void setDisabledByAdmin(EnforcedAdmin admin) {
-        final boolean disabled = admin != null;
-        mEnforcedAdmin = admin;
-        boolean changed = false;
-        if (mDisabledByAdmin != disabled) {
-            mDisabledByAdmin = disabled;
-            changed = true;
-        }
-        setEnabled(!disabled);
-        if (changed) {
-            notifyChanged();
-        }
-    }
-}
diff --git a/src/com/android/phone/RestrictedSwitchPreference.java b/src/com/android/phone/RestrictedSwitchPreference.java
deleted file mode 100644
index ba6b65e..0000000
--- a/src/com/android/phone/RestrictedSwitchPreference.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-public class RestrictedSwitchPreference extends SwitchPreference {
-    private final Context mContext;
-    private boolean mDisabledByAdmin;
-    private final int mSwitchWidgetResId;
-
-    public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
-            int defStyleRes) {
-        super(context, attrs, defStyleAttr, defStyleRes);
-        mSwitchWidgetResId = getWidgetLayoutResource();
-        mContext = context;
-    }
-
-    public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
-        this(context, attrs, defStyleAttr, 0);
-    }
-
-    public RestrictedSwitchPreference(Context context, AttributeSet attrs) {
-        this(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
-    }
-
-    public RestrictedSwitchPreference(Context context) {
-        this(context, null);
-    }
-
-    @Override
-    public void onBindView(View view) {
-        super.onBindView(view);
-        if (mDisabledByAdmin) {
-            view.setEnabled(true);
-        }
-        final TextView summaryView = (TextView) view.findViewById(android.R.id.summary);
-        if (summaryView != null && mDisabledByAdmin) {
-            summaryView.setText(
-                    isChecked() ? R.string.enabled_by_admin : R.string.disabled_by_admin);
-            summaryView.setVisibility(View.VISIBLE);
-        }
-    }
-
-    public void checkRestrictionAndSetDisabled(String userRestriction) {
-        UserManager um = UserManager.get(mContext);
-        UserHandle user = UserHandle.of(um.getUserHandle());
-        boolean disabledByAdmin = um.hasUserRestriction(userRestriction, user)
-                && !um.hasBaseUserRestriction(userRestriction, user);
-        setDisabledByAdmin(disabledByAdmin);
-    }
-
-    @Override
-    public void setEnabled(boolean enabled) {
-        if (enabled && mDisabledByAdmin) {
-            setDisabledByAdmin(false);
-        } else {
-            super.setEnabled(enabled);
-        }
-    }
-
-    public void setDisabledByAdmin(boolean disabled) {
-        if (mDisabledByAdmin != disabled) {
-            mDisabledByAdmin = disabled;
-            setWidgetLayoutResource(disabled ? R.layout.restricted_icon : mSwitchWidgetResId);
-            setEnabled(!disabled);
-        }
-    }
-
-    @Override
-    public void performClick(PreferenceScreen preferenceScreen) {
-        if (mDisabledByAdmin) {
-            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext,
-                    new EnforcedAdmin());
-        } else {
-            super.performClick(preferenceScreen);
-        }
-    }
-}
diff --git a/src/com/android/phone/RoamingDialogFragment.java b/src/com/android/phone/RoamingDialogFragment.java
deleted file mode 100644
index 384a120..0000000
--- a/src/com/android/phone/RoamingDialogFragment.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.os.Bundle;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-
-/**
- * A dialog fragment that asks the user if they are sure they want to turn on data roaming
- * to avoid accidental charges.
- */
-public class RoamingDialogFragment extends DialogFragment implements OnClickListener {
-
-    public static final String SUB_ID_KEY = "sub_id_key";
-
-    private CarrierConfigManager mCarrierConfigManager;
-    private int mSubId;
-
-    /**
-     * The interface we expect a host activity to implement.
-     */
-    public interface RoamingDialogListener {
-        void onPositiveButtonClick(DialogFragment dialog);
-    }
-
-    // the host activity which implements the listening interface
-    private RoamingDialogListener mListener;
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        Bundle args = getArguments();
-        mSubId = args.getInt(SUB_ID_KEY);
-        mCarrierConfigManager = new CarrierConfigManager(context);
-
-        // Verify host activity implemented callback interface
-        FragmentManager fragmentManager = getFragmentManager();
-        Fragment fragment = fragmentManager.findFragmentById(R.id.network_setting_content);
-        try {
-            mListener = (RoamingDialogListener) fragment;
-        } catch (ClassCastException e) {
-            throw new ClassCastException(fragment.toString() +
-                    "must implement RoamingDialogListener");
-        }
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-        int title = R.string.roaming_alert_title;
-        PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-        if (carrierConfig != null && carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL)) {
-            title = R.string.roaming_check_price_warning;
-        }
-        builder.setMessage(getResources().getString(R.string.roaming_warning))
-                .setTitle(title)
-                .setIconAttribute(android.R.attr.alertDialogIcon)
-                .setPositiveButton(android.R.string.yes, this)
-                .setNegativeButton(android.R.string.no, this);
-        return builder.create();
-    }
-
-    @Override
-    public void onClick(DialogInterface dialog, int which) {
-        // let the host know that the positive button has been clicked
-        if (which == dialog.BUTTON_POSITIVE) {
-            mListener.onPositiveButtonClick(this);
-        }
-    }
-}
diff --git a/src/com/android/phone/ServiceStateProvider.java b/src/com/android/phone/ServiceStateProvider.java
new file mode 100644
index 0000000..a7d27d5
--- /dev/null
+++ b/src/com/android/phone/ServiceStateProvider.java
@@ -0,0 +1,566 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import static android.provider.Telephony.ServiceStateTable;
+import static android.provider.Telephony.ServiceStateTable.CONTENT_URI;
+import static android.provider.Telephony.ServiceStateTable.IS_MANUAL_NETWORK_SELECTION;
+import static android.provider.Telephony.ServiceStateTable.VOICE_REG_STATE;
+import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionId;
+import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionIdAndField;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.database.MatrixCursor.RowBuilder;
+import android.net.Uri;
+import android.os.Parcel;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * The class to provide base facility to access ServiceState related content,
+ * which is stored in a SQLite database.
+ */
+public class ServiceStateProvider extends ContentProvider {
+    private static final String TAG = "ServiceStateProvider";
+
+    public static final String AUTHORITY = ServiceStateTable.AUTHORITY;
+    public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
+
+    /**
+     * The current service state.
+     *
+     * This is the entire {@link ServiceState} object in byte array.
+     *
+     * @hide
+     */
+    public static final String SERVICE_STATE = "service_state";
+
+    /**
+     * An integer value indicating the current data service state.
+     * <p>
+     * Valid values: {@link ServiceState#STATE_IN_SERVICE},
+     * {@link ServiceState#STATE_OUT_OF_SERVICE}, {@link ServiceState#STATE_EMERGENCY_ONLY},
+     * {@link ServiceState#STATE_POWER_OFF}.
+     * <p>
+     * This is the same as {@link ServiceState#getDataRegState()}.
+     * @hide
+     */
+    public static final String DATA_REG_STATE = "data_reg_state";
+
+    /**
+     * An integer value indicating the current voice roaming type.
+     * <p>
+     * This is the same as {@link ServiceState#getVoiceRoamingType()}.
+     * @hide
+     */
+    public static final String VOICE_ROAMING_TYPE = "voice_roaming_type";
+
+    /**
+     * An integer value indicating the current data roaming type.
+     * <p>
+     * This is the same as {@link ServiceState#getDataRoamingType()}.
+     * @hide
+     */
+    public static final String DATA_ROAMING_TYPE = "data_roaming_type";
+
+    /**
+     * The current registered voice network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaLong()}.
+     * @hide
+     */
+    public static final String VOICE_OPERATOR_ALPHA_LONG = "voice_operator_alpha_long";
+
+    /**
+     * The current registered operator name in short alphanumeric format.
+     * <p>
+     * In GSM/UMTS, short format can be up to 8 characters long. The current registered voice
+     * network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaShort()}.
+     * @hide
+     */
+    public static final String VOICE_OPERATOR_ALPHA_SHORT = "voice_operator_alpha_short";
+
+    /**
+     * The current registered operator numeric id.
+     * <p>
+     * In GSM/UMTS, numeric format is 3 digit country code plus 2 or 3 digit
+     * network code.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorNumeric()}.
+     */
+    public static final String VOICE_OPERATOR_NUMERIC = "voice_operator_numeric";
+
+    /**
+     * The current registered data network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaLong()}.
+     * @hide
+     */
+    public static final String DATA_OPERATOR_ALPHA_LONG = "data_operator_alpha_long";
+
+    /**
+     * The current registered data network operator name in short alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaShort()}.
+     * @hide
+     */
+    public static final String DATA_OPERATOR_ALPHA_SHORT = "data_operator_alpha_short";
+
+    /**
+     * The current registered data network operator numeric id.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorNumeric()}.
+     * @hide
+     */
+    public static final String DATA_OPERATOR_NUMERIC = "data_operator_numeric";
+
+    /**
+     * This is the same as {@link ServiceState#getRilVoiceRadioTechnology()}.
+     * @hide
+     */
+    public static final String RIL_VOICE_RADIO_TECHNOLOGY = "ril_voice_radio_technology";
+
+    /**
+     * This is the same as {@link ServiceState#getRilDataRadioTechnology()}.
+     * @hide
+     */
+    public static final String RIL_DATA_RADIO_TECHNOLOGY = "ril_data_radio_technology";
+
+    /**
+     * This is the same as {@link ServiceState#getCssIndicator()}.
+     * @hide
+     */
+    public static final String CSS_INDICATOR = "css_indicator";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaNetworkId()}.
+     * @hide
+     */
+    public static final String NETWORK_ID = "network_id";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaSystemId()}.
+     * @hide
+     */
+    public static final String SYSTEM_ID = "system_id";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaRoamingIndicator()}.
+     * @hide
+     */
+    public static final String CDMA_ROAMING_INDICATOR = "cdma_roaming_indicator";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaDefaultRoamingIndicator()}.
+     * @hide
+     */
+    public static final String CDMA_DEFAULT_ROAMING_INDICATOR =
+            "cdma_default_roaming_indicator";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaEriIconIndex()}.
+     * @hide
+     */
+    public static final String CDMA_ERI_ICON_INDEX = "cdma_eri_icon_index";
+
+    /**
+     * This is the same as {@link ServiceState#getCdmaEriIconMode()}.
+     * @hide
+     */
+    public static final String CDMA_ERI_ICON_MODE = "cdma_eri_icon_mode";
+
+    /**
+     * This is the same as {@link ServiceState#isEmergencyOnly()}.
+     * @hide
+     */
+    public static final String IS_EMERGENCY_ONLY = "is_emergency_only";
+
+    /**
+     * This is the same as {@link ServiceState#getDataRoamingFromRegistration()}.
+     * @hide
+     */
+    public static final String IS_DATA_ROAMING_FROM_REGISTRATION =
+            "is_data_roaming_from_registration";
+
+    /**
+     * This is the same as {@link ServiceState#isUsingCarrierAggregation()}.
+     * @hide
+     */
+    public static final String IS_USING_CARRIER_AGGREGATION = "is_using_carrier_aggregation";
+
+    /**
+     * The current registered raw data network operator name in long alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaLongRaw()}.
+     * @hide
+     */
+    public static final String OPERATOR_ALPHA_LONG_RAW = "operator_alpha_long_raw";
+
+    /**
+     * The current registered raw data network operator name in short alphanumeric format.
+     * <p>
+     * This is the same as {@link ServiceState#getOperatorAlphaShortRaw()}.
+     * @hide
+     */
+    public static final String OPERATOR_ALPHA_SHORT_RAW = "operator_alpha_short_raw";
+
+    private final HashMap<Integer, ServiceState> mServiceStates = new HashMap<>();
+    private static final String[] sColumns = {
+        VOICE_REG_STATE,
+        DATA_REG_STATE,
+        VOICE_ROAMING_TYPE,
+        DATA_ROAMING_TYPE,
+        VOICE_OPERATOR_ALPHA_LONG,
+        VOICE_OPERATOR_ALPHA_SHORT,
+        VOICE_OPERATOR_NUMERIC,
+        DATA_OPERATOR_ALPHA_LONG,
+        DATA_OPERATOR_ALPHA_SHORT,
+        DATA_OPERATOR_NUMERIC,
+        IS_MANUAL_NETWORK_SELECTION,
+        RIL_VOICE_RADIO_TECHNOLOGY,
+        RIL_DATA_RADIO_TECHNOLOGY,
+        CSS_INDICATOR,
+        NETWORK_ID,
+        SYSTEM_ID,
+        CDMA_ROAMING_INDICATOR,
+        CDMA_DEFAULT_ROAMING_INDICATOR,
+        CDMA_ERI_ICON_INDEX,
+        CDMA_ERI_ICON_MODE,
+        IS_EMERGENCY_ONLY,
+        IS_USING_CARRIER_AGGREGATION,
+        OPERATOR_ALPHA_LONG_RAW,
+        OPERATOR_ALPHA_SHORT_RAW,
+    };
+
+    @Override
+    public boolean onCreate() {
+        return true;
+    }
+
+    /**
+     * Returns the {@link ServiceState} information on specified subscription.
+     *
+     * @param subId whose subscriber id is returned
+     * @return the {@link ServiceState} information on specified subscription.
+     */
+    @VisibleForTesting
+    public ServiceState getServiceState(int subId) {
+        return mServiceStates.get(subId);
+    }
+
+    /**
+     * Returns the system's default subscription id.
+     *
+     * @return the "system" default subscription id.
+     */
+    @VisibleForTesting
+    public int getDefaultSubId() {
+        return SubscriptionManager.getDefaultSubscriptionId();
+    }
+
+    @Override
+    public Uri insert(Uri uri, ContentValues values) {
+        if (isPathPrefixMatch(uri, CONTENT_URI)) {
+            // Parse the subId
+            int subId = 0;
+            try {
+                subId = Integer.parseInt(uri.getLastPathSegment());
+            } catch (NumberFormatException e) {
+                Log.e(TAG, "insert: no subId provided in uri");
+                throw e;
+            }
+            Log.d(TAG, "subId=" + subId);
+
+            // handle DEFAULT_SUBSCRIPTION_ID
+            if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+                subId = getDefaultSubId();
+            }
+
+            final Parcel p = Parcel.obtain();
+            final byte[] rawBytes = values.getAsByteArray(SERVICE_STATE);
+            p.unmarshall(rawBytes, 0, rawBytes.length);
+            p.setDataPosition(0);
+
+            // create the new service state
+            final ServiceState newSS = ServiceState.CREATOR.createFromParcel(p);
+
+            // notify listeners
+            // if ss is null (e.g. first service state update) we will notify for all fields
+            ServiceState ss = getServiceState(subId);
+            notifyChangeForSubIdAndField(getContext(), ss, newSS, subId);
+            notifyChangeForSubId(getContext(), ss, newSS, subId);
+
+            // store the new service state
+            mServiceStates.put(subId, newSS);
+            return uri;
+        }
+        return null;
+    }
+
+    @Override
+    public int delete(Uri uri, String selection, String[] selectionArgs) {
+        throw new RuntimeException("Not supported");
+    }
+
+    @Override
+    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+        throw new RuntimeException("Not supported");
+    }
+
+    @Override
+    public String getType(Uri uri) {
+        throw new RuntimeException("Not supported");
+    }
+
+    @Override
+    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+            String sortOrder) {
+        if (!isPathPrefixMatch(uri, CONTENT_URI)) {
+            throw new IllegalArgumentException("Invalid URI: " + uri);
+        } else {
+            // Parse the subId
+            int subId = 0;
+            try {
+                subId = Integer.parseInt(uri.getLastPathSegment());
+            } catch (NumberFormatException e) {
+                Log.d(TAG, "query: no subId provided in uri, using default.");
+                subId = getDefaultSubId();
+            }
+            Log.d(TAG, "subId=" + subId);
+
+            // handle DEFAULT_SUBSCRIPTION_ID
+            if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+                subId = getDefaultSubId();
+            }
+
+            // Get the service state
+            ServiceState ss = getServiceState(subId);
+            if (ss == null) {
+                Log.d(TAG, "returning null");
+                return null;
+            }
+
+            // Build the result
+            final int voice_reg_state = ss.getState();
+            final int data_reg_state = ss.getDataRegistrationState();
+            final int voice_roaming_type = ss.getVoiceRoamingType();
+            final int data_roaming_type = ss.getDataRoamingType();
+            final String voice_operator_alpha_long = ss.getOperatorAlphaLong();
+            final String voice_operator_alpha_short = ss.getOperatorAlphaShort();
+            final String voice_operator_numeric = ss.getOperatorNumeric();
+            final String data_operator_alpha_long = ss.getOperatorAlphaLong();
+            final String data_operator_alpha_short = ss.getOperatorAlphaShort();
+            final String data_operator_numeric = ss.getOperatorNumeric();
+            final int is_manual_network_selection = (ss.getIsManualSelection()) ? 1 : 0;
+            final int ril_voice_radio_technology = ss.getRilVoiceRadioTechnology();
+            final int ril_data_radio_technology = ss.getRilDataRadioTechnology();
+            final int css_indicator = ss.getCssIndicator();
+            final int network_id = ss.getCdmaNetworkId();
+            final int system_id = ss.getCdmaSystemId();
+            final int cdma_roaming_indicator = ss.getCdmaRoamingIndicator();
+            final int cdma_default_roaming_indicator = ss.getCdmaDefaultRoamingIndicator();
+            final int cdma_eri_icon_index = ss.getCdmaEriIconIndex();
+            final int cdma_eri_icon_mode = ss.getCdmaEriIconMode();
+            final int is_emergency_only = (ss.isEmergencyOnly()) ? 1 : 0;
+            final int is_using_carrier_aggregation = (ss.isUsingCarrierAggregation()) ? 1 : 0;
+            final String operator_alpha_long_raw = ss.getOperatorAlphaLongRaw();
+            final String operator_alpha_short_raw = ss.getOperatorAlphaShortRaw();
+
+            return buildSingleRowResult(projection, sColumns, new Object[] {
+                    voice_reg_state,
+                    data_reg_state,
+                    voice_roaming_type,
+                    data_roaming_type,
+                    voice_operator_alpha_long,
+                    voice_operator_alpha_short,
+                    voice_operator_numeric,
+                    data_operator_alpha_long,
+                    data_operator_alpha_short,
+                    data_operator_numeric,
+                    is_manual_network_selection,
+                    ril_voice_radio_technology,
+                    ril_data_radio_technology,
+                    css_indicator,
+                    network_id,
+                    system_id,
+                    cdma_roaming_indicator,
+                    cdma_default_roaming_indicator,
+                    cdma_eri_icon_index,
+                    cdma_eri_icon_mode,
+                    is_emergency_only,
+                    is_using_carrier_aggregation,
+                    operator_alpha_long_raw,
+                    operator_alpha_short_raw,
+            });
+        }
+    }
+
+    private static Cursor buildSingleRowResult(String[] projection, String[] availableColumns,
+            Object[] data) {
+        if (projection == null) {
+            projection = availableColumns;
+        }
+        final MatrixCursor c = new MatrixCursor(projection, 1);
+        final RowBuilder row = c.newRow();
+        for (int i = 0; i < c.getColumnCount(); i++) {
+            final String columnName = c.getColumnName(i);
+            boolean found = false;
+            for (int j = 0; j < availableColumns.length; j++) {
+                if (availableColumns[j].equals(columnName)) {
+                    row.add(data[j]);
+                    found = true;
+                    break;
+                }
+            }
+            if (!found) {
+                throw new IllegalArgumentException("Invalid column " + projection[i]);
+            }
+        }
+        return c;
+    }
+
+    /**
+     * Notify interested apps that certain fields of the ServiceState have changed.
+     *
+     * Apps which want to wake when specific fields change can use
+     * JobScheduler's TriggerContentUri.  This replaces the waking functionality of the implicit
+     * broadcast of ACTION_SERVICE_STATE_CHANGED for apps targeting version O.
+     *
+     * We will only notify for certain fields. This is an intentional change from the behavior of
+     * the broadcast. Listeners will be notified when the voice or data registration state or
+     * roaming type changes.
+     */
+    @VisibleForTesting
+    public static void notifyChangeForSubIdAndField(Context context, ServiceState oldSS,
+            ServiceState newSS, int subId) {
+        final boolean firstUpdate = (oldSS == null) ? true : false;
+
+        // for every field, if the field has changed values, notify via the provider
+        if (firstUpdate || voiceRegStateChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, VOICE_REG_STATE),
+                    /* observer= */ null, /* syncToNetwork= */ false);
+        }
+        if (firstUpdate || dataRegStateChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, DATA_REG_STATE), null, false);
+        }
+        if (firstUpdate || voiceRoamingTypeChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, VOICE_ROAMING_TYPE), null, false);
+        }
+        if (firstUpdate || dataRoamingTypeChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(
+                    getUriForSubscriptionIdAndField(subId, DATA_ROAMING_TYPE), null, false);
+        }
+    }
+
+    private static boolean voiceRegStateChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getState() != newSS.getState();
+    }
+
+    private static boolean dataRegStateChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getDataRegistrationState() != newSS.getDataRegistrationState();
+    }
+
+    private static boolean voiceRoamingTypeChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getVoiceRoamingType() != newSS.getVoiceRoamingType();
+    }
+
+    private static boolean dataRoamingTypeChanged(ServiceState oldSS, ServiceState newSS) {
+        return oldSS.getDataRoamingType() != newSS.getDataRoamingType();
+    }
+
+    /**
+     * Notify interested apps that the ServiceState has changed.
+     *
+     * Apps which want to wake when any field in the ServiceState has changed can use
+     * JobScheduler's TriggerContentUri.  This replaces the waking functionality of the implicit
+     * broadcast of ACTION_SERVICE_STATE_CHANGED for apps targeting version O.
+     *
+     * We will only notify for certain fields. This is an intentional change from the behavior of
+     * the broadcast. Listeners will only be notified when the voice/data registration state or
+     * roaming type changes.
+     */
+    @VisibleForTesting
+    public static void notifyChangeForSubId(Context context, ServiceState oldSS, ServiceState newSS,
+            int subId) {
+        // if the voice or data registration or roaming state field has changed values, notify via
+        // the provider.
+        // If oldSS is null and newSS is not (e.g. first update of service state) this will also
+        // notify
+        if (oldSS == null || voiceRegStateChanged(oldSS, newSS) || dataRegStateChanged(oldSS, newSS)
+                || voiceRoamingTypeChanged(oldSS, newSS) || dataRoamingTypeChanged(oldSS, newSS)) {
+            context.getContentResolver().notifyChange(getUriForSubscriptionId(subId), null, false);
+        }
+    }
+
+    /**
+     * Test if this is a path prefix match against the given Uri. Verifies that
+     * scheme, authority, and atomic path segments match.
+     *
+     * Copied from frameworks/base/core/java/android/net/Uri.java
+     */
+    private boolean isPathPrefixMatch(Uri uriA, Uri uriB) {
+        if (!Objects.equals(uriA.getScheme(), uriB.getScheme())) return false;
+        if (!Objects.equals(uriA.getAuthority(), uriB.getAuthority())) return false;
+
+        List<String> segA = uriA.getPathSegments();
+        List<String> segB = uriB.getPathSegments();
+
+        final int size = segB.size();
+        if (segA.size() < size) return false;
+
+        for (int i = 0; i < size; i++) {
+            if (!Objects.equals(segA.get(i), segB.get(i))) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Used to insert a ServiceState into the ServiceStateProvider as a ContentValues instance.
+     *
+     * @param state the ServiceState to convert into ContentValues
+     * @return the convertedContentValues instance
+     * @hide
+     */
+    public static ContentValues getContentValuesForServiceState(ServiceState state) {
+        ContentValues values = new ContentValues();
+        final Parcel p = Parcel.obtain();
+        state.writeToParcel(p, 0);
+        // Turn the parcel to byte array. Safe to do this because the content values were never
+        // written into a persistent storage. ServiceStateProvider keeps values in the memory.
+        values.put(SERVICE_STATE, p.marshall());
+        return values;
+    }
+}
diff --git a/src/com/android/phone/ShortcutViewUtils.java b/src/com/android/phone/ShortcutViewUtils.java
index 47ca5ee..e3c5b64 100644
--- a/src/com/android/phone/ShortcutViewUtils.java
+++ b/src/com/android/phone/ShortcutViewUtils.java
@@ -33,7 +33,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
-import com.android.internal.util.ArrayUtils;
+import com.android.internal.telephony.util.ArrayUtils;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/phone/SpecialCharSequenceMgr.java b/src/com/android/phone/SpecialCharSequenceMgr.java
index 514b2c9..674449e 100644
--- a/src/com/android/phone/SpecialCharSequenceMgr.java
+++ b/src/com/android/phone/SpecialCharSequenceMgr.java
@@ -21,6 +21,7 @@
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
+import android.os.UserManager;
 import android.provider.Settings;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionInfo;
@@ -233,32 +234,45 @@
         // if a dialstring is an MMI code.
         if ((input.startsWith("**04") || input.startsWith("**05"))
                 && input.endsWith("#")) {
-            PhoneGlobals app = PhoneGlobals.getInstance();
-            Phone phone;
-            int subId;
-            if (input.startsWith("**04")) {
-                subId = getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED, context);
-            } else {
-                subId = getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED, context);
-            }
-            if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                log("get phone with subId: " + subId);
-                phone = PhoneGlobals.getPhone(subId);
-            } else {
-                log("get default phone");
-                phone = PhoneGlobals.getPhone();
-            }
-            boolean isMMIHandled = phone.handlePinMmi(input);
+            UserManager userManager = (UserManager) pukInputActivity
+                       .getSystemService(Context.USER_SERVICE);
+            if (userManager.isSystemUser()) {
+                PhoneGlobals app = PhoneGlobals.getInstance();
+                Phone phone;
+                int subId;
+                if (input.startsWith("**04")) {
+                    subId = getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED, context);
+                } else {
+                    subId = getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED, context);
+                }
+                if (SubscriptionManager.isValidSubscriptionId(subId)) {
+                    log("get phone with subId: " + subId);
+                    phone = PhoneGlobals.getPhone(subId);
+                } else {
+                    log("get default phone");
+                    phone = PhoneGlobals.getPhone();
+                }
+                boolean isMMIHandled = phone.handlePinMmi(input);
 
-            // if the PUK code is recognized then indicate to the
-            // phone app that an attempt to unPUK the device was
-            // made with this activity.  The PUK code may still
-            // fail though, but we won't know until the MMI code
-            // returns a result.
-            if (isMMIHandled && input.startsWith("**05")) {
-                app.setPukEntryActivity(pukInputActivity);
+                // if the PUK code is recognized then indicate to the
+                // phone app that an attempt to unPUK the device was
+                // made with this activity.  The PUK code may still
+                // fail though, but we won't know until the MMI code
+                // returns a result.
+                if (isMMIHandled && input.startsWith("**05")) {
+                    app.setPukEntryActivity(pukInputActivity);
+                }
+                return isMMIHandled;
+            } else {
+                AlertDialog dialog = new AlertDialog.Builder(context)
+                        .setMessage(R.string.pin_puk_system_user_only)
+                        .setPositiveButton(R.string.ok, null)
+                        .setCancelable(true).create();
+                dialog.show();
+                dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
+                dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+                return true;
             }
-            return isMMIHandled;
         }
         return false;
     }
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index a59c9c4..0348389 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -16,20 +16,29 @@
 
 package com.android.phone;
 
+import android.content.Context;
+import android.os.BasicShellCommandHandler;
 import android.os.Binder;
+import android.os.PersistableBundle;
 import android.os.Process;
 import android.os.RemoteException;
-import android.os.ShellCommand;
-import android.os.UserHandle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.emergency.EmergencyNumber;
+import android.telephony.ims.feature.ImsFeature;
 import android.util.Log;
 
 import com.android.internal.telephony.ITelephony;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
+import com.android.internal.telephony.util.TelephonyUtils;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeSet;
 
 /**
  * Takes actions based on the adb commands given by "adb shell cmd phone ...". Be careful, no
@@ -37,7 +46,7 @@
  * here also contain the appropriate permissions checks.
  */
 
-public class TelephonyShellCommand extends ShellCommand {
+public class TelephonyShellCommand extends BasicShellCommandHandler {
 
     private static final String LOG_TAG = "TelephonyShellCommand";
     // Don't commit with this true.
@@ -45,27 +54,84 @@
     private static final int DEFAULT_PHONE_ID = 0;
 
     private static final String IMS_SUBCOMMAND = "ims";
-    private static final String SMS_SUBCOMMAND = "sms";
     private static final String NUMBER_VERIFICATION_SUBCOMMAND = "numverify";
     private static final String EMERGENCY_NUMBER_TEST_MODE = "emergency-number-test-mode";
+    private static final String CARRIER_CONFIG_SUBCOMMAND = "cc";
+    private static final String DATA_TEST_MODE = "data";
+    private static final String DATA_ENABLE = "enable";
+    private static final String DATA_DISABLE = "disable";
 
     private static final String IMS_SET_CARRIER_SERVICE = "set-ims-service";
     private static final String IMS_GET_CARRIER_SERVICE = "get-ims-service";
     private static final String IMS_ENABLE = "enable";
     private static final String IMS_DISABLE = "disable";
-
-    private static final String SMS_GET_APPS = "get-apps";
-    private static final String SMS_GET_DEFAULT_APP = "get-default-app";
-    private static final String SMS_SET_DEFAULT_APP = "set-default-app";
+    // Used to disable or enable processing of conference event package data from the network.
+    // This is handy for testing scenarios where CEP data does not exist on a network which does
+    // support CEP data.
+    private static final String IMS_CEP = "conference-event-package";
 
     private static final String NUMBER_VERIFICATION_OVERRIDE_PACKAGE = "override-package";
     private static final String NUMBER_VERIFICATION_FAKE_CALL = "fake-call";
 
+    private static final String CC_GET_VALUE = "get-value";
+    private static final String CC_SET_VALUE = "set-value";
+    private static final String CC_CLEAR_VALUES = "clear-values";
+
     // Take advantage of existing methods that already contain permissions checks when possible.
     private final ITelephony mInterface;
 
-    public TelephonyShellCommand(ITelephony binder) {
+    private SubscriptionManager mSubscriptionManager;
+    private CarrierConfigManager mCarrierConfigManager;
+
+    private enum CcType {
+        BOOLEAN, DOUBLE, DOUBLE_ARRAY, INT, INT_ARRAY, LONG, LONG_ARRAY, STRING,
+                STRING_ARRAY, UNKNOWN
+    }
+
+    private class CcOptionParseResult {
+        public int mSubId;
+        public boolean mPersistent;
+    }
+
+    // Maps carrier config keys to type. It is possible to infer the type for most carrier config
+    // keys by looking at the end of the string which usually tells the type.
+    // For instance: "xxxx_string", "xxxx_string_array", etc.
+    // The carrier config keys in this map does not follow this convention. It is therefore not
+    // possible to infer the type for these keys by looking at the string.
+    private static final Map<String, CcType> CC_TYPE_MAP = new HashMap<String, CcType>() {{
+            put(CarrierConfigManager.Gps.KEY_A_GLONASS_POS_PROTOCOL_SELECT_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_GPS_LOCK_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_LPP_PROFILE_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_NFW_PROXY_APPS_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_ES_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_HOST_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_MODE_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_PORT_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_SUPL_VER_STRING, CcType.STRING);
+            put(CarrierConfigManager.Gps.KEY_USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_STRING,
+                    CcType.STRING);
+            put(CarrierConfigManager.KEY_CARRIER_APP_NO_WAKE_SIGNAL_CONFIG_STRING_ARRAY,
+                    CcType.STRING_ARRAY);
+            put(CarrierConfigManager.KEY_CARRIER_APP_WAKE_SIGNAL_CONFIG_STRING_ARRAY,
+                    CcType.STRING_ARRAY);
+            put(CarrierConfigManager.KEY_CARRIER_CALL_SCREENING_APP_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_EMAIL_GATEWAY_NUMBER_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_HTTP_PARAMS_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_NAI_SUFFIX_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_UA_PROF_TAG_NAME_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_UA_PROF_URL_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_MMS_USER_AGENT_STRING, CcType.STRING);
+            put(CarrierConfigManager.KEY_RATCHET_RAT_FAMILIES, CcType.STRING_ARRAY);
+        }
+    };
+
+    public TelephonyShellCommand(ITelephony binder, Context context) {
         mInterface = binder;
+        mCarrierConfigManager =
+                (CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        mSubscriptionManager = (SubscriptionManager)
+                context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
     }
 
     @Override
@@ -78,13 +144,15 @@
             case IMS_SUBCOMMAND: {
                 return handleImsCommand();
             }
-            case SMS_SUBCOMMAND: {
-                return handleSmsCommand();
-            }
             case NUMBER_VERIFICATION_SUBCOMMAND:
                 return handleNumberVerificationCommand();
             case EMERGENCY_NUMBER_TEST_MODE:
                 return handleEmergencyNumberTestModeCommand();
+            case CARRIER_CONFIG_SUBCOMMAND: {
+                return handleCcCommand();
+            }
+            case DATA_TEST_MODE:
+                return handleDataTestModeCommand();
             default: {
                 return handleDefaultCommands(cmd);
             }
@@ -99,25 +167,30 @@
         pw.println("    Print this help text.");
         pw.println("  ims");
         pw.println("    IMS Commands.");
-        pw.println("  sms");
-        pw.println("    SMS Commands.");
         pw.println("  emergency-number-test-mode");
         pw.println("    Emergency Number Test Mode Commands.");
+        pw.println("  data");
+        pw.println("    Data Test Mode Commands.");
+        pw.println("  cc");
+        pw.println("    Carrier Config Commands.");
         onHelpIms();
-        onHelpSms();
         onHelpEmergencyNumber();
+        onHelpDataTestMode();
+        onHelpCc();
     }
 
     private void onHelpIms() {
         PrintWriter pw = getOutPrintWriter();
         pw.println("IMS Commands:");
-        pw.println("  ims set-ims-service [-s SLOT_ID] (-c | -d) PACKAGE_NAME");
+        pw.println("  ims set-ims-service [-s SLOT_ID] (-c | -d | -f) PACKAGE_NAME");
         pw.println("    Sets the ImsService defined in PACKAGE_NAME to to be the bound");
         pw.println("    ImsService. Options are:");
         pw.println("      -s: the slot ID that the ImsService should be bound for. If no option");
         pw.println("          is specified, it will choose the default voice SIM slot.");
         pw.println("      -c: Override the ImsService defined in the carrier configuration.");
         pw.println("      -d: Override the ImsService defined in the device overlay.");
+        pw.println("      -f: Set the feature that this override if for, if no option is");
+        pw.println("          specified, the new package name will be used for all features.");
         pw.println("  ims get-ims-service [-s SLOT_ID] [-c | -d]");
         pw.println("    Gets the package name of the currently defined ImsService.");
         pw.println("    Options are:");
@@ -125,26 +198,18 @@
         pw.println("          is specified, it will choose the default voice SIM slot.");
         pw.println("      -c: The ImsService defined as the carrier configured ImsService.");
         pw.println("      -c: The ImsService defined as the device default ImsService.");
+        pw.println("      -f: The feature type that the query will be requested for. If none is");
+        pw.println("          specified, the returned package name will correspond to MMTEL.");
         pw.println("  ims enable [-s SLOT_ID]");
         pw.println("    enables IMS for the SIM slot specified, or for the default voice SIM slot");
         pw.println("    if none is specified.");
         pw.println("  ims disable [-s SLOT_ID]");
         pw.println("    disables IMS for the SIM slot specified, or for the default voice SIM");
         pw.println("    slot if none is specified.");
+        pw.println("  ims conference-event-package [enable/disable]");
+        pw.println("    enables or disables handling or network conference event package data.");
     }
 
-    private void onHelpSms() {
-        PrintWriter pw = getOutPrintWriter();
-        pw.println("SMS Commands:");
-        pw.println("  sms get-apps [--user USER_ID]");
-        pw.println("    Print all SMS apps on a user.");
-        pw.println("  sms get-default-app [--user USER_ID]");
-        pw.println("    Get the default SMS app.");
-        pw.println("  sms set-default-app [--user USER_ID] PACKAGE_NAME");
-        pw.println("    Set PACKAGE_NAME as the default SMS app.");
-    }
-
-
     private void onHelpNumberVerification() {
         PrintWriter pw = getOutPrintWriter();
         pw.println("Number verification commands");
@@ -156,6 +221,13 @@
         pw.println("    1 if the call would have been intercepted, 0 otherwise.");
     }
 
+    private void onHelpDataTestMode() {
+        PrintWriter pw = getOutPrintWriter();
+        pw.println("Mobile Data Test Mode Commands:");
+        pw.println("  data enable: enable mobile data connectivity");
+        pw.println("  data disable: disable mobile data connectivity");
+    }
+
     private void onHelpEmergencyNumber() {
         PrintWriter pw = getOutPrintWriter();
         pw.println("Emergency Number Test Mode Commands:");
@@ -170,6 +242,34 @@
         pw.println("      -p: get the full emergency number list in the test mode.");
     }
 
+    private void onHelpCc() {
+        PrintWriter pw = getOutPrintWriter();
+        pw.println("Carrier Config Commands:");
+        pw.println("  cc get-value [-s SLOT_ID] [KEY]");
+        pw.println("    Print carrier config values.");
+        pw.println("    Options are:");
+        pw.println("      -s: The SIM slot ID to read carrier config value for. If no option");
+        pw.println("          is specified, it will choose the default voice SIM slot.");
+        pw.println("    KEY: The key to the carrier config value to print. All values are printed");
+        pw.println("         if KEY is not specified.");
+        pw.println("  cc set-value [-s SLOT_ID] [-p] KEY [NEW_VALUE]");
+        pw.println("    Set carrier config KEY to NEW_VALUE.");
+        pw.println("    Options are:");
+        pw.println("      -s: The SIM slot ID to set carrier config value for. If no option");
+        pw.println("          is specified, it will choose the default voice SIM slot.");
+        pw.println("      -p: Value will be stored persistent");
+        pw.println("    NEW_VALUE specifies the new value for carrier config KEY. Null will be");
+        pw.println("      used if NEW_VALUE is not set. Strings should be encapsulated with");
+        pw.println("      quotation marks. Spaces needs to be escaped. Example: \"Hello\\ World\"");
+        pw.println("      Separate items in arrays with space . Example: \"item1\" \"item2\"");
+        pw.println("  cc clear-values [-s SLOT_ID]");
+        pw.println("    Clear all carrier override values that has previously been set");
+        pw.println("    with set-value");
+        pw.println("    Options are:");
+        pw.println("      -s: The SIM slot ID to clear carrier config values for. If no option");
+        pw.println("          is specified, it will choose the default voice SIM slot.");
+    }
+
     private int handleImsCommand() {
         String arg = getNextArg();
         if (arg == null) {
@@ -190,11 +290,49 @@
             case IMS_DISABLE: {
                 return handleDisableIms();
             }
+            case IMS_CEP: {
+                return handleCepChange();
+            }
         }
 
         return -1;
     }
 
+    private int handleDataTestModeCommand() {
+        PrintWriter errPw = getErrPrintWriter();
+        String arg = getNextArgRequired();
+        if (arg == null) {
+            onHelpDataTestMode();
+            return 0;
+        }
+        switch (arg) {
+            case DATA_ENABLE: {
+                try {
+                    mInterface.enableDataConnectivity();
+                } catch (RemoteException ex) {
+                    Log.w(LOG_TAG, "data enable, error " + ex.getMessage());
+                    errPw.println("Exception: " + ex.getMessage());
+                    return -1;
+                }
+                break;
+            }
+            case DATA_DISABLE: {
+                try {
+                    mInterface.disableDataConnectivity();
+                } catch (RemoteException ex) {
+                    Log.w(LOG_TAG, "data disable, error " + ex.getMessage());
+                    errPw.println("Exception: " + ex.getMessage());
+                    return -1;
+                }
+                break;
+            }
+            default:
+                onHelpDataTestMode();
+                break;
+        }
+        return 0;
+    }
+
     private int handleEmergencyNumberTestModeCommand() {
         PrintWriter errPw = getErrPrintWriter();
         String opt = getNextOption();
@@ -312,6 +450,7 @@
         PrintWriter errPw = getErrPrintWriter();
         int slotId = getDefaultSlot();
         Boolean isCarrierService = null;
+        List<Integer> featuresList = new ArrayList<>();
 
         String opt;
         while ((opt = getNextOption()) != null) {
@@ -333,6 +472,26 @@
                     isCarrierService = false;
                     break;
                 }
+                case "-f": {
+                    String featureString = getNextArgRequired();
+                    String[] features = featureString.split(",");
+                    for (int i = 0; i < features.length; i++) {
+                        try {
+                            Integer result = Integer.parseInt(features[i]);
+                            if (result < ImsFeature.FEATURE_EMERGENCY_MMTEL
+                                    || result >= ImsFeature.FEATURE_MAX) {
+                                errPw.println("ims set-ims-service -f " + result
+                                        + " is an invalid feature.");
+                                return -1;
+                            }
+                            featuresList.add(result);
+                        } catch (NumberFormatException e) {
+                            errPw.println("ims set-ims-service -f tried to parse " + features[i]
+                                            + " as an integer.");
+                            return -1;
+                        }
+                    }
+                }
             }
         }
         // Mandatory param, either -c or -d
@@ -347,16 +506,24 @@
             if (packageName == null) {
                 packageName = "";
             }
-            boolean result = mInterface.setImsService(slotId, isCarrierService, packageName);
+            int[] featureArray = new int[featuresList.size()];
+            for (int i = 0; i < featuresList.size(); i++) {
+                featureArray[i] = featuresList.get(i);
+            }
+            boolean result = mInterface.setBoundImsServiceOverride(slotId, isCarrierService,
+                    featureArray, packageName);
             if (VDBG) {
                 Log.v(LOG_TAG, "ims set-ims-service -s " + slotId + " "
-                        + (isCarrierService ? "-c " : "-d ") + packageName + ", result=" + result);
+                        + (isCarrierService ? "-c " : "-d ")
+                        + "-f " + featuresList + " "
+                        + packageName + ", result=" + result);
             }
             getOutPrintWriter().println(result);
         } catch (RemoteException e) {
             Log.w(LOG_TAG, "ims set-ims-service -s " + slotId + " "
-                    + (isCarrierService ? "-c " : "-d ") + packageName + ", error"
-                    + e.getMessage());
+                    + (isCarrierService ? "-c " : "-d ")
+                    + "-f " + featuresList + " "
+                    + packageName + ", error" + e.getMessage());
             errPw.println("Exception: " + e.getMessage());
             return -1;
         }
@@ -368,6 +535,7 @@
         PrintWriter errPw = getErrPrintWriter();
         int slotId = getDefaultSlot();
         Boolean isCarrierService = null;
+        Integer featureType = ImsFeature.FEATURE_MMTEL;
 
         String opt;
         while ((opt = getNextOption()) != null) {
@@ -389,23 +557,38 @@
                     isCarrierService = false;
                     break;
                 }
+                case "-f": {
+                    try {
+                        featureType = Integer.parseInt(getNextArg());
+                    } catch (NumberFormatException e) {
+                        errPw.println("ims get-ims-service -f requires valid integer as feature.");
+                        return -1;
+                    }
+                    if (featureType < ImsFeature.FEATURE_EMERGENCY_MMTEL
+                            || featureType >= ImsFeature.FEATURE_MAX) {
+                        errPw.println("ims get-ims-service -f invalid feature.");
+                        return -1;
+                    }
+                }
             }
         }
         // Mandatory param, either -c or -d
         if (isCarrierService == null) {
-            errPw.println("ims set-ims-service requires either \"-c\" or \"-d\" to be set.");
+            errPw.println("ims get-ims-service requires either \"-c\" or \"-d\" to be set.");
             return -1;
         }
 
         String result;
         try {
-            result = mInterface.getImsService(slotId, isCarrierService);
+            result = mInterface.getBoundImsServicePackage(slotId, isCarrierService, featureType);
         } catch (RemoteException e) {
             return -1;
         }
         if (VDBG) {
             Log.v(LOG_TAG, "ims get-ims-service -s " + slotId + " "
-                    + (isCarrierService ? "-c " : "-d ") + ", returned: " + result);
+                    + (isCarrierService ? "-c " : "-d ")
+                    + (featureType != null ? ("-f " + featureType) : "") + " , returned: "
+                    + result);
         }
         getOutPrintWriter().println(result);
         return 0;
@@ -466,6 +649,22 @@
         return 0;
     }
 
+    private int handleCepChange() {
+        Log.i(LOG_TAG, "handleCepChange");
+        String opt = getNextArg();
+        if (opt == null) {
+            return -1;
+        }
+        boolean isCepEnabled = opt.equals("enable");
+
+        try {
+            mInterface.setCepEnabled(isCepEnabled);
+        } catch (RemoteException e) {
+            return -1;
+        }
+        return 0;
+    }
+
     private int getDefaultSlot() {
         int slotId = SubscriptionManager.getDefaultVoicePhoneId();
         if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX
@@ -476,85 +675,65 @@
         return slotId;
     }
 
-    private int handleSmsCommand() {
-        String arg = getNextArg();
-        if (arg == null) {
-            onHelpSms();
-            return 0;
-        }
+    // Parse options related to Carrier Config Commands.
+    private CcOptionParseResult parseCcOptions(String tag, boolean allowOptionPersistent) {
+        PrintWriter errPw = getErrPrintWriter();
+        CcOptionParseResult result = new CcOptionParseResult();
+        result.mSubId = SubscriptionManager.getDefaultSubscriptionId();
+        result.mPersistent = false;
 
-        try {
-            switch (arg) {
-                case SMS_GET_APPS: {
-                    return handleSmsGetApps();
-                }
-                case SMS_GET_DEFAULT_APP: {
-                    return handleSmsGetDefaultApp();
-                }
-                case SMS_SET_DEFAULT_APP: {
-                    return handleSmsSetDefaultApp();
-                }
-                default:
-                    getErrPrintWriter().println("Unknown command " + arg);
-            }
-        } catch (RemoteException e) {
-            getErrPrintWriter().println("RemoteException: " + e.getMessage());
-        }
-
-        return -1;
-    }
-
-    private int maybeParseUserIdArg() {
-        int userId = UserHandle.USER_SYSTEM;
         String opt;
         while ((opt = getNextOption()) != null) {
             switch (opt) {
-                case "--user": {
+                case "-s": {
                     try {
-                        userId = Integer.parseInt(getNextArgRequired());
-                    } catch (NumberFormatException e) {
-                        getErrPrintWriter().println("Invalid user ID for --user");
-                        return -1;
+                        result.mSubId = slotStringToSubId(tag, getNextArgRequired());
+                        if (!SubscriptionManager.isValidSubscriptionId(result.mSubId)) {
+                            errPw.println(tag + "No valid subscription found.");
+                            return null;
+                        }
+
+                    } catch (IllegalArgumentException e) {
+                        // Missing slot id
+                        errPw.println(tag + "SLOT_ID expected after -s.");
+                        return null;
                     }
                     break;
                 }
+                case "-p": {
+                    if (allowOptionPersistent) {
+                        result.mPersistent = true;
+                    } else {
+                        errPw.println(tag + "Unexpected option " + opt);
+                        return null;
+                    }
+                    break;
+                }
+                default: {
+                    errPw.println(tag + "Unknown option " + opt);
+                    return null;
+                }
             }
         }
-        return userId;
+        return result;
     }
 
-    private int handleSmsGetApps() throws RemoteException {
-        final int userId = maybeParseUserIdArg();
-        if (userId < 0) {
-            return -1;
+    private int slotStringToSubId(String tag, String slotString) {
+        int slotId = -1;
+        try {
+            slotId = Integer.parseInt(slotString);
+        } catch (NumberFormatException e) {
+            getErrPrintWriter().println(tag + slotString + " is not a valid SLOT_ID.");
+            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         }
 
-        for (String packageName : mInterface.getSmsApps(userId)) {
-            getOutPrintWriter().println(packageName);
+        SubscriptionInfo subInfo =
+                mSubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(slotId);
+        if (subInfo == null) {
+            getErrPrintWriter().println(tag + "No subscription found in slot " + slotId + ".");
+            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         }
-        return 0;
-    }
-
-    private int handleSmsGetDefaultApp() throws RemoteException {
-        final int userId = maybeParseUserIdArg();
-        if (userId < 0) {
-            return -1;
-        }
-
-        getOutPrintWriter().println(mInterface.getDefaultSmsApp(userId));
-        return 0;
-    }
-
-    private int handleSmsSetDefaultApp() throws RemoteException {
-        final int userId = maybeParseUserIdArg();
-        if (userId < 0) {
-            return -1;
-        }
-
-        String packageName = getNextArgRequired();
-        mInterface.setDefaultSmsApp(userId, packageName);
-        getOutPrintWriter().println("SMS app set to " + mInterface.getDefaultSmsApp(userId));
-        return 0;
+        return subInfo.getSubscriptionId();
     }
 
     private boolean checkShellUid() {
@@ -562,4 +741,432 @@
         return Binder.getCallingUid() == Process.SHELL_UID
                 || Binder.getCallingUid() == Process.ROOT_UID;
     }
+
+    private int handleCcCommand() {
+        // Verify that the user is allowed to run the command. Only allowed in rooted device in a
+        // non user build.
+        if (Binder.getCallingUid() != Process.ROOT_UID || TelephonyUtils.IS_USER) {
+            getErrPrintWriter().println("cc: Permission denied.");
+            return -1;
+        }
+
+        String arg = getNextArg();
+        if (arg == null) {
+            onHelpCc();
+            return 0;
+        }
+
+        switch (arg) {
+            case CC_GET_VALUE: {
+                return handleCcGetValue();
+            }
+            case CC_SET_VALUE: {
+                return handleCcSetValue();
+            }
+            case CC_CLEAR_VALUES: {
+                return handleCcClearValues();
+            }
+            default: {
+                getErrPrintWriter().println("cc: Unknown argument: " + arg);
+            }
+        }
+        return -1;
+    }
+
+    // cc get-value
+    private int handleCcGetValue() {
+        PrintWriter errPw = getErrPrintWriter();
+        String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_GET_VALUE + ": ";
+        String key = null;
+
+        // Parse all options
+        CcOptionParseResult options =  parseCcOptions(tag, false);
+        if (options == null) {
+            return -1;
+        }
+
+        // Get bundle containing all carrier configuration values.
+        PersistableBundle bundle = mCarrierConfigManager.getConfigForSubId(options.mSubId);
+        if (bundle == null) {
+            errPw.println(tag + "No carrier config values found for subId " + options.mSubId + ".");
+            return -1;
+        }
+
+        // Get the key.
+        key = getNextArg();
+        if (key != null) {
+            // A key was provided. Verify if it is a valid key
+            if (!bundle.containsKey(key)) {
+                errPw.println(tag + key + " is not a valid key.");
+                return -1;
+            }
+
+            // Print the carrier config value for key.
+            getOutPrintWriter().println(ccValueToString(key, getType(tag, key, bundle), bundle));
+        } else {
+            // No key provided. Show all values.
+            // Iterate over a sorted list of all carrier config keys and print them.
+            TreeSet<String> sortedSet = new TreeSet<String>(bundle.keySet());
+            for (String k : sortedSet) {
+                getOutPrintWriter().println(ccValueToString(k, getType(tag, k, bundle), bundle));
+            }
+        }
+        return 0;
+    }
+
+    // cc set-value
+    private int handleCcSetValue() {
+        PrintWriter errPw = getErrPrintWriter();
+        String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_SET_VALUE + ": ";
+
+        // Parse all options
+        CcOptionParseResult options =  parseCcOptions(tag, true);
+        if (options == null) {
+            return -1;
+        }
+
+        // Get bundle containing all current carrier configuration values.
+        PersistableBundle originalValues = mCarrierConfigManager.getConfigForSubId(options.mSubId);
+        if (originalValues == null) {
+            errPw.println(tag + "No carrier config values found for subId " + options.mSubId + ".");
+            return -1;
+        }
+
+        // Get the key.
+        String key = getNextArg();
+        if (key == null || key.equals("")) {
+            errPw.println(tag + "KEY is missing");
+            return -1;
+        }
+
+        // Verify if the key is valid
+        if (!originalValues.containsKey(key)) {
+            errPw.println(tag + key + " is not a valid key.");
+            return -1;
+        }
+
+        // Remaining arguments is a list of new values. Add them all into an ArrayList.
+        ArrayList<String> valueList = new ArrayList<String>();
+        while (peekNextArg() != null) {
+            valueList.add(getNextArg());
+        }
+
+        // Find the type of the carrier config value
+        CcType type = getType(tag, key, originalValues);
+        if (type == CcType.UNKNOWN) {
+            errPw.println(tag + "ERROR: Not possible to override key with unknown type.");
+            return -1;
+        }
+
+        // Create an override bundle containing the key and value that should be overriden.
+        PersistableBundle overrideBundle = getOverrideBundle(tag, type, key, valueList);
+        if (overrideBundle == null) {
+            return -1;
+        }
+
+        // Override the value
+        mCarrierConfigManager.overrideConfig(options.mSubId, overrideBundle, options.mPersistent);
+
+        // Find bundle containing all new carrier configuration values after the override.
+        PersistableBundle newValues = mCarrierConfigManager.getConfigForSubId(options.mSubId);
+        if (newValues == null) {
+            errPw.println(tag + "No carrier config values found for subId " + options.mSubId + ".");
+            return -1;
+        }
+
+        // Print the original and new value.
+        String originalValueString = ccValueToString(key, type, originalValues);
+        String newValueString = ccValueToString(key, type, newValues);
+        getOutPrintWriter().println("Previous value: \n" + originalValueString);
+        getOutPrintWriter().println("New value: \n" + newValueString);
+
+        return 0;
+    }
+
+    // cc clear-values
+    private int handleCcClearValues() {
+        PrintWriter errPw = getErrPrintWriter();
+        String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_CLEAR_VALUES + ": ";
+
+        // Parse all options
+        CcOptionParseResult options =  parseCcOptions(tag, false);
+        if (options == null) {
+            return -1;
+        }
+
+        // Clear all values that has previously been set.
+        mCarrierConfigManager.overrideConfig(options.mSubId, null, true);
+        getOutPrintWriter()
+                .println("All previously set carrier config override values has been cleared");
+        return 0;
+    }
+
+    private CcType getType(String tag, String key, PersistableBundle bundle) {
+        // Find the type by checking the type of the current value stored in the bundle.
+        Object value = bundle.get(key);
+
+        if (CC_TYPE_MAP.containsKey(key)) {
+            return CC_TYPE_MAP.get(key);
+        } else if (value != null) {
+            if (value instanceof Boolean) {
+                return CcType.BOOLEAN;
+            } else if (value instanceof Double) {
+                return CcType.DOUBLE;
+            } else if (value instanceof double[]) {
+                return CcType.DOUBLE_ARRAY;
+            } else if (value instanceof Integer) {
+                return CcType.INT;
+            } else if (value instanceof int[]) {
+                return CcType.INT_ARRAY;
+            } else if (value instanceof Long) {
+                return CcType.LONG;
+            } else if (value instanceof long[]) {
+                return CcType.LONG_ARRAY;
+            } else if (value instanceof String) {
+                return CcType.STRING;
+            } else if (value instanceof String[]) {
+                return CcType.STRING_ARRAY;
+            }
+        } else {
+            // Current value was null and can therefore not be used in order to find the type.
+            // Check the name of the key to infer the type. This check is not needed for primitive
+            // data types (boolean, double, int and long), since they can not be null.
+            if (key.endsWith("double_array")) {
+                return CcType.DOUBLE_ARRAY;
+            }
+            if (key.endsWith("int_array")) {
+                return CcType.INT_ARRAY;
+            }
+            if (key.endsWith("long_array")) {
+                return CcType.LONG_ARRAY;
+            }
+            if (key.endsWith("string")) {
+                return CcType.STRING;
+            }
+            if (key.endsWith("string_array") || key.endsWith("strings")) {
+                return CcType.STRING_ARRAY;
+            }
+        }
+
+        // Not possible to infer the type by looking at the current value or the key.
+        PrintWriter errPw = getErrPrintWriter();
+        errPw.println(tag + "ERROR: " + key + " has unknown type.");
+        return CcType.UNKNOWN;
+    }
+
+    private String ccValueToString(String key, CcType type, PersistableBundle bundle) {
+        String result;
+        StringBuilder valueString = new StringBuilder();
+        String typeString = type.toString();
+        Object value = bundle.get(key);
+
+        if (value == null) {
+            valueString.append("null");
+        } else {
+            switch (type) {
+                case DOUBLE_ARRAY: {
+                    // Format the string representation of the int array as value1 value2......
+                    double[] valueArray = (double[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        valueString.append(valueArray[i]);
+                    }
+                    break;
+                }
+                case INT_ARRAY: {
+                    // Format the string representation of the int array as value1 value2......
+                    int[] valueArray = (int[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        valueString.append(valueArray[i]);
+                    }
+                    break;
+                }
+                case LONG_ARRAY: {
+                    // Format the string representation of the int array as value1 value2......
+                    long[] valueArray = (long[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        valueString.append(valueArray[i]);
+                    }
+                    break;
+                }
+                case STRING: {
+                    valueString.append("\"" + value.toString() + "\"");
+                    break;
+                }
+                case STRING_ARRAY: {
+                    // Format the string representation of the string array as "value1" "value2"....
+                    String[] valueArray = (String[]) value;
+                    for (int i = 0; i < valueArray.length; i++) {
+                        if (i != 0) {
+                            valueString.append(" ");
+                        }
+                        if (valueArray[i] != null) {
+                            valueString.append("\"" + valueArray[i] + "\"");
+                        } else {
+                            valueString.append("null");
+                        }
+                    }
+                    break;
+                }
+                default: {
+                    valueString.append(value.toString());
+                }
+            }
+        }
+        return String.format("%-70s %-15s %s", key, typeString, valueString);
+    }
+
+    private PersistableBundle getOverrideBundle(String tag, CcType type, String key,
+            ArrayList<String> valueList) {
+        PrintWriter errPw = getErrPrintWriter();
+        PersistableBundle bundle = new PersistableBundle();
+
+        // First verify that a valid number of values has been provided for the type.
+        switch (type) {
+            case BOOLEAN:
+            case DOUBLE:
+            case INT:
+            case LONG: {
+                if (valueList.size() != 1) {
+                    errPw.println(tag + "Expected 1 value for type " + type
+                            + ". Found: " + valueList.size());
+                    return null;
+                }
+                break;
+            }
+            case STRING: {
+                if (valueList.size() > 1) {
+                    errPw.println(tag + "Expected 0 or 1 values for type " + type
+                            + ". Found: " + valueList.size());
+                    return null;
+                }
+                break;
+            }
+        }
+
+        // Parse the value according to type and add it to the Bundle.
+        switch (type) {
+            case BOOLEAN: {
+                if ("true".equalsIgnoreCase(valueList.get(0))) {
+                    bundle.putBoolean(key, true);
+                } else if ("false".equalsIgnoreCase(valueList.get(0))) {
+                    bundle.putBoolean(key, false);
+                } else {
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as a " + type);
+                    return null;
+                }
+                break;
+            }
+            case DOUBLE: {
+                try {
+                    bundle.putDouble(key, Double.parseDouble(valueList.get(0)));
+                } catch (NumberFormatException nfe) {
+                    // Not a valid double
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as a " + type);
+                    return null;
+                }
+                break;
+            }
+            case DOUBLE_ARRAY: {
+                double[] valueDoubleArray = null;
+                if (valueList.size() > 0) {
+                    valueDoubleArray = new double[valueList.size()];
+                    for (int i = 0; i < valueList.size(); i++) {
+                        try {
+                            valueDoubleArray[i] = Double.parseDouble(valueList.get(i));
+                        } catch (NumberFormatException nfe) {
+                            // Not a valid double
+                            errPw.println(
+                                    tag + "Unable to parse " + valueList.get(i) + " as a double.");
+                            return null;
+                        }
+                    }
+                }
+                bundle.putDoubleArray(key, valueDoubleArray);
+                break;
+            }
+            case INT: {
+                try {
+                    bundle.putInt(key, Integer.parseInt(valueList.get(0)));
+                } catch (NumberFormatException nfe) {
+                    // Not a valid integer
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as an " + type);
+                    return null;
+                }
+                break;
+            }
+            case INT_ARRAY: {
+                int[] valueIntArray = null;
+                if (valueList.size() > 0) {
+                    valueIntArray = new int[valueList.size()];
+                    for (int i = 0; i < valueList.size(); i++) {
+                        try {
+                            valueIntArray[i] = Integer.parseInt(valueList.get(i));
+                        } catch (NumberFormatException nfe) {
+                            // Not a valid integer
+                            errPw.println(tag
+                                    + "Unable to parse " + valueList.get(i) + " as an integer.");
+                            return null;
+                        }
+                    }
+                }
+                bundle.putIntArray(key, valueIntArray);
+                break;
+            }
+            case LONG: {
+                try {
+                    bundle.putLong(key, Long.parseLong(valueList.get(0)));
+                } catch (NumberFormatException nfe) {
+                    // Not a valid long
+                    errPw.println(tag + "Unable to parse " + valueList.get(0) + " as a " + type);
+                    return null;
+                }
+                break;
+            }
+            case LONG_ARRAY: {
+                long[] valueLongArray = null;
+                if (valueList.size() > 0) {
+                    valueLongArray = new long[valueList.size()];
+                    for (int i = 0; i < valueList.size(); i++) {
+                        try {
+                            valueLongArray[i] = Long.parseLong(valueList.get(i));
+                        } catch (NumberFormatException nfe) {
+                            // Not a valid long
+                            errPw.println(
+                                    tag + "Unable to parse " + valueList.get(i) + " as a long");
+                            return null;
+                        }
+                    }
+                }
+                bundle.putLongArray(key, valueLongArray);
+                break;
+            }
+            case STRING: {
+                String value = null;
+                if (valueList.size() > 0) {
+                    value = valueList.get(0);
+                }
+                bundle.putString(key, value);
+                break;
+            }
+            case STRING_ARRAY: {
+                String[] valueStringArray = null;
+                if (valueList.size() > 0) {
+                    valueStringArray = new String[valueList.size()];
+                    valueList.toArray(valueStringArray);
+                }
+                bundle.putStringArray(key, valueStringArray);
+                break;
+            }
+        }
+        return bundle;
+    }
 }
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 8c5ae6d..3b5fe21 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -187,6 +187,11 @@
     @Override
     public void onError(Preference preference, int error) {
         if (DBG) dumpState();
+        if (!preference.isEnabled()) {
+            Log.i(LOG_TAG, "onError, skipped duplicated error popup");
+            return;
+        }
+
         Log.i(LOG_TAG, "onError, preference=" + preference.getKey() + ", error=" + error);
 
         if (mIsForeground) {
diff --git a/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
new file mode 100644
index 0000000..64a40b9
--- /dev/null
+++ b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.phone.euicc;
+
+import android.annotation.Nullable;
+import android.content.Intent;
+import android.service.euicc.EuiccService;
+import android.telephony.euicc.EuiccManager;
+import android.util.Log;
+
+/**
+ * Trampoline activity to forward public eUICC intents to the active UI implementation.
+ *
+ * <p>Unlike {@link EuiccUiDispatcherActivity}, this activity does not require any permissions to
+ * start.
+ */
+public class EuiccPublicActionUiDispatcherActivity extends EuiccUiDispatcherActivity {
+    private static final String TAG = "EuiccPublicActionUiDispatcherActivity";
+
+    @Override
+    @Nullable
+    protected Intent getEuiccUiIntent() {
+        String action = getIntent().getAction();
+
+        Intent intent = new Intent();
+        // Propagate the extras from the original Intent.
+        intent.putExtras(getIntent());
+        switch (action) {
+            case EuiccManager.ACTION_START_EUICC_ACTIVATION:
+                intent.setAction(EuiccService.ACTION_START_EUICC_ACTIVATION);
+                break;
+            default:
+                Log.w(TAG, "Unsupported action: " + action);
+                return null;
+        }
+
+        return intent;
+    }
+}
diff --git a/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java
index 0f083c9..fd741a0 100644
--- a/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccResolutionUiDispatcherActivity.java
@@ -20,6 +20,7 @@
 import android.content.Intent;
 import android.service.euicc.EuiccService;
 import android.telephony.euicc.EuiccManager;
+import android.util.ArraySet;
 import android.util.Log;
 
 /**
@@ -33,6 +34,14 @@
 public class EuiccResolutionUiDispatcherActivity extends EuiccUiDispatcherActivity {
     private static final String TAG = "EuiccResUiDispatcher";
 
+    /** List of all valid resolution actions for validation purposes. */
+    private static final ArraySet<String> RESOLUTION_ACTIONS = new ArraySet<>();
+    static {
+        RESOLUTION_ACTIONS.add(EuiccService.ACTION_RESOLVE_DEACTIVATE_SIM);
+        RESOLUTION_ACTIONS.add(EuiccService.ACTION_RESOLVE_NO_PRIVILEGES);
+        RESOLUTION_ACTIONS.add(EuiccService.ACTION_RESOLVE_RESOLVABLE_ERRORS);
+    }
+
     @Override
     @Nullable
     protected Intent getEuiccUiIntent() {
@@ -45,7 +54,7 @@
         String euiccUiAction =
                 getIntent().getStringExtra(
                         EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_ACTION);
-        if (!EuiccService.RESOLUTION_ACTIONS.contains(euiccUiAction)) {
+        if (!RESOLUTION_ACTIONS.contains(euiccUiAction)) {
             Log.w(TAG, "Unknown resolution action: " + euiccUiAction);
             return null;
         }
diff --git a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
index 7c7b75d..57caede 100644
--- a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
@@ -18,41 +18,65 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.Activity;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
-import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Bundle;
-import android.os.RemoteException;
-import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.permission.PermissionManager;
 import android.service.euicc.EuiccService;
 import android.telephony.euicc.EuiccManager;
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.euicc.EuiccConnector;
+import com.android.internal.telephony.util.TelephonyUtils;
 
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /** Trampoline activity to forward eUICC intents from apps to the active UI implementation. */
 public class EuiccUiDispatcherActivity extends Activity {
     private static final String TAG = "EuiccUiDispatcher";
+    private static final long CHANGE_PERMISSION_TIMEOUT_MS = 15 * 1000; // 15 seconds
 
     /** Flags to use when querying PackageManager for Euicc component implementations. */
     private static final int EUICC_QUERY_FLAGS =
             PackageManager.MATCH_SYSTEM_ONLY | PackageManager.MATCH_DEBUG_TRIAGED_MISSING
                     | PackageManager.GET_RESOLVED_FILTER;
 
-    private final IPackageManager mPackageManager = IPackageManager.Stub
-            .asInterface(ServiceManager.getService("package"));
+    private PermissionManager mPermissionManager;
+    private boolean mGrantPermissionDone = false;
+    private ThreadPoolExecutor mExecutor;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        mPermissionManager = (PermissionManager) getSystemService(Context.PERMISSION_SERVICE);
+        mExecutor = new ThreadPoolExecutor(
+                1 /* corePoolSize */,
+                1 /* maxPoolSize */,
+                15, TimeUnit.SECONDS, /* keepAliveTime */
+                new LinkedBlockingQueue<>(), /* workQueue */
+                new ThreadFactory() {
+                    private final AtomicInteger mCount = new AtomicInteger(1);
+
+                    @Override
+                    public Thread newThread(Runnable r) {
+                        return new Thread(r, "EuiccService #" + mCount.getAndIncrement());
+                    }
+                }
+        );
         try {
             Intent euiccUiIntent = resolveEuiccUiIntent();
             if (euiccUiIntent == null) {
@@ -92,9 +116,9 @@
             return null;
         }
 
-        grantDefaultPermissionsToActiveLuiApp(activityInfo);
+        grantDefaultPermissionsToLuiApp(activityInfo);
 
-        euiccUiIntent.setComponent(activityInfo.getComponentName());
+        euiccUiIntent.setComponent(new ComponentName(activityInfo.packageName, activityInfo.name));
         return euiccUiIntent;
     }
 
@@ -127,6 +151,12 @@
         return intent;
     }
 
+    @Override
+    protected void onDestroy() {
+        mExecutor.shutdownNow();
+        super.onDestroy();
+    }
+
     @VisibleForTesting
     @Nullable
     ActivityInfo findBestActivity(Intent euiccUiIntent) {
@@ -135,11 +165,20 @@
 
     /** Grants default permissions to the active LUI app. */
     @VisibleForTesting
-    protected void grantDefaultPermissionsToActiveLuiApp(ActivityInfo activityInfo) {
+    protected void grantDefaultPermissionsToLuiApp(ActivityInfo activityInfo) {
+        CountDownLatch latch = new CountDownLatch(1);
         try {
-            mPackageManager.grantDefaultPermissionsToActiveLuiApp(
-                    activityInfo.packageName, getUserId());
-        } catch (RemoteException e) {
+            mPermissionManager.grantDefaultPermissionsToLuiApp(
+                    activityInfo.packageName, UserHandle.of(UserHandle.myUserId()), mExecutor,
+                    isSuccess -> {
+                        if (isSuccess) {
+                            latch.countDown();
+                        } else {
+                            Log.e(TAG, "Failed to revoke LUI app permissions.");
+                        }
+                    });
+            TelephonyUtils.waitUntilReady(latch, CHANGE_PERMISSION_TIMEOUT_MS);
+        } catch (RuntimeException e) {
             Log.e(TAG, "Failed to grant permissions to active LUI app.", e);
         }
     }
@@ -147,13 +186,22 @@
     /** Cleans up all the packages that shouldn't have permission. */
     @VisibleForTesting
     protected void revokePermissionFromLuiApps(Intent intent) {
+        CountDownLatch latch = new CountDownLatch(1);
         try {
             Set<String> luiApps = getAllLuiAppPackageNames(intent);
             String[] luiAppsArray = luiApps.toArray(new String[luiApps.size()]);
-            mPackageManager.revokeDefaultPermissionsFromLuiApps(luiAppsArray, getUserId());
-        } catch (RemoteException e) {
+            mPermissionManager.revokeDefaultPermissionsFromLuiApps(luiAppsArray,
+                    UserHandle.of(UserHandle.myUserId()), mExecutor, isSuccess -> {
+                        if (isSuccess) {
+                            latch.countDown();
+                        } else {
+                            Log.e(TAG, "Failed to revoke LUI app permissions.");
+                        }
+                    });
+            TelephonyUtils.waitUntilReady(latch, CHANGE_PERMISSION_TIMEOUT_MS);
+        } catch (RuntimeException e) {
             Log.e(TAG, "Failed to revoke LUI app permissions.");
-            throw e.rethrowAsRuntimeException();
+            throw e;
         }
     }
 
diff --git a/src/com/android/phone/otasp/OtaspActivationService.java b/src/com/android/phone/otasp/OtaspActivationService.java
index 7490880..6ed2ea8 100644
--- a/src/com/android/phone/otasp/OtaspActivationService.java
+++ b/src/com/android/phone/otasp/OtaspActivationService.java
@@ -150,11 +150,9 @@
         mPhone.registerForCdmaOtaStatusChange(mHandler, EVENT_CDMA_PROVISION_STATUS_UPDATE, null);
         mPhone.registerForPreciseCallStateChanged(mHandler, EVENT_CALL_STATE_CHANGED, null);
         logd("startNonInteractiveOtasp: placing call to '" + OTASP_NUMBER + "'...");
-        int callStatus = PhoneUtils.placeCall(this,
+        int callStatus = PhoneUtils.placeOtaspCall(this,
                 getPhone(),
-                OTASP_NUMBER,
-                null,   // contactRef
-                false); // isEmergencyCall
+                OTASP_NUMBER);
         if (callStatus == PhoneUtils.CALL_STATUS_DIALED) {
             if (DBG) logd("  ==> success return from placeCall(): callStatus = " + callStatus);
         } else {
diff --git a/src/com/android/phone/otasp/OtaspSimStateReceiver.java b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
index 68b14b9..bb4022a 100644
--- a/src/com/android/phone/otasp/OtaspSimStateReceiver.java
+++ b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
@@ -98,7 +98,7 @@
         }
     }
 
-    // It's fine to call multiple times, as the registrants are de-duped by Handler object.
+    // It's fine to call mutiple times, as the registrants are de-duped by Handler object.
     private void registerOtaspChangedHandler() {
         final Phone phone = PhoneGlobals.getPhone();
         phone.registerForOtaspChange(mOtaspHandler, EVENT_OTASP_CHANGED, null);
diff --git a/src/com/android/phone/settings/AccessibilitySettingsFragment.java b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
index 2965685..37212cf 100644
--- a/src/com/android/phone/settings/AccessibilitySettingsFragment.java
+++ b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
@@ -19,15 +19,18 @@
 import android.content.Context;
 import android.media.AudioManager;
 import android.os.Bundle;
+import android.os.PersistableBundle;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
 import android.preference.SwitchPreference;
 import android.provider.Settings;
+import android.telephony.AccessNetworkConstants;
 import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneStateListener;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
+import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.ims.ImsManager;
@@ -37,6 +40,11 @@
 import com.android.phone.PhoneGlobals;
 import com.android.phone.R;
 
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
 public class AccessibilitySettingsFragment extends PreferenceFragment {
     private static final String LOG_TAG = AccessibilitySettingsFragment.class.getSimpleName();
     private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
@@ -46,6 +54,8 @@
     private static final String BUTTON_RTT_KEY = "button_rtt_key";
     private static final String RTT_INFO_PREF = "button_rtt_more_information_key";
 
+    private static final int WFC_QUERY_TIMEOUT_MILLIS = 20;
+
     private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
         /**
          * Disable the TTY setting when in/out of a call (and if carrier doesn't
@@ -63,12 +73,9 @@
                 // support multi sim configuration.
                 TelephonyManager telephonyManager =
                         (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
-                final boolean isVolteTtySupported = getVolteTtySupported();
-                final boolean isVolteCurrentlyEnabled =
-                        ImsManager.isVolteEnabledByPlatform(mContext);
-                pref.setEnabled((isVolteTtySupported && isVolteCurrentlyEnabled &&
-                        !isVideoCallOrConferenceInProgress()) ||
-                        (telephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE));
+                final boolean isVolteTtySupported = isVolteTtySupportedInAnySlot();
+                pref.setEnabled((isVolteTtySupported && !isVideoCallOrConferenceInProgress())
+                        || (telephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE));
             }
         }
     };
@@ -111,8 +118,16 @@
         }
 
         if (shouldShowRttSetting()) {
-            // TODO: this is going to be a on/off switch for now. Ask UX about how to integrate
-            // this settings with TTY
+            TelephonyManager tm =
+                    (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+            boolean isRoaming = tm.isNetworkRoaming(
+                    SubscriptionManager.getDefaultVoiceSubscriptionId());
+
+            boolean shouldDisableBecauseRoamingOffWfc = isRoaming && !isOnWfc();
+            if (shouldDisableBecauseRoamingOffWfc) {
+                mButtonRtt.setSummary(TextUtils.concat(getText(R.string.rtt_mode_summary), "\n",
+                        getText(R.string.no_rtt_when_roaming)));
+            }
             boolean rttOn = Settings.Secure.getInt(
                     mContext.getContentResolver(), Settings.Secure.RTT_CALLING_MODE, 0) != 0;
             mButtonRtt.setChecked(rttOn);
@@ -151,9 +166,9 @@
             Settings.System.putInt(mContext.getContentResolver(), Settings.System.HEARING_AID, hac);
 
             // Update HAC Value in AudioManager.
-            mAudioManager.setParameter(SettingsConstants.HAC_KEY,
-                    hac == SettingsConstants.HAC_ENABLED
-                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF);
+            mAudioManager.setParameters(
+                    SettingsConstants.HAC_KEY + "=" + (hac == SettingsConstants.HAC_ENABLED
+                            ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF));
             return true;
         } else if (preference == mButtonRtt) {
             Log.i(LOG_TAG, "RTT setting changed -- now " + mButtonRtt.isChecked());
@@ -177,11 +192,38 @@
         return false;
     }
 
-    private boolean getVolteTtySupported() {
+    private boolean isVolteTtySupportedInAnySlot() {
+        final Phone[] phones = PhoneFactory.getPhones();
+        if (phones == null) {
+            if (DBG) Log.d(LOG_TAG, "isVolteTtySupportedInAnySlot: No phones found.");
+            return false;
+        }
+
         CarrierConfigManager configManager =
                 (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        return configManager.getConfig().getBoolean(
-                CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL);
+        for (Phone phone : phones) {
+            // Check if this phone supports VoLTE.
+            ImsManager imsManager = ImsManager.getInstance(mContext, phone.getPhoneId());
+            boolean volteEnabled = false;
+            if (imsManager != null) {
+                volteEnabled = imsManager.isVolteEnabledByPlatform();
+            }
+
+            // Check if this phone suports VoLTE TTY.
+            boolean volteTtySupported = false;
+            PersistableBundle carrierConfig = configManager.getConfigForSubId(phone.getSubId());
+            if (carrierConfig != null) {
+                volteTtySupported = carrierConfig.getBoolean(
+                        CarrierConfigManager.KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL);
+            }
+
+            if (volteEnabled && volteTtySupported) {
+                // VoLTE TTY is supported on this phone that also suports VoLTE.
+                return true;
+            }
+        }
+        // VoLTE TTY was not supported on any phone that also supports VoLTE.
+        return false;
     }
 
     private boolean isVideoCallOrConferenceInProgress() {
@@ -199,6 +241,21 @@
         return false;
     }
 
+    private boolean isOnWfc() {
+        LinkedBlockingQueue<Integer> result = new LinkedBlockingQueue<>(1);
+        Executor executor = Executors.newSingleThreadExecutor();
+        mContext.getSystemService(android.telephony.ims.ImsManager.class)
+                .getImsMmTelManager(SubscriptionManager.getDefaultSubscriptionId())
+                .getRegistrationTransportType(executor, result::offer);
+        try {
+            Integer transportType = result.poll(WFC_QUERY_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+            return transportType != null
+                    && transportType == AccessNetworkConstants.TRANSPORT_TYPE_WLAN;
+        } catch (InterruptedException e) {
+            return false;
+        }
+    }
+
     private boolean shouldShowRttSetting() {
         // Go through all the subs -- if we want to display the RTT setting for any of them, do
         // display it.
diff --git a/src/com/android/phone/settings/BandMode.java b/src/com/android/phone/settings/BandMode.java
new file mode 100644
index 0000000..853075a
--- /dev/null
+++ b/src/com/android/phone/settings/BandMode.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.settings;
+
+import android.app.Activity;
+import android.content.DialogInterface;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+import android.view.View;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.phone.R;
+
+/**
+ * Radio Band Mode Selection Class
+ *
+ * It will query baseband about all available band modes and display them
+ * in screen. It will display all six band modes if the query failed.
+ *
+ * After user select one band, it will send the selection to baseband.
+ *
+ * It will alter user the result of select operation and exit, no matter success
+ * or not.
+ *
+ */
+public class BandMode extends Activity {
+    private static final String LOG_TAG = "phone";
+    private static final boolean DBG = false;
+
+    private static final int EVENT_BAND_SCAN_COMPLETED = 100;
+    private static final int EVENT_BAND_SELECTION_DONE = 200;
+
+    //Directly maps to RIL_RadioBandMode from ril.h
+    private static final String[] BAND_NAMES = new String[] {
+            "Automatic",
+            "Europe",
+            "United States",
+            "Japan",
+            "Australia",
+            "Australia 2",
+            "Cellular 800",
+            "PCS",
+            "Class 3 (JTACS)",
+            "Class 4 (Korea-PCS)",
+            "Class 5",
+            "Class 6 (IMT2000)",
+            "Class 7 (700Mhz-Upper)",
+            "Class 8 (1800Mhz-Upper)",
+            "Class 9 (900Mhz)",
+            "Class 10 (800Mhz-Secondary)",
+            "Class 11 (Europe PAMR 400Mhz)",
+            "Class 15 (US-AWS)",
+            "Class 16 (US-2500Mhz)"
+    };
+
+    private ListView mBandList;
+    private ArrayAdapter mBandListAdapter;
+    private BandListItem mTargetBand = null;
+    private DialogInterface mProgressPanel;
+
+    private Phone mPhone = null;
+
+    @Override
+    protected void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+        setContentView(R.layout.band_mode);
+
+        mPhone = PhoneFactory.getDefaultPhone();
+
+        mBandList = (ListView) findViewById(R.id.band);
+        mBandListAdapter = new ArrayAdapter<BandListItem>(this,
+                android.R.layout.simple_list_item_1);
+        mBandList.setAdapter(mBandListAdapter);
+        mBandList.setOnItemClickListener(mBandSelectionHandler);
+
+        loadBandList();
+    }
+
+    private AdapterView.OnItemClickListener mBandSelectionHandler =
+            new AdapterView.OnItemClickListener() {
+                public void onItemClick(AdapterView parent, View v,
+                        int position, long id) {
+
+                    getWindow().setFeatureInt(
+                            Window.FEATURE_INDETERMINATE_PROGRESS,
+                            Window.PROGRESS_VISIBILITY_ON);
+
+                    mTargetBand = (BandListItem) parent.getAdapter().getItem(position);
+
+                    if (DBG) log("Select band : " + mTargetBand.toString());
+
+                    Message msg =
+                            mHandler.obtainMessage(EVENT_BAND_SELECTION_DONE);
+                    mPhone.setBandMode(mTargetBand.getBand(), msg);
+                }
+            };
+
+    private static class BandListItem {
+        private int mBandMode = Phone.BM_UNSPECIFIED;
+
+        BandListItem(int bm) {
+            mBandMode = bm;
+        }
+
+        public int getBand() {
+            return mBandMode;
+        }
+
+        public String toString() {
+            if (mBandMode >= BAND_NAMES.length) return "Band mode " + mBandMode;
+            return BAND_NAMES[mBandMode];
+        }
+    }
+
+    private void loadBandList() {
+        String str = getString(R.string.band_mode_loading);
+
+        if (DBG) log(str);
+
+
+        //ProgressDialog.show(this, null, str, true, true, null);
+        mProgressPanel = new AlertDialog.Builder(this)
+            .setMessage(str)
+            .show();
+
+        Message msg = mHandler.obtainMessage(EVENT_BAND_SCAN_COMPLETED);
+        mPhone.queryAvailableBandMode(msg);
+
+    }
+
+    private void bandListLoaded(AsyncResult result) {
+        if (DBG) log("network list loaded");
+
+        if (mProgressPanel != null) mProgressPanel.dismiss();
+
+        clearList();
+
+        boolean addBandSuccess = false;
+        BandListItem item;
+
+        if (result.result != null) {
+            int [] bands = (int []) result.result;
+
+            if (bands.length == 0) {
+                Log.wtf(LOG_TAG, "No Supported Band Modes");
+                return;
+            }
+
+            int size = bands[0];
+
+            if (size > 0) {
+                mBandListAdapter.add(
+                        new BandListItem(Phone.BM_UNSPECIFIED)); //Always include AUTOMATIC
+                for (int i = 1; i <= size; i++) {
+                    if (bands[i] == Phone.BM_UNSPECIFIED) {
+                        continue;
+                    }
+                    item = new BandListItem(bands[i]);
+                    mBandListAdapter.add(item);
+                    if (DBG) log("Add " + item.toString());
+                }
+                addBandSuccess = true;
+            }
+        }
+
+        if (!addBandSuccess) {
+            if (DBG) log("Error in query, add default list");
+            for (int i = 0; i < Phone.BM_NUM_BAND_MODES; i++) {
+                item = new BandListItem(i);
+                mBandListAdapter.add(item);
+                if (DBG) log("Add default " + item.toString());
+            }
+        }
+        mBandList.requestFocus();
+    }
+
+    private void displayBandSelectionResult(Throwable ex) {
+        String status = getString(R.string.band_mode_set)
+                + " [" + mTargetBand.toString() + "] ";
+
+        if (ex != null) {
+            status = status + getString(R.string.band_mode_failed);
+        } else {
+            status = status + getString(R.string.band_mode_succeeded);
+        }
+
+        mProgressPanel = new AlertDialog.Builder(this)
+            .setMessage(status)
+            .setPositiveButton(android.R.string.ok, null).show();
+    }
+
+    private void clearList() {
+        while (mBandListAdapter.getCount() > 0) {
+            mBandListAdapter.remove(
+                    mBandListAdapter.getItem(0));
+        }
+    }
+
+    private void log(String msg) {
+        Log.d(LOG_TAG, "[BandsList] " + msg);
+    }
+
+    private Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            AsyncResult ar;
+            switch (msg.what) {
+                case EVENT_BAND_SCAN_COMPLETED:
+                    ar = (AsyncResult) msg.obj;
+
+                    bandListLoaded(ar);
+                    break;
+
+                case EVENT_BAND_SELECTION_DONE:
+                    ar = (AsyncResult) msg.obj;
+
+                    getWindow().setFeatureInt(
+                            Window.FEATURE_INDETERMINATE_PROGRESS,
+                            Window.PROGRESS_VISIBILITY_OFF);
+
+                    if (!isFinishing()) {
+                        displayBandSelectionResult(ar.exception);
+                    }
+                    break;
+            }
+        }
+    };
+
+
+}
diff --git a/src/com/android/phone/settings/CallForwardInfoUtil.java b/src/com/android/phone/settings/CallForwardInfoUtil.java
index 1983fab..b963df8 100644
--- a/src/com/android/phone/settings/CallForwardInfoUtil.java
+++ b/src/com/android/phone/settings/CallForwardInfoUtil.java
@@ -82,6 +82,7 @@
         phone.setCallForwardingOption(commandInterfaceCfAction,
                 info.reason,
                 info.number,
+                info.serviceClass,
                 info.timeSeconds,
                 message);
     }
@@ -93,10 +94,12 @@
      */
     public static CallForwardInfo getCallForwardInfo(CallForwardInfo[] infos, int reason) {
         CallForwardInfo info = null;
-        for (int i = 0 ; i < infos.length; i++) {
-            if (isServiceClassVoice(infos[i])) {
-                info = infos[i];
-                break;
+        if (infos != null) {
+            for (int i = 0 ; i < infos.length; i++) {
+                if (isServiceClassVoice(infos[i])) {
+                    info = infos[i];
+                    break;
+                }
             }
         }
 
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index aa6b155..3811a77 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -101,7 +101,7 @@
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
-        mTelecomManager = TelecomManager.from(getActivity());
+        mTelecomManager = getActivity().getSystemService(TelecomManager.class);
         mTelephonyManager = TelephonyManager.from(getActivity());
         mSubscriptionManager = SubscriptionManager.from(getActivity());
     }
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
new file mode 100644
index 0000000..31b7a9e
--- /dev/null
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -0,0 +1,1794 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.settings;
+
+import static android.net.ConnectivityManager.NetworkCallback;
+import static android.provider.Settings.Global.PREFERRED_NETWORK_MODE;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.net.ConnectivityManager;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.net.TrafficStats;
+import android.net.Uri;
+import android.os.AsyncResult;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.CellIdentityCdma;
+import android.telephony.CellIdentityGsm;
+import android.telephony.CellIdentityLte;
+import android.telephony.CellIdentityWcdma;
+import android.telephony.CellInfo;
+import android.telephony.CellInfoCdma;
+import android.telephony.CellInfoGsm;
+import android.telephony.CellInfoLte;
+import android.telephony.CellInfoWcdma;
+import android.telephony.CellLocation;
+import android.telephony.CellSignalStrengthCdma;
+import android.telephony.CellSignalStrengthGsm;
+import android.telephony.CellSignalStrengthLte;
+import android.telephony.CellSignalStrengthWcdma;
+import android.telephony.PhoneStateListener;
+import android.telephony.PhysicalChannelConfig;
+import android.telephony.PreciseCallState;
+import android.telephony.ServiceState;
+import android.telephony.SignalStrength;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.cdma.CdmaCellLocation;
+import android.telephony.gsm.GsmCellLocation;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.Switch;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog.Builder;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.android.ims.ImsConfig;
+import com.android.ims.ImsException;
+import com.android.ims.ImsManager;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.phone.R;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.List;
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Radio Information Class
+ *
+ * Allows user to read and alter some of the radio related information.
+ *
+ */
+public class RadioInfo extends AppCompatActivity {
+    private static final String TAG = "RadioInfo";
+
+    private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE);
+
+    private static final String[] PREFERRED_NETWORK_LABELS = {
+            "GSM/WCDMA preferred",
+            "GSM only",
+            "WCDMA only",
+            "GSM/WCDMA auto (PRL)",
+            "CDMA/EvDo auto (PRL)",
+            "CDMA only",
+            "EvDo only",
+            "CDMA/EvDo/GSM/WCDMA (PRL)",
+            "CDMA + LTE/EvDo (PRL)",
+            "GSM/WCDMA/LTE (PRL)",
+            "LTE/CDMA/EvDo/GSM/WCDMA (PRL)",
+            "LTE only",
+            "LTE/WCDMA",
+            "TDSCDMA only",
+            "TDSCDMA/WCDMA",
+            "LTE/TDSCDMA",
+            "TDSCDMA/GSM",
+            "LTE/TDSCDMA/GSM",
+            "TDSCDMA/GSM/WCDMA",
+            "LTE/TDSCDMA/WCDMA",
+            "LTE/TDSCDMA/GSM/WCDMA",
+            "TDSCDMA/CDMA/EvDo/GSM/WCDMA ",
+            "LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA",
+            "NR only",
+            "NR/LTE",
+            "NR/LTE/CDMA/EvDo",
+            "NR/LTE/GSM/WCDMA",
+            "NR/LTE/CDMA/EvDo/GSM/WCDMA",
+            "NR/LTE/WCDMA",
+            "NR/LTE/TDSCDMA",
+            "NR/LTE/TDSCDMA/GSM",
+            "NR/LTE/TDSCDMA/WCDMA",
+            "NR/LTE/TDSCDMA/GSM/WCDMA",
+            "NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA",
+            "Unknown"
+    };
+
+    private static String[] sPhoneIndexLabels;
+
+    private static final int sCellInfoListRateDisabled = Integer.MAX_VALUE;
+    private static final int sCellInfoListRateMax = 0;
+
+    private static final String OEM_RADIO_INFO_INTENT =
+            "com.android.phone.settings.OEM_RADIO_INFO";
+
+    private static final String DSDS_MODE_PROPERTY = "ro.boot.hardware.dsds";
+
+    /**
+     * A value indicates the device is always on dsds mode.
+     * @see {@link #DSDS_MODE_PROPERTY}
+     */
+    private static final int ALWAYS_ON_DSDS_MODE = 1;
+
+    private static final int IMS_VOLTE_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.VLT_SETTING_ENABLED;
+
+    private static final int IMS_VT_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.LVC_SETTING_ENABLED;
+
+    private static final int IMS_WFC_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED;
+
+    private static final int EAB_PROVISIONED_CONFIG_ID =
+            ImsConfig.ConfigConstants.EAB_SETTING_ENABLED;
+
+    //Values in must match CELL_INFO_REFRESH_RATES
+    private static final String[] CELL_INFO_REFRESH_RATE_LABELS = {
+            "Disabled",
+            "Immediate",
+            "Min 5s",
+            "Min 10s",
+            "Min 60s"
+    };
+
+    //Values in seconds, must match CELL_INFO_REFRESH_RATE_LABELS
+    private static final int [] CELL_INFO_REFRESH_RATES = {
+        sCellInfoListRateDisabled,
+        sCellInfoListRateMax,
+        5000,
+        10000,
+        60000
+    };
+
+    private static void log(String s) {
+        Log.d(TAG, s);
+    }
+
+    private static final int EVENT_CFI_CHANGED = 302;
+
+    private static final int EVENT_QUERY_PREFERRED_TYPE_DONE = 1000;
+    private static final int EVENT_SET_PREFERRED_TYPE_DONE = 1001;
+    private static final int EVENT_QUERY_SMSC_DONE = 1005;
+    private static final int EVENT_UPDATE_SMSC_DONE = 1006;
+    private static final int EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED = 1007;
+
+    private static final int MENU_ITEM_SELECT_BAND         = 0;
+    private static final int MENU_ITEM_VIEW_ADN            = 1;
+    private static final int MENU_ITEM_VIEW_FDN            = 2;
+    private static final int MENU_ITEM_VIEW_SDN            = 3;
+    private static final int MENU_ITEM_GET_IMS_STATUS      = 4;
+    private static final int MENU_ITEM_TOGGLE_DATA         = 5;
+
+    private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA
+    private TextView mLine1Number;
+    private TextView mSubscriptionId;
+    private TextView mDds;
+    private TextView mSubscriberId;
+    private TextView mCallState;
+    private TextView mOperatorName;
+    private TextView mRoamingState;
+    private TextView mGsmState;
+    private TextView mGprsState;
+    private TextView mVoiceNetwork;
+    private TextView mDataNetwork;
+    private TextView mDBm;
+    private TextView mMwi;
+    private TextView mCfi;
+    private TextView mLocation;
+    private TextView mCellInfo;
+    private TextView mSent;
+    private TextView mReceived;
+    private TextView mPingHostnameV4;
+    private TextView mPingHostnameV6;
+    private TextView mHttpClientTest;
+    private TextView mPhyChanConfig;
+    private TextView mDnsCheckState;
+    private TextView mDownlinkKbps;
+    private TextView mUplinkKbps;
+    private EditText mSmsc;
+    private Switch mRadioPowerOnSwitch;
+    private Button mCellInfoRefreshRateButton;
+    private Button mDnsCheckToggleButton;
+    private Button mPingTestButton;
+    private Button mUpdateSmscButton;
+    private Button mRefreshSmscButton;
+    private Button mOemInfoButton;
+    private Button mCarrierProvisioningButton;
+    private Button mTriggerCarrierProvisioningButton;
+    private Switch mImsVolteProvisionedSwitch;
+    private Switch mImsVtProvisionedSwitch;
+    private Switch mImsWfcProvisionedSwitch;
+    private Switch mEabProvisionedSwitch;
+    private Switch mCbrsDataSwitch;
+    private Switch mDsdsSwitch;
+    private Spinner mPreferredNetworkType;
+    private Spinner mSelectPhoneIndex;
+    private Spinner mCellInfoRefreshRateSpinner;
+
+    private static final long RUNNABLE_TIMEOUT_MS = 5 * 60 * 1000L;
+
+    private ThreadPoolExecutor mQueuedWork;
+
+    private ConnectivityManager mConnectivityManager;
+    private TelephonyManager mTelephonyManager;
+    private ImsManager mImsManager = null;
+    private Phone mPhone = null;
+
+    private String mPingHostnameResultV4;
+    private String mPingHostnameResultV6;
+    private String mHttpClientTestResult;
+    private boolean mMwiValue = false;
+    private boolean mCfiValue = false;
+
+    private List<CellInfo> mCellInfoResult = null;
+    private CellLocation mCellLocationResult = null;
+
+    private int mPreferredNetworkTypeResult;
+    private int mCellInfoRefreshRateIndex;
+    private int mSelectedPhoneIndex;
+
+    private final NetworkRequest mDefaultNetworkRequest = new NetworkRequest.Builder()
+            .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
+            .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+            .build();
+
+    private final NetworkCallback mNetworkCallback = new NetworkCallback() {
+        public void onCapabilitiesChanged(Network n, NetworkCapabilities nc) {
+            int dlbw = nc.getLinkDownstreamBandwidthKbps();
+            int ulbw = nc.getLinkUpstreamBandwidthKbps();
+            updateBandwidths(dlbw, ulbw);
+        }
+    };
+
+    // not final because we need to recreate this object to register on a new subId (b/117555407)
+    private PhoneStateListener mPhoneStateListener = new RadioInfoPhoneStateListener();
+    private class RadioInfoPhoneStateListener extends PhoneStateListener {
+        @Override
+        public void onDataConnectionStateChanged(int state) {
+            updateDataState();
+            updateNetworkType();
+        }
+
+        @Override
+        public void onDataActivity(int direction) {
+            updateDataStats2();
+        }
+
+        @Override
+        public void onCallStateChanged(int state, String incomingNumber) {
+            updateNetworkType();
+            updatePhoneState(state);
+        }
+
+        @Override
+        public void onPreciseCallStateChanged(PreciseCallState preciseState) {
+            updateNetworkType();
+        }
+
+        @Override
+        public void onCellLocationChanged(CellLocation location) {
+            updateLocation(location);
+        }
+
+        @Override
+        public void onMessageWaitingIndicatorChanged(boolean mwi) {
+            mMwiValue = mwi;
+            updateMessageWaiting();
+        }
+
+        @Override
+        public void onCallForwardingIndicatorChanged(boolean cfi) {
+            mCfiValue = cfi;
+            updateCallRedirect();
+        }
+
+        @Override
+        public void onCellInfoChanged(List<CellInfo> arrayCi) {
+            log("onCellInfoChanged: arrayCi=" + arrayCi);
+            mCellInfoResult = arrayCi;
+            updateCellInfo(mCellInfoResult);
+        }
+
+        @Override
+        public void onSignalStrengthsChanged(SignalStrength signalStrength) {
+            log("onSignalStrengthChanged: SignalStrength=" + signalStrength);
+            updateSignalStrength(signalStrength);
+        }
+
+        @Override
+        public void onServiceStateChanged(ServiceState serviceState) {
+            log("onServiceStateChanged: ServiceState=" + serviceState);
+            updateServiceState(serviceState);
+            updateRadioPowerState();
+            updateNetworkType();
+            updateImsProvisionedState();
+        }
+
+    }
+
+    private void updatePhysicalChannelConfiguration(List<PhysicalChannelConfig> configs) {
+        StringBuilder sb = new StringBuilder();
+        String div = "";
+        sb.append("{");
+        if (configs != null) {
+            for (PhysicalChannelConfig c : configs) {
+                sb.append(div).append(c);
+                div = ",";
+            }
+        }
+        sb.append("}");
+        mPhyChanConfig.setText(sb.toString());
+    }
+
+    private void updatePreferredNetworkType(int type) {
+        if (type >= PREFERRED_NETWORK_LABELS.length || type < 0) {
+            log("EVENT_QUERY_PREFERRED_TYPE_DONE: unknown "
+                    + "type=" + type);
+            type = PREFERRED_NETWORK_LABELS.length - 1; //set to Unknown
+        }
+        mPreferredNetworkTypeResult = type;
+
+        mPreferredNetworkType.setSelection(mPreferredNetworkTypeResult, true);
+    }
+
+    private void updatePhoneIndex(int phoneIndex, int subId) {
+        // unregister listeners on the old subId
+        unregisterPhoneStateListener();
+        mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled);
+
+        // update the subId
+        mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
+
+        // update the phoneId
+        mImsManager = ImsManager.getInstance(getApplicationContext(), phoneIndex);
+        mPhone = PhoneFactory.getPhone(phoneIndex);
+
+        updateAllFields();
+    }
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            AsyncResult ar;
+            switch (msg.what) {
+                case EVENT_QUERY_PREFERRED_TYPE_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception == null && ar.result != null) {
+                        updatePreferredNetworkType(((int []) ar.result)[0]);
+                    } else {
+                        //In case of an exception, we will set this to unknown
+                        updatePreferredNetworkType(PREFERRED_NETWORK_LABELS.length - 1);
+                    }
+                    break;
+                case EVENT_SET_PREFERRED_TYPE_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        log("Set preferred network type failed.");
+                    }
+                    break;
+                case EVENT_QUERY_SMSC_DONE:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        mSmsc.setText("refresh error");
+                    } else {
+                        mSmsc.setText((String) ar.result);
+                    }
+                    break;
+                case EVENT_UPDATE_SMSC_DONE:
+                    mUpdateSmscButton.setEnabled(true);
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        mSmsc.setText("update error");
+                    }
+                    break;
+                case EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED:
+                    ar = (AsyncResult) msg.obj;
+                    if (ar.exception != null) {
+                        mPhyChanConfig.setText(("update error"));
+                    }
+                    updatePhysicalChannelConfiguration((List<PhysicalChannelConfig>) ar.result);
+                    break;
+                default:
+                    super.handleMessage(msg);
+                    break;
+
+            }
+        }
+    };
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        if (!android.os.Process.myUserHandle().isSystem()) {
+            Log.e(TAG, "Not run from system user, don't do anything.");
+            finish();
+            return;
+        }
+
+        setContentView(R.layout.radio_info);
+
+        log("Started onCreate");
+
+        mQueuedWork = new ThreadPoolExecutor(1, 1, RUNNABLE_TIMEOUT_MS, TimeUnit.MICROSECONDS,
+                new LinkedBlockingDeque<Runnable>());
+        mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
+        mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
+        mPhone = PhoneFactory.getDefaultPhone();
+
+        mImsManager = ImsManager.getInstance(getApplicationContext(),
+                SubscriptionManager.getDefaultVoicePhoneId());
+
+        sPhoneIndexLabels = getPhoneIndexLabels(mTelephonyManager);
+
+        mDeviceId = (TextView) findViewById(R.id.imei);
+        mLine1Number = (TextView) findViewById(R.id.number);
+        mSubscriptionId = (TextView) findViewById(R.id.subid);
+        mDds = (TextView) findViewById(R.id.dds);
+        mSubscriberId = (TextView) findViewById(R.id.imsi);
+        mCallState = (TextView) findViewById(R.id.call);
+        mOperatorName = (TextView) findViewById(R.id.operator);
+        mRoamingState = (TextView) findViewById(R.id.roaming);
+        mGsmState = (TextView) findViewById(R.id.gsm);
+        mGprsState = (TextView) findViewById(R.id.gprs);
+        mVoiceNetwork = (TextView) findViewById(R.id.voice_network);
+        mDataNetwork = (TextView) findViewById(R.id.data_network);
+        mDBm = (TextView) findViewById(R.id.dbm);
+        mMwi = (TextView) findViewById(R.id.mwi);
+        mCfi = (TextView) findViewById(R.id.cfi);
+        mLocation = (TextView) findViewById(R.id.location);
+        mCellInfo = (TextView) findViewById(R.id.cellinfo);
+        mCellInfo.setTypeface(Typeface.MONOSPACE);
+
+        mSent = (TextView) findViewById(R.id.sent);
+        mReceived = (TextView) findViewById(R.id.received);
+        mSmsc = (EditText) findViewById(R.id.smsc);
+        mDnsCheckState = (TextView) findViewById(R.id.dnsCheckState);
+        mPingHostnameV4 = (TextView) findViewById(R.id.pingHostnameV4);
+        mPingHostnameV6 = (TextView) findViewById(R.id.pingHostnameV6);
+        mHttpClientTest = (TextView) findViewById(R.id.httpClientTest);
+
+        mPhyChanConfig = (TextView) findViewById(R.id.phy_chan_config);
+
+        mPreferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType);
+        ArrayAdapter<String> mPreferredNetworkTypeAdapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, PREFERRED_NETWORK_LABELS);
+        mPreferredNetworkTypeAdapter
+                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        mPreferredNetworkType.setAdapter(mPreferredNetworkTypeAdapter);
+
+        mSelectPhoneIndex = (Spinner) findViewById(R.id.phoneIndex);
+        ArrayAdapter<String> phoneIndexAdapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, sPhoneIndexLabels);
+        phoneIndexAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        mSelectPhoneIndex.setAdapter(phoneIndexAdapter);
+
+        mCellInfoRefreshRateSpinner = (Spinner) findViewById(R.id.cell_info_rate_select);
+        ArrayAdapter<String> cellInfoAdapter = new ArrayAdapter<String>(this,
+                android.R.layout.simple_spinner_item, CELL_INFO_REFRESH_RATE_LABELS);
+        cellInfoAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        mCellInfoRefreshRateSpinner.setAdapter(cellInfoAdapter);
+
+        mImsVolteProvisionedSwitch = (Switch) findViewById(R.id.volte_provisioned_switch);
+        mImsVtProvisionedSwitch = (Switch) findViewById(R.id.vt_provisioned_switch);
+        mImsWfcProvisionedSwitch = (Switch) findViewById(R.id.wfc_provisioned_switch);
+        mEabProvisionedSwitch = (Switch) findViewById(R.id.eab_provisioned_switch);
+
+        if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+            mImsVolteProvisionedSwitch.setVisibility(View.GONE);
+            mImsVtProvisionedSwitch.setVisibility(View.GONE);
+            mImsWfcProvisionedSwitch.setVisibility(View.GONE);
+            mEabProvisionedSwitch.setVisibility(View.GONE);
+        }
+
+        mCbrsDataSwitch = (Switch) findViewById(R.id.cbrs_data_switch);
+        mCbrsDataSwitch.setVisibility(isCbrsSupported() ? View.VISIBLE : View.GONE);
+
+        mDsdsSwitch = findViewById(R.id.dsds_switch);
+        if (isDsdsSupported() && !dsdsModeOnly()) {
+            mDsdsSwitch.setVisibility(View.VISIBLE);
+            mDsdsSwitch.setOnClickListener(v -> {
+                if (mTelephonyManager.doesSwitchMultiSimConfigTriggerReboot()) {
+                    // Undo the click action until user clicks the confirm dialog.
+                    mDsdsSwitch.toggle();
+                    showDsdsChangeDialog();
+                } else {
+                    performDsdsSwitch();
+                }
+            });
+            mDsdsSwitch.setChecked(isDsdsEnabled());
+        } else {
+            mDsdsSwitch.setVisibility(View.GONE);
+        }
+
+        mRadioPowerOnSwitch = (Switch) findViewById(R.id.radio_power);
+
+        mDownlinkKbps = (TextView) findViewById(R.id.dl_kbps);
+        mUplinkKbps = (TextView) findViewById(R.id.ul_kbps);
+        updateBandwidths(0, 0);
+
+        mPingTestButton = (Button) findViewById(R.id.ping_test);
+        mPingTestButton.setOnClickListener(mPingButtonHandler);
+        mUpdateSmscButton = (Button) findViewById(R.id.update_smsc);
+        mUpdateSmscButton.setOnClickListener(mUpdateSmscButtonHandler);
+        mRefreshSmscButton = (Button) findViewById(R.id.refresh_smsc);
+        mRefreshSmscButton.setOnClickListener(mRefreshSmscButtonHandler);
+        mDnsCheckToggleButton = (Button) findViewById(R.id.dns_check_toggle);
+        mDnsCheckToggleButton.setOnClickListener(mDnsCheckButtonHandler);
+        mCarrierProvisioningButton = (Button) findViewById(R.id.carrier_provisioning);
+        mCarrierProvisioningButton.setOnClickListener(mCarrierProvisioningButtonHandler);
+        mTriggerCarrierProvisioningButton = (Button) findViewById(
+                R.id.trigger_carrier_provisioning);
+        mTriggerCarrierProvisioningButton.setOnClickListener(
+                mTriggerCarrierProvisioningButtonHandler);
+
+        mOemInfoButton = (Button) findViewById(R.id.oem_info);
+        mOemInfoButton.setOnClickListener(mOemInfoButtonHandler);
+        PackageManager pm = getPackageManager();
+        Intent oemInfoIntent = new Intent(OEM_RADIO_INFO_INTENT);
+        List<ResolveInfo> oemInfoIntentList = pm.queryIntentActivities(oemInfoIntent, 0);
+        if (oemInfoIntentList.size() == 0) {
+            mOemInfoButton.setEnabled(false);
+        }
+
+        mCellInfoRefreshRateIndex = 0; //disabled
+        mPreferredNetworkTypeResult = PREFERRED_NETWORK_LABELS.length - 1; //Unknown
+        mSelectedPhoneIndex = 0; //phone 0
+
+        //FIXME: Replace with TelephonyManager call
+        mPhone.getPreferredNetworkType(
+                mHandler.obtainMessage(EVENT_QUERY_PREFERRED_TYPE_DONE));
+
+        restoreFromBundle(icicle);
+    }
+
+    @Override
+    public Intent getParentActivityIntent() {
+        Intent parentActivity = super.getParentActivityIntent();
+        if (parentActivity == null) {
+            parentActivity = (new Intent()).setClassName("com.android.settings",
+                    "com.android.settings.Settings$TestingSettingsActivity");
+        }
+        return parentActivity;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        log("Started onResume");
+
+        updateAllFields();
+    }
+
+    private void updateAllFields() {
+        updateMessageWaiting();
+        updateCallRedirect();
+        updateDataState();
+        updateDataStats2();
+        updateRadioPowerState();
+        updateImsProvisionedState();
+        updateProperties();
+        updateDnsCheckState();
+        updateNetworkType();
+
+        updateLocation(mCellLocationResult);
+        updateCellInfo(mCellInfoResult);
+        updateSubscriptionIds();
+
+        mPingHostnameV4.setText(mPingHostnameResultV4);
+        mPingHostnameV6.setText(mPingHostnameResultV6);
+        mHttpClientTest.setText(mHttpClientTestResult);
+
+        mCellInfoRefreshRateSpinner.setOnItemSelectedListener(mCellInfoRefreshRateHandler);
+        //set selection after registering listener to force update
+        mCellInfoRefreshRateSpinner.setSelection(mCellInfoRefreshRateIndex);
+
+        //set selection before registering to prevent update
+        mPreferredNetworkType.setSelection(mPreferredNetworkTypeResult, true);
+        mPreferredNetworkType.setOnItemSelectedListener(mPreferredNetworkHandler);
+
+        // set phone index
+        mSelectPhoneIndex.setSelection(mSelectedPhoneIndex, true);
+        mSelectPhoneIndex.setOnItemSelectedListener(mSelectPhoneIndexHandler);
+
+        mRadioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener);
+        mImsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
+        mImsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
+        mImsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
+        mEabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
+
+        if (isCbrsSupported()) {
+            mCbrsDataSwitch.setChecked(getCbrsDataState());
+            mCbrsDataSwitch.setOnCheckedChangeListener(mCbrsDataSwitchChangeListener);
+        }
+
+        unregisterPhoneStateListener();
+        registerPhoneStateListener();
+        mPhone.registerForPhysicalChannelConfig(mHandler,
+            EVENT_PHYSICAL_CHANNEL_CONFIG_CHANGED, null);
+
+        mConnectivityManager.registerNetworkCallback(
+                mDefaultNetworkRequest, mNetworkCallback, mHandler);
+
+        mSmsc.clearFocus();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+
+        log("onPause: unregister phone & data intents");
+
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+        mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled);
+        mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
+
+    }
+
+    private void restoreFromBundle(Bundle b) {
+        if (b == null) {
+            return;
+        }
+
+        mPingHostnameResultV4 = b.getString("mPingHostnameResultV4", "");
+        mPingHostnameResultV6 = b.getString("mPingHostnameResultV6", "");
+        mHttpClientTestResult = b.getString("mHttpClientTestResult", "");
+
+        mPingHostnameV4.setText(mPingHostnameResultV4);
+        mPingHostnameV6.setText(mPingHostnameResultV6);
+        mHttpClientTest.setText(mHttpClientTestResult);
+
+        mPreferredNetworkTypeResult = b.getInt("mPreferredNetworkTypeResult",
+                PREFERRED_NETWORK_LABELS.length - 1);
+
+        mSelectedPhoneIndex = b.getInt("mSelectedPhoneIndex", 0);
+
+        mCellInfoRefreshRateIndex = b.getInt("mCellInfoRefreshRateIndex", 0);
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        outState.putString("mPingHostnameResultV4", mPingHostnameResultV4);
+        outState.putString("mPingHostnameResultV6", mPingHostnameResultV6);
+        outState.putString("mHttpClientTestResult", mHttpClientTestResult);
+
+        outState.putInt("mPreferredNetworkTypeResult", mPreferredNetworkTypeResult);
+        outState.putInt("mSelectedPhoneIndex", mSelectedPhoneIndex);
+        outState.putInt("mCellInfoRefreshRateIndex", mCellInfoRefreshRateIndex);
+
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        menu.add(0, MENU_ITEM_SELECT_BAND, 0, R.string.radio_info_band_mode_label)
+                .setOnMenuItemClickListener(mSelectBandCallback)
+                .setAlphabeticShortcut('b');
+        menu.add(1, MENU_ITEM_VIEW_ADN, 0,
+                R.string.radioInfo_menu_viewADN).setOnMenuItemClickListener(mViewADNCallback);
+        menu.add(1, MENU_ITEM_VIEW_FDN, 0,
+                R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback);
+        menu.add(1, MENU_ITEM_VIEW_SDN, 0,
+                R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback);
+        if (ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+            menu.add(1, MENU_ITEM_GET_IMS_STATUS,
+                    0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
+        }
+        menu.add(1, MENU_ITEM_TOGGLE_DATA,
+                0, R.string.radio_info_data_connection_disable)
+                .setOnMenuItemClickListener(mToggleData);
+        return true;
+    }
+
+    @Override
+    public boolean onPrepareOptionsMenu(Menu menu) {
+        // Get the TOGGLE DATA menu item in the right state.
+        MenuItem item = menu.findItem(MENU_ITEM_TOGGLE_DATA);
+        int state = mTelephonyManager.getDataState();
+        boolean visible = true;
+
+        switch (state) {
+            case TelephonyManager.DATA_CONNECTED:
+            case TelephonyManager.DATA_SUSPENDED:
+                item.setTitle(R.string.radio_info_data_connection_disable);
+                break;
+            case TelephonyManager.DATA_DISCONNECTED:
+                item.setTitle(R.string.radio_info_data_connection_enable);
+                break;
+            default:
+                visible = false;
+                break;
+        }
+        item.setVisible(visible);
+        return true;
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        mQueuedWork.shutdown();
+    }
+
+    // returns array of string labels for each phone index. The array index is equal to the phone
+    // index.
+    private static String[] getPhoneIndexLabels(TelephonyManager tm) {
+        int phones = tm.getPhoneCount();
+        String[] labels = new String[phones];
+        for (int i = 0; i < phones; i++) {
+            labels[i] = "Phone " + i;
+        }
+        return labels;
+    }
+
+    private void unregisterPhoneStateListener() {
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+        mPhone.unregisterForPhysicalChannelConfig(mHandler);
+
+        // clear all fields so they are blank until the next listener event occurs
+        mOperatorName.setText("");
+        mGprsState.setText("");
+        mDataNetwork.setText("");
+        mVoiceNetwork.setText("");
+        mSent.setText("");
+        mReceived.setText("");
+        mCallState.setText("");
+        mLocation.setText("");
+        mMwiValue = false;
+        mMwi.setText("");
+        mCfiValue = false;
+        mCfi.setText("");
+        mCellInfo.setText("");
+        mDBm.setText("");
+        mGsmState.setText("");
+        mRoamingState.setText("");
+        mPhyChanConfig.setText("");
+    }
+
+    // register mPhoneStateListener for relevant fields using the current TelephonyManager
+    private void registerPhoneStateListener() {
+        mPhoneStateListener = new RadioInfoPhoneStateListener();
+        mTelephonyManager.listen(mPhoneStateListener,
+                  PhoneStateListener.LISTEN_CALL_STATE
+        //b/27803938 - RadioInfo currently cannot read PRECISE_CALL_STATE
+        //      | PhoneStateListener.LISTEN_PRECISE_CALL_STATE
+                | PhoneStateListener.LISTEN_DATA_CONNECTION_STATE
+                | PhoneStateListener.LISTEN_DATA_ACTIVITY
+                | PhoneStateListener.LISTEN_CELL_LOCATION
+                | PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR
+                | PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR
+                | PhoneStateListener.LISTEN_CELL_INFO
+                | PhoneStateListener.LISTEN_SERVICE_STATE
+                | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
+    }
+
+    private void updateDnsCheckState() {
+        //FIXME: Replace with a TelephonyManager call
+        mDnsCheckState.setText(mPhone.isDnsCheckDisabled()
+                ? "0.0.0.0 allowed" : "0.0.0.0 not allowed");
+    }
+
+    private void updateBandwidths(int dlbw, int ulbw) {
+        dlbw = (dlbw < 0 || dlbw == Integer.MAX_VALUE) ? -1 : dlbw;
+        ulbw = (ulbw < 0 || ulbw == Integer.MAX_VALUE) ? -1 : ulbw;
+        mDownlinkKbps.setText(String.format("%-5d", dlbw));
+        mUplinkKbps.setText(String.format("%-5d", ulbw));
+    }
+
+
+    private void updateSignalStrength(SignalStrength signalStrength) {
+        Resources r = getResources();
+
+        int signalDbm = signalStrength.getDbm();
+
+        int signalAsu = signalStrength.getAsuLevel();
+
+        if (-1 == signalAsu) signalAsu = 0;
+
+        mDBm.setText(String.valueOf(signalDbm) + " "
+                + r.getString(R.string.radioInfo_display_dbm) + "   "
+                + String.valueOf(signalAsu) + " "
+                + r.getString(R.string.radioInfo_display_asu));
+    }
+
+    private void updateLocation(CellLocation location) {
+        Resources r = getResources();
+        if (location instanceof GsmCellLocation) {
+            GsmCellLocation loc = (GsmCellLocation) location;
+            int lac = loc.getLac();
+            int cid = loc.getCid();
+            mLocation.setText(r.getString(R.string.radioInfo_lac) + " = "
+                    + ((lac == -1) ? "unknown" : Integer.toHexString(lac))
+                    + "   "
+                    + r.getString(R.string.radioInfo_cid) + " = "
+                    + ((cid == -1) ? "unknown" : Integer.toHexString(cid)));
+        } else if (location instanceof CdmaCellLocation) {
+            CdmaCellLocation loc = (CdmaCellLocation) location;
+            int bid = loc.getBaseStationId();
+            int sid = loc.getSystemId();
+            int nid = loc.getNetworkId();
+            int lat = loc.getBaseStationLatitude();
+            int lon = loc.getBaseStationLongitude();
+            mLocation.setText("BID = "
+                    + ((bid == -1) ? "unknown" : Integer.toHexString(bid))
+                    + "   "
+                    + "SID = "
+                    + ((sid == -1) ? "unknown" : Integer.toHexString(sid))
+                    + "   "
+                    + "NID = "
+                    + ((nid == -1) ? "unknown" : Integer.toHexString(nid))
+                    + "\n"
+                    + "LAT = "
+                    + ((lat == -1) ? "unknown" : Integer.toHexString(lat))
+                    + "   "
+                    + "LONG = "
+                    + ((lon == -1) ? "unknown" : Integer.toHexString(lon)));
+        } else {
+            mLocation.setText("unknown");
+        }
+
+
+    }
+
+    private String getCellInfoDisplayString(int i) {
+        return (i != Integer.MAX_VALUE) ? Integer.toString(i) : "";
+    }
+
+    private String getCellInfoDisplayString(long i) {
+        return (i != Long.MAX_VALUE) ? Long.toString(i) : "";
+    }
+
+    private String getConnectionStatusString(CellInfo ci) {
+        String regStr = "";
+        String connStatStr = "";
+        String connector = "";
+
+        if (ci.isRegistered()) {
+            regStr = "R";
+        }
+        switch (ci.getCellConnectionStatus()) {
+            case CellInfo.CONNECTION_PRIMARY_SERVING: connStatStr = "P"; break;
+            case CellInfo.CONNECTION_SECONDARY_SERVING: connStatStr = "S"; break;
+            case CellInfo.CONNECTION_NONE: connStatStr = "N"; break;
+            case CellInfo.CONNECTION_UNKNOWN: /* Field is unsupported */ break;
+            default: break;
+        }
+        if (!TextUtils.isEmpty(regStr) && !TextUtils.isEmpty(connStatStr)) {
+            connector = "+";
+        }
+
+        return regStr + connector + connStatStr;
+    }
+
+    private String buildCdmaInfoString(CellInfoCdma ci) {
+        CellIdentityCdma cidCdma = ci.getCellIdentity();
+        CellSignalStrengthCdma ssCdma = ci.getCellSignalStrength();
+
+        return String.format("%-3.3s %-5.5s %-5.5s %-5.5s %-6.6s %-6.6s %-6.6s %-6.6s %-5.5s",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidCdma.getSystemId()),
+                getCellInfoDisplayString(cidCdma.getNetworkId()),
+                getCellInfoDisplayString(cidCdma.getBasestationId()),
+                getCellInfoDisplayString(ssCdma.getCdmaDbm()),
+                getCellInfoDisplayString(ssCdma.getCdmaEcio()),
+                getCellInfoDisplayString(ssCdma.getEvdoDbm()),
+                getCellInfoDisplayString(ssCdma.getEvdoEcio()),
+                getCellInfoDisplayString(ssCdma.getEvdoSnr()));
+    }
+
+    private String buildGsmInfoString(CellInfoGsm ci) {
+        CellIdentityGsm cidGsm = ci.getCellIdentity();
+        CellSignalStrengthGsm ssGsm = ci.getCellSignalStrength();
+
+        return String.format("%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-4.4s %-4.4s\n",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidGsm.getMcc()),
+                getCellInfoDisplayString(cidGsm.getMnc()),
+                getCellInfoDisplayString(cidGsm.getLac()),
+                getCellInfoDisplayString(cidGsm.getCid()),
+                getCellInfoDisplayString(cidGsm.getArfcn()),
+                getCellInfoDisplayString(cidGsm.getBsic()),
+                getCellInfoDisplayString(ssGsm.getDbm()));
+    }
+
+    private String buildLteInfoString(CellInfoLte ci) {
+        CellIdentityLte cidLte = ci.getCellIdentity();
+        CellSignalStrengthLte ssLte = ci.getCellSignalStrength();
+
+        return String.format(
+                "%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s %-6.6s %-2.2s %-4.4s %-4.4s %-2.2s\n",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidLte.getMcc()),
+                getCellInfoDisplayString(cidLte.getMnc()),
+                getCellInfoDisplayString(cidLte.getTac()),
+                getCellInfoDisplayString(cidLte.getCi()),
+                getCellInfoDisplayString(cidLte.getPci()),
+                getCellInfoDisplayString(cidLte.getEarfcn()),
+                getCellInfoDisplayString(cidLte.getBandwidth()),
+                getCellInfoDisplayString(ssLte.getDbm()),
+                getCellInfoDisplayString(ssLte.getRsrq()),
+                getCellInfoDisplayString(ssLte.getTimingAdvance()));
+    }
+
+    private String buildWcdmaInfoString(CellInfoWcdma ci) {
+        CellIdentityWcdma cidWcdma = ci.getCellIdentity();
+        CellSignalStrengthWcdma ssWcdma = ci.getCellSignalStrength();
+
+        return String.format("%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-3.3s %-4.4s\n",
+                getConnectionStatusString(ci),
+                getCellInfoDisplayString(cidWcdma.getMcc()),
+                getCellInfoDisplayString(cidWcdma.getMnc()),
+                getCellInfoDisplayString(cidWcdma.getLac()),
+                getCellInfoDisplayString(cidWcdma.getCid()),
+                getCellInfoDisplayString(cidWcdma.getUarfcn()),
+                getCellInfoDisplayString(cidWcdma.getPsc()),
+                getCellInfoDisplayString(ssWcdma.getDbm()));
+    }
+
+    private String buildCellInfoString(List<CellInfo> arrayCi) {
+        String value = new String();
+        StringBuilder cdmaCells = new StringBuilder(),
+                gsmCells = new StringBuilder(),
+                lteCells = new StringBuilder(),
+                wcdmaCells = new StringBuilder();
+
+        if (arrayCi != null) {
+            for (CellInfo ci : arrayCi) {
+
+                if (ci instanceof CellInfoLte) {
+                    lteCells.append(buildLteInfoString((CellInfoLte) ci));
+                } else if (ci instanceof CellInfoWcdma) {
+                    wcdmaCells.append(buildWcdmaInfoString((CellInfoWcdma) ci));
+                } else if (ci instanceof CellInfoGsm) {
+                    gsmCells.append(buildGsmInfoString((CellInfoGsm) ci));
+                } else if (ci instanceof CellInfoCdma) {
+                    cdmaCells.append(buildCdmaInfoString((CellInfoCdma) ci));
+                }
+            }
+            if (lteCells.length() != 0) {
+                value += String.format(
+                        "LTE\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s"
+                                + " %-6.6s %-2.2s %-4.4s %-4.4s %-2.2s\n",
+                        "SRV", "MCC", "MNC", "TAC", "CID", "PCI",
+                        "EARFCN", "BW", "RSRP", "RSRQ", "TA");
+                value += lteCells.toString();
+            }
+            if (wcdmaCells.length() != 0) {
+                value += String.format(
+                        "WCDMA\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-3.3s %-4.4s\n",
+                        "SRV", "MCC", "MNC", "LAC", "CID", "UARFCN", "PSC", "RSCP");
+                value += wcdmaCells.toString();
+            }
+            if (gsmCells.length() != 0) {
+                value += String.format(
+                        "GSM\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-6.6s %-4.4s %-4.4s\n",
+                        "SRV", "MCC", "MNC", "LAC", "CID", "ARFCN", "BSIC", "RSSI");
+                value += gsmCells.toString();
+            }
+            if (cdmaCells.length() != 0) {
+                value += String.format(
+                        "CDMA/EVDO\n%-3.3s %-5.5s %-5.5s %-5.5s"
+                                + " %-6.6s %-6.6s %-6.6s %-6.6s %-5.5s\n",
+                        "SRV", "SID", "NID", "BSID",
+                        "C-RSSI", "C-ECIO", "E-RSSI", "E-ECIO", "E-SNR");
+                value += cdmaCells.toString();
+            }
+        } else {
+            value = "unknown";
+        }
+
+        return value.toString();
+    }
+
+    private void updateCellInfo(List<CellInfo> arrayCi) {
+        mCellInfo.setText(buildCellInfoString(arrayCi));
+    }
+
+    private void updateSubscriptionIds() {
+        mSubscriptionId.setText(Integer.toString(mPhone.getSubId()));
+        mDds.setText(Integer.toString(SubscriptionManager.getDefaultDataSubscriptionId()));
+    }
+
+    private void updateMessageWaiting() {
+        mMwi.setText(String.valueOf(mMwiValue));
+    }
+
+    private void updateCallRedirect() {
+        mCfi.setText(String.valueOf(mCfiValue));
+    }
+
+
+    private void updateServiceState(ServiceState serviceState) {
+        int state = serviceState.getState();
+        Resources r = getResources();
+        String display = r.getString(R.string.radioInfo_unknown);
+
+        switch (state) {
+            case ServiceState.STATE_IN_SERVICE:
+                display = r.getString(R.string.radioInfo_service_in);
+                break;
+            case ServiceState.STATE_OUT_OF_SERVICE:
+            case ServiceState.STATE_EMERGENCY_ONLY:
+                display = r.getString(R.string.radioInfo_service_emergency);
+                break;
+            case ServiceState.STATE_POWER_OFF:
+                display = r.getString(R.string.radioInfo_service_off);
+                break;
+        }
+
+        mGsmState.setText(display);
+
+        if (serviceState.getRoaming()) {
+            mRoamingState.setText(R.string.radioInfo_roaming_in);
+        } else {
+            mRoamingState.setText(R.string.radioInfo_roaming_not);
+        }
+
+        mOperatorName.setText(serviceState.getOperatorAlphaLong());
+    }
+
+    private void updatePhoneState(int state) {
+        Resources r = getResources();
+        String display = r.getString(R.string.radioInfo_unknown);
+
+        switch (state) {
+            case TelephonyManager.CALL_STATE_IDLE:
+                display = r.getString(R.string.radioInfo_phone_idle);
+                break;
+            case TelephonyManager.CALL_STATE_RINGING:
+                display = r.getString(R.string.radioInfo_phone_ringing);
+                break;
+            case TelephonyManager.CALL_STATE_OFFHOOK:
+                display = r.getString(R.string.radioInfo_phone_offhook);
+                break;
+        }
+
+        mCallState.setText(display);
+    }
+
+    private void updateDataState() {
+        int state = mTelephonyManager.getDataState();
+        Resources r = getResources();
+        String display = r.getString(R.string.radioInfo_unknown);
+
+        switch (state) {
+            case TelephonyManager.DATA_CONNECTED:
+                display = r.getString(R.string.radioInfo_data_connected);
+                break;
+            case TelephonyManager.DATA_CONNECTING:
+                display = r.getString(R.string.radioInfo_data_connecting);
+                break;
+            case TelephonyManager.DATA_DISCONNECTED:
+                display = r.getString(R.string.radioInfo_data_disconnected);
+                break;
+            case TelephonyManager.DATA_SUSPENDED:
+                display = r.getString(R.string.radioInfo_data_suspended);
+                break;
+        }
+
+        mGprsState.setText(display);
+    }
+
+    private void updateNetworkType() {
+        if (mPhone != null) {
+            ServiceState ss = mPhone.getServiceState();
+            mDataNetwork.setText(ServiceState.rilRadioTechnologyToString(
+                    mPhone.getServiceState().getRilDataRadioTechnology()));
+            mVoiceNetwork.setText(ServiceState.rilRadioTechnologyToString(
+                    mPhone.getServiceState().getRilVoiceRadioTechnology()));
+        }
+    }
+
+    private void updateProperties() {
+        String s;
+        Resources r = getResources();
+
+        s = mPhone.getDeviceId();
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
+        mDeviceId.setText(s);
+
+        s = mPhone.getSubscriberId();
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
+        mSubscriberId.setText(s);
+
+        //FIXME: Replace with a TelephonyManager call
+        s = mPhone.getLine1Number();
+        if (s == null) s = r.getString(R.string.radioInfo_unknown);
+        mLine1Number.setText(s);
+    }
+
+    private void updateDataStats2() {
+        Resources r = getResources();
+
+        long txPackets = TrafficStats.getMobileTxPackets();
+        long rxPackets = TrafficStats.getMobileRxPackets();
+        long txBytes   = TrafficStats.getMobileTxBytes();
+        long rxBytes   = TrafficStats.getMobileRxBytes();
+
+        String packets = r.getString(R.string.radioInfo_display_packets);
+        String bytes   = r.getString(R.string.radioInfo_display_bytes);
+
+        mSent.setText(txPackets + " " + packets + ", " + txBytes + " " + bytes);
+        mReceived.setText(rxPackets + " " + packets + ", " + rxBytes + " " + bytes);
+    }
+
+    /**
+     *  Ping a host name
+     */
+    private void pingHostname() {
+        try {
+            try {
+                Process p4 = Runtime.getRuntime().exec("ping -c 1 www.google.com");
+                int status4 = p4.waitFor();
+                if (status4 == 0) {
+                    mPingHostnameResultV4 = "Pass";
+                } else {
+                    mPingHostnameResultV4 = String.format("Fail(%d)", status4);
+                }
+            } catch (IOException e) {
+                mPingHostnameResultV4 = "Fail: IOException";
+            }
+            try {
+                Process p6 = Runtime.getRuntime().exec("ping6 -c 1 www.google.com");
+                int status6 = p6.waitFor();
+                if (status6 == 0) {
+                    mPingHostnameResultV6 = "Pass";
+                } else {
+                    mPingHostnameResultV6 = String.format("Fail(%d)", status6);
+                }
+            } catch (IOException e) {
+                mPingHostnameResultV6 = "Fail: IOException";
+            }
+        } catch (InterruptedException e) {
+            mPingHostnameResultV4 = mPingHostnameResultV6 = "Fail: InterruptedException";
+        }
+    }
+
+    /**
+     * This function checks for basic functionality of HTTP Client.
+     */
+    private void httpClientTest() {
+        HttpURLConnection urlConnection = null;
+        try {
+            // TODO: Hardcoded for now, make it UI configurable
+            URL url = new URL("https://www.google.com");
+            urlConnection = (HttpURLConnection) url.openConnection();
+            if (urlConnection.getResponseCode() == 200) {
+                mHttpClientTestResult = "Pass";
+            } else {
+                mHttpClientTestResult = "Fail: Code: " + urlConnection.getResponseMessage();
+            }
+        } catch (IOException e) {
+            mHttpClientTestResult = "Fail: IOException";
+        } finally {
+            if (urlConnection != null) {
+                urlConnection.disconnect();
+            }
+        }
+    }
+
+    private void refreshSmsc() {
+        mQueuedWork.execute(new Runnable() {
+            public void run() {
+                //FIXME: Replace with a TelephonyManager call
+                mPhone.getSmscAddress(mHandler.obtainMessage(EVENT_QUERY_SMSC_DONE));
+            }
+        });
+    }
+
+    private void updateAllCellInfo() {
+
+        mCellInfo.setText("");
+        mLocation.setText("");
+
+        final Runnable updateAllCellInfoResults = new Runnable() {
+            public void run() {
+                updateLocation(mCellLocationResult);
+                updateCellInfo(mCellInfoResult);
+            }
+        };
+
+        mQueuedWork.execute(new Runnable() {
+            @Override
+            public void run() {
+                mCellInfoResult = mTelephonyManager.getAllCellInfo();
+                mCellLocationResult = mTelephonyManager.getCellLocation();
+
+                mHandler.post(updateAllCellInfoResults);
+            }
+        });
+    }
+
+    private void updatePingState() {
+        // Set all to unknown since the threads will take a few secs to update.
+        mPingHostnameResultV4 = getResources().getString(R.string.radioInfo_unknown);
+        mPingHostnameResultV6 = getResources().getString(R.string.radioInfo_unknown);
+        mHttpClientTestResult = getResources().getString(R.string.radioInfo_unknown);
+
+        mPingHostnameV4.setText(mPingHostnameResultV4);
+        mPingHostnameV6.setText(mPingHostnameResultV6);
+        mHttpClientTest.setText(mHttpClientTestResult);
+
+        final Runnable updatePingResults = new Runnable() {
+            public void run() {
+                mPingHostnameV4.setText(mPingHostnameResultV4);
+                mPingHostnameV6.setText(mPingHostnameResultV6);
+                mHttpClientTest.setText(mHttpClientTestResult);
+            }
+        };
+
+        Thread hostname = new Thread() {
+            @Override
+            public void run() {
+                pingHostname();
+                mHandler.post(updatePingResults);
+            }
+        };
+        hostname.start();
+
+        Thread httpClient = new Thread() {
+            @Override
+            public void run() {
+                httpClientTest();
+                mHandler.post(updatePingResults);
+            }
+        };
+        httpClient.start();
+    }
+
+    private MenuItem.OnMenuItemClickListener mViewADNCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent(Intent.ACTION_VIEW);
+            // XXX We need to specify the component here because if we don't
+            // the activity manager will try to resolve the type by calling
+            // the content provider, which causes it to be loaded in a process
+            // other than the Dialer process, which causes a lot of stuff to
+            // break.
+            intent.setClassName("com.android.phone", "com.android.phone.SimContacts");
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mViewFDNCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent(Intent.ACTION_VIEW);
+            // XXX We need to specify the component here because if we don't
+            // the activity manager will try to resolve the type by calling
+            // the content provider, which causes it to be loaded in a process
+            // other than the Dialer process, which causes a lot of stuff to
+            // break.
+            intent.setClassName("com.android.phone", "com.android.phone.settings.fdn.FdnList");
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mViewSDNCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent(
+                    Intent.ACTION_VIEW, Uri.parse("content://icc/sdn"));
+            // XXX We need to specify the component here because if we don't
+            // the activity manager will try to resolve the type by calling
+            // the content provider, which causes it to be loaded in a process
+            // other than the Dialer process, which causes a lot of stuff to
+            // break.
+            intent.setClassName("com.android.phone", "com.android.phone.ADNList");
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mGetImsStatus =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            boolean isImsRegistered = mPhone.isImsRegistered();
+            boolean availableVolte = mPhone.isVolteEnabled();
+            boolean availableWfc = mPhone.isWifiCallingEnabled();
+            boolean availableVt = mPhone.isVideoEnabled();
+            boolean availableUt = mPhone.isUtEnabled();
+
+            final String imsRegString = isImsRegistered
+                    ? getString(R.string.radio_info_ims_reg_status_registered)
+                    : getString(R.string.radio_info_ims_reg_status_not_registered);
+
+            final String available = getString(R.string.radio_info_ims_feature_status_available);
+            final String unavailable = getString(
+                    R.string.radio_info_ims_feature_status_unavailable);
+
+            String imsStatus = getString(R.string.radio_info_ims_reg_status,
+                    imsRegString,
+                    availableVolte ? available : unavailable,
+                    availableWfc ? available : unavailable,
+                    availableVt ? available : unavailable,
+                    availableUt ? available : unavailable);
+
+            AlertDialog imsDialog = new AlertDialog.Builder(RadioInfo.this)
+                    .setMessage(imsStatus)
+                    .setTitle(getString(R.string.radio_info_ims_reg_status_title))
+                    .create();
+
+            imsDialog.show();
+
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mSelectBandCallback =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            Intent intent = new Intent();
+            intent.setClass(RadioInfo.this, BandMode.class);
+            startActivity(intent);
+            return true;
+        }
+    };
+
+    private MenuItem.OnMenuItemClickListener mToggleData =
+            new MenuItem.OnMenuItemClickListener() {
+        public boolean onMenuItemClick(MenuItem item) {
+            int state = mTelephonyManager.getDataState();
+            switch (state) {
+                case TelephonyManager.DATA_CONNECTED:
+                    mTelephonyManager.setDataEnabled(false);
+                    break;
+                case TelephonyManager.DATA_DISCONNECTED:
+                    mTelephonyManager.setDataEnabled(true);
+                    break;
+                default:
+                    // do nothing
+                    break;
+            }
+            return true;
+        }
+    };
+
+    private boolean isRadioOn() {
+        //FIXME: Replace with a TelephonyManager call
+        return mPhone.getServiceState().getState() != ServiceState.STATE_POWER_OFF;
+    }
+
+    private void updateRadioPowerState() {
+        //delightful hack to prevent on-checked-changed calls from
+        //actually forcing the radio preference to its transient/current value.
+        mRadioPowerOnSwitch.setOnCheckedChangeListener(null);
+        mRadioPowerOnSwitch.setChecked(isRadioOn());
+        mRadioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener);
+    }
+
+    void setImsVolteProvisionedState(boolean state) {
+        Log.d(TAG, "setImsVolteProvisioned state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(IMS_VOLTE_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setImsVtProvisionedState(boolean state) {
+        Log.d(TAG, "setImsVtProvisioned() state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(IMS_VT_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setImsWfcProvisionedState(boolean state) {
+        Log.d(TAG, "setImsWfcProvisioned() state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(IMS_WFC_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setEabProvisionedState(boolean state) {
+        Log.d(TAG, "setEabProvisioned() state: " + ((state) ? "on" : "off"));
+        setImsConfigProvisionedState(EAB_PROVISIONED_CONFIG_ID, state);
+    }
+
+    void setImsConfigProvisionedState(int configItem, boolean state) {
+        if (mPhone != null && mImsManager != null) {
+            mQueuedWork.execute(new Runnable() {
+                public void run() {
+                    try {
+                        mImsManager.getConfigInterface().setProvisionedValue(
+                                configItem, state ? 1 : 0);
+                    } catch (ImsException e) {
+                        Log.e(TAG, "setImsConfigProvisioned() exception:", e);
+                    }
+                }
+            });
+        }
+    }
+
+    OnCheckedChangeListener mRadioPowerOnChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            // TODO: b/145681511. Within current design, radio power on all of the phones need
+            // to be controlled at the same time.
+            Phone[] phones = PhoneFactory.getPhones();
+            if (phones == null) {
+                return;
+            }
+            log("toggle radio power: phone*" + phones.length + " " + (isRadioOn() ? "on" : "off"));
+            for (int phoneIndex = 0; phoneIndex < phones.length; phoneIndex++) {
+                if (phones[phoneIndex] != null) {
+                    phones[phoneIndex].setRadioPower(isChecked);
+                }
+            }
+        }
+    };
+
+    private boolean isImsVolteProvisioned() {
+        if (mPhone != null && mImsManager != null) {
+            return mImsManager.isVolteEnabledByPlatform(mPhone.getContext())
+                && mImsManager.isVolteProvisionedOnDevice(mPhone.getContext());
+        }
+        return false;
+    }
+
+    OnCheckedChangeListener mImsVolteCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setImsVolteProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isImsVtProvisioned() {
+        if (mPhone != null && mImsManager != null) {
+            return mImsManager.isVtEnabledByPlatform(mPhone.getContext())
+                && mImsManager.isVtProvisionedOnDevice(mPhone.getContext());
+        }
+        return false;
+    }
+
+    OnCheckedChangeListener mImsVtCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setImsVtProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isImsWfcProvisioned() {
+        if (mPhone != null && mImsManager != null) {
+            return mImsManager.isWfcEnabledByPlatform(mPhone.getContext())
+                && mImsManager.isWfcProvisionedOnDevice(mPhone.getContext());
+        }
+        return false;
+    }
+
+    OnCheckedChangeListener mImsWfcCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setImsWfcProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isEabProvisioned() {
+        return isFeatureProvisioned(EAB_PROVISIONED_CONFIG_ID, false);
+    }
+
+    OnCheckedChangeListener mEabCheckedChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            setEabProvisionedState(isChecked);
+        }
+    };
+
+    private boolean isFeatureProvisioned(int featureId, boolean defaultValue) {
+        boolean provisioned = defaultValue;
+        if (mImsManager != null) {
+            try {
+                ImsConfig imsConfig = mImsManager.getConfigInterface();
+                if (imsConfig != null) {
+                    provisioned =
+                            (imsConfig.getProvisionedValue(featureId)
+                                    == ImsConfig.FeatureValueConstants.ON);
+                }
+            } catch (ImsException ex) {
+                Log.e(TAG, "isFeatureProvisioned() exception:", ex);
+            }
+        }
+
+        log("isFeatureProvisioned() featureId=" + featureId + " provisioned=" + provisioned);
+        return provisioned;
+    }
+
+    private static boolean isEabEnabledByPlatform(Context context) {
+        if (context != null) {
+            CarrierConfigManager configManager = (CarrierConfigManager)
+                    context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+            if (configManager != null && configManager.getConfig().getBoolean(
+                        CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private void updateImsProvisionedState() {
+        if (!ImsManager.isImsSupportedOnDevice(mPhone.getContext())) {
+            return;
+        }
+        log("updateImsProvisionedState isImsVolteProvisioned()=" + isImsVolteProvisioned());
+        //delightful hack to prevent on-checked-changed calls from
+        //actually forcing the ims provisioning to its transient/current value.
+        mImsVolteProvisionedSwitch.setOnCheckedChangeListener(null);
+        mImsVolteProvisionedSwitch.setChecked(isImsVolteProvisioned());
+        mImsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
+        mImsVolteProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && mImsManager.isVolteEnabledByPlatform(mPhone.getContext()));
+
+        mImsVtProvisionedSwitch.setOnCheckedChangeListener(null);
+        mImsVtProvisionedSwitch.setChecked(isImsVtProvisioned());
+        mImsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
+        mImsVtProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && mImsManager.isVtEnabledByPlatform(mPhone.getContext()));
+
+        mImsWfcProvisionedSwitch.setOnCheckedChangeListener(null);
+        mImsWfcProvisionedSwitch.setChecked(isImsWfcProvisioned());
+        mImsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
+        mImsWfcProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && mImsManager.isWfcEnabledByPlatform(mPhone.getContext()));
+
+        mEabProvisionedSwitch.setOnCheckedChangeListener(null);
+        mEabProvisionedSwitch.setChecked(isEabProvisioned());
+        mEabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
+        mEabProvisionedSwitch.setEnabled(!IS_USER_BUILD
+                && isEabEnabledByPlatform(mPhone.getContext()));
+    }
+
+    OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            //FIXME: Replace with a TelephonyManager call
+            mPhone.disableDnsCheck(!mPhone.isDnsCheckDisabled());
+            updateDnsCheckState();
+        }
+    };
+
+    OnClickListener mOemInfoButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            Intent intent = new Intent(OEM_RADIO_INFO_INTENT);
+            try {
+                startActivity(intent);
+            } catch (android.content.ActivityNotFoundException ex) {
+                log("OEM-specific Info/Settings Activity Not Found : " + ex);
+                // If the activity does not exist, there are no OEM
+                // settings, and so we can just do nothing...
+            }
+        }
+    };
+
+    OnClickListener mPingButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            updatePingState();
+        }
+    };
+
+    OnClickListener mUpdateSmscButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            mUpdateSmscButton.setEnabled(false);
+            mQueuedWork.execute(new Runnable() {
+                public void run() {
+                    mPhone.setSmscAddress(mSmsc.getText().toString(),
+                            mHandler.obtainMessage(EVENT_UPDATE_SMSC_DONE));
+                }
+            });
+        }
+    };
+
+    OnClickListener mRefreshSmscButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            refreshSmsc();
+        }
+    };
+
+    OnClickListener mCarrierProvisioningButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            final Intent intent = new Intent("com.android.settings.CARRIER_PROVISIONING");
+            final ComponentName serviceComponent = ComponentName.unflattenFromString(
+                    "com.android.omadm.service/.DMIntentReceiver");
+            intent.setComponent(serviceComponent);
+            sendBroadcast(intent);
+        }
+    };
+
+    OnClickListener mTriggerCarrierProvisioningButtonHandler = new OnClickListener() {
+        public void onClick(View v) {
+            final Intent intent = new Intent("com.android.settings.TRIGGER_CARRIER_PROVISIONING");
+            final ComponentName serviceComponent = ComponentName.unflattenFromString(
+                    "com.android.omadm.service/.DMIntentReceiver");
+            intent.setComponent(serviceComponent);
+            sendBroadcast(intent);
+        }
+    };
+
+    AdapterView.OnItemSelectedListener mPreferredNetworkHandler =
+            new AdapterView.OnItemSelectedListener() {
+
+        public void onItemSelected(AdapterView parent, View v, int pos, long id) {
+            if (mPreferredNetworkTypeResult != pos && pos >= 0
+                    && pos <= PREFERRED_NETWORK_LABELS.length - 2) {
+                mPreferredNetworkTypeResult = pos;
+
+                // TODO: Possibly migrate this to TelephonyManager.setPreferredNetworkType()
+                // which today still has some issues (mostly that the "set" is conditional
+                // on a successful modem call, which is not what we want). Instead we always
+                // want this setting to be set, so that if the radio hiccups and this setting
+                // is for some reason unsuccessful, future calls to the radio will reflect
+                // the users's preference which is set here.
+                final int subId = mPhone.getSubId();
+                if (SubscriptionManager.isUsableSubIdValue(subId)) {
+                    Settings.Global.putInt(mPhone.getContext().getContentResolver(),
+                            PREFERRED_NETWORK_MODE + subId, mPreferredNetworkTypeResult);
+                }
+                log("Calling setPreferredNetworkType(" + mPreferredNetworkTypeResult + ")");
+                Message msg = mHandler.obtainMessage(EVENT_SET_PREFERRED_TYPE_DONE);
+                mPhone.setPreferredNetworkType(mPreferredNetworkTypeResult, msg);
+            }
+        }
+
+        public void onNothingSelected(AdapterView parent) {
+        }
+    };
+
+    AdapterView.OnItemSelectedListener mSelectPhoneIndexHandler =
+            new AdapterView.OnItemSelectedListener() {
+
+        public void onItemSelected(AdapterView parent, View v, int pos, long id) {
+            if (pos >= 0 && pos <= sPhoneIndexLabels.length - 1) {
+                // the array position is equal to the phone index
+                int phoneIndex = pos;
+                Phone[] phones = PhoneFactory.getPhones();
+                if (phones == null || phones.length <= phoneIndex) {
+                    return;
+                }
+                // getSubId says it takes a slotIndex, but it actually takes a phone index
+                int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+                int[] subIds = SubscriptionManager.getSubId(phoneIndex);
+                if (subIds != null && subIds.length > 0) {
+                    subId = subIds[0];
+                }
+                mSelectedPhoneIndex = phoneIndex;
+
+                updatePhoneIndex(phoneIndex, subId);
+            }
+        }
+
+        public void onNothingSelected(AdapterView parent) {
+        }
+    };
+
+    AdapterView.OnItemSelectedListener mCellInfoRefreshRateHandler  =
+            new AdapterView.OnItemSelectedListener() {
+
+        public void onItemSelected(AdapterView parent, View v, int pos, long id) {
+            mCellInfoRefreshRateIndex = pos;
+            mTelephonyManager.setCellInfoListRate(CELL_INFO_REFRESH_RATES[pos]);
+            updateAllCellInfo();
+        }
+
+        public void onNothingSelected(AdapterView parent) {
+        }
+    };
+
+    boolean isCbrsSupported() {
+        return getResources().getBoolean(
+              com.android.internal.R.bool.config_cbrs_supported);
+    }
+
+    void updateCbrsDataState(boolean state) {
+        Log.d(TAG, "setCbrsDataSwitchState() state:" + ((state) ? "on" : "off"));
+        if (mTelephonyManager != null) {
+            mQueuedWork.execute(new Runnable() {
+                public void run() {
+                    mTelephonyManager.setOpportunisticNetworkState(state);
+                    mHandler.post(() -> mCbrsDataSwitch.setChecked(getCbrsDataState()));
+                }
+            });
+        }
+    }
+
+    boolean getCbrsDataState() {
+        boolean state = false;
+        if (mTelephonyManager != null) {
+            state = mTelephonyManager.isOpportunisticNetworkEnabled();
+        }
+        Log.d(TAG, "getCbrsDataState() state:" + ((state) ? "on" : "off"));
+        return state;
+    }
+
+    OnCheckedChangeListener mCbrsDataSwitchChangeListener = new OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+            updateCbrsDataState(isChecked);
+        }
+    };
+
+    private void showDsdsChangeDialog() {
+        final AlertDialog confirmDialog = new Builder(RadioInfo.this)
+                .setTitle(R.string.dsds_dialog_title)
+                .setMessage(R.string.dsds_dialog_message)
+                .setPositiveButton(R.string.dsds_dialog_confirm, mOnDsdsDialogConfirmedListener)
+                .setNegativeButton(R.string.dsds_dialog_cancel, mOnDsdsDialogConfirmedListener)
+                .create();
+        confirmDialog.show();
+    }
+
+    private static boolean isDsdsSupported() {
+        return (TelephonyManager.getDefault().isMultiSimSupported()
+            == TelephonyManager.MULTISIM_ALLOWED);
+    }
+
+    private static boolean isDsdsEnabled() {
+        return TelephonyManager.getDefault().getPhoneCount() > 1;
+    }
+
+    private void performDsdsSwitch() {
+        mTelephonyManager.switchMultiSimConfig(mDsdsSwitch.isChecked() ? 2 : 1);
+    }
+
+    /**
+     * @return {@code True} if the device is only supported dsds mode.
+     */
+    private boolean dsdsModeOnly() {
+        String dsdsMode = SystemProperties.get(DSDS_MODE_PROPERTY);
+        return !TextUtils.isEmpty(dsdsMode) && Integer.parseInt(dsdsMode) == ALWAYS_ON_DSDS_MODE;
+    }
+
+    DialogInterface.OnClickListener mOnDsdsDialogConfirmedListener =
+            new DialogInterface.OnClickListener() {
+        @Override
+        public void onClick(DialogInterface dialog, int which) {
+            if (which == DialogInterface.BUTTON_POSITIVE) {
+                mDsdsSwitch.toggle();
+                performDsdsSwitch();
+            }
+        }
+    };
+}
diff --git a/src/com/android/phone/settings/SuppServicesUiUtil.java b/src/com/android/phone/settings/SuppServicesUiUtil.java
index d508d9c..4e9841f 100644
--- a/src/com/android/phone/settings/SuppServicesUiUtil.java
+++ b/src/com/android/phone/settings/SuppServicesUiUtil.java
@@ -208,7 +208,7 @@
                                     Log.d(LOG_TAG, "handleCallerIdUssdResponse: response ="
                                             + response.toString());
                                     PhoneUtils.createUssdDialog(app, context, response.toString(),
-                                            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+                                            phone, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
                                 }
 
                                 @Override
@@ -219,7 +219,7 @@
                                             + failureCode);
                                     PhoneUtils.createUssdDialog(app, context,
                                             context.getText(R.string.response_error),
-                                            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+                                            phone, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
                                 }
                             };
 
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index e18dc93..66b1af9 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -43,6 +43,7 @@
 import android.widget.Toast;
 
 import com.android.internal.telephony.CallForwardInfo;
+import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.util.NotificationChannelController;
@@ -733,6 +734,7 @@
             for (int i = 0; i < mForwardingReadResults.length; i++) {
                 mPhone.getCallForwardingOption(
                         VoicemailProviderSettings.FORWARDING_SETTINGS_REASONS[i],
+                        CommandsInterface.SERVICE_CLASS_VOICE,
                         mGetOptionComplete.obtainMessage(EVENT_FORWARDING_GET_COMPLETED, i, 0));
             }
             showDialogIfForeground(VoicemailDialogUtil.VM_FWD_READING_DIALOG);
diff --git a/src/com/android/phone/settings/fdn/EditFdnContactScreen.java b/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
index c358e27..140cc74 100644
--- a/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
+++ b/src/com/android/phone/settings/fdn/EditFdnContactScreen.java
@@ -29,6 +29,7 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.PersistableBundle;
 import android.provider.ContactsContract.CommonDataKinds;
 import android.telephony.PhoneNumberUtils;
 import android.text.Editable;
@@ -52,6 +53,7 @@
 import com.android.phone.PhoneGlobals;
 import com.android.phone.R;
 import com.android.phone.SubscriptionInfoHelper;
+import android.telephony.CarrierConfigManager;
 
 /**
  * Activity to let the user add or edit an FDN contact.
@@ -100,6 +102,7 @@
     }
     /** flag to track saving state */
     private boolean mDataBusy;
+    private int mFdnNumberLimitLength = 20;
 
     @Override
     protected void onCreate(Bundle icicle) {
@@ -111,6 +114,17 @@
         setContentView(R.layout.edit_fdn_contact_screen);
         setupView();
         setTitle(mAddContact ? R.string.add_fdn_contact : R.string.edit_fdn_contact);
+        PersistableBundle b = null;
+        if (mSubscriptionInfoHelper.hasSubId()) {
+            b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
+                    mSubscriptionInfoHelper.getSubId());
+        } else {
+            b = PhoneGlobals.getInstance().getCarrierConfig();
+        }
+        if (b != null) {
+            mFdnNumberLimitLength = b.getInt(
+                    CarrierConfigManager.KEY_FDN_NUMBER_LENGTH_LIMIT_INT);
+        }
 
         displayProgress(false);
     }
@@ -294,7 +308,7 @@
       * TODO: Fix this logic.
       */
      private boolean isValidNumber(String number) {
-         return (number.length() <= 20) && (number.length() > 0);
+         return (number.length() <= mFdnNumberLimitLength) && (number.length() > 0);
      }
 
 
@@ -397,7 +411,8 @@
         } else {
             if (DBG) log("handleResult: failed!");
             if (invalidNumber) {
-                showStatus(getResources().getText(R.string.fdn_invalid_number));
+                showStatus(getResources().getString(R.string.fdn_invalid_number,
+                        mFdnNumberLimitLength));
             } else {
                if (PhoneFactory.getDefaultPhone().getIccCard().getIccPin2Blocked()) {
                     showStatus(getResources().getText(R.string.fdn_enable_puk2_requested));
@@ -428,7 +443,7 @@
             }
 
             if (v == mNameField) {
-                mNumberField.requestFocus();
+                mButton.requestFocus();
             } else if (v == mNumberField) {
                 mButton.requestFocus();
             } else if (v == mButton) {
diff --git a/src/com/android/phone/settings/fdn/EditPinPreference.java b/src/com/android/phone/settings/fdn/EditPinPreference.java
index 9596f39..a9d1948 100644
--- a/src/com/android/phone/settings/fdn/EditPinPreference.java
+++ b/src/com/android/phone/settings/fdn/EditPinPreference.java
@@ -23,8 +23,6 @@
 import android.util.AttributeSet;
 import android.view.View;
 
-import com.android.phone.R;
-
 /**
  * Class similar to the com.android.settings.EditPinPreference
  * class, with a couple of modifications, including a different layout
@@ -62,27 +60,12 @@
         super(context, attrs, defStyle);
     }
 
-    /**
-     * Overridden to setup the correct dialog layout, as well as setting up
-     * other properties for the pin / puk entry field.
-     */
-    @Override
-    protected View onCreateDialogView() {
-        // set the dialog layout
-        setDialogLayoutResource(R.layout.pref_dialog_editpin);
-
-        View dialog = super.onCreateDialogView();
-
-        getEditText().setInputType(InputType.TYPE_CLASS_NUMBER |
-            InputType.TYPE_NUMBER_VARIATION_PASSWORD);
-
-        return dialog;
-    }
-
     @Override
     protected void onBindDialogView(View view) {
         super.onBindDialogView(view);
 
+        getEditText().setInputType(InputType.TYPE_CLASS_NUMBER
+                | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
         // If the layout does not contain an edittext, hide the buttons.
         shouldHideButtons = (view.findViewById(android.R.id.edit) == null);
     }
diff --git a/src/com/android/phone/vvm/RemoteVvmTaskManager.java b/src/com/android/phone/vvm/RemoteVvmTaskManager.java
index 14030a1..6b60303 100644
--- a/src/com/android/phone/vvm/RemoteVvmTaskManager.java
+++ b/src/com/android/phone/vvm/RemoteVvmTaskManager.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.content.pm.ComponentInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Bundle;
@@ -38,6 +39,7 @@
 import android.telephony.VisualVoicemailSms;
 import android.text.TextUtils;
 
+import com.android.internal.telephony.util.TelephonyUtils;
 import com.android.phone.Assert;
 import com.android.phone.R;
 
@@ -167,7 +169,8 @@
             }
             if (info.serviceInfo == null) {
                 VvmLog.w(TAG,
-                        "Component " + info.getComponentInfo() + " is not a service, ignoring");
+                        "Component " + TelephonyUtils.getComponentInfo(info)
+                            + " is not a service, ignoring");
                 continue;
             }
             if (!android.Manifest.permission.BIND_VISUAL_VOICEMAIL_SERVICE
@@ -180,7 +183,8 @@
                 VvmLog.w(TAG, "target package " + targetPackage
                         + " is no longer the active VisualVoicemailService, ignoring");
             }
-            return info.getComponentInfo().getComponentName();
+            ComponentInfo componentInfo = TelephonyUtils.getComponentInfo(info);
+            return new ComponentName(componentInfo.packageName, componentInfo.name);
 
         }
         return null;
@@ -199,7 +203,8 @@
         if (info.isEmpty()) {
             return null;
         }
-        return info.get(0).getComponentInfo().getComponentName();
+        ComponentInfo componentInfo = TelephonyUtils.getComponentInfo(info.get(0));
+        return new ComponentName(componentInfo.packageName, componentInfo.name);
     }
 
     @Override
diff --git a/src/com/android/phone/vvm/VvmDumpHandler.java b/src/com/android/phone/vvm/VvmDumpHandler.java
index 866927e..82c5bb5 100644
--- a/src/com/android/phone/vvm/VvmDumpHandler.java
+++ b/src/com/android/phone/vvm/VvmDumpHandler.java
@@ -19,7 +19,7 @@
         indentedWriter.println("******* OmtpVvm *******");
         indentedWriter.println("======= Configs =======");
         indentedWriter.increaseIndent();
-        for (PhoneAccountHandle handle : TelecomManager.from(context)
+        for (PhoneAccountHandle handle : context.getSystemService(TelecomManager.class)
                 .getCallCapablePhoneAccounts()) {
             int subId = PhoneAccountHandleConverter.toSubId(handle);
             indentedWriter.println(
diff --git a/src/com/android/services/telephony/CdmaConference.java b/src/com/android/services/telephony/CdmaConference.java
old mode 100755
new mode 100644
index 69ff2a4..7458195
--- a/src/com/android/services/telephony/CdmaConference.java
+++ b/src/com/android/services/telephony/CdmaConference.java
@@ -17,8 +17,8 @@
 package com.android.services.telephony;
 
 import android.content.Context;
+import android.net.Uri;
 import android.os.PersistableBundle;
-import android.telecom.Conference;
 import android.telecom.Connection;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.CarrierConfigManager;
@@ -32,7 +32,7 @@
 /**
  * CDMA-based conference call.
  */
-public class CdmaConference extends Conference implements Holdable {
+public class CdmaConference extends TelephonyConferenceBase implements Holdable {
     private int mCapabilities;
     private int mProperties;
     private boolean mIsHoldable;
@@ -74,6 +74,22 @@
     }
 
     @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        Log.e(this, new Exception(), "Adding Conference Participants not supported " +
+                " for CDMA conference call.");
+    }
+
+    @Override
+    public void onAnswer(int videoState) {
+        Log.e(this, new Exception(), "Answer not supported for CDMA conference call.");
+    }
+
+    @Override
+    public void onReject() {
+        Log.e(this, new Exception(), "Reject not supported for CDMA conference call.");
+    }
+
+    @Override
     public void onHold() {
         Log.e(this, new Exception(), "Hold not supported for CDMA conference call.");
     }
diff --git a/src/com/android/services/telephony/CdmaConferenceController.java b/src/com/android/services/telephony/CdmaConferenceController.java
index 5d987f7..8523a5f 100644
--- a/src/com/android/services/telephony/CdmaConferenceController.java
+++ b/src/com/android/services/telephony/CdmaConferenceController.java
@@ -48,7 +48,8 @@
  * the conference from being created for 3 seconds. This is a more pleasant experience for the user.
  */
 final class CdmaConferenceController {
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
+    private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
+            new TelephonyConnection.TelephonyConnectionListener() {
                 @Override
                 public void onStateChanged(Connection c, int state) {
                     recalculateConference();
@@ -96,7 +97,7 @@
             return;
         }
 
-        if (!mCdmaConnections.isEmpty() && connection.isOutgoing()) {
+        if (!mCdmaConnections.isEmpty() && connection.isOutgoingCall()) {
             // There already exists a connection, so this will probably result in a conference once
             // it is added. For outgoing connections which are added while another connection
             // exists, we mark them as "dialing" for a set amount of time to give the user time to
@@ -139,7 +140,7 @@
 
     private void addInternal(CdmaConnection connection) {
         mCdmaConnections.add(connection);
-        connection.addConnectionListener(mConnectionListener);
+        connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
         recalculateConference();
     }
 
@@ -151,7 +152,7 @@
             return;
         }
 
-        connection.removeConnectionListener(mConnectionListener);
+        connection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
         mCdmaConnections.remove(connection);
         recalculateConference();
     }
@@ -182,7 +183,7 @@
                 isNewlyCreated = true;
             }
 
-            if (newConnection.isOutgoing()) {
+            if (newConnection.isOutgoingCall()) {
                 // Only an outgoing call can be merged with an ongoing call.
                 mConference.updateCapabilities(Connection.CAPABILITY_MERGE_CONFERENCE);
             } else {
@@ -197,14 +198,14 @@
             for (CdmaConnection connection : conferenceConnections) {
                 if (!existingChildConnections.contains(connection)) {
                     Log.i(this, "Adding connection to conference call: %s", connection);
-                    mConference.addConnection(connection);
+                    mConference.addTelephonyConnection(connection);
                 }
                 existingChildConnections.remove(connection);
             }
 
             // 3) Remove any lingering old/disconnected/destroyed connections
             for (Connection oldConnection : existingChildConnections) {
-                mConference.removeConnection(oldConnection);
+                mConference.removeTelephonyConnection(oldConnection);
                 Log.i(this, "Removing connection from conference call: %s", oldConnection);
             }
 
@@ -212,13 +213,13 @@
             if (isNewlyCreated) {
                 Log.d(this, "Adding the conference call");
                 mConference.updateCallRadioTechAfterCreation();
-                mConnectionService.addConference(mConference);
+                mConnectionService.addTelephonyConference(mConference);
             }
         } else if (conferenceConnections.isEmpty()) {
             // There are no more connection so if we still have a conference, lets remove it.
             if (mConference != null) {
                 Log.i(this, "Destroying the CDMA conference connection.");
-                mConference.destroy();
+                mConference.destroyTelephonyConference();
                 mConference = null;
             }
         }
diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index ca842b1..90e7663 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -81,9 +81,9 @@
             Connection connection,
             EmergencyTonePlayer emergencyTonePlayer,
             boolean allowMute,
-            boolean isOutgoing,
+            int callDirection,
             String telecomCallId) {
-        super(connection, telecomCallId, isOutgoing);
+        super(connection, telecomCallId, callDirection);
         mEmergencyTonePlayer = emergencyTonePlayer;
         mAllowMute = allowMute;
         mIsCallWaiting = connection != null && connection.getState() == Call.State.WAITING;
@@ -151,7 +151,7 @@
     @Override
     public TelephonyConnection cloneConnection() {
         CdmaConnection cdmaConnection = new CdmaConnection(getOriginalConnection(),
-                mEmergencyTonePlayer, mAllowMute, mIsOutgoing, getTelecomCallId());
+                mEmergencyTonePlayer, mAllowMute, getCallDirection(), getTelecomCallId());
         return cdmaConnection;
     }
 
@@ -202,10 +202,6 @@
         }
     }
 
-    boolean isOutgoing() {
-        return mIsOutgoing;
-    }
-
     boolean isCallWaiting() {
         return mIsCallWaiting;
     }
@@ -228,8 +224,8 @@
             } catch (CallStateException e) {
                 Log.e(this, e, "Failed to hangup call waiting call");
             }
-            setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(telephonyDisconnectCause,
-                    null, getPhone().getPhoneId()));
+            setTelephonyConnectionDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                    telephonyDisconnectCause, null, getPhone().getPhoneId()));
         }
     }
 
@@ -288,9 +284,8 @@
 
     private boolean isEmergency() {
         Phone phone = getPhone();
-        return phone != null &&
-                PhoneNumberUtils.isLocalEmergencyNumber(
-                    phone.getContext(), getAddress().getSchemeSpecificPart());
+        return phone != null && getAddress() != null && PhoneNumberUtils.isLocalEmergencyNumber(
+                phone.getContext(), getAddress().getSchemeSpecificPart());
     }
 
     /**
@@ -306,7 +301,7 @@
 
     private void handleCdmaConnectionTimeReset() {
         boolean isImsCall = getOriginalConnection() instanceof ImsPhoneConnection;
-        if (!isImsCall && !mIsConnectionTimeReset && mIsOutgoing
+        if (!isImsCall && !mIsConnectionTimeReset && isOutgoingCall()
                 && getOriginalConnection() != null
                 && getOriginalConnection().getState() == Call.State.ACTIVE
                 && getOriginalConnection().getDurationMillis() > 0) {
@@ -325,7 +320,7 @@
     }
 
     @Override
-    protected void close() {
+    public void close() {
         mIsConnectionTimeReset = false;
         if (getPhone() != null) {
             getPhone().unregisterForLineControlInfo(mHandler);
diff --git a/src/com/android/services/telephony/ConferenceParticipantConnection.java b/src/com/android/services/telephony/ConferenceParticipantConnection.java
index 61dc039..b7ecd48 100644
--- a/src/com/android/services/telephony/ConferenceParticipantConnection.java
+++ b/src/com/android/services/telephony/ConferenceParticipantConnection.java
@@ -17,23 +17,23 @@
 package com.android.services.telephony;
 
 import android.net.Uri;
-import android.telecom.ConferenceParticipant;
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
-import android.telecom.PhoneAccount;
-import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionInfo;
 import android.text.TextUtils;
 
-import com.android.internal.annotations.VisibleForTesting;
+import com.android.ims.internal.ConferenceParticipant;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
+import com.android.telephony.Rlog;
 
 /**
  * Represents a participant in a conference call.
  */
 public class ConferenceParticipantConnection extends Connection {
 
+    private static final String LOG_TAG = "ConferenceParticipantConnection";
+
     /**
      * The user entity URI For the conference participant.
      */
@@ -88,7 +88,7 @@
      * @param newState The new state.
      */
     public void updateState(int newState) {
-        Log.v(this, "updateState endPoint: %s state: %s", Log.pii(mEndpoint),
+        Log.v(this, "updateState endPoint: %s state: %s", Rlog.pii(LOG_TAG, mEndpoint),
                 Connection.stateToString(newState));
         if (newState == getState()) {
             return;
@@ -183,7 +183,7 @@
         SubscriptionInfo subInfo = TelecomAccountRegistry.getInstance(null).
                 getSubscriptionManager().getActiveSubscriptionInfo(subId);
 
-        if (subInfo == null) {
+        if (subInfo == null || TextUtils.isEmpty(subInfo.getCountryIso())) {
             return null;
         }
         // The SubscriptionInfo reports ISO country codes in lower case.  Convert to upper case,
@@ -203,19 +203,19 @@
         sb.append("[ConferenceParticipantConnection objId:");
         sb.append(System.identityHashCode(this));
         sb.append(" endPoint:");
-        sb.append(Log.pii(mEndpoint));
+        sb.append(Rlog.pii(LOG_TAG, mEndpoint));
         sb.append(" address:");
-        sb.append(Log.pii(getAddress()));
+        sb.append(Rlog.pii(LOG_TAG, getAddress()));
         sb.append(" addressPresentation:");
         sb.append(getAddressPresentation());
         sb.append(" parentConnection:");
-        sb.append(Log.pii(mParentConnection.getAddress()));
+        sb.append(Rlog.pii(LOG_TAG, mParentConnection.getAddress()));
         sb.append(" state:");
         sb.append(Connection.stateToString(getState()));
         sb.append(" connectTime:");
         sb.append(getConnectTimeMillis());
         sb.append(" connectElapsedTime:");
-        sb.append(getConnectElapsedTimeMillis());
+        sb.append(getConnectionStartElapsedRealtimeMillis());
         sb.append("]");
 
         return sb.toString();
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 4e8e0b5..f243462 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -18,11 +18,15 @@
 
 import android.content.Context;
 import android.media.ToneGenerator;
+import android.os.PersistableBundle;
 import android.provider.Settings;
 import android.telecom.DisconnectCause;
+import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 
 import com.android.internal.telephony.CallFailCause;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
 import com.android.phone.ImsUtil;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.common.R;
@@ -103,7 +107,7 @@
                         telephonyPerciseDisconnectCause),
                 toTelecomDisconnectCauseDescription(context, telephonyDisconnectCause, phoneId),
                 toTelecomDisconnectReason(context,telephonyDisconnectCause, reason, phoneId),
-                toTelecomDisconnectCauseTone(telephonyDisconnectCause));
+                toTelecomDisconnectCauseTone(telephonyDisconnectCause, phoneId));
     }
 
     /**
@@ -114,6 +118,8 @@
     private static int toTelecomDisconnectCauseCode(int telephonyDisconnectCause) {
         switch (telephonyDisconnectCause) {
             case android.telephony.DisconnectCause.LOCAL:
+            //  The call was still disconnected locally, so this is not an error condition.
+            case android.telephony.DisconnectCause.OUTGOING_EMERGENCY_CALL_PLACED:
                 return DisconnectCause.LOCAL;
 
             case android.telephony.DisconnectCause.NORMAL:
@@ -196,6 +202,7 @@
             case android.telephony.DisconnectCause.WIFI_LOST:
             case android.telephony.DisconnectCause.IMS_ACCESS_BLOCKED:
             case android.telephony.DisconnectCause.IMS_SIP_ALTERNATE_EMERGENCY_CALL:
+            case android.telephony.DisconnectCause.MEDIA_TIMEOUT:
                 return DisconnectCause.ERROR;
 
             case android.telephony.DisconnectCause.DIALED_MMI:
@@ -341,6 +348,9 @@
             case android.telephony.DisconnectCause.DATA_LIMIT_REACHED:
                 resourceId = R.string.callFailed_data_limit_reached;
                 break;
+            case android.telephony.DisconnectCause.WIFI_LOST:
+                resourceId = R.string.callFailed_wifi_lost;
+                break;
             case android.telephony.DisconnectCause.ALREADY_DIALING:
                 resourceId = R.string.callFailed_already_dialing;
                 break;
@@ -803,6 +813,8 @@
                 break;
             case android.telephony.DisconnectCause.IMS_ACCESS_BLOCKED:
                 return DisconnectCause.REASON_IMS_ACCESS_BLOCKED;
+            case android.telephony.DisconnectCause.OUTGOING_EMERGENCY_CALL_PLACED:
+                return DisconnectCause.REASON_EMERGENCY_CALL_PLACED;
         }
 
         // If no specific code-mapping found, then fall back to using the reason.
@@ -817,11 +829,22 @@
     /**
      * Returns the tone to play for the disconnect cause, or UNKNOWN if none should be played.
      */
-    private static int toTelecomDisconnectCauseTone(int telephonyDisconnectCause) {
-        switch (telephonyDisconnectCause) {
-            case android.telephony.DisconnectCause.BUSY:
+    private static int toTelecomDisconnectCauseTone(int telephonyDisconnectCause, int phoneId) {
+        Phone phone = PhoneFactory.getPhone(phoneId);
+        PersistableBundle config;
+        if (phone != null) {
+            config = PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
+        } else {
+            config = PhoneGlobals.getInstance().getCarrierConfig();
+        }
+        int[] busyToneArray = config.getIntArray(
+                CarrierConfigManager.KEY_DISCONNECT_CAUSE_PLAY_BUSYTONE_INT_ARRAY);
+        for (int busyTone : busyToneArray) {
+            if (busyTone == telephonyDisconnectCause) {
                 return ToneGenerator.TONE_SUP_BUSY;
-
+            }
+        }
+        switch (telephonyDisconnectCause) {
             case android.telephony.DisconnectCause.CONGESTION:
                 return ToneGenerator.TONE_SUP_CONGESTION;
 
@@ -838,17 +861,18 @@
             case android.telephony.DisconnectCause.UNOBTAINABLE_NUMBER:
                 return ToneGenerator.TONE_SUP_ERROR;
 
+            case android.telephony.DisconnectCause.IMS_MERGED_SUCCESSFULLY:
+                // Do not play any tones if disconnected because of a successful merge.
+                return -1;
+
             case android.telephony.DisconnectCause.ERROR_UNSPECIFIED:
             case android.telephony.DisconnectCause.LOCAL:
             case android.telephony.DisconnectCause.NORMAL:
             case android.telephony.DisconnectCause.NORMAL_UNSPECIFIED:
             case android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED:
-                return ToneGenerator.TONE_PROP_PROMPT;
-
-            case android.telephony.DisconnectCause.IMS_MERGED_SUCCESSFULLY:
-                // Do not play any tones if disconnected because of a successful merge.
+            case android.telephony.DisconnectCause.WIFI_LOST:
             default:
-                return ToneGenerator.TONE_UNKNOWN;
+                return ToneGenerator.TONE_PROP_PROMPT;
         }
     }
 }
diff --git a/src/com/android/services/telephony/EmergencyTonePlayer.java b/src/com/android/services/telephony/EmergencyTonePlayer.java
index 8e26349..431f8d7 100644
--- a/src/com/android/services/telephony/EmergencyTonePlayer.java
+++ b/src/com/android/services/telephony/EmergencyTonePlayer.java
@@ -23,7 +23,6 @@
 import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.media.ToneGenerator;
-import android.os.SystemVibrator;
 import android.os.Vibrator;
 import android.provider.Settings;
 
@@ -49,11 +48,9 @@
                 .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION)
                 .build();
 
-    // We don't rely on getSystemService(Context.VIBRATOR_SERVICE) to make sure that this vibrator
-    // object will be isolated from others.
-    private final Vibrator mVibrator = new SystemVibrator();
     private final Context mContext;
     private final AudioManager mAudioManager;
+    private final Vibrator mVibrator;
 
     private ToneGenerator mToneGenerator;
     private int mSavedInCallVolume;
@@ -62,6 +59,7 @@
     EmergencyTonePlayer(Context context) {
         mContext = context;
         mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
     }
 
     public void start() {
diff --git a/src/com/android/services/telephony/GsmConnection.java b/src/com/android/services/telephony/GsmConnection.java
index 47434c0..769ec22 100644
--- a/src/com/android/services/telephony/GsmConnection.java
+++ b/src/com/android/services/telephony/GsmConnection.java
@@ -22,8 +22,8 @@
  * Manages a single phone call handled by GSM.
  */
 final class GsmConnection extends TelephonyConnection {
-    GsmConnection(Connection connection, String telecomCallId, boolean isOutgoing) {
-        super(connection, telecomCallId, isOutgoing);
+    GsmConnection(Connection connection, String telecomCallId, int callDirection) {
+        super(connection, telecomCallId, callDirection);
     }
 
     /**
@@ -35,9 +35,7 @@
      */
     @Override
     public TelephonyConnection cloneConnection() {
-        GsmConnection gsmConnection = new GsmConnection(getOriginalConnection(),
-                getTelecomCallId(), mIsOutgoing);
-        return gsmConnection;
+        return new GsmConnection(getOriginalConnection(), getTelecomCallId(), getCallDirection());
     }
 
     /** {@inheritDoc} */
diff --git a/src/com/android/services/telephony/HoldTracker.java b/src/com/android/services/telephony/HoldTracker.java
index 805802f..5032b41 100644
--- a/src/com/android/services/telephony/HoldTracker.java
+++ b/src/com/android/services/telephony/HoldTracker.java
@@ -16,7 +16,6 @@
 
 package com.android.services.telephony;
 
-import android.telecom.Log;
 import android.telecom.PhoneAccountHandle;
 
 import java.util.ArrayList;
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index bf0374f..73d6023 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -20,29 +20,25 @@
 import android.graphics.drawable.Icon;
 import android.net.Uri;
 import android.os.Bundle;
-import android.os.PersistableBundle;
-import android.telecom.Conference;
-import android.telecom.ConferenceParticipant;
 import android.telecom.Connection;
 import android.telecom.Connection.VideoProvider;
 import android.telecom.DisconnectCause;
-import android.telecom.Log;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.StatusHints;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
-import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneNumberUtils;
 import android.util.Pair;
 
+import com.android.ims.internal.ConferenceParticipant;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
-import com.android.phone.PhoneGlobals;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
+import com.android.telephony.Rlog;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -68,7 +64,9 @@
  * connection and is responsible for managing the conference participant connections which represent
  * the participants.
  */
-public class ImsConference extends Conference implements Holdable {
+public class ImsConference extends TelephonyConferenceBase implements Holdable {
+
+    private static final String LOG_TAG = "ImsConference";
 
     /**
      * Abstracts out fetching a feature flag.  Makes testing easier.
@@ -78,24 +76,124 @@
     }
 
     /**
-     * Listener used to respond to changes to conference participants.  At the conference level we
-     * are most concerned with handling destruction of a conference participant.
+     * Abstracts out carrier configuration items specific to the conference.
      */
-    private final Connection.Listener mParticipantListener = new Connection.Listener() {
+    public static class CarrierConfiguration {
         /**
-         * Participant has been destroyed.  Remove it from the conference.
-         *
-         * @param connection The participant which was destroyed.
+         * Builds and instance of {@link CarrierConfiguration}.
          */
-        @Override
-        public void onDestroyed(Connection connection) {
-            ConferenceParticipantConnection participant =
-                    (ConferenceParticipantConnection) connection;
-            removeConferenceParticipant(participant);
-            updateManageConference();
+        public static class Builder {
+            private boolean mIsMaximumConferenceSizeEnforced = false;
+            private int mMaximumConferenceSize = 5;
+            private boolean mShouldLocalDisconnectEmptyConference = false;
+            private boolean mIsHoldAllowed = false;
+
+            /**
+             * Sets whether the maximum size of the conference is enforced.
+             * @param isMaximumConferenceSizeEnforced {@code true} if conference size enforced.
+             * @return builder instance.
+             */
+            public Builder setIsMaximumConferenceSizeEnforced(
+                    boolean isMaximumConferenceSizeEnforced) {
+                mIsMaximumConferenceSizeEnforced = isMaximumConferenceSizeEnforced;
+                return this;
+            }
+
+            /**
+             * Sets the maximum size of an IMS conference.
+             * @param maximumConferenceSize Max conference size.
+             * @return builder instance.
+             */
+            public Builder setMaximumConferenceSize(int maximumConferenceSize) {
+                mMaximumConferenceSize = maximumConferenceSize;
+                return this;
+            }
+
+            /**
+             * Sets whether an empty conference should be locally disconnected.
+             * @param shouldLocalDisconnectEmptyConference {@code true} if conference should be
+             * locally disconnected if empty.
+             * @return builder instance.
+             */
+            public Builder setShouldLocalDisconnectEmptyConference(
+                    boolean shouldLocalDisconnectEmptyConference) {
+                mShouldLocalDisconnectEmptyConference = shouldLocalDisconnectEmptyConference;
+                return this;
+            }
+
+            /**
+             * Sets whether holding the conference is allowed.
+             * @param isHoldAllowed {@code true} if holding is allowed.
+             * @return builder instance.
+             */
+            public Builder setIsHoldAllowed(boolean isHoldAllowed) {
+                mIsHoldAllowed = isHoldAllowed;
+                return this;
+            }
+
+            /**
+             * Build instance of {@link CarrierConfiguration}.
+             * @return carrier config instance.
+             */
+            public ImsConference.CarrierConfiguration build() {
+                return new ImsConference.CarrierConfiguration(mIsMaximumConferenceSizeEnforced,
+                        mMaximumConferenceSize, mShouldLocalDisconnectEmptyConference,
+                        mIsHoldAllowed);
+            }
         }
 
-    };
+        private boolean mIsMaximumConferenceSizeEnforced;
+
+        private int mMaximumConferenceSize;
+
+        private boolean mShouldLocalDisconnectEmptyConference;
+
+        private boolean mIsHoldAllowed;
+
+        private CarrierConfiguration(boolean isMaximumConferenceSizeEnforced,
+                int maximumConferenceSize, boolean shouldLocalDisconnectEmptyConference,
+                boolean isHoldAllowed) {
+            mIsMaximumConferenceSizeEnforced = isMaximumConferenceSizeEnforced;
+            mMaximumConferenceSize = maximumConferenceSize;
+            mShouldLocalDisconnectEmptyConference = shouldLocalDisconnectEmptyConference;
+            mIsHoldAllowed = isHoldAllowed;
+        }
+
+        /**
+         * Determines whether the {@link ImsConference} should enforce a size limit based on
+         * {@link #getMaximumConferenceSize()}.
+         * {@code true} if maximum size limit should be enforced, {@code false} otherwise.
+         */
+        public boolean isMaximumConferenceSizeEnforced() {
+            return mIsMaximumConferenceSizeEnforced;
+        }
+
+        /**
+         * Determines the maximum number of participants (not including the host) in a conference
+         * which is enforced when {@link #isMaximumConferenceSizeEnforced()} is {@code true}.
+         */
+        public int getMaximumConferenceSize() {
+            return mMaximumConferenceSize;
+        }
+
+        /**
+         * Determines whether this {@link ImsConference} should locally disconnect itself when the
+         * number of participants in the conference drops to zero.
+         * {@code true} if empty conference should be locally disconnected, {@code false}
+         * otherwise.
+         */
+        public boolean shouldLocalDisconnectEmptyConference() {
+            return mShouldLocalDisconnectEmptyConference;
+        }
+
+        /**
+         * Determines whether holding the conference is permitted or not.
+         * {@code true} if hold is permitted, {@code false} otherwise.
+         */
+        public boolean isHoldAllowed() {
+            return mIsHoldAllowed;
+        }
+    }
 
     /**
      * Listener used to respond to changes to the underlying radio connection for the conference
@@ -104,123 +202,133 @@
     private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
             new TelephonyConnection.TelephonyConnectionListener() {
 
-        @Override
-        public void onOriginalConnectionConfigured(TelephonyConnection c) {
-            if (c == mConferenceHost) {
-               handleOriginalConnectionChange();
-            }
-        }
-    };
+                /**
+                 * Updates the state of the conference based on the new state of the host.
+                 *
+                 * @param c The host connection.
+                 * @param state The new state
+                 */
+                @Override
+                public void onStateChanged(android.telecom.Connection c, int state) {
+                    setState(state);
+                }
 
-    /**
-     * Listener used to respond to changes to the connection to the IMS conference server.
-     */
-    private final android.telecom.Connection.Listener mConferenceHostListener =
-            new android.telecom.Connection.Listener() {
+                /**
+                 * Disconnects the conference when its host connection disconnects.
+                 *
+                 * @param c The host connection.
+                 * @param disconnectCause The host connection disconnect cause.
+                 */
+                @Override
+                public void onDisconnected(android.telecom.Connection c,
+                        DisconnectCause disconnectCause) {
+                    setDisconnected(disconnectCause);
+                }
 
-        /**
-         * Updates the state of the conference based on the new state of the host.
-         *
-         * @param c The host connection.
-         * @param state The new state
-         */
-        @Override
-        public void onStateChanged(android.telecom.Connection c, int state) {
-            setState(state);
-        }
+                @Override
+                public void onVideoStateChanged(android.telecom.Connection c, int videoState) {
+                    Log.d(this, "onVideoStateChanged video state %d", videoState);
+                    setVideoState(c, videoState);
+                }
 
-        /**
-         * Disconnects the conference when its host connection disconnects.
-         *
-         * @param c The host connection.
-         * @param disconnectCause The host connection disconnect cause.
-         */
-        @Override
-        public void onDisconnected(android.telecom.Connection c, DisconnectCause disconnectCause) {
-            setDisconnected(disconnectCause);
-        }
+                @Override
+                public void onVideoProviderChanged(android.telecom.Connection c,
+                        Connection.VideoProvider videoProvider) {
+                    Log.d(this, "onVideoProviderChanged: Connection: %s, VideoProvider: %s", c,
+                            videoProvider);
+                    setVideoProvider(c, videoProvider);
+                }
 
-        /**
-         * Handles changes to conference participant data as reported by the conference host
-         * connection.
-         *
-         * @param c The connection.
-         * @param participants The participant information.
-         */
-        @Override
-        public void onConferenceParticipantsChanged(android.telecom.Connection c,
-                List<ConferenceParticipant> participants) {
+                @Override
+                public void onConnectionCapabilitiesChanged(Connection c,
+                        int connectionCapabilities) {
+                    Log.d(this, "onConnectionCapabilitiesChanged: Connection: %s,"
+                            + " connectionCapabilities: %s", c, connectionCapabilities);
+                    int capabilites = ImsConference.this.getConnectionCapabilities();
+                    boolean isVideoConferencingSupported = mConferenceHost == null ? false :
+                            mConferenceHost.isCarrierVideoConferencingSupported();
+                    setConnectionCapabilities(
+                            applyHostCapabilities(capabilites, connectionCapabilities,
+                                    isVideoConferencingSupported));
+                }
 
-            if (c == null || participants == null) {
-                return;
-            }
-            Log.v(this, "onConferenceParticipantsChanged: %d participants", participants.size());
-            TelephonyConnection telephonyConnection = (TelephonyConnection) c;
-            handleConferenceParticipantsUpdate(telephonyConnection, participants);
-        }
+                @Override
+                public void onConnectionPropertiesChanged(Connection c, int connectionProperties) {
+                    Log.d(this, "onConnectionPropertiesChanged: Connection: %s,"
+                            + " connectionProperties: %s", c, connectionProperties);
+                    int properties = ImsConference.this.getConnectionProperties();
+                    setConnectionProperties(applyHostProperties(properties, connectionProperties));
+                }
 
-        @Override
-        public void onVideoStateChanged(android.telecom.Connection c, int videoState) {
-            Log.d(this, "onVideoStateChanged video state %d", videoState);
-            setVideoState(c, videoState);
-        }
+                @Override
+                public void onStatusHintsChanged(Connection c, StatusHints statusHints) {
+                    Log.v(this, "onStatusHintsChanged");
+                    updateStatusHints();
+                }
 
-        @Override
-        public void onVideoProviderChanged(android.telecom.Connection c,
-                Connection.VideoProvider videoProvider) {
-            Log.d(this, "onVideoProviderChanged: Connection: %s, VideoProvider: %s", c,
-                    videoProvider);
-            setVideoProvider(c, videoProvider);
-        }
+                @Override
+                public void onExtrasChanged(Connection c, Bundle extras) {
+                    Log.v(this, "onExtrasChanged: c=" + c + " Extras=" + extras);
+                    putExtras(extras);
+                }
 
-        @Override
-        public void onConnectionCapabilitiesChanged(Connection c, int connectionCapabilities) {
-            Log.d(this, "onConnectionCapabilitiesChanged: Connection: %s," +
-                    " connectionCapabilities: %s", c, connectionCapabilities);
-            int capabilites = ImsConference.this.getConnectionCapabilities();
-            boolean isVideoConferencingSupported = mConferenceHost == null ? false :
-                    mConferenceHost.isCarrierVideoConferencingSupported();
-            setConnectionCapabilities(applyHostCapabilities(capabilites, connectionCapabilities,
-                    isVideoConferencingSupported));
-        }
+                @Override
+                public void onExtrasRemoved(Connection c, List<String> keys) {
+                    Log.v(this, "onExtrasRemoved: c=" + c + " key=" + keys);
+                    removeExtras(keys);
+                }
 
-        @Override
-        public void onConnectionPropertiesChanged(Connection c, int connectionProperties) {
-            Log.d(this, "onConnectionPropertiesChanged: Connection: %s," +
-                    " connectionProperties: %s", c, connectionProperties);
-            int properties = ImsConference.this.getConnectionProperties();
-            setConnectionProperties(applyHostProperties(properties, connectionProperties));
-        }
+                @Override
+                public void onConnectionEvent(Connection c, String event, Bundle extras) {
+                    if (Connection.EVENT_MERGE_START.equals(event)) {
+                        // Do not pass a merge start event on the underlying host connection; only
+                        // indicate a merge has started on the connections which are merged into a
+                        // conference.
+                        return;
+                    }
 
-        @Override
-        public void onStatusHintsChanged(Connection c, StatusHints statusHints) {
-            Log.v(this, "onStatusHintsChanged");
-            updateStatusHints();
-        }
+                    sendConferenceEvent(event, extras);
+                }
 
-        @Override
-        public void onExtrasChanged(Connection c, Bundle extras) {
-            Log.v(this, "onExtrasChanged: c=" + c + " Extras=" + extras);
-            putExtras(extras);
-        }
+                @Override
+                public void onOriginalConnectionConfigured(TelephonyConnection c) {
+                    if (c == mConferenceHost) {
+                        handleOriginalConnectionChange();
+                    }
+                }
 
-        @Override
-        public void onExtrasRemoved(Connection c, List<String> keys) {
-            Log.v(this, "onExtrasRemoved: c=" + c + " key=" + keys);
-            removeExtras(keys);
-        }
+                /**
+                 * Handles changes to conference participant data as reported by the conference host
+                 * connection.
+                 *
+                 * @param c The connection.
+                 * @param participants The participant information.
+                 */
+                @Override
+                public void onConferenceParticipantsChanged(android.telecom.Connection c,
+                        List<ConferenceParticipant> participants) {
 
-        @Override
-        public void onConnectionEvent(Connection c, String event, Bundle extras) {
-            if (Connection.EVENT_MERGE_START.equals(event)) {
-                // Do not pass a merge start event on the underlying host connection; we only
-                // indicate a merge has started on the connections which are merged into a
-                // conference.
-                return;
-            }
-            sendConnectionEvent(event, extras);
-        }
-    };
+                    if (c == null || participants == null) {
+                        return;
+                    }
+                    Log.v(this, "onConferenceParticipantsChanged: %d participants",
+                            participants.size());
+                    TelephonyConnection telephonyConnection = (TelephonyConnection) c;
+                    handleConferenceParticipantsUpdate(telephonyConnection, participants);
+                }
+
+                /**
+                 * Handles request to play a ringback tone.
+                 *
+                 * @param c The connection.
+                 * @param ringback Whether the ringback tone is to be played.
+                 */
+                @Override
+                public void onRingbackRequested(android.telecom.Connection c, boolean ringback) {
+                    Log.d(this, "onRingbackRequested ringback %s", ringback ? "Y" : "N");
+                    setRingbackRequested(ringback);
+                }
+            };
 
     /**
      * The telephony connection service; used to add new participant connections to Telecom.
@@ -245,6 +353,11 @@
     private TelecomAccountRegistry mTelecomAccountRegistry;
 
     /**
+     * The participant with which Adhoc Conference call is getting formed.
+     */
+    private List<Uri> mParticipants;
+
+    /**
      * The known conference participant connections.  The HashMap is keyed by a Pair containing
      * the handle and endpoint Uris.
      * Access to the hashmap is protected by the {@link #mUpdateSyncRoot}.
@@ -264,11 +377,11 @@
     private boolean mIsHoldable;
     private boolean mCouldManageConference;
     private FeatureFlagProxy mFeatureFlagProxy;
-    private boolean mIsEmulatingSinglePartyCall = false;
+    private final CarrierConfiguration mCarrierConfig;
     private boolean mIsUsingSimCallManager = false;
 
     /**
-     * Where {@link #mIsEmulatingSinglePartyCall} is {@code true}, contains the
+     * Where {@link #isMultiparty()} is {@code false}, contains the
      * {@link ConferenceParticipantConnection#getUserEntity()} and
      * {@link ConferenceParticipantConnection#getEndpoint()} of the single participant which this
      * conference pretends to be.
@@ -305,29 +418,30 @@
     public ImsConference(TelecomAccountRegistry telecomAccountRegistry,
             TelephonyConnectionServiceProxy telephonyConnectionService,
             TelephonyConnection conferenceHost, PhoneAccountHandle phoneAccountHandle,
-            FeatureFlagProxy featureFlagProxy) {
+            FeatureFlagProxy featureFlagProxy, CarrierConfiguration carrierConfig) {
 
         super(phoneAccountHandle);
 
         mTelecomAccountRegistry = telecomAccountRegistry;
         mFeatureFlagProxy = featureFlagProxy;
+        mCarrierConfig = carrierConfig;
 
         // Specify the connection time of the conference to be the connection time of the original
         // connection.
         long connectTime = conferenceHost.getOriginalConnection().getConnectTime();
         long connectElapsedTime = conferenceHost.getOriginalConnection().getConnectTimeReal();
         setConnectionTime(connectTime);
-        setConnectionStartElapsedRealTime(connectElapsedTime);
+        setConnectionStartElapsedRealtimeMillis(connectElapsedTime);
         // Set the connectTime in the connection as well.
         conferenceHost.setConnectTimeMillis(connectTime);
-        conferenceHost.setConnectionStartElapsedRealTime(connectElapsedTime);
+        conferenceHost.setConnectionStartElapsedRealtimeMillis(connectElapsedTime);
 
         mTelephonyConnectionService = telephonyConnectionService;
         setConferenceHost(conferenceHost);
 
         int capabilities = Connection.CAPABILITY_MUTE |
                 Connection.CAPABILITY_CONFERENCE_HAS_NO_CHILDREN;
-        if (canHoldImsCalls()) {
+        if (mCarrierConfig.isHoldAllowed()) {
             capabilities |= Connection.CAPABILITY_SUPPORT_HOLD | Connection.CAPABILITY_HOLD;
             mIsHoldable = true;
         }
@@ -351,15 +465,15 @@
 
         conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
-                    can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL));
+                (capabilities & Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL) != 0);
 
         if (isVideoConferencingSupported) {
             conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
-                    can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
+                    (capabilities & Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL) != 0);
             conferenceCapabilities = changeBitmask(conferenceCapabilities,
                     Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO,
-                    can(capabilities, Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO));
+                    (capabilities & Connection.CAPABILITY_CAN_UPGRADE_TO_VIDEO) != 0);
         } else {
             // If video conferencing is not supported, explicitly turn off the remote video
             // capability and the ability to upgrade to video.
@@ -372,12 +486,16 @@
 
         conferenceCapabilities = changeBitmask(conferenceCapabilities,
                 Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO,
-                can(capabilities, Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO));
+                (capabilities & Connection.CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO) != 0);
 
         conferenceCapabilities = changeBitmask(conferenceCapabilities,
                 Connection.CAPABILITY_CAN_PAUSE_VIDEO,
                 mConferenceHost.getVideoPauseSupported() && isVideoCapable());
 
+        conferenceCapabilities = changeBitmask(conferenceCapabilities,
+                Connection.CAPABILITY_ADD_PARTICIPANT,
+                (capabilities & Connection.CAPABILITY_ADD_PARTICIPANT) != 0);
+
         return conferenceCapabilities;
     }
 
@@ -391,19 +509,23 @@
     private int applyHostProperties(int conferenceProperties, int properties) {
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_HIGH_DEF_AUDIO,
-                can(properties, Connection.PROPERTY_HIGH_DEF_AUDIO));
+                (properties & Connection.PROPERTY_HIGH_DEF_AUDIO) != 0);
 
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_WIFI,
-                can(properties, Connection.PROPERTY_WIFI));
+                (properties & Connection.PROPERTY_WIFI) != 0);
 
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_IS_EXTERNAL_CALL,
-                can(properties, Connection.PROPERTY_IS_EXTERNAL_CALL));
+                (properties & Connection.PROPERTY_IS_EXTERNAL_CALL) != 0);
 
         conferenceProperties = changeBitmask(conferenceProperties,
                 Connection.PROPERTY_REMOTELY_HOSTED, !isConferenceHost());
 
+        conferenceProperties = changeBitmask(conferenceProperties,
+                Connection.PROPERTY_IS_ADHOC_CONFERENCE,
+                (properties & Connection.PROPERTY_IS_ADHOC_CONFERENCE) != 0);
+
         return conferenceProperties;
     }
 
@@ -443,11 +565,31 @@
         return VideoProfile.STATE_AUDIO_ONLY;
     }
 
+    public Connection getConferenceHost() {
+        return mConferenceHost;
+    }
+
+    /**
+     * @return The address's to which this Connection is currently communicating.
+     */
+    public final List<Uri> getParticipants() {
+        return mParticipants;
+    }
+
+    /**
+     * Sets the value of the {@link #getParticipants()}.
+     *
+     * @param address The new address's.
+     */
+    public final void setParticipants(List<Uri> address) {
+        mParticipants = address;
+    }
+
     /**
      * Invoked when the Conference and all its {@link Connection}s should be disconnected.
      * <p>
      * Hangs up the call via the conference host connection.  When the host connection has been
-     * successfully disconnected, the {@link #mConferenceHostListener} listener receives an
+     * successfully disconnected, the {@link #mTelephonyConnectionListener} listener receives an
      * {@code onDestroyed} event, which triggers the conference participant connections to be
      * disconnected.
      */
@@ -467,6 +609,8 @@
             } catch (CallStateException e) {
                 Log.e(this, e, "Exception thrown trying to hangup conference");
             }
+        } else {
+            Log.w(this, "onDisconnect - null call");
         }
     }
 
@@ -502,6 +646,41 @@
     }
 
     /**
+     * Supports adding participants to an existing conference call
+     *
+     * @param participants that are pulled to existing conference call
+     */
+    @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        if (mConferenceHost == null) {
+            return;
+        }
+        mConferenceHost.performAddConferenceParticipants(participants);
+    }
+
+    /**
+     * Invoked when the conference is answered.
+     */
+    @Override
+    public void onAnswer(int videoState) {
+        if (mConferenceHost == null) {
+            return;
+        }
+        mConferenceHost.performAnswer(videoState);
+    }
+
+    /**
+     * Invoked when the conference is rejected.
+     */
+    @Override
+    public void onReject() {
+        if (mConferenceHost == null) {
+            return;
+        }
+        mConferenceHost.performReject(android.telecom.Call.REJECT_REASON_DECLINED);
+    }
+
+    /**
      * Invoked when the conference should be put on hold.
      */
     @Override
@@ -625,9 +804,10 @@
      * that the conference is represented appropriately on Bluetooth devices.
      */
     private void updateManageConference() {
-        boolean couldManageConference = can(Connection.CAPABILITY_MANAGE_CONFERENCE);
+        boolean couldManageConference =
+                (getConnectionCapabilities() & Connection.CAPABILITY_MANAGE_CONFERENCE) != 0;
         boolean canManageConference = mFeatureFlagProxy.isUsingSinglePartyCallEmulation()
-                && mIsEmulatingSinglePartyCall
+                && !isMultiparty()
                 ? mConferenceParticipantConnections.size() > 1
                 : mConferenceParticipantConnections.size() != 0;
         Log.v(this, "updateManageConference was :%s is:%s", couldManageConference ? "Y" : "N",
@@ -698,11 +878,11 @@
             setAddress(mConferenceHost.getAddress(), mConferenceHost.getAddressPresentation());
             setCallerDisplayName(mConferenceHost.getCallerDisplayName(),
                     mConferenceHost.getCallerDisplayNamePresentation());
-            setConnectionStartElapsedRealTime(mConferenceHost.getConnectElapsedTimeMillis());
+            setConnectionStartElapsedRealtimeMillis(
+                    mConferenceHost.getConnectionStartElapsedRealtimeMillis());
             setConnectionTime(mConferenceHost.getConnectTimeMillis());
         }
 
-        mConferenceHost.addConnectionListener(mConferenceHostListener);
         mConferenceHost.addTelephonyConnectionListener(mTelephonyConnectionListener);
         setConnectionCapabilities(applyHostCapabilities(getConnectionCapabilities(),
                 mConferenceHost.getConnectionCapabilities(),
@@ -770,8 +950,8 @@
             // 1. We're not emulating a single party call.
             // 2. We're emulating a single party call and the CEP contains more than just the
             //    single party
-            if ((mIsEmulatingSinglePartyCall && !isSinglePartyConference) ||
-                !mIsEmulatingSinglePartyCall) {
+            if ((!isMultiparty() && !isSinglePartyConference)
+                    || isMultiparty()) {
                 // Add any new participants and update existing.
                 for (ConferenceParticipant participant : participants) {
                     Pair<Uri, Uri> userEntity = new Pair<>(participant.getHandle(),
@@ -804,6 +984,13 @@
                                 "handleConferenceParticipantsUpdate: updateState, participant = %s",
                                 participant);
                         connection.updateState(participant.getState());
+                        if (participant.getState() == Connection.STATE_DISCONNECTED) {
+                            /**
+                             * Per {@link ConferenceParticipantConnection#updateState(int)}, we will
+                             * destroy the connection when its disconnected.
+                             */
+                            handleConnectionDestruction(connection);
+                        }
                         connection.setVideoState(parent.getVideoState());
                     }
                 }
@@ -817,6 +1004,13 @@
                                         newParticipant.getHandle(),
                                         newParticipant.getEndpoint()));
                         connection.updateState(newParticipant.getState());
+                        /**
+                         * Per {@link ConferenceParticipantConnection#updateState(int)}, we will
+                         * destroy the connection when its disconnected.
+                         */
+                        if (newParticipant.getState() == Connection.STATE_DISCONNECTED) {
+                            handleConnectionDestruction(connection);
+                        }
                         connection.setVideoState(parent.getVideoState());
                     }
                 }
@@ -832,9 +1026,8 @@
                     if (!participantUserEntities.contains(entry.getKey())) {
                         ConferenceParticipantConnection participant = entry.getValue();
                         participant.setDisconnected(new DisconnectCause(DisconnectCause.CANCELED));
-                        participant.removeConnectionListener(mParticipantListener);
-                        mTelephonyConnectionService.removeConnection(participant);
-                        removeConnection(participant);
+                        removeTelephonyConnection(participant);
+                        participant.destroy();
                         entryIterator.remove();
                         oldParticipantsRemoved = true;
                     }
@@ -846,11 +1039,12 @@
                             + "newParticipantcount=%d", oldParticipantCount, newParticipantCount);
             // If the single party call emulation fature flag is enabled, we can potentially treat
             // the conference as a single party call when there is just one participant.
-            if (mFeatureFlagProxy.isUsingSinglePartyCallEmulation()) {
-                if (oldParticipantCount > 1 && newParticipantCount == 1) {
+            if (mFeatureFlagProxy.isUsingSinglePartyCallEmulation() &&
+                    !mConferenceHost.isAdhocConferenceCall()) {
+                if (oldParticipantCount != 1 && newParticipantCount == 1) {
                     // If number of participants goes to 1, emulate a single party call.
                     startEmulatingSinglePartyCall();
-                } else if (mIsEmulatingSinglePartyCall && !isSinglePartyConference) {
+                } else if (!isMultiparty() && !isSinglePartyConference) {
                     // Number of participants increased, so stop emulating a single party call.
                     stopEmulatingSinglePartyCall();
                 }
@@ -861,6 +1055,14 @@
             if (newParticipantsAdded || oldParticipantsRemoved) {
                 updateManageConference();
             }
+
+            // If the conference is empty and we're supposed to do a local disconnect, do so now.
+            if (mCarrierConfig.shouldLocalDisconnectEmptyConference()
+                    && oldParticipantCount > 0 && newParticipantCount == 0) {
+                Log.i(this, "handleConferenceParticipantsUpdate: empty conference; "
+                        + "local disconnect.");
+                onDisconnect();
+            }
         }
     }
 
@@ -884,7 +1086,6 @@
 
         Log.i(this, "stopEmulatingSinglePartyCall: conference now has more than one"
                 + " participant; make it look conference-like again.");
-        mIsEmulatingSinglePartyCall = false;
 
         if (mCouldManageConference) {
             int currentCapabilities = getConnectionCapabilities();
@@ -903,7 +1104,8 @@
             Log.d(this,
                     "stopEmulatingSinglePartyCall: restored lone participant connect time");
             loneParticipant.setConnectTimeMillis(getConnectionTime());
-            loneParticipant.setConnectionStartElapsedRealTime(getConnectionStartElapsedRealTime());
+            loneParticipant.setConnectionStartElapsedRealtimeMillis(
+                    getConnectionStartElapsedRealtimeMillis());
         }
 
         // Tell Telecom its a conference again.
@@ -933,7 +1135,6 @@
         Log.i(this, "startEmulatingSinglePartyCall: conference has a single "
                 + "participant; downgrade to single party call.");
 
-        mIsEmulatingSinglePartyCall = true;
         Iterator<ConferenceParticipantConnection> valueIterator =
                 mConferenceParticipantConnections.values().iterator();
         if (valueIterator.hasNext()) {
@@ -943,17 +1144,18 @@
             setAddress(entry.getAddress(), entry.getAddressPresentation());
             setCallerDisplayName(entry.getCallerDisplayName(),
                     entry.getCallerDisplayNamePresentation());
-            setConnectionStartElapsedRealTime(entry.getConnectElapsedTimeMillis());
+            setConnectionStartElapsedRealtimeMillis(
+                    entry.getConnectionStartElapsedRealtimeMillis());
             setConnectionTime(entry.getConnectTimeMillis());
+            setCallDirection(entry.getCallDirection());
             mLoneParticipantIdentity = new Pair<>(entry.getUserEntity(), entry.getEndpoint());
 
             // Remove the participant from Telecom.  It'll get picked up in a future CEP update
             // again anyways.
             entry.setDisconnected(new DisconnectCause(DisconnectCause.CANCELED,
                     DisconnectCause.REASON_EMULATING_SINGLE_CALL));
-            entry.removeConnectionListener(mParticipantListener);
-            mTelephonyConnectionService.removeConnection(entry);
-            removeConnection(entry);
+            removeTelephonyConnection(entry);
+            entry.destroy();
             valueIterator.remove();
         }
 
@@ -961,7 +1163,8 @@
         setConferenceState(false);
 
         // Remove manage conference capability.
-        mCouldManageConference = can(Connection.CAPABILITY_MANAGE_CONFERENCE);
+        mCouldManageConference =
+                (getConnectionCapabilities() & Connection.CAPABILITY_MANAGE_CONFERENCE) != 0;
         int currentCapabilities = getConnectionCapabilities();
         currentCapabilities &= ~Connection.CAPABILITY_MANAGE_CONFERENCE;
         setConnectionCapabilities(currentCapabilities);
@@ -985,13 +1188,13 @@
         ConferenceParticipantConnection connection = new ConferenceParticipantConnection(
                 parent.getOriginalConnection(), participant,
                 !isConferenceHost() /* isRemotelyHosted */);
-        connection.addConnectionListener(mParticipantListener);
         if (participant.getConnectTime() == 0) {
             connection.setConnectTimeMillis(parent.getConnectTimeMillis());
-            connection.setConnectionStartElapsedRealTime(parent.getConnectElapsedTimeMillis());
+            connection.setConnectionStartElapsedRealtimeMillis(
+                    parent.getConnectionStartElapsedRealtimeMillis());
         } else {
             connection.setConnectTimeMillis(participant.getConnectTime());
-            connection.setConnectionStartElapsedRealTime(participant.getConnectElapsedTime());
+            connection.setConnectionStartElapsedRealtimeMillis(participant.getConnectElapsedTime());
         }
         // Indicate whether this is an MT or MO call to Telecom; the participant has the cached
         // data from the time of merge.
@@ -1007,7 +1210,7 @@
 
         mTelephonyConnectionService.addExistingConnection(mConferenceHostPhoneAccountHandle,
                 connection, this);
-        addConnection(connection);
+        addTelephonyConnection(connection);
     }
 
     /**
@@ -1018,12 +1221,11 @@
     private void removeConferenceParticipant(ConferenceParticipantConnection participant) {
         Log.i(this, "removeConferenceParticipant: %s", participant);
 
-        participant.removeConnectionListener(mParticipantListener);
         synchronized(mUpdateSyncRoot) {
             mConferenceParticipantConnections.remove(new Pair<>(participant.getUserEntity(),
                     participant.getEndpoint()));
         }
-        mTelephonyConnectionService.removeConnection(participant);
+        participant.destroy();
     }
 
     /**
@@ -1036,14 +1238,13 @@
             for (ConferenceParticipantConnection connection :
                     mConferenceParticipantConnections.values()) {
 
-                connection.removeConnectionListener(mParticipantListener);
                 // Mark disconnect cause as cancelled to ensure that the call is not logged in the
                 // call log.
                 connection.setDisconnected(new DisconnectCause(DisconnectCause.CANCELED));
-                mTelephonyConnectionService.removeConnection(connection);
                 connection.destroy();
             }
             mConferenceParticipantConnections.clear();
+            updateManageConference();
         }
     }
 
@@ -1100,7 +1301,7 @@
             boolean isHost = PhoneNumberUtils.compare(hostNumber, number);
 
             Log.v(this, "isParticipantHost(%s) : host: %s, participant %s", (isHost ? "Y" : "N"),
-                    Log.pii(hostNumber), Log.pii(number));
+                    Rlog.pii(LOG_TAG, hostNumber), Rlog.pii(LOG_TAG, number));
 
             if (isHost) {
                 return true;
@@ -1151,24 +1352,24 @@
             if (mConferenceHost.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
                 Log.i(this,"handleOriginalConnectionChange : SRVCC to GSM");
                 GsmConnection c = new GsmConnection(originalConnection, getTelecomCallId(),
-                        mConferenceHost.isOutgoingCall());
+                        mConferenceHost.getCallDirection());
                 // This is a newly created conference connection as a result of SRVCC
                 c.setConferenceSupported(true);
-                c.setConnectionProperties(
+                c.setTelephonyConnectionProperties(
                         c.getConnectionProperties() | Connection.PROPERTY_IS_DOWNGRADED_CONFERENCE);
                 c.updateState();
                 // Copy the connect time from the conferenceHost
                 c.setConnectTimeMillis(mConferenceHost.getConnectTimeMillis());
-                c.setConnectionStartElapsedRealTime(mConferenceHost.getConnectElapsedTimeMillis());
+                c.setConnectionStartElapsedRealtimeMillis(
+                        mConferenceHost.getConnectionStartElapsedRealtimeMillis());
                 mTelephonyConnectionService.addExistingConnection(phoneAccountHandle, c);
                 mTelephonyConnectionService.addConnectionToConferenceController(c);
             } // CDMA case not applicable for SRVCC
-            mConferenceHost.removeConnectionListener(mConferenceHostListener);
             mConferenceHost.removeTelephonyConnectionListener(mTelephonyConnectionListener);
             mConferenceHost = null;
             setDisconnected(new DisconnectCause(DisconnectCause.OTHER));
             disconnectConferenceParticipants();
-            destroy();
+            destroyTelephonyConference();
         }
 
         updateStatusHints();
@@ -1185,11 +1386,13 @@
         switch (state) {
             case Connection.STATE_INITIALIZING:
             case Connection.STATE_NEW:
-            case Connection.STATE_RINGING:
                 // No-op -- not applicable.
                 break;
+            case Connection.STATE_RINGING:
+                setConferenceOnRinging();
+                break;
             case Connection.STATE_DIALING:
-                setDialing();
+                setConferenceOnDialing();
                 break;
             case Connection.STATE_DISCONNECTED:
                 DisconnectCause disconnectCause;
@@ -1207,13 +1410,13 @@
                 }
                 setDisconnected(disconnectCause);
                 disconnectConferenceParticipants();
-                destroy();
+                destroyTelephonyConference();
                 break;
             case Connection.STATE_ACTIVE:
-                setActive();
+                setConferenceOnActive();
                 break;
             case Connection.STATE_HOLDING:
-                setOnHold();
+                setConferenceOnHold();
                 break;
         }
     }
@@ -1224,8 +1427,8 @@
      */
     private boolean isVideoCapable() {
         int capabilities = mConferenceHost.getConnectionCapabilities();
-        return can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
-                && can(capabilities, Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
+        return (capabilities & Connection.CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL) != 0
+                && (capabilities & Connection.CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL) != 0;
     }
 
     private void updateStatusHints() {
@@ -1270,51 +1473,6 @@
         return sb.toString();
     }
 
-    private boolean canHoldImsCalls() {
-        PersistableBundle b = getCarrierConfig();
-        // Return true if the CarrierConfig is unavailable
-        return b == null || b.getBoolean(CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
-    }
-
-    private PersistableBundle getCarrierConfig() {
-        if (mConferenceHost == null) {
-            return null;
-        }
-
-        Phone phone = mConferenceHost.getPhone();
-        if (phone == null) {
-            return null;
-        }
-        return PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
-    }
-
-    /**
-     * @return {@code true} if the carrier associated with the conference requires that the maximum
-     *      size of the conference is enforced, {@code false} otherwise.
-     */
-    public boolean isMaximumConferenceSizeEnforced() {
-        PersistableBundle b = getCarrierConfig();
-        // Return false if the CarrierConfig is unavailable
-        return b != null && b.getBoolean(
-                CarrierConfigManager.KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL);
-    }
-
-    /**
-     * @return The maximum size of a conference call where
-     * {@link #isMaximumConferenceSizeEnforced()} is true.
-     */
-    public int getMaximumConferenceSize() {
-        PersistableBundle b = getCarrierConfig();
-
-        // If there is no carrier config its really a problem, but we'll still define a sane limit
-        // of 5 so that we can still make a conference.
-        if (b == null) {
-            Log.w(this, "getMaximumConferenceSize - failed to get conference size");
-            return 5;
-        }
-        return b.getInt(CarrierConfigManager.KEY_IMS_CONFERENCE_SIZE_LIMIT_INT);
-    }
-
     /**
      * @return The number of participants in the conference.
      */
@@ -1327,7 +1485,18 @@
      *      participants in the conference has reached the limit, {@code false} otherwise.
      */
     public boolean isFullConference() {
-        return isMaximumConferenceSizeEnforced()
-                && getNumberOfParticipants() >= getMaximumConferenceSize();
+        return mCarrierConfig.isMaximumConferenceSizeEnforced()
+                && getNumberOfParticipants() >= mCarrierConfig.getMaximumConferenceSize();
+    }
+
+    /**
+     * Handles destruction of a {@link ConferenceParticipantConnection}.
+     * We remove the participant from the list of tracked participants in the conference and
+     * update whether the conference can be managed.
+     * @param participant the conference participant.
+     */
+    private void handleConnectionDestruction(ConferenceParticipantConnection participant) {
+        removeConferenceParticipant(participant);
+        updateManageConference();
     }
 }
diff --git a/src/com/android/services/telephony/ImsConferenceController.java b/src/com/android/services/telephony/ImsConferenceController.java
index 9902700..6d3d4c2 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -16,12 +16,17 @@
 
 package com.android.services.telephony;
 
+import android.content.Context;
+import android.os.PersistableBundle;
 import android.telecom.Conference;
 import android.telecom.Conferenceable;
 import android.telecom.Connection;
 import android.telecom.ConnectionService;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccountHandle;
+import android.telephony.CarrierConfigManager;
+
+import com.android.telephony.Rlog;
 
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
@@ -38,43 +43,36 @@
  * Manages conferences for IMS connections.
  */
 public class ImsConferenceController {
+    private static final String LOG_TAG = "ImsConferenceController";
 
     /**
      * Conference listener; used to receive notification when a conference has been disconnected.
      */
-    private final Conference.Listener mConferenceListener = new Conference.Listener() {
+    private final TelephonyConferenceBase.TelephonyConferenceListener mConferenceListener =
+            new TelephonyConferenceBase.TelephonyConferenceListener() {
         @Override
         public void onDestroyed(Conference conference) {
             if (Log.VERBOSE) {
                 Log.v(ImsConferenceController.class, "onDestroyed: %s", conference);
             }
 
+            if (conference instanceof ImsConference) {
+                // Ims Conference call ended, so UE may now have the ability to initiate
+                // an Adhoc Conference call. Hence, try enabling adhoc conference capability
+                mTelecomAccountRegistry.refreshAdhocConference(true);
+            }
             mImsConferences.remove(conference);
         }
+
+        @Override
+        public void onStateChanged(Conference conference, int oldState, int newState) {
+            Log.v(this, "onStateChanged: Conference = " + conference);
+            recalculateConferenceable();
+        }
     };
 
-    /**
-     * Ims conference controller connection listener.  Used to respond to changes in state of the
-     * Telephony connections the controller is aware of.
-     */
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
-        @Override
-        public void onStateChanged(Connection c, int state) {
-            Log.v(this, "onStateChanged: %s", Log.pii(c.getAddress()));
-            recalculate();
-        }
-
-        @Override
-        public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
-            Log.v(this, "onDisconnected: %s", Log.pii(c.getAddress()));
-            recalculate();
-        }
-
-        @Override
-        public void onDestroyed(Connection connection) {
-            remove(connection);
-        }
-
+    private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
+            new TelephonyConnection.TelephonyConnectionListener() {
         @Override
         public void onConferenceStarted() {
             Log.v(this, "onConferenceStarted");
@@ -86,6 +84,23 @@
             Log.v(this, "onConferenceSupportedChanged");
             recalculate();
         }
+
+        @Override
+        public void onStateChanged(Connection c, int state) {
+            Log.v(this, "onStateChanged: %s", Rlog.pii(LOG_TAG, c.getAddress()));
+            recalculate();
+        }
+
+        @Override
+        public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
+            Log.v(this, "onDisconnected: %s", Rlog.pii(LOG_TAG, c.getAddress()));
+            recalculate();
+        }
+
+        @Override
+        public void onDestroyed(Connection connection) {
+            remove(connection);
+        }
     };
 
     /**
@@ -101,10 +116,11 @@
     private final ArrayList<TelephonyConnection> mTelephonyConnections = new ArrayList<>();
 
     /**
-     * List of known {@link ImsConference}s.  Realistically there will only ever be a single
-     * concurrent IMS conference.
+     * List of known {@link ImsConference}s. There can be upto maximum two Ims conference calls.
+     * One conference call can be a host conference call and another conference call formed as a
+     * result of accepting incoming conference call.
      */
-    private final ArrayList<ImsConference> mImsConferences = new ArrayList<>(1);
+    private final ArrayList<ImsConference> mImsConferences = new ArrayList<>(2);
 
     private TelecomAccountRegistry mTelecomAccountRegistry;
 
@@ -122,6 +138,17 @@
         mFeatureFlagProxy = featureFlagProxy;
     }
 
+    void addConference(ImsConference conference) {
+        if (mImsConferences.contains(conference)) {
+            // Adding a duplicate realistically shouldn't happen.
+            Log.w(this, "addConference - conference already tracked; conference=%s", conference);
+            return;
+        }
+        mImsConferences.add(conference);
+        conference.addTelephonyConferenceListener(mConferenceListener);
+        recalculateConferenceable();
+    }
+
     /**
      * Adds a new connection to the IMS conference controller.
      *
@@ -148,8 +175,9 @@
         }
 
         mTelephonyConnections.add(connection);
-        connection.addConnectionListener(mConnectionListener);
+        connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
         recalculateConference();
+        recalculateConferenceable();
     }
 
     /**
@@ -175,7 +203,10 @@
             Log.v(this, "remove connection: %s", connection);
         }
 
-        connection.removeConnectionListener(mConnectionListener);
+        if (connection instanceof TelephonyConnection) {
+            TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
+            telephonyConnection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
+        }
         mTelephonyConnections.remove(connection);
         recalculateConferenceable();
     }
@@ -246,6 +277,11 @@
                 continue;
             }
 
+            // Since UE cannot host two conference calls, remove the ability to initiate
+            // another conference call as there already exists a conference call, which
+            // is hosted on this device.
+            mTelecomAccountRegistry.refreshAdhocConference(false);
+
             switch (conference.getState()) {
                 case Connection.STATE_ACTIVE:
                     //fall through
@@ -356,6 +392,10 @@
             Log.v(this, "Start new ImsConference - connection: %s", connection);
         }
 
+        if (connection.isAdhocConferenceCall()) {
+            Log.w(this, "start new ImsConference - control should never come here");
+            return;
+        }
         // Make a clone of the connection which will become the Ims conference host connection.
         // This is necessary since the Connection Service does not support removing a connection
         // from Telecom.  Instead we create a new instance and remove the old one from telecom.
@@ -367,6 +407,7 @@
         PhoneAccountHandle phoneAccountHandle = null;
 
         // Attempt to determine the phone account associated with the conference host connection.
+        ImsConference.CarrierConfiguration carrierConfig = null;
         if (connection.getPhone() != null &&
                 connection.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
             Phone imsPhone = connection.getPhone();
@@ -374,12 +415,14 @@
             // base GSM or CDMA phone, not on the ImsPhone itself).
             phoneAccountHandle =
                     PhoneUtils.makePstnPhoneAccountHandle(imsPhone.getDefaultPhone());
+            carrierConfig = getCarrierConfig(imsPhone);
         }
 
         ImsConference conference = new ImsConference(mTelecomAccountRegistry, mConnectionService,
-                conferenceHostConnection, phoneAccountHandle, mFeatureFlagProxy);
+                conferenceHostConnection, phoneAccountHandle, mFeatureFlagProxy, carrierConfig);
         conference.setState(conferenceHostConnection.getState());
-        conference.addListener(mConferenceListener);
+        conference.setCallDirection(conferenceHostConnection.getCallDirection());
+        conference.addTelephonyConferenceListener(mConferenceListener);
         conference.updateConferenceParticipantsAfterCreation();
         mConnectionService.addConference(conference);
         conferenceHostConnection.setTelecomCallId(conference.getTelecomCallId());
@@ -387,15 +430,43 @@
         // Cleanup TelephonyConnection which backed the original connection and remove from telecom.
         // Use the "Other" disconnect cause to ensure the call is logged to the call log but the
         // disconnect tone is not played.
-        connection.removeConnectionListener(mConnectionListener);
-        connection.clearOriginalConnection();
-        connection.setDisconnected(new DisconnectCause(DisconnectCause.OTHER,
+        connection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
+        connection.setTelephonyConnectionDisconnected(new DisconnectCause(DisconnectCause.OTHER,
                 android.telephony.DisconnectCause.toString(
                         android.telephony.DisconnectCause.IMS_MERGED_SUCCESSFULLY)));
-        connection.destroy();
+        connection.close();
         mImsConferences.add(conference);
         // If one of the participants failed to join the conference, recalculate will set the
         // conferenceable connections for the conference to show merge calls option.
         recalculateConferenceable();
     }
+
+    public static ImsConference.CarrierConfiguration getCarrierConfig(Phone phone) {
+        ImsConference.CarrierConfiguration.Builder config =
+                new ImsConference.CarrierConfiguration.Builder();
+        if (phone == null) {
+            return config.build();
+        }
+
+        CarrierConfigManager cfgManager = (CarrierConfigManager)
+                phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (cfgManager != null) {
+            PersistableBundle bundle = cfgManager.getConfigForSubId(phone.getSubId());
+            boolean isMaximumConferenceSizeEnforced = bundle.getBoolean(
+                    CarrierConfigManager.KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL);
+            int maximumConferenceSize = bundle.getInt(
+                    CarrierConfigManager.KEY_IMS_CONFERENCE_SIZE_LIMIT_INT);
+            boolean isHoldAllowed = bundle.getBoolean(
+                    CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
+            boolean shouldLocalDisconnectOnEmptyConference = bundle.getBoolean(
+                    CarrierConfigManager.KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL);
+
+            config.setIsMaximumConferenceSizeEnforced(isMaximumConferenceSizeEnforced)
+                    .setMaximumConferenceSize(maximumConferenceSize)
+                    .setIsHoldAllowed(isHoldAllowed)
+                    .setShouldLocalDisconnectEmptyConference(
+                            shouldLocalDisconnectOnEmptyConference);
+        }
+        return config.build();
+    }
 }
diff --git a/src/com/android/services/telephony/Log.java b/src/com/android/services/telephony/Log.java
index 9941a59..57bf849 100644
--- a/src/com/android/services/telephony/Log.java
+++ b/src/com/android/services/telephony/Log.java
@@ -16,8 +16,6 @@
 
 package com.android.services.telephony;
 
-import android.content.Context;
-
 /**
  * Manages logging for the entire module.
  */
@@ -39,72 +37,80 @@
         return FORCE_LOGGING || android.util.Log.isLoggable(TAG, level);
     }
 
-    public static void initLogging(Context context) {
-        // Register Telephony with the Telecom Logger.
-        android.telecom.Log.setTag(TAG);
-        android.telecom.Log.setSessionContext(context);
-    }
-
     // Relay log messages to Telecom
     // TODO: Redo namespace of Telephony to use these methods directly.
 
     public static void d(String prefix, String format, Object... args) {
-        android.telecom.Log.d(prefix, format, args);
+        android.util.Log.d(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void d(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.d(objectPrefix, format, args);
+        android.util.Log.d(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void i(String prefix, String format, Object... args) {
-        android.telecom.Log.i(prefix, format, args);
+        android.util.Log.i(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void i(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.i(objectPrefix, format, args);
+        android.util.Log.i(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void v(String prefix, String format, Object... args) {
-        android.telecom.Log.v(prefix, format, args);
+        android.util.Log.v(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void v(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.v(objectPrefix, format, args);
+        android.util.Log.v(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void w(String prefix, String format, Object... args) {
-        android.telecom.Log.w(prefix, format, args);
+        android.util.Log.w(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void w(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.w(objectPrefix, format, args);
+        android.util.Log.w(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
     public static void e(String prefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.e(prefix, tr, format, args);
+        android.util.Log.e(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args), tr);
     }
 
     public static void e(Object objectPrefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.e(objectPrefix, tr, format, args);
+        android.util.Log.e(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args), tr);
     }
 
     public static void wtf(String prefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.wtf(prefix, tr, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args), tr);
     }
 
     public static void wtf(Object objectPrefix, Throwable tr, String format, Object... args) {
-        android.telecom.Log.wtf(objectPrefix, tr, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args), tr);
     }
 
     public static void wtf(String prefix, String format, Object... args) {
-        android.telecom.Log.wtf(prefix, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(prefix + ": " + format, args));
     }
 
     public static void wtf(Object objectPrefix, String format, Object... args) {
-        android.telecom.Log.wtf(objectPrefix, format, args);
+        android.util.Log.wtf(TAG, (args == null || args.length == 0) ? format :
+                String.format(getPrefixFromObject(objectPrefix) + ": " + format, args));
     }
 
-    public static String pii(Object pii) {
-        return android.telecom.Log.pii(pii);
+    private static String getPrefixFromObject(Object obj) {
+        return obj == null ? "<null>" : obj.getClass().getSimpleName();
     }
 }
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index a2ced9e..a917f3d 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -25,6 +25,7 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import com.android.telephony.Rlog;
 import android.text.TextUtils;
 
 import com.android.internal.telephony.Call;
@@ -40,8 +41,6 @@
 import com.android.phone.NumberVerificationManager;
 import com.android.phone.PhoneUtils;
 
-import com.google.common.base.Preconditions;
-
 import java.util.Objects;
 
 /**
@@ -49,6 +48,8 @@
  * occurence. One instance of these exists for each of the telephony-based call services.
  */
 final class PstnIncomingCallNotifier {
+    private static final String LOG_TAG = "PstnIncomingCallNotifier";
+
     /** New ringing connection event code. */
     private static final int EVENT_NEW_RINGING_CONNECTION = 100;
     private static final int EVENT_CDMA_CALL_WAITING = 101;
@@ -93,7 +94,9 @@
      * @param phone The phone object for listening to incoming calls.
      */
     PstnIncomingCallNotifier(Phone phone) {
-        Preconditions.checkNotNull(phone);
+        if (phone == null) {
+            throw new NullPointerException();
+        }
 
         mPhone = phone;
 
@@ -181,7 +184,7 @@
                     // Presentation of the number is allowed, so we ensure the number matches the
                     // one in the call waiting information.
                     Log.i(this, "handleCdmaCallWaiting: inform telecom of waiting call; "
-                            + "number = %s", Log.pii(number));
+                            + "number = %s", Rlog.pii(LOG_TAG, number));
                     sendIncomingCallIntent(connection);
                 } else {
                     Log.w(this, "handleCdmaCallWaiting: presentation or number do not match, not"
@@ -248,7 +251,8 @@
                     // connection already disconnected. Do nothing
                 }
             } else {
-                TelecomManager.from(mPhone.getContext()).addNewUnknownCall(handle, extras);
+                TelecomManager tm = mPhone.getContext().getSystemService(TelecomManager.class);
+                tm.addNewUnknownCall(handle, extras);
             }
         } else {
             Log.i(this, "swapped an old connection, new one is: %s", connection);
@@ -274,7 +278,12 @@
             if (((ImsPhoneConnection) connection).isRttEnabledForCall()) {
                 extras.putBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, true);
             }
+            if (((ImsPhoneConnection) connection).isIncomingCallAutoRejected()) {
+                extras.putString(TelecomManager.EXTRA_CALL_DISCONNECT_MESSAGE,
+                        "Call Dropped by lower layers");
+            }
         }
+
         PhoneAccountHandle handle = findCorrectPhoneAccountHandle();
         if (handle == null) {
             try {
@@ -283,7 +292,12 @@
                 // connection already disconnected. Do nothing
             }
         } else {
-            TelecomManager.from(mPhone.getContext()).addNewIncomingCall(handle, extras);
+            TelecomManager tm = mPhone.getContext().getSystemService(TelecomManager.class);
+            if (connection.isMultiparty()) {
+                tm.addNewIncomingConference(handle, extras);
+            } else {
+                tm.addNewIncomingCall(handle, extras);
+            }
         }
     }
 
diff --git a/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java b/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
index b9cbf6e..4038dd1 100644
--- a/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
+++ b/src/com/android/services/telephony/PstnPhoneCapabilitiesNotifier.java
@@ -21,7 +21,6 @@
 import android.os.Message;
 
 import com.android.internal.telephony.Phone;
-import com.android.internal.util.Preconditions;
 
 /**
  * Listens to phone's capabilities changed event and notifies Telecomm. One instance of these exists
@@ -55,7 +54,9 @@
 
     /*package*/
     PstnPhoneCapabilitiesNotifier(Phone phone, Listener listener) {
-        Preconditions.checkNotNull(phone);
+        if (phone == null) {
+            throw new NullPointerException();
+        }
 
         mPhone = phone;
         mListener = listener;
diff --git a/src/com/android/services/telephony/RadioOnHelper.java b/src/com/android/services/telephony/RadioOnHelper.java
index 288c72c..25ac220 100644
--- a/src/com/android/services/telephony/RadioOnHelper.java
+++ b/src/com/android/services/telephony/RadioOnHelper.java
@@ -49,13 +49,19 @@
     }
 
     private void setupListeners() {
-        if (mListeners != null) {
-            return;
+        if (mListeners == null) {
+            mListeners = new ArrayList<>(2);
         }
-        mListeners = new ArrayList<>(2);
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+        int activeModems = TelephonyManager.from(mContext).getActiveModemCount();
+        // Add new listeners if active modem count increased.
+        while (mListeners.size() < activeModems) {
             mListeners.add(new RadioOnStateListener());
         }
+        // Clean up listeners if active modem count decreased.
+        while (mListeners.size() > activeModems) {
+            mListeners.get(mListeners.size() - 1).cleanup();
+            mListeners.remove(mListeners.size() - 1);
+        }
     }
     /**
      * Starts the "turn on radio" sequence. This is the (single) external API of the
@@ -71,28 +77,30 @@
      * RadioOnHelper's handler (thus ensuring that the rest of the sequence is entirely
      * serialized, and runs on the main looper.)
      */
-    public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback) {
+    public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback,
+            boolean forEmergencyCall, Phone phoneForEmergencyCall) {
         setupListeners();
         mCallback = callback;
         mInProgressListeners.clear();
         mIsRadioOnCallingEnabled = false;
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+        for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount(); i++) {
             Phone phone = PhoneFactory.getPhone(i);
             if (phone == null) {
                 continue;
             }
 
             mInProgressListeners.add(mListeners.get(i));
-            mListeners.get(i).waitForRadioOn(phone, this);
+            mListeners.get(i).waitForRadioOn(phone, this, forEmergencyCall,
+                    forEmergencyCall && phone == phoneForEmergencyCall);
         }
 
-        powerOnRadio();
+        powerOnRadio(forEmergencyCall, phoneForEmergencyCall);
     }
     /**
      * Attempt to power on the radio (i.e. take the device out of airplane mode). We'll eventually
      * get an onServiceStateChanged() callback when the radio successfully comes up.
      */
-    private void powerOnRadio() {
+    private void powerOnRadio(boolean forEmergencyCall, Phone phoneForEmergencyCall) {
 
         // If airplane mode is on, we turn it off the same way that the Settings activity turns it
         // off.
@@ -104,6 +112,11 @@
             Settings.Global.putInt(mContext.getContentResolver(),
                     Settings.Global.AIRPLANE_MODE_ON, 0);
 
+            for (Phone phone : PhoneFactory.getPhones()) {
+                Log.d(this, "powerOnRadio, enabling Radio");
+                phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall, false);
+            }
+
             // Post the broadcast intend for change in airplane mode
             // TODO: We really should not be in charge of sending this broadcast.
             // If changing the setting is sufficient to trigger all of the rest of the logic,
diff --git a/src/com/android/services/telephony/RadioOnStateListener.java b/src/com/android/services/telephony/RadioOnStateListener.java
index 729f6a9..93e1e3c 100644
--- a/src/com/android/services/telephony/RadioOnStateListener.java
+++ b/src/com/android/services/telephony/RadioOnStateListener.java
@@ -56,6 +56,9 @@
     @VisibleForTesting
     public static final int MSG_SERVICE_STATE_CHANGED = 2;
     private static final int MSG_RETRY_TIMEOUT = 3;
+    @VisibleForTesting
+    public static final int MSG_RADIO_ON = 4;
+    public static final int MSG_RADIO_OFF_OR_NOT_AVAILABLE = 5;
 
     private final Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -67,7 +70,10 @@
                         Phone phone = (Phone) args.arg1;
                         RadioOnStateListener.Callback callback =
                                 (RadioOnStateListener.Callback) args.arg2;
-                        startSequenceInternal(phone, callback);
+                        boolean forEmergencyCall = (boolean) args.arg3;
+                        boolean isSelectedPhoneForEmergencyCall = (boolean) args.arg4;
+                        startSequenceInternal(phone, callback, forEmergencyCall,
+                                isSelectedPhoneForEmergencyCall);
                     } finally {
                         args.recycle();
                     }
@@ -75,6 +81,12 @@
                 case MSG_SERVICE_STATE_CHANGED:
                     onServiceStateChanged((ServiceState) ((AsyncResult) msg.obj).result);
                     break;
+                case MSG_RADIO_ON:
+                    onRadioOn();
+                    break;
+                case MSG_RADIO_OFF_OR_NOT_AVAILABLE:
+                    registerForRadioOn();
+                    break;
                 case MSG_RETRY_TIMEOUT:
                     onRetryTimeout();
                     break;
@@ -88,6 +100,10 @@
 
     private Callback mCallback;  // The callback to notify upon completion.
     private Phone mPhone;  // The phone that will attempt to place the call.
+    private boolean mForEmergencyCall; // Whether radio is being turned on for emergency call.
+    // Whether this phone is selected to place emergency call. Can be true only if
+    // mForEmergencyCall is true.
+    private boolean mSelectedPhoneForEmergencyCall;
     private int mNumRetriesSoFar;
 
     /**
@@ -104,7 +120,8 @@
      * RadioOnStateListener's handler (thus ensuring that the rest of the sequence is entirely
      * serialized, and runs only on the handler thread.)
      */
-    public void waitForRadioOn(Phone phone, Callback callback) {
+    public void waitForRadioOn(Phone phone, Callback callback,
+            boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall) {
         Log.d(this, "waitForRadioOn: Phone " + phone.getPhoneId());
 
         if (mPhone != null) {
@@ -115,6 +132,8 @@
         SomeArgs args = SomeArgs.obtain();
         args.arg1 = phone;
         args.arg2 = callback;
+        args.arg3 = forEmergencyCall;
+        args.arg4 = isSelectedPhoneForEmergencyCall;
         mHandler.obtainMessage(MSG_START_SEQUENCE, args).sendToTarget();
     }
 
@@ -123,7 +142,8 @@
      *
      * @see #waitForRadioOn
      */
-    private void startSequenceInternal(Phone phone, Callback callback) {
+    private void startSequenceInternal(Phone phone, Callback callback,
+            boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall) {
         Log.d(this, "startSequenceInternal: Phone " + phone.getPhoneId());
 
         // First of all, clean up any state left over from a prior RadioOn call sequence. This
@@ -133,8 +153,13 @@
 
         mPhone = phone;
         mCallback = callback;
+        mForEmergencyCall = forEmergencyCall;
+        mSelectedPhoneForEmergencyCall = isSelectedPhoneForEmergencyCall;
 
         registerForServiceStateChanged();
+        // Register for RADIO_OFF to handle cases where emergency call is dialed before
+        // we receive UNSOL_RESPONSE_RADIO_STATE_CHANGED with RADIO_OFF.
+        registerForRadioOff();
         // Next step: when the SERVICE_STATE_CHANGED event comes in, we'll retry the call; see
         // onServiceStateChanged(). But also, just in case, start a timer to make sure we'll retry
         // the call even if the SERVICE_STATE_CHANGED event never comes in for some reason.
@@ -147,6 +172,7 @@
      * call with {@link Callback#isOkToCall}
      */
     private void onServiceStateChanged(ServiceState state) {
+        if (mPhone == null) return;
         Log.d(this, "onServiceStateChanged(), new state = %s, Phone = %s", state,
                 mPhone.getPhoneId());
 
@@ -169,6 +195,18 @@
         }
     }
 
+    private void onRadioOn() {
+        if (mPhone == null) return;
+        ServiceState state =  mPhone.getServiceState();
+        Log.d(this, "onRadioOn, state = %s, Phone = %s", state,
+                mPhone.getPhoneId());
+        if (isOkToCall(state.getState())) {
+            onComplete(true);
+            cleanup();
+        } else {
+            Log.d(this, "onRadioOn: not ready to call yet, keep waiting.");
+        }
+    }
     /**
      * Callback to see if it is okay to call yet, given the current conditions.
      */
@@ -180,6 +218,7 @@
      * Handles the retry timer expiring.
      */
     private void onRetryTimeout() {
+        if (mPhone == null) return;
         int serviceState = mPhone.getServiceState().getState();
         Log.d(this, "onRetryTimeout():  phone state = %s, service state = %d, retries = %d.",
                 mPhone.getState(), serviceState, mNumRetriesSoFar);
@@ -208,7 +247,8 @@
                 cleanup();
             } else {
                 Log.d(this, "Trying (again) to turn on the radio.");
-                mPhone.setRadioPower(true);
+                mPhone.setRadioPower(true, mForEmergencyCall, mSelectedPhoneForEmergencyCall,
+                        false);
                 startRetryTimer();
             }
         }
@@ -231,7 +271,7 @@
      * Note we don't call this method simply after a successful call to placeCall(), since it's
      * still possible the call will disconnect very quickly with an OUT_OF_SERVICE error.
      */
-    private void cleanup() {
+    public void cleanup() {
         Log.d(this, "cleanup()");
 
         // This will send a failure call back if callback has yet to be invoked.  If the callback
@@ -239,6 +279,8 @@
         onComplete(false);
 
         unregisterForServiceStateChanged();
+        unregisterForRadioOff();
+        unregisterForRadioOn();
         cancelRetryTimer();
 
         // Used for unregisterForServiceStateChanged() so we null it out here instead.
@@ -271,6 +313,31 @@
         mHandler.removeMessages(MSG_SERVICE_STATE_CHANGED);  // Clean up any pending messages too
     }
 
+    private void registerForRadioOff() {
+        mPhone.mCi.registerForOffOrNotAvailable(mHandler, MSG_RADIO_OFF_OR_NOT_AVAILABLE, null);
+    }
+
+    private void unregisterForRadioOff() {
+        // This method is safe to call even if we haven't set mPhone yet.
+        if (mPhone != null) {
+            mPhone.mCi.unregisterForOffOrNotAvailable(mHandler);  // Safe even if unnecessary
+        }
+        mHandler.removeMessages(MSG_RADIO_OFF_OR_NOT_AVAILABLE);  // Clean up any pending messages
+    }
+
+    private void registerForRadioOn() {
+        unregisterForRadioOff();
+        mPhone.mCi.registerForOn(mHandler, MSG_RADIO_ON, null);
+    }
+
+    private void unregisterForRadioOn() {
+        // This method is safe to call even if we haven't set mPhone yet.
+        if (mPhone != null) {
+            mPhone.mCi.unregisterForOn(mHandler);  // Safe even if unnecessary
+        }
+        mHandler.removeMessages(MSG_RADIO_ON);  // Clean up any pending messages too
+    }
+
     private void onComplete(boolean isRadioReady) {
         if (mCallback != null) {
             Callback tempCallback = mCallback;
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 0b7f3c0..3b8f4fd 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -32,11 +32,12 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.HandlerThread;
 import android.os.Looper;
 import android.os.PersistableBundle;
 import android.os.UserHandle;
-import android.os.UserManager;
 import android.provider.Settings;
+import android.provider.Telephony;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -49,22 +50,28 @@
 import android.telephony.TelephonyManager;
 import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsMmTelManager;
+import android.telephony.ims.ImsRcsManager;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
 import android.telephony.ims.feature.MmTelFeature;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
 import android.text.TextUtils;
 
 import com.android.ims.ImsManager;
+import com.android.internal.telephony.ExponentialBackoff;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
 import com.android.internal.telephony.SubscriptionController;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
+import com.android.telephony.Rlog;
 
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
+import java.util.function.Predicate;
 
 /**
  * Owns all data we have registered with Telecom including handling dynamic addition and
@@ -72,12 +79,33 @@
  */
 public class TelecomAccountRegistry {
     private static final boolean DBG = false; /* STOP SHIP if true */
+    private static final String LOG_TAG = "TelecomAccountRegistry";
 
     // This icon is the one that is used when the Slot ID that we have for a particular SIM
     // is not supported, i.e. SubscriptionManager.INVALID_SLOT_ID or the 5th SIM in a phone.
     private final static int DEFAULT_SIM_ICON =  R.drawable.ic_multi_sim;
     private final static String GROUP_PREFIX = "group_";
 
+    private static final int REGISTER_START_DELAY_MS = 1 * 1000; // 1 second
+    private static final int REGISTER_MAXIMUM_DELAY_MS = 60 * 1000; // 1 minute
+
+    /**
+     * Indicates the {@link SubscriptionManager.OnSubscriptionsChangedListener} has not yet been
+     * registered.
+     */
+    private static final int LISTENER_STATE_UNREGISTERED = 0;
+
+    /**
+     * Indicates the first {@link SubscriptionManager.OnSubscriptionsChangedListener} registration
+     * attempt failed and we are performing backoff registration.
+     */
+    private static final int LISTENER_STATE_PERFORMING_BACKOFF = 2;
+
+    /**
+     * Indicates the {@link SubscriptionManager.OnSubscriptionsChangedListener} has been registered.
+     */
+    private static final int LISTENER_STATE_REGISTERED = 3;
+
     final class AccountEntry implements PstnPhoneCapabilitiesNotifier.Listener {
         private final Phone mPhone;
         private PhoneAccount mAccount;
@@ -85,9 +113,11 @@
         private final PstnPhoneCapabilitiesNotifier mPhoneCapabilitiesNotifier;
         private boolean mIsEmergency;
         private boolean mIsRttCapable;
+        private boolean mIsAdhocConfCapable;
         private boolean mIsEmergencyPreferred;
         private MmTelFeature.MmTelCapabilities mMmTelCapabilities;
         private ImsMmTelManager.CapabilityCallback mMmtelCapabilityCallback;
+        private RegistrationManager.RegistrationCallback mImsRegistrationCallback;
         private ImsMmTelManager mMmTelManager;
         private final boolean mIsDummy;
         private boolean mIsVideoCapable;
@@ -105,6 +135,7 @@
             mPhone = phone;
             mIsEmergency = isEmergency;
             mIsDummy = isDummy;
+            mIsAdhocConfCapable = mPhone.isImsRegistered();
             mAccount = registerPstnPhoneAccount(isEmergency, isDummy);
             Log.i(this, "Registered phoneAccount: %s with handle: %s",
                     mAccount, mAccount.getAccountHandle());
@@ -137,15 +168,38 @@
                     updateRttCapability();
                 }
             };
-
             registerMmTelCapabilityCallback();
+
+            mImsRegistrationCallback = new RegistrationManager.RegistrationCallback() {
+                @Override
+                public void onRegistered(int imsRadioTech) {
+                    updateAdhocConfCapability(true);
+                }
+
+                @Override
+                public void onRegistering(int imsRadioTech) {
+                    updateAdhocConfCapability(false);
+                }
+
+                @Override
+                public void onUnregistered(ImsReasonInfo imsReasonInfo) {
+                    updateAdhocConfCapability(false);
+                }
+            };
+            registerImsRegistrationCallback();
         }
 
         void teardown() {
             mIncomingCallNotifier.teardown();
             mPhoneCapabilitiesNotifier.teardown();
-            if (mMmTelManager != null && mMmtelCapabilityCallback != null) {
-                mMmTelManager.unregisterMmTelCapabilityCallback(mMmtelCapabilityCallback);
+            if (mMmTelManager != null) {
+                if (mMmtelCapabilityCallback != null) {
+                    mMmTelManager.unregisterMmTelCapabilityCallback(mMmtelCapabilityCallback);
+                }
+
+                if (mImsRegistrationCallback != null) {
+                    mMmTelManager.unregisterImsRegistrationCallback(mImsRegistrationCallback);
+                }
             }
         }
 
@@ -170,6 +224,25 @@
             }
         }
 
+        private void registerImsRegistrationCallback() {
+            if (mMmTelManager == null || mImsRegistrationCallback == null) {
+                return;
+            }
+
+            try {
+                mMmTelManager.registerImsRegistrationCallback(mContext.getMainExecutor(),
+                        mImsRegistrationCallback);
+            } catch (ImsException e) {
+                Log.w(this, "registerImsRegistrationCallback: registration failed, no ImsService"
+                        + " available. Exception: " + e.getMessage());
+                return;
+            } catch (IllegalArgumentException e) {
+                Log.w(this, "registerImsRegistrationCallback: registration failed, invalid"
+                        + " subscription, Exception" + e.getMessage());
+                return;
+            }
+        }
+
         /**
          * Trigger re-registration of this account.
          */
@@ -225,6 +298,7 @@
             // slotId from the subId or the phoneId in all instances.
             SubscriptionInfo record =
                     mSubscriptionManager.getActiveSubscriptionInfo(subId);
+            TelephonyManager tm = mTelephonyManager.createForSubscriptionId(subId);
 
             if (isEmergency) {
                 label = mContext.getResources().getString(R.string.sim_label_emergency_calls);
@@ -233,7 +307,7 @@
             } else if (mTelephonyManager.getPhoneCount() == 1) {
                 // For single-SIM devices, we show the label and description as whatever the name of
                 // the network is.
-                description = label = mTelephonyManager.getNetworkOperatorName();
+                description = label = tm.getNetworkOperatorName();
             } else {
                 CharSequence subDisplayName = null;
 
@@ -320,6 +394,12 @@
                 extras.putAll(getPhoneAccountExtras());
             }
 
+            if (mIsAdhocConfCapable && isCarrierAdhocConferenceCallSupported()) {
+                capabilities |= PhoneAccount.CAPABILITY_ADHOC_CONFERENCE_CALLING;
+            } else {
+                capabilities &= ~PhoneAccount.CAPABILITY_ADHOC_CONFERENCE_CALLING;
+            }
+
             final boolean isHandoverFromSupported = mContext.getResources().getBoolean(
                     R.bool.config_support_handover_from);
             if (isHandoverFromSupported && !isEmergency) {
@@ -390,7 +470,7 @@
             }
             if(isMergedSim) {
                 groupId = GROUP_PREFIX + line1Number;
-                Log.i(this, "Adding Merged Account with group: " + Log.pii(groupId));
+                Log.i(this, "Adding Merged Account with group: " + Rlog.pii(LOG_TAG, groupId));
             }
 
             PhoneAccount account = PhoneAccount.builder(phoneAccountHandle, label)
@@ -485,16 +565,31 @@
         }
 
         /**
-         * Determines from carrier configuration whether RCS presence indication for video calls is
-         * supported.
+         * Determines from carrier configuration and user setting whether RCS presence indication
+         * for video calls is supported.
          *
          * @return {@code true} if RCS presence indication for video calls is supported.
          */
         private boolean isCarrierVideoPresenceSupported() {
             PersistableBundle b =
                     PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
-            return b != null &&
-                    b.getBoolean(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL);
+            boolean carrierConfigEnabled = b != null
+                    && b.getBoolean(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL);
+            return carrierConfigEnabled && isUserContactDiscoverySettingEnabled();
+        }
+
+        /**
+         * @return true if the user has enabled contact discovery for the subscription associated
+         * with this account entry, false otherwise.
+         */
+        private boolean isUserContactDiscoverySettingEnabled() {
+            try {
+                ImsRcsManager manager = mImsManager.getImsRcsManager(mPhone.getSubId());
+                return manager.getUceAdapter().isUceSettingEnabled();
+            } catch (Exception e) {
+                Log.w(LOG_TAG, "isUserContactDiscoverySettingEnabled caught exception: " + e);
+                return false;
+            }
         }
 
         /**
@@ -510,6 +605,19 @@
         }
 
         /**
+         * Determines from carrier config whether adhoc conference calling is supported.
+         *
+         * @return {@code true} if adhoc conference calling is supported, {@code false} otherwise.
+         */
+        private boolean isCarrierAdhocConferenceCallSupported() {
+            PersistableBundle b =
+                    PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+            return b != null &&
+                    b.getBoolean(CarrierConfigManager.KEY_SUPPORT_ADHOC_CONFERENCE_CALLS_BOOL);
+        }
+
+
+        /**
          * Determines from carrier config whether merging calls is supported.
          *
          * @return {@code true} if merging calls is supported, {@code false} otherwise.
@@ -663,6 +771,45 @@
             }
         }
 
+        public void updateAdhocConfCapability(boolean isAdhocConfCapable) {
+            synchronized (mAccountsLock) {
+                if (!mAccounts.contains(this)) {
+                    // Account has already been torn down, don't try to register it again.
+                    // This handles the case where teardown has already happened, and we got a Ims
+                    // registartion update that lost the race for the mAccountsLock.  In such a
+                    // scenario by the time we get here, the original phone account could have been
+                    // torn down.
+                    return;
+                }
+
+                if (isAdhocConfCapable !=  mIsAdhocConfCapable) {
+                    Log.i(this, "updateAdhocConfCapability - changed, new value: "
+                            + isAdhocConfCapable);
+                    mIsAdhocConfCapable = isAdhocConfCapable;
+                    mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+                }
+            }
+        }
+
+        public void updateVideoPresenceCapability() {
+            synchronized (mAccountsLock) {
+                if (!mAccounts.contains(this)) {
+                    // Account has already been torn down, don't try to register it again.
+                    // This handles the case where teardown has already happened, and we got a Ims
+                    // registration update that lost the race for the mAccountsLock.  In such a
+                    // scenario by the time we get here, the original phone account could have been
+                    // torn down.
+                    return;
+                }
+                boolean isVideoPresenceSupported = isCarrierVideoPresenceSupported();
+                if (mIsVideoPresenceSupported != isVideoPresenceSupported) {
+                    Log.i(this, "updateVideoPresenceCapability for subId=" + mPhone.getSubId()
+                            + ", new value= " + isVideoPresenceSupported);
+                    mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+                }
+            }
+        }
+
         public void updateRttCapability() {
             boolean isRttEnabled = isRttCurrentlySupported();
             if (isRttEnabled != mIsRttCapable) {
@@ -685,14 +832,51 @@
          * device.
          */
         private boolean isRttCurrentlySupported() {
+            // First check the emergency case -- if it's supported and turned on,
+            // we want to present RTT as available on the emergency-only phone account
+            if (mIsEmergency) {
+                // First check whether the device supports it
+                boolean devicesSupportsRtt =
+                        mContext.getResources().getBoolean(R.bool.config_support_rtt);
+                boolean deviceSupportsEmergencyRtt = mContext.getResources().getBoolean(
+                        R.bool.config_support_simless_emergency_rtt);
+                if (!(deviceSupportsEmergencyRtt && devicesSupportsRtt)) {
+                    Log.i(this, "isRttCurrentlySupported -- emergency acct and no device support");
+                    return false;
+                }
+                // Next check whether we're in or near a country that supports it
+                String country =
+                        mPhone.getServiceStateTracker().getLocaleTracker()
+                                .getCurrentCountry().toLowerCase();
+                String[] supportedCountries = mContext.getResources().getStringArray(
+                        R.array.config_simless_emergency_rtt_supported_countries);
+                if (supportedCountries == null || Arrays.stream(supportedCountries).noneMatch(
+                        Predicate.isEqual(country))) {
+                    Log.i(this, "isRttCurrentlySupported -- emergency acct and"
+                            + " not supported in this country: " + country);
+                    return false;
+                }
+                
+                return true;
+            }
+
             boolean hasVoiceAvailability = isImsVoiceAvailable();
 
             boolean isRttSupported = PhoneGlobals.getInstance().phoneMgr
                     .isRttEnabled(mPhone.getSubId());
 
             boolean isRoaming = mTelephonyManager.isNetworkRoaming(mPhone.getSubId());
+            boolean isOnWfc = mPhone.getImsRegistrationTech()
+                    == ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
 
-            return hasVoiceAvailability && isRttSupported && !isRoaming;
+            boolean shouldDisableBecauseRoamingOffWfc = isRoaming && !isOnWfc;
+            Log.i(this, "isRttCurrentlySupported -- regular acct,"
+                    + " hasVoiceAvailability: " + hasVoiceAvailability + "\n"
+                    + " isRttSupported: " + isRttSupported + "\n"
+                    + " isRoaming: " + isRoaming + "\n"
+                    + " isOnWfc: " + isOnWfc + "\n");
+
+            return hasVoiceAvailability && isRttSupported && !shouldDisableBecauseRoamingOffWfc;
         }
 
         /**
@@ -789,23 +973,49 @@
             new OnSubscriptionsChangedListener() {
         @Override
         public void onSubscriptionsChanged() {
-            // Any time the SubscriptionInfo changes...rerun the setup
-            Log.i(this, "onSubscriptionsChanged - update accounts");
+            if (mSubscriptionListenerState != LISTENER_STATE_REGISTERED) {
+                mRegisterSubscriptionListenerBackoff.stop();
+                mHandlerThread.quitSafely();
+            }
+            mSubscriptionListenerState = LISTENER_STATE_REGISTERED;
+
+            // Any time the SubscriptionInfo changes rerun the setup
+            Log.i(this, "TelecomAccountRegistry: onSubscriptionsChanged - update accounts");
             tearDownAccounts();
             setupAccounts();
         }
+
+        @Override
+        public void onAddListenerFailed() {
+            // Woe!  Failed to add the listener!
+            Log.w(this, "TelecomAccountRegistry: onAddListenerFailed - failed to register "
+                    + "OnSubscriptionsChangedListener");
+
+            // Even though registering the listener failed, we will still try to setup the phone
+            // accounts now; the phone instances should already be present and ready, so even if
+            // telephony registry is poking along we can still try to setup the phone account.
+            tearDownAccounts();
+            setupAccounts();
+
+            if (mSubscriptionListenerState == LISTENER_STATE_UNREGISTERED) {
+                // Initial registration attempt failed; start exponential backoff.
+                mSubscriptionListenerState = LISTENER_STATE_PERFORMING_BACKOFF;
+                mRegisterSubscriptionListenerBackoff.start();
+            } else {
+                // We're already doing exponential backoff and a registration failed.
+                mRegisterSubscriptionListenerBackoff.notifyFailed();
+            }
+        }
     };
 
     private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) {
-                Log.i(this, "User changed, re-registering phone accounts.");
+                Log.i(this, "TelecomAccountRegistry: User changed, re-registering phone accounts.");
 
-                int userHandleId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
-                UserHandle currentUserHandle = new UserHandle(userHandleId);
-                mIsPrimaryUser = UserManager.get(mContext).getPrimaryUser().getUserHandle()
-                        .equals(currentUserHandle);
+                UserHandle currentUser = intent.getParcelableExtra(Intent.EXTRA_USER);
+                mIsPrimaryUser = currentUser == null ? true : currentUser.isSystem();
 
                 // Any time the user changes, re-register the accounts.
                 tearDownAccounts();
@@ -820,6 +1030,15 @@
         }
     };
 
+    private BroadcastReceiver mLocaleChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.i(this, "Locale change; re-registering phone accounts.");
+            tearDownAccounts();
+            setupAccounts();
+        }
+    };
+
     private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
         @Override
         public void onServiceStateChanged(ServiceState serviceState) {
@@ -851,23 +1070,47 @@
     private static TelecomAccountRegistry sInstance;
     private final Context mContext;
     private final TelecomManager mTelecomManager;
+    private final android.telephony.ims.ImsManager mImsManager;
     private final TelephonyManager mTelephonyManager;
     private final SubscriptionManager mSubscriptionManager;
     private List<AccountEntry> mAccounts = new LinkedList<AccountEntry>();
     private final Object mAccountsLock = new Object();
+    private int mSubscriptionListenerState = LISTENER_STATE_UNREGISTERED;
     private int mServiceState = ServiceState.STATE_POWER_OFF;
     private int mActiveDataSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private boolean mIsPrimaryUser = true;
+    private ExponentialBackoff mRegisterSubscriptionListenerBackoff;
+    private final HandlerThread mHandlerThread = new HandlerThread("TelecomAccountRegistry");
 
     // TODO: Remove back-pointer from app singleton to Service, since this is not a preferred
     // pattern; redesign. This was added to fix a late release bug.
     private TelephonyConnectionService mTelephonyConnectionService;
 
+    // Used to register subscription changed listener when initial attempts fail.
+    private Runnable mRegisterOnSubscriptionsChangedListenerRunnable = new Runnable() {
+        @Override
+        public void run() {
+            if (mSubscriptionListenerState != LISTENER_STATE_REGISTERED) {
+                Log.i(this, "TelecomAccountRegistry: performing delayed register.");
+                SubscriptionManager.from(mContext).addOnSubscriptionsChangedListener(
+                        mOnSubscriptionsChangedListener);
+            }
+        }
+    };
+
     TelecomAccountRegistry(Context context) {
         mContext = context;
-        mTelecomManager = TelecomManager.from(context);
+        mTelecomManager = context.getSystemService(TelecomManager.class);
+        mImsManager = context.getSystemService(android.telephony.ims.ImsManager.class);
         mTelephonyManager = TelephonyManager.from(context);
         mSubscriptionManager = SubscriptionManager.from(context);
+        mHandlerThread.start();
+        mRegisterSubscriptionListenerBackoff = new ExponentialBackoff(
+                REGISTER_START_DELAY_MS,
+                REGISTER_MAXIMUM_DELAY_MS,
+                2, /* multiplier */
+                mHandlerThread.getLooper(),
+                mRegisterOnSubscriptionsChangedListenerRunnable);
     }
 
     /**
@@ -1039,6 +1282,21 @@
         return null;
     }
 
+    public void refreshAdhocConference(boolean isEnableAdhocConf) {
+        synchronized (mAccountsLock) {
+            Log.v(this, "refreshAdhocConference isEnable = " + isEnableAdhocConf);
+            for (AccountEntry entry : mAccounts) {
+                boolean hasAdhocConfCapability = entry.mAccount.hasCapabilities(
+                        PhoneAccount.CAPABILITY_ADHOC_CONFERENCE_CALLING);
+                if (!isEnableAdhocConf && hasAdhocConfCapability) {
+                    entry.updateAdhocConfCapability(isEnableAdhocConf);
+                } else if (isEnableAdhocConf && !hasAdhocConfCapability) {
+                    entry.updateAdhocConfCapability(entry.mPhone.isImsRegistered());
+                }
+            }
+        }
+    }
+
     /**
      * Returns whethere a the subscription associated with a {@link PhoneAccountHandle} is using a
      * sim call manager.
@@ -1068,6 +1326,7 @@
 
         // Register for SubscriptionInfo list changes which is guaranteed
         // to invoke onSubscriptionsChanged the first time.
+        Log.i(this, "TelecomAccountRegistry: setupOnBoot - register subscription listener");
         SubscriptionManager.from(mContext).addOnSubscriptionsChangedListener(
                 mOnSubscriptionsChangedListener);
 
@@ -1083,6 +1342,16 @@
         filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
         mContext.registerReceiver(mReceiver, filter);
 
+        //We also need to listen for locale changes
+        //(e.g. system language changed -> SIM card name changed)
+        IntentFilter localeChangeFilter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
+        localeChangeFilter.addAction(TelephonyManager.ACTION_NETWORK_COUNTRY_CHANGED);
+        mContext.registerReceiver(mLocaleChangeReceiver, localeChangeFilter);
+
+        registerContentObservers();
+    }
+
+    private void registerContentObservers() {
         // Listen to the RTT system setting so that we update it when the user flips it.
         ContentObserver rttUiSettingObserver = new ContentObserver(
                 new Handler(Looper.getMainLooper())) {
@@ -1099,6 +1368,23 @@
         Uri rttSettingUri = Settings.Secure.getUriFor(Settings.Secure.RTT_CALLING_MODE);
         mContext.getContentResolver().registerContentObserver(
                 rttSettingUri, false, rttUiSettingObserver);
+
+        // Listen to the changes to the user's Contacts Discovery Setting.
+        ContentObserver contactDiscoveryObserver = new ContentObserver(
+                new Handler(Looper.getMainLooper())) {
+            @Override
+            public void onChange(boolean selfChange) {
+                synchronized (mAccountsLock) {
+                    for (AccountEntry account : mAccounts) {
+                        account.updateVideoPresenceCapability();
+                    }
+                }
+            }
+        };
+        Uri contactDiscUri = Uri.withAppendedPath(Telephony.SimInfo.CONTENT_URI,
+                Telephony.SimInfo.COLUMN_IMS_RCS_UCE_ENABLED);
+        mContext.getContentResolver().registerContentObserver(
+                contactDiscUri, true /*notifyForDescendants*/, contactDiscoveryObserver);
     }
 
     /**
@@ -1132,7 +1418,7 @@
                 R.bool.config_emergency_account_emergency_calls_only);
         List<PhoneAccountHandle> accountHandles = emergencyCallsOnlyEmergencyAccount
                 ? mTelecomManager.getAllPhoneAccountHandles()
-                : mTelecomManager.getCallCapablePhoneAccounts(true /* includeDisabled */);
+                : mTelecomManager.getCallCapablePhoneAccounts();
 
         for (PhoneAccountHandle handle : accountHandles) {
             if (telephonyComponentName.equals(handle.getComponentName()) &&
@@ -1200,30 +1486,6 @@
 
         // Clean up any PhoneAccounts that are no longer relevant
         cleanupPhoneAccounts();
-
-        // At some point, the phone account ID was switched from the subId to the iccId.
-        // If there is a default account, check if this is the case, and upgrade the default account
-        // from using the subId to iccId if so.
-        PhoneAccountHandle defaultPhoneAccount =
-                mTelecomManager.getUserSelectedOutgoingPhoneAccount();
-        ComponentName telephonyComponentName =
-                new ComponentName(mContext, TelephonyConnectionService.class);
-
-        if (defaultPhoneAccount != null &&
-                telephonyComponentName.equals(defaultPhoneAccount.getComponentName()) &&
-                !hasAccountEntryForPhoneAccount(defaultPhoneAccount)) {
-
-            String phoneAccountId = defaultPhoneAccount.getId();
-            if (!TextUtils.isEmpty(phoneAccountId) && TextUtils.isDigitsOnly(phoneAccountId)) {
-                PhoneAccountHandle upgradedPhoneAccount =
-                        PhoneUtils.makePstnPhoneAccountHandle(
-                                PhoneGlobals.getPhone(Integer.parseInt(phoneAccountId)));
-
-                if (hasAccountEntryForPhoneAccount(upgradedPhoneAccount)) {
-                    mTelecomManager.setUserSelectedOutgoingPhoneAccount(upgradedPhoneAccount);
-                }
-            }
-        }
     }
 
     private void tearDownAccounts() {
diff --git a/src/com/android/services/telephony/TelephonyConference.java b/src/com/android/services/telephony/TelephonyConference.java
index c66d6f2..7e4693f 100644
--- a/src/com/android/services/telephony/TelephonyConference.java
+++ b/src/com/android/services/telephony/TelephonyConference.java
@@ -16,7 +16,7 @@
 
 package com.android.services.telephony;
 
-import android.telecom.Conference;
+import android.net.Uri;
 import android.telecom.Connection;
 import android.telecom.PhoneAccountHandle;
 
@@ -30,7 +30,7 @@
  * TelephonyConnection-based conference call for GSM conferences and IMS conferences (which may
  * be either GSM-based or CDMA-based).
  */
-public class TelephonyConference extends Conference implements Holdable {
+public class TelephonyConference extends TelephonyConferenceBase implements Holdable {
 
     private boolean mIsHoldable;
 
@@ -94,6 +94,22 @@
     }
 
     @Override
+    public void onAnswer(int videoState) {
+        Log.e(this, new Exception(), "Answer not supported for GSM conference call.");
+    }
+
+    @Override
+    public void onReject() {
+        Log.e(this, new Exception(), "Reject not supported for GSM conference call.");
+    }
+
+    @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        Log.e(this, new Exception(), "Adding Conference Participants not supported " +
+                " for GSM conference call.");
+    }
+
+    @Override
     public void onMerge(Connection connection) {
         try {
             Phone phone = ((TelephonyConnection) connection).getPhone();
diff --git a/src/com/android/services/telephony/TelephonyConferenceBase.java b/src/com/android/services/telephony/TelephonyConferenceBase.java
new file mode 100644
index 0000000..1c81fb9
--- /dev/null
+++ b/src/com/android/services/telephony/TelephonyConferenceBase.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony;
+
+import android.annotation.NonNull;
+import android.os.Bundle;
+import android.telecom.Conference;
+import android.telecom.Connection;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telephony.ServiceState;
+
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Base class for the various Telephony {@link Conference} implementations ({@link CdmaConference},
+ * {@link TelephonyConference}, and {@link ImsConference}).  Adds some common listener code which
+ * all of these conferences use.
+ */
+public class TelephonyConferenceBase extends Conference {
+    private static final String TAG = "TelephonyConferenceBase";
+
+    /**
+     * Listener for conference events.
+     */
+    public abstract static class TelephonyConferenceListener {
+        /**
+         * Listener called when a connection is added or removed from a conference.
+         * @param connection The connection.
+         */
+        public void onConferenceMembershipChanged(Connection connection) {}
+
+        /**
+         * Listener called when there conference call state changes.
+         * @param conference The conference.
+         * @param oldState previous state of conference call.
+         * @param newState new state of conference call.
+         */
+        public void onStateChanged(Conference conference, int oldState, int newState) {}
+
+        /**
+         * Listener called when a conference is destroyed.
+         * @param conference The conference.
+         */
+        public void onDestroyed(Conference conference) {}
+    }
+
+    private final Set<TelephonyConferenceListener> mListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<>(8, 0.9f, 1));
+
+    /**
+     * Adds a listener to this conference.
+     * @param listener The listener.
+     */
+    public void addTelephonyConferenceListener(@NonNull TelephonyConferenceListener listener) {
+        mListeners.add(listener);
+    }
+
+    /**
+     * Removes a listener from this conference.
+     * @param listener The listener.
+     */
+    public void removeTelephonyConferenceListener(@NonNull TelephonyConferenceListener listener) {
+        mListeners.remove(listener);
+    }
+
+    /**
+     * Constructs a new Conference with a mandatory {@link PhoneAccountHandle}
+     *
+     * @param phoneAccount The {@code PhoneAccountHandle} associated with the conference.
+     */
+    public TelephonyConferenceBase(PhoneAccountHandle phoneAccount) {
+        super(phoneAccount);
+    }
+
+    /**
+     * Adds a connection to this {@link Conference}.
+     * <p>
+     * Should be used in place of {@link Conference#addConnection(Connection)} to ensure
+     * {@link TelephonyConferenceListener}s are informed of the change.
+     *
+     * @param connection The connection.
+     */
+    public void addTelephonyConnection(@NonNull Connection connection) {
+        addConnection(connection);
+        notifyConferenceMembershipChanged(connection);
+    }
+
+    /**
+     * Removes a {@link Connection} from this {@link Conference}.
+     * <p>
+     * Should be used instead of {@link Conference#removeConnection(Connection)} to ensure
+     * {@link TelephonyConferenceListener}s are notified of the change.
+     *
+     * @param connection The connection.
+     */
+    public void removeTelephonyConnection(@NonNull Connection connection) {
+        removeConnection(connection);
+        notifyConferenceMembershipChanged(connection);
+    }
+
+    /**
+     * Destroys the current {@link Conference} and notifies {@link TelephonyConferenceListener}s of
+     * the change to conference membership.
+     * <p>
+     * Should be used instead of {@link Conference#destroy()} to ensure telephony listeners are
+     * notified.
+     */
+    public void destroyTelephonyConference() {
+        // Conference#removeConnection modifies the list of participants, so we need to use an
+        // iterator here to ensure all participants are removed.
+        // Technically Conference#destroy does this, but we want to notify listeners of the state
+        // change so we'll do it here first.
+        Iterator<Connection> connectionIterator = getConnections().iterator();
+        while (connectionIterator.hasNext()) {
+            removeTelephonyConnection(connectionIterator.next());
+        }
+        destroy();
+        notifyDestroyed();
+    }
+
+    /**
+     * Sets state to be on hold.
+     */
+     public final void setConferenceOnHold() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_HOLDING) {
+             return;
+         }
+         setOnHold();
+         notifyStateChanged(oldState, getState());
+     }
+
+     /**
+      * Sets state to be dialing.
+      */
+     public final void setConferenceOnDialing() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_DIALING) {
+             return;
+         }
+         setDialing();
+         notifyStateChanged(oldState, getState());
+     }
+
+     /**
+      * Sets state to be ringing.
+      */
+     public final void setConferenceOnRinging() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_RINGING) {
+             return;
+         }
+         setRinging();
+         notifyStateChanged(oldState, getState());
+     }
+
+     /**
+      * Sets state to be active.
+      */
+     public final void setConferenceOnActive() {
+         int oldState = getState();
+         if (oldState == Connection.STATE_ACTIVE) {
+             return;
+         }
+         setActive();
+         notifyStateChanged(oldState, getState());
+     }
+
+    /**
+     * Updates RIL voice radio technology used for current conference after its creation.
+     */
+    public void updateCallRadioTechAfterCreation() {
+        final Connection primaryConnection = getPrimaryConnection();
+        if (primaryConnection != null && primaryConnection instanceof TelephonyConnection) {
+            TelephonyConnection telephonyConnection = (TelephonyConnection) primaryConnection;
+            Bundle newExtras = new Bundle();
+            newExtras.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                    ServiceState.rilRadioTechnologyToNetworkType(
+                            telephonyConnection.getCallRadioTech()));
+            putExtras(newExtras);
+        } else {
+            Log.w(TAG, "No primary connection found while updateCallRadioTechAfterCreation");
+        }
+    }
+
+    /**
+     * Removes the specified capability from the set of capabilities of this {@code Conference}.
+     *
+     * @param capability The capability to remove from the set.
+     */
+    public void removeCapability(int capability) {
+        int newCapabilities = getConnectionCapabilities();
+        newCapabilities &= ~capability;
+
+        setConnectionCapabilities(newCapabilities);
+    }
+
+    /**
+     * Adds the specified capability to the set of capabilities of this {@code Conference}.
+     *
+     * @param capability The capability to add to the set.
+     */
+    public void addCapability(int capability) {
+        int newCapabilities = getConnectionCapabilities();
+        newCapabilities |= capability;
+
+        setConnectionCapabilities(newCapabilities);
+    }
+
+    /**
+     * Notifies {@link TelephonyConferenceListener}s of a connection being added or removed from
+     * the conference.
+     * @param connection The conference.
+     */
+    private void notifyConferenceMembershipChanged(@NonNull Connection connection) {
+        for (TelephonyConferenceListener listener : mListeners) {
+            listener.onConferenceMembershipChanged(connection);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConferenceListener}s of a conference being destroyed
+     */
+    private void notifyDestroyed() {
+        for (TelephonyConferenceListener listener : mListeners) {
+            listener.onDestroyed(this);
+        }
+    }
+
+    private void notifyStateChanged(int oldState, int newState) {
+        if (oldState != newState) {
+            for (TelephonyConferenceListener listener : mListeners) {
+                listener.onStateChanged(this, oldState, newState);
+            }
+        }
+    }
+}
diff --git a/src/com/android/services/telephony/TelephonyConferenceController.java b/src/com/android/services/telephony/TelephonyConferenceController.java
index e9eef46..95281b3 100644
--- a/src/com/android/services/telephony/TelephonyConferenceController.java
+++ b/src/com/android/services/telephony/TelephonyConferenceController.java
@@ -41,25 +41,26 @@
 final class TelephonyConferenceController {
     private static final int TELEPHONY_CONFERENCE_MAX_SIZE = 5;
 
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
-        @Override
-        public void onStateChanged(Connection c, int state) {
-            Log.v(this, "onStateChange triggered in Conf Controller : connection = "+ c
-                 + " state = " + state);
-            recalculate();
-        }
+    private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
+            new TelephonyConnection.TelephonyConnectionListener() {
+                @Override
+                public void onStateChanged(Connection c, int state) {
+                    Log.v(this, "onStateChange triggered in Conf Controller : connection = " + c
+                            + " state = " + state);
+                    recalculate();
+                }
 
-        /** ${inheritDoc} */
-        @Override
-        public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
-            recalculate();
-        }
+                @Override
+                public void onDisconnected(Connection c, DisconnectCause disconnectCause) {
+                    recalculate();
+                }
 
-        @Override
-        public void onDestroyed(Connection connection) {
-            remove(connection);
-        }
-    };
+                @Override
+                public void onDestroyed(Connection connection) {
+                    // Only TelephonyConnections are added.
+                    remove((TelephonyConnection) connection);
+                }
+            };
 
     /** The known connections. */
     private final List<TelephonyConnection> mTelephonyConnections = new ArrayList<>();
@@ -85,18 +86,18 @@
             return;
         }
         mTelephonyConnections.add(connection);
-        connection.addConnectionListener(mConnectionListener);
+        connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
         recalculate();
     }
 
-    void remove(Connection connection) {
+    void remove(TelephonyConnection connection) {
         if (!mTelephonyConnections.contains(connection)) {
             // Debug only since TelephonyConnectionService tries to clean up the connections tracked
             // when the original connection changes.  It does this proactively.
             Log.d(this, "remove - connection not tracked; connection=%s", connection);
             return;
         }
-        connection.removeConnectionListener(mConnectionListener);
+        connection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
         mTelephonyConnections.remove(connection);
         recalculate();
     }
@@ -219,7 +220,7 @@
             // No more connections are conferenced, destroy any existing conference.
             if (mTelephonyConference != null) {
                 Log.d(this, "with a conference to destroy!");
-                mTelephonyConference.destroy();
+                mTelephonyConference.destroyTelephonyConference();
                 mTelephonyConference = null;
             }
         } else {
@@ -229,7 +230,7 @@
                 for (Connection connection : existingConnections) {
                     if (connection instanceof TelephonyConnection &&
                             !conferencedConnections.contains(connection)) {
-                        mTelephonyConference.removeConnection(connection);
+                        mTelephonyConference.removeTelephonyConnection(connection);
                     }
                 }
                 if (allConnInService) {
@@ -237,7 +238,7 @@
                     // Add any new ones
                     for (Connection connection : conferencedConnections) {
                         if (!existingConnections.contains(connection)) {
-                            mTelephonyConference.addConnection(connection);
+                            mTelephonyConference.addTelephonyConnection(connection);
                         }
                     }
                 } else {
@@ -262,7 +263,7 @@
                     for (Connection connection : conferencedConnections) {
                         Log.d(this, "Adding a connection to a conference call: %s %s",
                                 mTelephonyConference, connection);
-                        mTelephonyConference.addConnection(connection);
+                        mTelephonyConference.addTelephonyConnection(connection);
                     }
                     mTelephonyConference.updateCallRadioTechAfterCreation();
                     mConnectionService.addConference(mTelephonyConference);
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
old mode 100644
new mode 100755
index 38672a8..bb3da0c
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -16,7 +16,10 @@
 
 package com.android.services.telephony;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.content.Context;
+import android.content.res.Resources;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
 import android.os.AsyncResult;
@@ -26,8 +29,9 @@
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.telecom.CallAudioState;
-import android.telecom.ConferenceParticipant;
+import android.telecom.Conference;
 import android.telecom.Connection;
+import android.telecom.ConnectionService;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.StatusHints;
@@ -37,12 +41,19 @@
 import android.telephony.DisconnectCause;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.ServiceState;
+import android.telephony.ServiceState.RilRadioTechnology;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsStreamMediaProfile;
 import android.text.TextUtils;
 import android.util.Pair;
 
 import com.android.ims.ImsCall;
+import com.android.ims.ImsException;
+import com.android.ims.internal.ConferenceParticipant;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.SomeArgs;
 import com.android.internal.telephony.Call;
 import com.android.internal.telephony.CallFailCause;
 import com.android.internal.telephony.CallStateException;
@@ -52,12 +63,14 @@
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.gsm.SuppServiceNotification;
 import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.internal.telephony.imsphone.ImsPhoneCall;
 import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
 import com.android.internal.telephony.imsphone.ImsPhoneConnection;
 import com.android.phone.ImsUtil;
 import com.android.phone.PhoneGlobals;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
+import com.android.telephony.Rlog;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -73,6 +86,8 @@
  * Base class for CDMA and GSM connections.
  */
 abstract class TelephonyConnection extends Connection implements Holdable {
+    private static final String LOG_TAG = "TelephonyConnection";
+
     private static final int MSG_PRECISE_CALL_STATE_CHANGED = 1;
     private static final int MSG_RINGBACK_TONE = 2;
     private static final int MSG_HANDOVER_STATE_CHANGED = 3;
@@ -98,6 +113,12 @@
     private static final int MSG_CDMA_VOICE_PRIVACY_OFF = 16;
     private static final int MSG_HANGUP = 17;
     private static final int MSG_SET_CALL_RADIO_TECH = 18;
+    private static final int MSG_ON_CONNECTION_EVENT = 19;
+    private static final int MSG_REDIAL_CONNECTION_CHANGED = 20;
+    private static final int MSG_REJECT = 21;
+
+    private List<Uri> mParticipants;
+    private boolean mIsAdhocConferenceCall;
 
     private final Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -108,15 +129,25 @@
                     updateState();
                     break;
                 case MSG_HANDOVER_STATE_CHANGED:
-                    Log.v(TelephonyConnection.this, "MSG_HANDOVER_STATE_CHANGED");
+                case MSG_REDIAL_CONNECTION_CHANGED:
+                    String what = (msg.what == MSG_HANDOVER_STATE_CHANGED)
+                            ? "MSG_HANDOVER_STATE_CHANGED" : "MSG_REDIAL_CONNECTION_CHANGED";
+                    Log.v(TelephonyConnection.this, what);
                     AsyncResult ar = (AsyncResult) msg.obj;
                     com.android.internal.telephony.Connection connection =
                          (com.android.internal.telephony.Connection) ar.result;
+                    if (connection == null) {
+                        setDisconnected(DisconnectCauseUtil
+                                .toTelecomDisconnectCause(DisconnectCause.OUT_OF_NETWORK,
+                                        "handover failure, no connection"));
+                        close();
+                        break;
+                    }
                     if (mOriginalConnection != null) {
                         if (connection != null &&
                             ((connection.getAddress() != null &&
                             mOriginalConnection.getAddress() != null &&
-                            mOriginalConnection.getAddress().contains(connection.getAddress())) ||
+                            mOriginalConnection.getAddress().equals(connection.getAddress())) ||
                             connection.getState() == mOriginalConnection.getStateBeforeHandover())) {
                             Log.d(TelephonyConnection.this,
                                     "SettingOriginalConnection " + mOriginalConnection.toString()
@@ -126,7 +157,7 @@
                         }
                     } else {
                         Log.w(TelephonyConnection.this,
-                                "MSG_HANDOVER_STATE_CHANGED: mOriginalConnection==null - invalid state (not cleaned up)");
+                                what + ": mOriginalConnection==null - invalid state (not cleaned up)");
                     }
                     break;
                 case MSG_RINGBACK_TONE:
@@ -138,7 +169,9 @@
                                 "not foreground connection, skipping");
                         return;
                     }
-                    setRingbackRequested((Boolean) ((AsyncResult) msg.obj).result);
+                    boolean ringback = (Boolean) ((AsyncResult) msg.obj).result;
+                    setRingbackRequested(ringback);
+                    notifyRingbackRequested(ringback);
                     break;
                 case MSG_DISCONNECT:
                     updateState();
@@ -171,19 +204,20 @@
 
                 case MSG_SET_VIDEO_STATE:
                     int videoState = (int) msg.obj;
-                    setVideoState(videoState);
+                    setTelephonyVideoState(videoState);
 
                     // A change to the video state of the call can influence whether or not it
                     // can be part of a conference, whether another call can be added, and
                     // whether the call should have the HD audio property set.
                     refreshConferenceSupported();
                     refreshDisableAddCall();
+                    refreshHoldSupported();
                     updateConnectionProperties();
                     break;
 
                 case MSG_SET_VIDEO_PROVIDER:
                     VideoProvider videoProvider = (VideoProvider) msg.obj;
-                    setVideoProvider(videoProvider);
+                    setTelephonyVideoProvider(videoProvider);
                     break;
 
                 case MSG_SET_AUDIO_QUALITY:
@@ -223,9 +257,9 @@
                         // If starting the hold tone, send a connection event to Telecom which will
                         // cause it to play the on hold tone.
                         if (playTone) {
-                            sendConnectionEvent(EVENT_ON_HOLD_TONE_START, null);
+                            sendTelephonyConnectionEvent(EVENT_ON_HOLD_TONE_START, null);
                         } else {
-                            sendConnectionEvent(EVENT_ON_HOLD_TONE_END, null);
+                            sendTelephonyConnectionEvent(EVENT_ON_HOLD_TONE_END, null);
                         }
                     }
                     break;
@@ -242,6 +276,10 @@
                     int cause = (int) msg.obj;
                     hangup(cause);
                     break;
+                case MSG_REJECT:
+                    int rejectReason = (int) msg.obj;
+                    reject(rejectReason);
+                    break;
 
                 case MSG_SET_CALL_RADIO_TECH:
                     int vrat = (int) msg.obj;
@@ -267,6 +305,15 @@
                         refreshDisableAddCall();
                     }
                     break;
+                case MSG_ON_CONNECTION_EVENT:
+                    SomeArgs args = (SomeArgs) msg.obj;
+                    try {
+                        sendTelephonyConnectionEvent((String) args.arg1, (Bundle) args.arg2);
+
+                    } finally {
+                        args.recycle();
+                    }
+                    break;
             }
         }
     };
@@ -280,7 +327,7 @@
                 ssn.code);
         if (ssn.notificationType == SuppServiceNotification.NOTIFICATION_TYPE_CODE_1
                 && ssn.code == SuppServiceNotification.CODE_1_CALL_FORWARDED) {
-            sendConnectionEvent(TelephonyManager.EVENT_CALL_FORWARDED, null);
+            sendTelephonyConnectionEvent(TelephonyManager.EVENT_CALL_FORWARDED, null);
         }
         sendSuppServiceNotificationEvent(ssn.notificationType, ssn.code);
     }
@@ -298,7 +345,8 @@
         extras.putInt(TelephonyManager.EXTRA_NOTIFICATION_CODE, code);
         extras.putCharSequence(TelephonyManager.EXTRA_NOTIFICATION_MESSAGE,
                 getSuppServiceMessage(type, code));
-        sendConnectionEvent(TelephonyManager.EVENT_SUPPLEMENTARY_SERVICE_NOTIFICATION, extras);
+        sendTelephonyConnectionEvent(TelephonyManager.EVENT_SUPPLEMENTARY_SERVICE_NOTIFICATION,
+                extras);
     }
 
     /**
@@ -374,12 +422,26 @@
             }
         }
         if (messageId != -1 && getPhone() != null && getPhone().getContext() != null) {
-            return getPhone().getContext().getText(messageId);
+            return getResourceText(messageId);
         } else {
             return null;
         }
     }
 
+    @VisibleForTesting
+    public CharSequence getResourceText(int id) {
+        Resources resources = SubscriptionManager.getResourcesForSubId(getPhone().getContext(),
+                getPhone().getSubId());
+        return resources.getText(id);
+    }
+
+    @VisibleForTesting
+    public String getResourceString(int id) {
+        Resources resources = SubscriptionManager.getResourcesForSubId(getPhone().getContext(),
+                getPhone().getSubId());
+        return resources.getString(id);
+    }
+
     /**
      * @return {@code true} if carrier video conferencing is supported, {@code false} otherwise.
      */
@@ -395,6 +457,25 @@
     public abstract static class TelephonyConnectionListener {
         public void onOriginalConnectionConfigured(TelephonyConnection c) {}
         public void onOriginalConnectionRetry(TelephonyConnection c, boolean isPermanentFailure) {}
+        public void onConferenceParticipantsChanged(Connection c,
+                List<ConferenceParticipant> participants) {}
+        public void onConferenceStarted() {}
+        public void onConferenceSupportedChanged(Connection c, boolean isConferenceSupported) {}
+
+        public void onConnectionCapabilitiesChanged(Connection c, int connectionCapabilities) {}
+        public void onConnectionEvent(Connection c, String event, Bundle extras) {}
+        public void onConnectionPropertiesChanged(Connection c, int connectionProperties) {}
+        public void onExtrasChanged(Connection c, Bundle extras) {}
+        public void onExtrasRemoved(Connection c, List<String> keys) {}
+        public void onStateChanged(android.telecom.Connection c, int state) {}
+        public void onStatusHintsChanged(Connection c, StatusHints statusHints) {}
+        public void onDestroyed(Connection c) {}
+        public void onDisconnected(android.telecom.Connection c,
+                android.telecom.DisconnectCause disconnectCause) {}
+        public void onVideoProviderChanged(android.telecom.Connection c,
+                Connection.VideoProvider videoProvider) {}
+        public void onVideoStateChanged(android.telecom.Connection c, int videoState) {}
+        public void onRingbackRequested(Connection c, boolean ringback) {}
     }
 
     private final PostDialListener mPostDialListener = new PostDialListener() {
@@ -454,7 +535,7 @@
          * @param vrat the RIL Voice Radio Technology used for current connection.
          */
         @Override
-        public void onCallRadioTechChanged(@ServiceState.RilRadioTechnology int vrat) {
+        public void onCallRadioTechChanged(@RilRadioTechnology int vrat) {
             mHandler.obtainMessage(MSG_SET_CALL_RADIO_TECH, vrat).sendToTarget();
         }
 
@@ -528,7 +609,7 @@
 
             // Inform the InCallService of the fact that the call pull failed (it may choose to
             // display a message informing the user of the pull failure).
-            sendConnectionEvent(Connection.EVENT_CALL_PULL_FAILED, null);
+            sendTelephonyConnectionEvent(Connection.EVENT_CALL_PULL_FAILED, null);
 
             // Swap the ImsPhoneConnection we used to do the pull for the ImsExternalConnection
             // which originally represented the call.
@@ -543,7 +624,7 @@
          */
         @Override
         public void onHandoverToWifiFailed() {
-            sendConnectionEvent(TelephonyManager.EVENT_HANDOVER_TO_WIFI_FAILED, null);
+            sendTelephonyConnectionEvent(TelephonyManager.EVENT_HANDOVER_TO_WIFI_FAILED, null);
         }
 
         /**
@@ -554,7 +635,10 @@
          */
         @Override
         public void onConnectionEvent(String event, Bundle extras) {
-            sendConnectionEvent(event, extras);
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = event;
+            args.arg2 = extras;
+            mHandler.obtainMessage(MSG_ON_CONNECTION_EVENT, args).sendToTarget();
         }
 
         @Override
@@ -594,6 +678,7 @@
         @Override
         public void onRttTerminated() {
             updateConnectionProperties();
+            refreshConferenceSupported();
             sendRttSessionRemotelyTerminated();
         }
 
@@ -609,6 +694,7 @@
         }
     };
 
+    private TelephonyConnectionService mTelephonyConnectionService;
     protected com.android.internal.telephony.Connection mOriginalConnection;
     private Call.State mConnectionState = Call.State.IDLE;
     private Bundle mOriginalConnectionExtras = new Bundle();
@@ -683,11 +769,6 @@
     private boolean mIsCdmaVoicePrivacyEnabled;
 
     /**
-     * Indicates whether this call is an outgoing call.
-     */
-    protected final boolean mIsOutgoing;
-
-    /**
      * Indicates whether the connection can be held. This filed combined with the state of the
      * connection can determine whether {@link Connection#CAPABILITY_HOLD} should be added to the
      * connection.
@@ -710,14 +791,19 @@
     private boolean mShowPreciseFailedCause;
 
     /**
+     * Provides a DisconnectCause associated with a hang up request.
+     */
+    private int mHangupDisconnectCause = DisconnectCause.NOT_VALID;
+
+    /**
      * Listeners to our TelephonyConnection specific callbacks
      */
     private final Set<TelephonyConnectionListener> mTelephonyListeners = Collections.newSetFromMap(
             new ConcurrentHashMap<TelephonyConnectionListener, Boolean>(8, 0.9f, 1));
 
     protected TelephonyConnection(com.android.internal.telephony.Connection originalConnection,
-            String callId, boolean isOutgoingCall) {
-        mIsOutgoing = isOutgoingCall;
+            String callId, @android.telecom.Call.Details.CallDirection int callDirection) {
+        setCallDirection(callDirection);
         setTelecomCallId(callId);
         if (originalConnection != null) {
             setOriginalConnection(originalConnection);
@@ -781,6 +867,11 @@
     }
 
     @Override
+    public void onAddConferenceParticipants(List<Uri> participants) {
+        performAddConferenceParticipants(participants);
+    }
+
+    @Override
     public void onAbort() {
         Log.v(this, "onAbort");
         mHandler.obtainMessage(MSG_HANGUP, android.telephony.DisconnectCause.LOCAL).sendToTarget();
@@ -798,14 +889,7 @@
 
     @Override
     public void onAnswer(int videoState) {
-        Log.v(this, "onAnswer");
-        if (isValidRingingCall() && getPhone() != null) {
-            try {
-                getPhone().acceptCall(videoState);
-            } catch (CallStateException e) {
-                Log.e(this, e, "Failed to accept call.");
-            }
-        }
+        performAnswer(videoState);
     }
 
     @Override
@@ -849,15 +933,76 @@
 
     @Override
     public void onReject() {
-        Log.v(this, "onReject");
+        performReject(android.telecom.Call.REJECT_REASON_DECLINED);
+    }
+
+    @Override
+    public void onReject(@android.telecom.Call.RejectReason int rejectReason) {
+        performReject(rejectReason);
+    }
+
+    public void performReject(int rejectReason) {
+        Log.v(this, "performReject");
         if (isValidRingingCall()) {
-            mHandler.obtainMessage(MSG_HANGUP, android.telephony.DisconnectCause.INCOMING_REJECTED)
+            mHandler.obtainMessage(MSG_REJECT, rejectReason)
                     .sendToTarget();
         }
         super.onReject();
     }
 
     @Override
+    public void onTransfer(Uri number, boolean isConfirmationRequired) {
+        Log.v(this, "onTransfer");
+        if (mOriginalConnection != null) {
+            if (number == null) {
+                Log.w(this, "call transfer uri is null");
+                return;
+            }
+            String scheme = number.getScheme();
+            String transferNumber = "";
+            String uriString = number.getSchemeSpecificPart();
+            if (!PhoneAccount.SCHEME_VOICEMAIL.equals(scheme)) {
+                if (!PhoneAccount.SCHEME_TEL.equals(scheme)) {
+                    Log.w(this, "onTransfer, number scheme is not of type tel instead: "
+                            + scheme);
+                    return;
+                }
+                if (PhoneNumberUtils.isUriNumber(uriString)) {
+                    Log.w(this, "Invalid transfer address. Not a legal PSTN number.");
+                    return;
+                }
+                transferNumber = PhoneNumberUtils.convertAndStrip(uriString);
+                if (TextUtils.isEmpty(transferNumber)) {
+                    Log.w(this, "Empty transfer number obtained from uri");
+                    return;
+                }
+            } else {
+                Log.w(this, "Cannot transfer to voicemail uri");
+                return;
+            }
+
+            try {
+                mOriginalConnection.transfer(transferNumber, isConfirmationRequired);
+            } catch (CallStateException e) {
+                Log.e(this, e, "Failed to transfer call.");
+            }
+        }
+    }
+
+    @Override
+    public void onTransfer(Connection otherConnection) {
+        Log.v(this, "onConsultativeTransfer");
+        if (mOriginalConnection != null && (otherConnection instanceof TelephonyConnection)) {
+            try {
+                mOriginalConnection.consultativeTransfer(
+                        ((TelephonyConnection) otherConnection).getOriginalConnection());
+            } catch (CallStateException e) {
+                Log.e(this, e, "Failed to transfer call.");
+            }
+        }
+    }
+
+    @Override
     public void onPostDialContinue(boolean proceed) {
         Log.v(this, "onPostDialContinue, proceed: " + proceed);
         if (mOriginalConnection != null) {
@@ -923,6 +1068,17 @@
         originalConnection.sendRttModifyResponse(textStream);
     }
 
+    public void performAnswer(int videoState) {
+        Log.v(this, "performAnswer");
+        if (isValidRingingCall() && getPhone() != null) {
+            try {
+                getPhone().acceptCall(videoState);
+            } catch (CallStateException e) {
+                Log.e(this, e, "Failed to accept call.");
+            }
+        }
+    }
+
     public void performHold() {
         Log.v(this, "performHold");
         // TODO: Can dialing calls be put on hold as well since they take up the
@@ -1018,6 +1174,29 @@
         }
     }
 
+    private String[] getAddConferenceParticipants(List<Uri> participants) {
+        String[] addConfParticipants = new String[participants.size()];
+        int i = 0;
+        for (Uri participant : participants) {
+           addConfParticipants[i] = participant.getSchemeSpecificPart();
+           i++;
+        }
+        return addConfParticipants;
+    }
+
+    public void performAddConferenceParticipants(List<Uri> participants) {
+        Log.v(this, "performAddConferenceParticipants");
+        if (mOriginalConnection.getCall() instanceof ImsPhoneCall) {
+            ImsPhoneCall imsPhoneCall = (ImsPhoneCall)mOriginalConnection.getCall();
+            try {
+                imsPhoneCall.getImsCall().inviteParticipants(
+                        getAddConferenceParticipants(participants));
+            } catch(ImsException e) {
+                Log.e(this, e, "failed to add conference participants");
+            }
+        }
+    }
+
     /**
      * Builds connection capabilities common to all TelephonyConnections. Namely, apply IMS-based
      * capabilities.
@@ -1052,8 +1231,15 @@
         newCapabilities = changeBitmask(newCapabilities, CAPABILITY_SUPPORT_DEFLECT,
                 isImsConnection() && canDeflectImsCalls());
 
+        newCapabilities = applyAddParticipantCapabilities(newCapabilities);
+        newCapabilities = changeBitmask(newCapabilities, CAPABILITY_TRANSFER_CONSULTATIVE,
+                isImsConnection() && canConsultativeTransfer());
+        newCapabilities = changeBitmask(newCapabilities, CAPABILITY_TRANSFER,
+                isImsConnection() && canTransferToNumber());
+
         if (getConnectionCapabilities() != newCapabilities) {
             setConnectionCapabilities(newCapabilities);
+            notifyConnectionCapabilitiesChanged(newCapabilities);
         }
     }
 
@@ -1083,17 +1269,24 @@
                 isExternalConnection());
         newProperties = changeBitmask(newProperties, PROPERTY_HAS_CDMA_VOICE_PRIVACY,
                 mIsCdmaVoicePrivacyEnabled);
-        newProperties = changeBitmask(newProperties, PROPERTY_ASSISTED_DIALING_USED,
+        newProperties = changeBitmask(newProperties, PROPERTY_ASSISTED_DIALING,
                 mIsUsingAssistedDialing);
         newProperties = changeBitmask(newProperties, PROPERTY_IS_RTT, isRtt());
         newProperties = changeBitmask(newProperties, PROPERTY_NETWORK_IDENTIFIED_EMERGENCY_CALL,
                 isNetworkIdentifiedEmergencyCall());
+        newProperties = changeBitmask(newProperties, PROPERTY_IS_ADHOC_CONFERENCE,
+                isAdhocConferenceCall());
 
         if (getConnectionProperties() != newProperties) {
-            setConnectionProperties(newProperties);
+            setTelephonyConnectionProperties(newProperties);
         }
     }
 
+    public void setTelephonyConnectionProperties(int newProperties) {
+        setConnectionProperties(newProperties);
+        notifyConnectionPropertiesChanged(newProperties);
+    }
+
     protected final void updateAddress() {
         updateConnectionCapabilities();
         updateConnectionProperties();
@@ -1145,7 +1338,8 @@
                && isShowingOriginalDialString()) {
             Log.i(this, "new original dial string is null, convert to: "
                    +  mOriginalConnection.getOrigDialString());
-            originalConnection.setConverted(mOriginalConnection.getOrigDialString());
+            originalConnection.restoreDialedNumberAfterConversion(
+                    mOriginalConnection.getOrigDialString());
         }
 
         clearOriginalConnection();
@@ -1156,6 +1350,8 @@
                 mHandler, MSG_PRECISE_CALL_STATE_CHANGED, null);
         getPhone().registerForHandoverStateChanged(
                 mHandler, MSG_HANDOVER_STATE_CHANGED, null);
+        getPhone().registerForRedialConnectionChanged(
+                mHandler, MSG_REDIAL_CONNECTION_CHANGED, null);
         getPhone().registerForRingbackTone(mHandler, MSG_RINGBACK_TONE, null);
         getPhone().registerForSuppServiceNotification(mHandler, MSG_SUPP_SERVICE_NOTIFY, null);
         getPhone().registerForOnHoldTone(mHandler, MSG_ON_HOLD_TONE, null);
@@ -1165,11 +1361,12 @@
         mOriginalConnection.addListener(mOriginalConnectionListener);
 
         // Set video state and capabilities
-        setVideoState(mOriginalConnection.getVideoState());
+        setTelephonyVideoState(mOriginalConnection.getVideoState());
         setOriginalConnectionCapabilities(mOriginalConnection.getConnectionCapabilities());
         setIsNetworkIdentifiedEmergencyCall(mOriginalConnection.isNetworkIdentifiedEmergencyCall());
+        setIsAdhocConferenceCall(mOriginalConnection.isAdhocConference());
         setAudioModeIsVoip(mOriginalConnection.getAudioModeIsVoip());
-        setVideoProvider(mOriginalConnection.getVideoProvider());
+        setTelephonyVideoProvider(mOriginalConnection.getVideoProvider());
         setAudioQuality(mOriginalConnection.getAudioQuality());
         setTechnologyTypeExtra();
 
@@ -1185,6 +1382,8 @@
         if (PhoneNumberUtils.isEmergencyNumber(mOriginalConnection.getAddress())) {
             mTreatAsEmergencyCall = true;
         }
+        // Propagate VERSTAT for IMS calls.
+        setCallerNumberVerificationStatus(mOriginalConnection.getNumberVerificationStatus());
 
         if (isImsConnection()) {
             mWasImsConnection = true;
@@ -1204,8 +1403,8 @@
         } else {
             extrasToRemove.add(Connection.EXTRA_DISABLE_ADD_CALL);
         }
-        putExtras(extrasToPut);
-        removeExtras(extrasToRemove);
+        putTelephonyExtras(extrasToPut);
+        removeTelephonyExtras(extrasToRemove);
 
         // updateState can set mOriginalConnection to null if its state is DISCONNECTED, so this
         // should be executed *after* the above setters have run.
@@ -1250,18 +1449,109 @@
      */
     private void setTechnologyTypeExtra() {
         if (getPhone() != null) {
-            putExtra(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+            Bundle newExtras = getExtras();
+            if (newExtras == null) {
+                newExtras = new Bundle();
+            }
+            newExtras.putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+            putTelephonyExtras(newExtras);
         }
     }
 
+    private void refreshHoldSupported() {
+       if (mOriginalConnection == null) {
+           Log.w(this, "refreshHoldSupported org conn is null");
+           return;
+       }
+
+       if (!mOriginalConnection.shouldAllowHoldingVideoCall() && canHoldImsCalls() !=
+               ((getConnectionCapabilities() & (CAPABILITY_HOLD | CAPABILITY_SUPPORT_HOLD)) != 0)) {
+           updateConnectionCapabilities();
+       }
+    }
+
     private void refreshDisableAddCall() {
         if (shouldSetDisableAddCallExtra()) {
-            putExtra(Connection.EXTRA_DISABLE_ADD_CALL, true);
+            Bundle newExtras = getExtras();
+            if (newExtras == null) {
+                newExtras = new Bundle();
+            }
+            newExtras.putBoolean(Connection.EXTRA_DISABLE_ADD_CALL, true);
+            putTelephonyExtras(newExtras);
         } else {
             removeExtras(Connection.EXTRA_DISABLE_ADD_CALL);
         }
     }
 
+    private void refreshCodecType() {
+        Bundle newExtras = getExtras();
+        if (newExtras == null) {
+            newExtras = new Bundle();
+        }
+        int newCodecType;
+        if (isImsConnection()) {
+            newCodecType = transformCodec(getOriginalConnection().getAudioCodec());
+        } else {
+            // For SRVCC, report AUDIO_CODEC_NONE.
+            newCodecType = Connection.AUDIO_CODEC_NONE;
+        }
+        int oldCodecType = newExtras.getInt(Connection.EXTRA_AUDIO_CODEC,
+                Connection.AUDIO_CODEC_NONE);
+        if (newCodecType != oldCodecType) {
+            newExtras.putInt(Connection.EXTRA_AUDIO_CODEC, newCodecType);
+            putTelephonyExtras(newExtras);
+        }
+    }
+
+    private int transformCodec(int codec) {
+        switch (codec) {
+            case ImsStreamMediaProfile.AUDIO_QUALITY_NONE:
+                return Connection.AUDIO_CODEC_NONE;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_AMR:
+                return Connection.AUDIO_CODEC_AMR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_AMR_WB:
+                return Connection.AUDIO_CODEC_AMR_WB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_QCELP13K:
+                return Connection.AUDIO_CODEC_QCELP13K;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC:
+                return Connection.AUDIO_CODEC_EVRC;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC_B:
+                return Connection.AUDIO_CODEC_EVRC_B;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC_WB:
+                return Connection.AUDIO_CODEC_EVRC_WB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVRC_NW:
+                return Connection.AUDIO_CODEC_EVRC_NW;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_GSM_EFR:
+                return Connection.AUDIO_CODEC_GSM_EFR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_GSM_FR:
+                return Connection.AUDIO_CODEC_GSM_FR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_GSM_HR:
+                return Connection.AUDIO_CODEC_GSM_HR;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G711U:
+                return Connection.AUDIO_CODEC_G711U;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G723:
+                return Connection.AUDIO_CODEC_G723;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G711A:
+                return Connection.AUDIO_CODEC_G711A;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G722:
+                return Connection.AUDIO_CODEC_G722;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G711AB:
+                return Connection.AUDIO_CODEC_G711AB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_G729:
+                return Connection.AUDIO_CODEC_G729;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_NB:
+                return Connection.AUDIO_CODEC_EVS_NB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_WB:
+                return Connection.AUDIO_CODEC_EVS_WB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_SWB:
+                return Connection.AUDIO_CODEC_EVS_SWB;
+            case ImsStreamMediaProfile.AUDIO_QUALITY_EVS_FB:
+                return Connection.AUDIO_CODEC_EVS_FB;
+            default:
+                return Connection.AUDIO_CODEC_NONE;
+        }
+    }
+
     private boolean shouldSetDisableAddCallExtra() {
         if (mOriginalConnection == null) {
             return false;
@@ -1333,13 +1623,118 @@
         return true;
     }
 
+    /**
+     * @return The address's to which this Connection is currently communicating.
+     */
+    public final @Nullable List<Uri> getParticipants() {
+        return mParticipants;
+    }
+
+    /**
+     * Sets the value of the {@link #getParticipants()} property.
+     *
+     * @param address The participant address's.
+     */
+    public final void setParticipants(@Nullable List<Uri> address) {
+        mParticipants = address;
+    }
+
+    /**
+     * @return true if connection is adhocConference call else false.
+     */
+    public final boolean isAdhocConferenceCall() {
+        return mIsAdhocConferenceCall;
+    }
+
+    /**
+     * Sets the value of the {@link #isAdhocConferenceCall()} property.
+     *
+     * @param isAdhocConferenceCall represents if the call is adhoc conference call or not.
+     */
+    public void setIsAdhocConferenceCall(boolean isAdhocConferenceCall) {
+        mIsAdhocConferenceCall = isAdhocConferenceCall;
+        updateConnectionProperties();
+    }
+
     private boolean canHoldImsCalls() {
         PersistableBundle b = getCarrierConfig();
         // Return true if the CarrierConfig is unavailable
-        return !doesDeviceRespectHoldCarrierConfig() || b == null ||
-                b.getBoolean(CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
+        return (!doesDeviceRespectHoldCarrierConfig() || b == null ||
+                b.getBoolean(CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL)) &&
+                ((mOriginalConnection != null && mOriginalConnection.shouldAllowHoldingVideoCall())
+                || !VideoProfile.isVideo(getVideoState()));
     }
 
+    private boolean isConferenceHosted() {
+        boolean isHosted = false;
+        if (getTelephonyConnectionService() != null) {
+            for (Conference current : getTelephonyConnectionService().getAllConferences()) {
+                if (current instanceof ImsConference) {
+                    ImsConference other = (ImsConference) current;
+                    if (getState() == current.getState()) {
+                        continue;
+                    }
+                    if (other.isConferenceHost()) {
+                        isHosted = true;
+                        break;
+                    }
+                }
+            }
+        }
+        return isHosted;
+    }
+
+    private boolean isAddParticipantCapable() {
+        // not add participant capable for non ims phones
+        if (getPhone() == null || getPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_IMS) {
+            return false;
+        }
+
+        if (!getCarrierConfig()
+                .getBoolean(CarrierConfigManager.KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL)) {
+            return false;
+        }
+
+        boolean isCapable = !mTreatAsEmergencyCall && (mConnectionState == Call.State.ACTIVE ||
+                mConnectionState == Call.State.HOLDING);
+
+        // add participant capable if current connection is a host connection or
+        // if conference is not hosted on the device
+        isCapable = isCapable && ((mOriginalConnection != null &&
+                mOriginalConnection.isConferenceHost()) ||
+                !isConferenceHosted());
+
+        /**
+          * For individual IMS calls, if the extra for remote conference support is
+          *     - indicated, then consider the same for add participant capability
+          *     - not indicated, then the add participant capability is same as before.
+          */
+        if (isCapable && (mOriginalConnection != null) && !mIsMultiParty) {
+            isCapable = mOriginalConnectionExtras.getBoolean(
+                    ImsCallProfile.EXTRA_CONFERENCE_AVAIL, isCapable);
+        }
+        return isCapable;
+    }
+
+    /**
+     * Applies the add participant capabilities to the {@code CallCapabilities} bit-mask.
+     *
+     * @param callCapabilities The {@code CallCapabilities} bit-mask.
+     * @return The capabilities with the add participant capabilities applied.
+     */
+    private int applyAddParticipantCapabilities(int callCapabilities) {
+        int currentCapabilities = callCapabilities;
+        if (isAddParticipantCapable()) {
+            currentCapabilities = changeBitmask(currentCapabilities,
+                    Connection.CAPABILITY_ADD_PARTICIPANT, true);
+        } else {
+            currentCapabilities = changeBitmask(currentCapabilities,
+                    Connection.CAPABILITY_ADD_PARTICIPANT, false);
+        }
+        return currentCapabilities;
+    }
+
+    @VisibleForTesting
     public PersistableBundle getCarrierConfig() {
         Phone phone = getPhone();
         if (phone == null) {
@@ -1359,6 +1754,50 @@
         return false;
     }
 
+    private boolean isCallTransferSupported() {
+        PersistableBundle b = getCarrierConfig();
+        // Return false if the CarrierConfig is unavailable
+        if (b != null) {
+            return b.getBoolean(CarrierConfigManager.KEY_CARRIER_ALLOW_TRANSFER_IMS_CALL_BOOL);
+        }
+        return false;
+    }
+
+    private boolean canTransfer(TelephonyConnection c) {
+        com.android.internal.telephony.Connection connection = c.getOriginalConnection();
+        return (connection != null && !connection.isMultiparty()
+                && (c.getState() == STATE_ACTIVE || c.getState() == STATE_HOLDING));
+    }
+
+    private boolean canTransferToNumber() {
+        if (!isCallTransferSupported()) {
+            return false;
+        }
+        return canTransfer(this);
+    }
+
+    private boolean canConsultativeTransfer() {
+        if (!isCallTransferSupported()) {
+            return false;
+        }
+        if (!canTransfer(this)) {
+            return false;
+        }
+        boolean canConsultativeTransfer = false;
+        if (getTelephonyConnectionService() != null) {
+            for (Connection current : getTelephonyConnectionService().getAllConnections()) {
+                if (current != this && current instanceof TelephonyConnection) {
+                    TelephonyConnection other = (TelephonyConnection) current;
+                    if (canTransfer(other)) {
+                        canConsultativeTransfer = true;
+                        break;
+                    }
+                }
+            }
+        }
+        return canConsultativeTransfer;
+    }
+
     /**
      * Determines if the device will respect the value of the
      * {@link CarrierConfigManager#KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL} configuration option.
@@ -1394,6 +1833,7 @@
                 getPhone().unregisterForPreciseCallStateChanged(mHandler);
                 getPhone().unregisterForRingbackTone(mHandler);
                 getPhone().unregisterForHandoverStateChanged(mHandler);
+                getPhone().unregisterForRedialConnectionChanged(mHandler);
                 getPhone().unregisterForDisconnect(mHandler);
                 getPhone().unregisterForSuppServiceNotification(mHandler);
                 getPhone().unregisterForOnHoldTone(mHandler);
@@ -1408,6 +1848,7 @@
 
     protected void hangup(int telephonyDisconnectCode) {
         if (mOriginalConnection != null) {
+            mHangupDisconnectCause = telephonyDisconnectCode;
             try {
                 // Hanging up a ringing call requires that we invoke call.hangup() as opposed to
                 // connection.hangup(). Without this change, the party originating the call
@@ -1437,7 +1878,47 @@
                 // There are a few cases where mOriginalConnection has not been set yet. For
                 // example, when the radio has to be turned on to make an emergency call,
                 // mOriginalConnection could not be set for many seconds.
-                setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                setTelephonyConnectionDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                        android.telephony.DisconnectCause.LOCAL,
+                        "Local Disconnect before connection established."));
+                close();
+            }
+        }
+    }
+
+    protected void reject(@android.telecom.Call.RejectReason int rejectReason) {
+        if (mOriginalConnection != null) {
+            mHangupDisconnectCause = android.telephony.DisconnectCause.INCOMING_REJECTED;
+            try {
+                // Hanging up a ringing call requires that we invoke call.hangup() as opposed to
+                // connection.hangup(). Without this change, the party originating the call
+                // will not get sent to voicemail if the user opts to reject the call.
+                if (isValidRingingCall()) {
+                    Call call = getCall();
+                    if (call != null) {
+                        call.hangup(rejectReason);
+                    } else {
+                        Log.w(this, "Attempting to hangup a connection without backing call.");
+                    }
+                } else {
+                    // We still prefer to call connection.hangup() for non-ringing calls
+                    // in order to support hanging-up specific calls within a conference call.
+                    // If we invoked call.hangup() while in a conference, we would end up
+                    // hanging up the entire conference call instead of the specific connection.
+                    mOriginalConnection.hangup();
+                }
+            } catch (CallStateException e) {
+                Log.e(this, e, "Call to Connection.hangup failed with exception");
+            }
+        } else {
+            if (getState() == STATE_DISCONNECTED) {
+                Log.i(this, "hangup called on an already disconnected call!");
+                close();
+            } else {
+                // There are a few cases where mOriginalConnection has not been set yet. For
+                // example, when the radio has to be turned on to make an emergency call,
+                // mOriginalConnection could not be set for many seconds.
+                setTelephonyConnectionDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
                         android.telephony.DisconnectCause.LOCAL,
                         "Local Disconnect before connection established."));
                 close();
@@ -1494,7 +1975,7 @@
      */
     public List<ConferenceParticipant> getConferenceParticipants() {
         if (mOriginalConnection == null) {
-            Log.v(this, "Null mOriginalConnection, cannot get conf participants.");
+            Log.w(this, "Null mOriginalConnection, cannot get conf participants.");
             return null;
         }
         return mOriginalConnection.getConferenceParticipants();
@@ -1539,8 +2020,8 @@
                         for (String key : extras.keySet()) {
                             Object value = extras.get(key);
                             if (value instanceof String) {
-                                Log.d(this, "updateExtras Key=" + Log.pii(key) +
-                                             " value=" + Log.pii((String)value));
+                                Log.d(this, "updateExtras Key=" + Rlog.pii(LOG_TAG, key)
+                                        + " value=" + Rlog.pii(LOG_TAG, value));
                             }
                         }
                     }
@@ -1558,12 +2039,18 @@
                     }
 
                     // Ensure extras are propagated to Telecom.
-                    putExtras(mOriginalConnectionExtras);
+                    putTelephonyExtras(mOriginalConnectionExtras);
+                    // If extras contain Conference support information,
+                    // then ensure capabilities are updated.
+                    if (mOriginalConnectionExtras.containsKey(
+                            ImsCallProfile.EXTRA_CONFERENCE_AVAIL)) {
+                        updateConnectionCapabilities();
+                    }
                 } else {
                     Log.d(this, "Extras update not required");
                 }
             } else {
-                Log.d(this, "updateExtras extras: " + Log.pii(extras));
+                Log.d(this, "updateExtras extras: " + Rlog.pii(LOG_TAG, extras));
             }
         }
     }
@@ -1627,19 +2114,19 @@
                     setActiveInternal();
                     break;
                 case HOLDING:
-                    setOnHold();
+                    setTelephonyConnectionOnHold();
                     break;
                 case DIALING:
                 case ALERTING:
                     if (mOriginalConnection != null && mOriginalConnection.isPulledCall()) {
-                        setPulling();
+                        setTelephonyConnectionPulling();
                     } else {
-                        setDialing();
+                        setTelephonyConnectionDialing();
                     }
                     break;
                 case INCOMING:
                 case WAITING:
-                    setRinging();
+                    setTelephonyConnectionRinging();
                     break;
                 case DISCONNECTED:
                     if (shouldTreatAsEmergencyCall()
@@ -1660,11 +2147,19 @@
                             preciseDisconnectCause =
                                     mOriginalConnection.getPreciseDisconnectCause();
                         }
-                        setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
-                                mOriginalConnection.getDisconnectCause(),
-                                preciseDisconnectCause,
-                                mOriginalConnection.getVendorDisconnectCause(),
-                                getPhone().getPhoneId()));
+                        int disconnectCause = mOriginalConnection.getDisconnectCause();
+                        if ((mHangupDisconnectCause != DisconnectCause.NOT_VALID)
+                                && (mHangupDisconnectCause != disconnectCause)) {
+                            Log.i(LOG_TAG, "setDisconnected: override cause: " + disconnectCause
+                                    + " -> " + mHangupDisconnectCause);
+                            disconnectCause = mHangupDisconnectCause;
+                        }
+                        setTelephonyConnectionDisconnected(
+                                DisconnectCauseUtil.toTelecomDisconnectCause(
+                                        disconnectCause,
+                                        preciseDisconnectCause,
+                                        mOriginalConnection.getVendorDisconnectCause(),
+                                        getPhone().getPhoneId()));
                         close();
                     }
                     break;
@@ -1686,6 +2181,7 @@
         updateAddress();
         updateMultiparty();
         refreshDisableAddCall();
+        refreshCodecType();
     }
 
     /**
@@ -1744,8 +2240,8 @@
         // To "optimize", we check here to see if there already exists any active calls.  If so,
         // we issue an update for those calls first to make sure we only have one top-level
         // active call.
-        if (getConnectionService() != null) {
-            for (Connection current : getConnectionService().getAllConnections()) {
+        if (getTelephonyConnectionService() != null) {
+            for (Connection current : getTelephonyConnectionService().getAllConnections()) {
                 if (current != this && current instanceof TelephonyConnection) {
                     TelephonyConnection other = (TelephonyConnection) current;
                     if (other.getState() == STATE_ACTIVE) {
@@ -1754,13 +2250,18 @@
                 }
             }
         }
-        setActive();
+        setTelephonyConnectionActive();
     }
 
-    protected void close() {
+    public void close() {
         Log.v(this, "close");
         clearOriginalConnection();
         destroy();
+        if (mTelephonyConnectionService != null) {
+            removeTelephonyConnectionListener(
+                    mTelephonyConnectionService.getTelephonyConnectionListener());
+        }
+        notifyDestroyed();
     }
 
     /**
@@ -1772,9 +2273,10 @@
      * @return {@code true} if the connection is video capable, {@code false} otherwise.
      */
     private boolean isVideoCapable() {
-        return can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
-                && can(mOriginalConnectionCapabilities,
-                Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
+        return (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
+                == Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL
+                && (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL)
+                == Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL;
     }
 
     /**
@@ -1786,7 +2288,8 @@
      * @return {@code true} if the connection is external, {@code false} otherwise.
      */
     private boolean isExternalConnection() {
-        return can(mOriginalConnectionCapabilities, Capability.IS_EXTERNAL_CONNECTION);
+        return (mOriginalConnectionCapabilities
+                & Capability.IS_EXTERNAL_CONNECTION) == Capability.IS_EXTERNAL_CONNECTION;
     }
 
     /**
@@ -1808,8 +2311,10 @@
      * @return {@code true} if the connection is pullable, {@code false} otherwise.
      */
     private boolean isPullable() {
-        return can(mOriginalConnectionCapabilities, Capability.IS_EXTERNAL_CONNECTION)
-                && can(mOriginalConnectionCapabilities, Capability.IS_PULLABLE);
+        return (mOriginalConnectionCapabilities & Capability.IS_EXTERNAL_CONNECTION)
+                == Capability.IS_EXTERNAL_CONNECTION
+                && (mOriginalConnectionCapabilities & Capability.IS_PULLABLE)
+                == Capability.IS_PULLABLE;
     }
 
     /**
@@ -1867,17 +2372,20 @@
     public int applyOriginalConnectionCapabilities(int capabilities) {
         // We only support downgrading to audio if both the remote and local side support
         // downgrading to audio.
-        boolean supportsDowngradeToAudio = can(mOriginalConnectionCapabilities,
-                Capability.SUPPORTS_DOWNGRADE_TO_VOICE_LOCAL |
-                        Capability.SUPPORTS_DOWNGRADE_TO_VOICE_REMOTE);
+        int supportsDowngrade = Capability.SUPPORTS_DOWNGRADE_TO_VOICE_LOCAL
+                | Capability.SUPPORTS_DOWNGRADE_TO_VOICE_REMOTE;
+        boolean supportsDowngradeToAudio =
+                (mOriginalConnectionCapabilities & supportsDowngrade) == supportsDowngrade;
         capabilities = changeBitmask(capabilities,
                 CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO, !supportsDowngradeToAudio);
 
         capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
-                can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
+                (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL)
+                        == Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
 
-        boolean isLocalVideoSupported = can(mOriginalConnectionCapabilities,
-                Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL) && !mIsTtyEnabled;
+        boolean isLocalVideoSupported = (mOriginalConnectionCapabilities
+                & Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
+                == Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL && !mIsTtyEnabled;
         capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
                 isLocalVideoSupported);
 
@@ -1915,8 +2423,8 @@
     /**
      * @return {@code true} if this is an outgoing call, {@code false} otherwise.
      */
-    boolean isOutgoingCall() {
-        return mIsOutgoing;
+    public boolean isOutgoingCall() {
+        return getCallDirection() == android.telecom.Call.Details.DIRECTION_OUTGOING;
     }
 
     /**
@@ -2104,13 +2612,13 @@
                     : R.string.status_hint_label_wifi_call;
 
             Context context = getPhone().getContext();
-            setStatusHints(new StatusHints(
-                    context.getString(labelId),
+            setTelephonyStatusHints(new StatusHints(
+                    getResourceString(labelId),
                     Icon.createWithResource(
                             context, R.drawable.ic_signal_wifi_4_bar_24dp),
                     null /* extras */));
         } else {
-            setStatusHints(null);
+            setTelephonyStatusHints(null);
         }
     }
 
@@ -2188,6 +2696,7 @@
      * 3. If call is a video call, carrier supports video conference calls.
      * 4. If call is a wifi call and VoWIFI is disabled and carrier supports merging these calls.
      */
+    @VisibleForTesting
     void refreshConferenceSupported() {
         boolean isVideoCall = VideoProfile.isVideo(getVideoState());
         Phone phone = getPhone();
@@ -2314,7 +2823,7 @@
         sb.append(" properties:");
         sb.append(propertiesToString(getConnectionProperties()));
         sb.append(" address:");
-        sb.append(Log.pii(getAddress()));
+        sb.append(Rlog.pii(LOG_TAG, getAddress()));
         sb.append(" originalConnection:");
         sb.append(mOriginalConnection);
         sb.append(" partOfConf:");
@@ -2325,7 +2834,370 @@
         }
         sb.append(" confSupported:");
         sb.append(mIsConferenceSupported ? "Y" : "N");
+        sb.append(" isAdhocConf:");
+        sb.append(isAdhocConferenceCall() ? "Y" : "N");
         sb.append("]");
         return sb.toString();
     }
+
+    public final void setTelephonyConnectionService(TelephonyConnectionService connectionService) {
+        mTelephonyConnectionService = connectionService;
+    }
+
+    public final TelephonyConnectionService getTelephonyConnectionService() {
+        return mTelephonyConnectionService;
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to an active state.
+     * <p>
+     * Note: This should be used instead of {@link #setActive()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionActive() {
+        setActive();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a ringing state.
+     * <p>
+     * Note: This should be used instead of {@link #setRinging()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionRinging() {
+        setRinging();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to an initializing state.
+     * <p>
+     * Note: This should be used instead of {@link #setInitializing()} to ensure listeners are
+     * notified.
+     */
+    public void setTelephonyConnectionInitializing() {
+        setInitializing();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a dialing state.
+     * <p>
+     * Note: This should be used instead of {@link #setDialing()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionDialing() {
+        setDialing();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a pulling state.
+     * <p>
+     * Note: This should be used instead of {@link #setPulling()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionPulling() {
+        setPulling();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a held state.
+     * <p>
+     * Note: This should be used instead of {@link #setOnHold()} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionOnHold() {
+        setOnHold();
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Set this {@link TelephonyConnection} to a held state.
+     * <p>
+     * Note: This should be used instead of
+     * {@link #setDisconnected(android.telecom.DisconnectCause)} to ensure listeners are notified.
+     */
+    public void setTelephonyConnectionDisconnected(@NonNull
+            android.telecom.DisconnectCause disconnectCause) {
+        setDisconnected(disconnectCause);
+        notifyDisconnected(disconnectCause);
+        notifyStateChanged(getState());
+    }
+
+    /**
+     * Sends a connection event for this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #sendConnectionEvent(String, Bundle)} to ensure
+     * listeners are notified.
+     */
+    public void sendTelephonyConnectionEvent(@NonNull String event, @Nullable Bundle extras) {
+        sendConnectionEvent(event, extras);
+        notifyTelephonyConnectionEvent(event, extras);
+    }
+
+    /**
+     * Sets the extras associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #putExtras(Bundle)} to ensure listeners are
+     * notified.
+     */
+    public void putTelephonyExtras(@NonNull Bundle extras) {
+        putExtras(extras);
+        notifyPutExtras(extras);
+    }
+
+    /**
+     * Removes the specified extras associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #removeExtras(String...)} to ensure listeners are
+     * notified.
+     */
+    public void removeTelephonyExtras(@NonNull List<String> keys) {
+        removeExtras(keys);
+        notifyRemoveExtras(keys);
+    }
+
+    /**
+     * Sets the video state associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #setVideoState(int)} to ensure listeners are
+     * notified.
+     * @param videoState The new video state. Valid values:
+     *                   {@link VideoProfile#STATE_AUDIO_ONLY},
+     *                   {@link VideoProfile#STATE_BIDIRECTIONAL},
+     *                   {@link VideoProfile#STATE_TX_ENABLED},
+     *                   {@link VideoProfile#STATE_RX_ENABLED}.
+     */
+    public void setTelephonyVideoState(int videoState) {
+        setVideoState(videoState);
+        notifyVideoStateChanged(videoState);
+    }
+
+    /**
+     * Sets the video provider associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #setVideoProvider(VideoProvider)} to ensure
+     * listeners are notified.
+     */
+    public void setTelephonyVideoProvider(@Nullable VideoProvider videoProvider) {
+        setVideoProvider(videoProvider);
+        notifyVideoProviderChanged(videoProvider);
+    }
+
+    /**
+     * Sets the status hints associated with this {@link TelephonyConnection}.
+     * <p>
+     * Note: This should be used instead of {@link #setStatusHints(StatusHints)} to ensure listeners
+     * are notified.
+     */
+    public void setTelephonyStatusHints(@Nullable StatusHints statusHints) {
+        setStatusHints(statusHints);
+        notifyStatusHintsChanged(statusHints);
+    }
+
+    /**
+     * Sets RIL voice radio technology used for current connection.
+     * <p>
+     * This property is set by the Telephony {@link ConnectionService}.
+     *
+     * @param vrat the RIL Voice Radio Technology used for current connection,
+     *             see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
+     */
+    public final void setCallRadioTech(@RilRadioTechnology int vrat) {
+        Bundle extras = getExtras();
+        if (extras == null) {
+            extras = new Bundle();
+        }
+        extras.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                ServiceState.rilRadioTechnologyToNetworkType(vrat));
+        putExtras(extras);
+        // Propagates the call radio technology to its parent {@link android.telecom.Conference}
+        // This action only covers non-IMS CS conference calls.
+        // For IMS PS call conference call, it can be updated via its host connection
+        // {@link #Listener.onExtrasChanged} event.
+        if (getConference() != null) {
+            Bundle newExtras = new Bundle();
+            newExtras.putInt(
+                    TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                    ServiceState.rilRadioTechnologyToNetworkType(vrat));
+            getConference().putExtras(newExtras);
+        }
+    }
+
+    /**
+     * Returns RIL voice radio technology used for current connection.
+     * <p>
+     * Used by the Telephony {@link ConnectionService}.
+     *
+     * @return the RIL voice radio technology used for current connection,
+     *         see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
+     */
+    public final @RilRadioTechnology int getCallRadioTech() {
+        int voiceNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
+        Bundle extras = getExtras();
+        if (extras != null) {
+            voiceNetworkType = extras.getInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
+                    TelephonyManager.NETWORK_TYPE_UNKNOWN);
+        }
+        return ServiceState.networkTypeToRilRadioTechnology(voiceNetworkType);
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of a change to conference participant data
+     * received via the {@link ImsConference} (i.e. conference event package).
+     *
+     * @param conferenceParticipants The participants.
+     */
+    private void updateConferenceParticipants(
+            @NonNull List<ConferenceParticipant> conferenceParticipants) {
+        for (TelephonyConnectionListener l : mTelephonyListeners) {
+            l.onConferenceParticipantsChanged(this, conferenceParticipants);
+        }
+    }
+
+    /**
+     * Called by a {@link ConnectionService} to notify Telecom that a {@link Conference#onMerge()}
+     * operation has started.
+     */
+    protected void notifyConferenceStarted() {
+        for (TelephonyConnectionListener l : mTelephonyListeners) {
+            l.onConferenceStarted();
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when a change has occurred to the Connection
+     * which impacts its ability to be a part of a conference call.
+     * @param isConferenceSupported {@code true} if the connection supports being part of a
+     *      conference call, {@code false} otherwise.
+     */
+    private void notifyConferenceSupportedChanged(boolean isConferenceSupported) {
+        for (TelephonyConnectionListener l : mTelephonyListeners) {
+            l.onConferenceSupportedChanged(this, isConferenceSupported);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the connection capabilities.
+     * @param newCapabilities the new capabilities.
+     */
+    private void notifyConnectionCapabilitiesChanged(int newCapabilities) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onConnectionCapabilitiesChanged(this, newCapabilities);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the connection properties.
+     * @param newProperties the new properties.
+     */
+    private void notifyConnectionPropertiesChanged(int newProperties) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onConnectionPropertiesChanged(this, newProperties);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when a connection is destroyed.
+     */
+    private void notifyDestroyed() {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onDestroyed(this);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when a connection disconnects.
+     * @param cause The disconnect cause.
+     */
+    private void notifyDisconnected(android.telecom.DisconnectCause cause) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onDisconnected(this, cause);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of connection state changes.
+     * @param newState The new state.
+     */
+    private void notifyStateChanged(int newState) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onStateChanged(this, newState);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of telephony connection events.
+     * @param event The event.
+     * @param extras Any extras.
+     */
+    private void notifyTelephonyConnectionEvent(String event, Bundle extras) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onConnectionEvent(this, event, extras);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when extras are added to the connection.
+     * @param extras The new extras.
+     */
+    private void notifyPutExtras(Bundle extras) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onExtrasChanged(this, extras);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s when extra keys are removed from a connection.
+     * @param keys The removed keys.
+     */
+    private void notifyRemoveExtras(List<String> keys) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onExtrasRemoved(this, keys);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of a change to the video state of a connection.
+     * @param videoState The new video state. Valid values:
+     *                   {@link VideoProfile#STATE_AUDIO_ONLY},
+     *                   {@link VideoProfile#STATE_BIDIRECTIONAL},
+     *                   {@link VideoProfile#STATE_TX_ENABLED},
+     *                   {@link VideoProfile#STATE_RX_ENABLED}.
+     */
+    private void notifyVideoStateChanged(int videoState) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onVideoStateChanged(this, videoState);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of a whether to play Ringback Tone or not.
+     * @param ringback Whether the ringback tone is to be played
+     */
+    private void notifyRingbackRequested(boolean ringback) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onRingbackRequested(this, ringback);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the video provider for a
+     * connection.
+     * @param videoProvider The new video provider.
+     */
+    private void notifyVideoProviderChanged(VideoProvider videoProvider) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onVideoProviderChanged(this, videoProvider);
+        }
+    }
+
+    /**
+     * Notifies {@link TelephonyConnectionListener}s of changes to the status hints for a
+     * connection.
+     * @param statusHints The new status hints.
+     */
+    private void notifyStatusHintsChanged(StatusHints statusHints) {
+        for (TelephonyConnectionListener listener : mTelephonyListeners) {
+            listener.onStatusHintsChanged(this, statusHints);
+        }
+    }
 }
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index c517cd8..356407a 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -25,7 +25,9 @@
 import android.content.IntentFilter;
 import android.net.Uri;
 import android.os.Bundle;
-import android.provider.Settings;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
 import android.telecom.Conference;
 import android.telecom.Connection;
 import android.telecom.ConnectionRequest;
@@ -69,6 +71,7 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -100,15 +103,11 @@
         }
         @Override
         public void addConference(TelephonyConference mTelephonyConference) {
-            TelephonyConnectionService.this.addConference(mTelephonyConference);
+            TelephonyConnectionService.this.addTelephonyConference(mTelephonyConference);
         }
         @Override
         public void addConference(ImsConference mImsConference) {
-            TelephonyConnectionService.this.addConference(mImsConference);
-        }
-        @Override
-        public void removeConnection(Connection connection) {
-            TelephonyConnectionService.this.removeConnection(connection);
+            TelephonyConnectionService.this.addTelephonyConference(mImsConference);
         }
         @Override
         public void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
@@ -128,13 +127,6 @@
         }
     };
 
-    private final Connection.Listener mConnectionListener = new Connection.Listener() {
-        @Override
-        public void onConferenceChanged(Connection connection, Conference conference) {
-            mHoldTracker.updateHoldCapability(connection.getPhoneAccountHandle());
-        }
-    };
-
     private final BroadcastReceiver mTtyBroadcastReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -171,6 +163,8 @@
     // destroyed.
     @VisibleForTesting
     public Pair<WeakReference<TelephonyConnection>, Queue<Phone>> mEmergencyRetryCache;
+    private Handler mDdsSwitchHandler;
+    private HandlerThread mHandlerThread;
     private DeviceState mDeviceState = new DeviceState();
 
     /**
@@ -184,6 +178,8 @@
         public boolean isLocked = false;
         // Is the emergency number associated with the slot
         public boolean hasDialedEmergencyNumber = false;
+        //SimState
+        public int simState;
 
         public SlotStatus(int slotId, int capabilities) {
             this.slotId = slotId;
@@ -251,12 +247,20 @@
 
         @Override
         public boolean isCurrentEmergencyNumber(String number) {
-            return mTelephonyManager.isEmergencyNumber(number);
+            try {
+                return mTelephonyManager.isEmergencyNumber(number);
+            } catch (IllegalStateException ise) {
+                return false;
+            }
         }
 
         @Override
         public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList() {
-            return mTelephonyManager.getEmergencyNumberList();
+            try {
+                return mTelephonyManager.getEmergencyNumberList();
+            } catch (IllegalStateException ise) {
+                return new HashMap<>();
+            }
         }
     }
 
@@ -347,6 +351,27 @@
     };
 
     /**
+     * Factory for Handler creation in order to remove flakiness during t esting.
+     */
+    @VisibleForTesting
+    public interface HandlerFactory {
+        HandlerThread createHandlerThread(String name);
+        Handler createHandler(Looper looper);
+    }
+
+    private HandlerFactory mHandlerFactory = new HandlerFactory() {
+        @Override
+        public HandlerThread createHandlerThread(String name) {
+            return new HandlerThread(name);
+        }
+
+        @Override
+        public Handler createHandler(Looper looper) {
+            return new Handler(looper);
+        }
+    };
+
+    /**
      * DisconnectCause depends on PhoneGlobals in order to get a system context. Mock out
      * dependency for testing.
      */
@@ -405,6 +430,14 @@
     }
 
     /**
+     * Overrides radioOnHelper for testing.
+     */
+    @VisibleForTesting
+    public void setRadioOnHelper(RadioOnHelper radioOnHelper) {
+        mRadioOnHelper = radioOnHelper;
+    }
+
+    /**
      * Overrides PhoneSwitcher dependencies for testing.
      */
     @VisibleForTesting
@@ -429,6 +462,14 @@
     }
 
     /**
+     * Override Handler creation factory for testing.
+     */
+    @VisibleForTesting
+    public void setHandlerFactory(HandlerFactory handlerFactory) {
+        mHandlerFactory = handlerFactory;
+    }
+
+    /**
      * Override DisconnectCause creation for testing.
      */
     @VisibleForTesting
@@ -452,10 +493,17 @@
         }
     };
 
+    private final TelephonyConferenceBase.TelephonyConferenceListener mTelephonyConferenceListener =
+            new TelephonyConferenceBase.TelephonyConferenceListener() {
+        @Override
+        public void onConferenceMembershipChanged(Connection connection) {
+            mHoldTracker.updateHoldCapability(connection.getPhoneAccountHandle());
+        }
+    };
+
     @Override
     public void onCreate() {
         super.onCreate();
-        Log.initLogging(this);
         mImsConferenceController = new ImsConferenceController(
                 TelecomAccountRegistry.getInstance(this),
                 mTelephonyConnectionServiceProxy,
@@ -472,14 +520,151 @@
         IntentFilter intentFilter = new IntentFilter(
                 TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED);
         registerReceiver(mTtyBroadcastReceiver, intentFilter);
+        mHandlerThread = mHandlerFactory.createHandlerThread("DdsSwitchHandlerThread");
+        mHandlerThread.start();
+        Looper looper = mHandlerThread.getLooper();
+        mDdsSwitchHandler = mHandlerFactory.createHandler(looper);
     }
 
     @Override
     public boolean onUnbind(Intent intent) {
         unregisterReceiver(mTtyBroadcastReceiver);
+        mHandlerThread.quitSafely();
         return super.onUnbind(intent);
     }
 
+    private Conference placeOutgoingConference(ConnectionRequest request,
+            Connection resultConnection, Phone phone) {
+        if (resultConnection instanceof TelephonyConnection) {
+            return placeOutgoingConference((TelephonyConnection) resultConnection, phone, request);
+        }
+        return null;
+    }
+
+    private Conference placeOutgoingConference(TelephonyConnection conferenceHostConnection,
+            Phone phone, ConnectionRequest request) {
+        updatePhoneAccount(conferenceHostConnection, phone);
+        com.android.internal.telephony.Connection originalConnection = null;
+        try {
+            originalConnection = phone.startConference(
+                    getParticipantsToDial(request.getParticipants()),
+                    new ImsPhone.ImsDialArgs.Builder()
+                    .setVideoState(request.getVideoState())
+                    .setRttTextStream(conferenceHostConnection.getRttTextStream())
+                    .build());
+        } catch (CallStateException e) {
+            Log.e(this, e, "placeOutgoingConference, phone.startConference exception: " + e);
+            handleCallStateException(e, conferenceHostConnection, phone);
+            return null;
+        }
+
+        if (originalConnection == null) {
+            Log.d(this, "placeOutgoingConference, phone.startConference returned null");
+            conferenceHostConnection.setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+                    android.telephony.DisconnectCause.OUTGOING_FAILURE,
+                    "conferenceHostConnection is null",
+                    phone.getPhoneId()));
+            conferenceHostConnection.clearOriginalConnection();
+            conferenceHostConnection.destroy();
+        } else {
+            conferenceHostConnection.setOriginalConnection(originalConnection);
+        }
+
+        return prepareConference(conferenceHostConnection, request.getAccountHandle());
+    }
+
+    Conference prepareConference(Connection conn, PhoneAccountHandle phoneAccountHandle) {
+        if (!(conn instanceof TelephonyConnection)) {
+            Log.w(this, "prepareConference returning NULL conference");
+            return null;
+        }
+
+        TelephonyConnection connection = (TelephonyConnection)conn;
+
+        ImsConference conference = new ImsConference(TelecomAccountRegistry.getInstance(this),
+                mTelephonyConnectionServiceProxy, connection,
+                phoneAccountHandle, () -> true,
+                ImsConferenceController.getCarrierConfig(connection.getPhone()));
+        mImsConferenceController.addConference(conference);
+        conference.setVideoState(connection,
+                connection.getVideoState());
+        conference.setVideoProvider(connection,
+                connection.getVideoProvider());
+        conference.setStatusHints(connection.getStatusHints());
+        conference.setAddress(connection.getAddress(),
+                connection.getAddressPresentation());
+        conference.setCallerDisplayName(connection.getCallerDisplayName(),
+                connection.getCallerDisplayNamePresentation());
+        conference.setParticipants(connection.getParticipants());
+        return conference;
+    }
+
+    @Override
+    public @Nullable Conference onCreateIncomingConference(
+            @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
+            @NonNull final ConnectionRequest request) {
+        Log.i(this, "onCreateIncomingConference, request: " + request);
+        Connection connection = onCreateIncomingConnection(connectionManagerPhoneAccount, request);
+        Log.d(this, "onCreateIncomingConference, connection: %s", connection);
+        if (connection == null) {
+            Log.i(this, "onCreateIncomingConference, implementation returned null connection.");
+            return Conference.createFailedConference(
+                    new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONNECTION"),
+                    request.getAccountHandle());
+        }
+
+        final Phone phone = getPhoneForAccount(request.getAccountHandle(),
+                false /* isEmergencyCall*/, null /* not an emergency call */);
+        if (phone == null) {
+            Log.d(this, "onCreateIncomingConference, phone is null");
+            return Conference.createFailedConference(
+                    DisconnectCauseUtil.toTelecomDisconnectCause(
+                            android.telephony.DisconnectCause.OUT_OF_SERVICE,
+                            "Phone is null"),
+                    request.getAccountHandle());
+        }
+
+        return prepareConference(connection, request.getAccountHandle());
+    }
+
+    @Override
+    public @Nullable Conference onCreateOutgoingConference(
+            @Nullable PhoneAccountHandle connectionManagerPhoneAccount,
+            @NonNull final ConnectionRequest request) {
+        Log.i(this, "onCreateOutgoingConference, request: " + request);
+        Connection connection = onCreateOutgoingConnection(connectionManagerPhoneAccount, request);
+        Log.d(this, "onCreateOutgoingConference, connection: %s", connection);
+        if (connection == null) {
+            Log.i(this, "onCreateOutgoingConference, implementation returned null connection.");
+            return Conference.createFailedConference(
+                    new DisconnectCause(DisconnectCause.ERROR, "IMPL_RETURNED_NULL_CONNECTION"),
+                    request.getAccountHandle());
+        }
+
+        final Phone phone = getPhoneForAccount(request.getAccountHandle(),
+                false /* isEmergencyCall*/, null /* not an emergency call */);
+        if (phone == null) {
+            Log.d(this, "onCreateOutgoingConference, phone is null");
+            return Conference.createFailedConference(
+                    DisconnectCauseUtil.toTelecomDisconnectCause(
+                            android.telephony.DisconnectCause.OUT_OF_SERVICE,
+                            "Phone is null"),
+                    request.getAccountHandle());
+        }
+
+        return placeOutgoingConference(request, connection, phone);
+    }
+
+    private String[] getParticipantsToDial(List<Uri> participants) {
+        String[] participantsToDial = new String[participants.size()];
+        int i = 0;
+        for (Uri participant : participants) {
+           participantsToDial[i] = participant.getSchemeSpecificPart();
+           i++;
+        }
+        return participantsToDial;
+    }
+
     @Override
     public Connection onCreateOutgoingConnection(
             PhoneAccountHandle connectionManagerPhoneAccount,
@@ -487,7 +672,9 @@
         Log.i(this, "onCreateOutgoingConnection, request: " + request);
 
         Uri handle = request.getAddress();
-        if (handle == null) {
+        boolean isAdhocConference = request.isAdhocConferenceCall();
+
+        if (!isAdhocConference && handle == null) {
             Log.d(this, "onCreateOutgoingConnection, handle is null");
             return Connection.createFailedConnection(
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
@@ -590,19 +777,21 @@
         }
         final String numberToDial = number;
 
-
         final boolean isAirplaneModeOn = mDeviceState.isAirplaneModeOn(this);
 
         boolean needToTurnOnRadio = (isEmergencyNumber && (!isRadioOn() || isAirplaneModeOn))
                 || isRadioPowerDownOnBluetooth();
 
+        // Get the right phone object from the account data passed in.
+        final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
+                /* Note: when not an emergency, handle can be null for unknown callers */
+                handle == null ? null : handle.getSchemeSpecificPart());
+
         if (needToTurnOnRadio) {
             final Uri resultHandle = handle;
-            // By default, Connection based on the default Phone, since we need to return to Telecom
-            // now.
-            final int originalPhoneType = mPhoneFactoryProxy.getDefaultPhone().getPhoneType();
+            final int originalPhoneType = phone.getPhoneType();
             final Connection resultConnection = getTelephonyConnection(request, numberToDial,
-                    isEmergencyNumber, resultHandle, PhoneFactory.getDefaultPhone());
+                    isEmergencyNumber, resultHandle, phone);
             if (mRadioOnHelper == null) {
                 mRadioOnHelper = new RadioOnHelper(this);
             }
@@ -610,7 +799,7 @@
                 @Override
                 public void onComplete(RadioOnStateListener listener, boolean isRadioReady) {
                     handleOnComplete(isRadioReady, isEmergencyNumber, resultConnection, request,
-                            numberToDial, resultHandle, originalPhoneType);
+                            numberToDial, resultHandle, originalPhoneType, phone);
                 }
 
                 @Override
@@ -626,17 +815,20 @@
                         // been powered on and isn't in the UNAVAILABLE state, even if it is
                         // reporting the OUT_OF_SERVICE state.
                         return (phone.getState() == PhoneConstants.State.OFFHOOK)
-                            || phone.getServiceState().getState() != ServiceState.STATE_POWER_OFF;
+                            || phone.getServiceStateTracker().isRadioOn();
                     } else {
                         // Wait until we are in service and ready to make calls. This can happen
                         // when we power down the radio on bluetooth to save power on watches or if
                         // it is a test emergency number and we have to wait for the device to move
                         // IN_SERVICE before the call can take place over normal routing.
                         return (phone.getState() == PhoneConstants.State.OFFHOOK)
-                            || serviceState == ServiceState.STATE_IN_SERVICE;
+                                // Do not wait for voice in service on opportunistic SIMs.
+                                || SubscriptionController.getInstance().isOpportunistic(
+                                        phone.getSubId())
+                                || serviceState == ServiceState.STATE_IN_SERVICE;
                     }
                 }
-            });
+            }, isEmergencyNumber && !isTestEmergencyNumber, phone);
             // Return the still unconnected GsmConnection and wait for the Radios to boot before
             // connecting it to the underlying Phone.
             return resultConnection;
@@ -652,25 +844,29 @@
                                 "Add call restricted due to ongoing video call"));
             }
 
-            // Get the right phone object from the account data passed in.
-            final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
-                    /* Note: when not an emergency, handle can be null for unknown callers */
-                    handle == null ? null : handle.getSchemeSpecificPart());
             if (!isEmergencyNumber) {
                 final Connection resultConnection = getTelephonyConnection(request, numberToDial,
                         false, handle, phone);
-                return placeOutgoingConnection(request, resultConnection, phone);
+                if (isAdhocConference) {
+                    if (resultConnection instanceof TelephonyConnection) {
+                        TelephonyConnection conn = (TelephonyConnection)resultConnection;
+                        conn.setParticipants(request.getParticipants());
+                    }
+                    return resultConnection;
+                } else {
+                    return placeOutgoingConnection(request, resultConnection, phone);
+                }
             } else {
                 final Connection resultConnection = getTelephonyConnection(request, numberToDial,
                         true, handle, phone);
-                CompletableFuture<Boolean> phoneFuture = delayDialForDdsSwitch(phone);
-                phoneFuture.whenComplete((result, error) -> {
-                    if (error != null) {
-                        Log.w(this, "onCreateOutgoingConn - delayDialForDdsSwitch exception= "
-                                + error.getMessage());
+                mDdsSwitchHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        boolean result = delayDialForDdsSwitch(phone);
+                        Log.i(this,
+                                "onCreateOutgoingConn - delayDialForDdsSwitch result = " + result);
+                        placeOutgoingConnection(request, resultConnection, phone);
                     }
-                    Log.i(this, "onCreateOutgoingConn - delayDialForDdsSwitch result = " + result);
-                    placeOutgoingConnection(request, resultConnection, phone);
                 });
                 return resultConnection;
             }
@@ -724,40 +920,42 @@
      */
     private void handleOnComplete(boolean isRadioReady, boolean isEmergencyNumber,
             Connection originalConnection, ConnectionRequest request, String numberToDial,
-            Uri handle, int originalPhoneType) {
+            Uri handle, int originalPhoneType, Phone phone) {
         // Make sure the Call has not already been canceled by the user.
         if (originalConnection.getState() == Connection.STATE_DISCONNECTED) {
             Log.i(this, "Call disconnected before the outgoing call was placed. Skipping call "
                     + "placement.");
+            if (isEmergencyNumber) {
+                // If call is already canceled by the user, notify modem to exit emergency call
+                // mode by sending radio on with forEmergencyCall=false.
+                for (Phone curPhone : mPhoneFactoryProxy.getPhones()) {
+                    curPhone.setRadioPower(true, false, false, true);
+                }
+            }
             return;
         }
-        // Get the right phone object since the radio has been turned on successfully.
         if (isRadioReady) {
-            final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
-                    /* Note: when not an emergency, handle can be null for unknown callers */
-                    handle == null ? null : handle.getSchemeSpecificPart());
             if (!isEmergencyNumber) {
                 adjustAndPlaceOutgoingConnection(phone, originalConnection, request, numberToDial,
                         handle, originalPhoneType, false);
             } else {
-                delayDialForDdsSwitch(phone).whenComplete((result, error) -> {
-                    if (error != null) {
-                        Log.w(this, "handleOnComplete - delayDialForDdsSwitch exception= "
-                                + error.getMessage());
+                mDdsSwitchHandler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        boolean result = delayDialForDdsSwitch(phone);
+                        Log.i(this, "handleOnComplete - delayDialForDdsSwitch result = " + result);
+                        adjustAndPlaceOutgoingConnection(phone, originalConnection, request,
+                                numberToDial, handle, originalPhoneType, true);
                     }
-                    Log.i(this, "handleOnComplete - delayDialForDdsSwitch result = " + result);
-                    adjustAndPlaceOutgoingConnection(phone, originalConnection, request,
-                            numberToDial, handle, originalPhoneType, true);
                 });
             }
 
         } else {
             Log.w(this, "onCreateOutgoingConnection, failed to turn on radio");
-            originalConnection.setDisconnected(
-                     mDisconnectCauseFactory.toTelecomDisconnectCause(
+            closeOrDestroyConnection(originalConnection,
+                    mDisconnectCauseFactory.toTelecomDisconnectCause(
                             android.telephony.DisconnectCause.POWER_OFF,
                             "Failed to turn on radio."));
-            originalConnection.destroy();
         }
     }
 
@@ -778,17 +976,17 @@
             // TODO: Switch out the underlying connection instead of creating a new
             // one and causing UI Jank.
             boolean noActiveSimCard = SubscriptionController.getInstance()
-                    .getActiveSubInfoCount(phone.getContext().getOpPackageName()) == 0;
+                    .getActiveSubInfoCount(phone.getContext().getOpPackageName(),
+                            phone.getContext().getAttributionTag()) == 0;
             // If there's no active sim card and the device is in emergency mode, use E account.
             addExistingConnection(mPhoneUtilsProxy.makePstnPhoneAccountHandleWithPrefix(
                     phone, "", isEmergencyNumber && noActiveSimCard), repConnection);
             // Remove the old connection from Telecom after.
-            connectionToEvaluate.setDisconnected(
+            closeOrDestroyConnection(connectionToEvaluate,
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
                             android.telephony.DisconnectCause.OUTGOING_CANCELED,
                             "Reconnecting outgoing Emergency Call.",
                             phone.getPhoneId()));
-            connectionToEvaluate.destroy();
         } else {
             placeOutgoingConnection((TelephonyConnection) connectionToEvaluate, phone, request);
         }
@@ -858,7 +1056,7 @@
             int dataNetType = phone.getServiceState().getDataNetworkType();
             if (dataNetType == TelephonyManager.NETWORK_TYPE_LTE ||
                     dataNetType == TelephonyManager.NETWORK_TYPE_LTE_CA) {
-                state = phone.getServiceState().getDataRegState();
+                state = phone.getServiceState().getDataRegistrationState();
             }
         }
 
@@ -921,8 +1119,7 @@
         final boolean isTtyModeEnabled = mDeviceState.isTtyModeEnabled(this);
         if (VideoProfile.isVideo(request.getVideoState()) && isTtyModeEnabled
                 && !isEmergencyNumber) {
-            return Connection.createFailedConnection(
-                    mDisconnectCauseFactory.toTelecomDisconnectCause(
+            return Connection.createFailedConnection(mDisconnectCauseFactory.toTelecomDisconnectCause(
                     android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED,
                     null, phone.getPhoneId()));
         }
@@ -945,7 +1142,7 @@
 
         final TelephonyConnection connection =
                 createConnectionFor(phone, null, true /* isOutgoing */, request.getAccountHandle(),
-                        request.getTelecomCallId(), request.getAddress(), request.getVideoState());
+                        request.getTelecomCallId(), request.isAdhocConferenceCall());
         if (connection == null) {
             return Connection.createFailedConnection(
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
@@ -954,10 +1151,12 @@
                             phone.getPhoneId()));
         }
         connection.setAddress(handle, PhoneConstants.PRESENTATION_ALLOWED);
-        connection.setInitializing();
-        connection.setVideoState(request.getVideoState());
+        connection.setTelephonyConnectionInitializing();
+        connection.setTelephonyVideoState(request.getVideoState());
         connection.setRttTextStream(request.getRttTextStream());
         connection.setTtyEnabled(isTtyModeEnabled);
+        connection.setIsAdhocConferenceCall(request.isAdhocConferenceCall());
+        connection.setParticipants(request.getParticipants());
         return connection;
     }
 
@@ -989,11 +1188,26 @@
         Call call = phone.getRingingCall();
         if (!call.getState().isRinging()) {
             Log.i(this, "onCreateIncomingConnection, no ringing call");
-            return Connection.createFailedConnection(
+            Connection connection = Connection.createFailedConnection(
                     mDisconnectCauseFactory.toTelecomDisconnectCause(
                             android.telephony.DisconnectCause.INCOMING_MISSED,
                             "Found no ringing call",
                             phone.getPhoneId()));
+            Bundle extras = request.getExtras();
+
+            long time = extras.getLong(TelecomManager.EXTRA_CALL_CREATED_EPOCH_TIME_MILLIS);
+            if (time != 0) {
+                Log.i(this, "onCreateIncomingConnection. Set connect time info.");
+                connection.setConnectTimeMillis(time);
+            }
+
+            Uri address = extras.getParcelable(TelecomManager.EXTRA_INCOMING_CALL_ADDRESS);
+            if (address != null) {
+                Log.i(this, "onCreateIncomingConnection. Set caller id info.");
+                connection.setAddress(address, TelecomManager.PRESENTATION_ALLOWED);
+            }
+
+            return connection;
         }
 
         com.android.internal.telephony.Connection originalConnection =
@@ -1004,19 +1218,15 @@
             return Connection.createCanceledConnection();
         }
 
-        // We should rely on the originalConnection to get the video state.  The request coming
-        // from Telecom does not know the video state of the incoming call.
-        int videoState = originalConnection != null ? originalConnection.getVideoState() :
-                VideoProfile.STATE_AUDIO_ONLY;
-
         TelephonyConnection connection =
                 createConnectionFor(phone, originalConnection, false /* isOutgoing */,
                         request.getAccountHandle(), request.getTelecomCallId(),
-                        request.getAddress(), videoState);
+                        request.isAdhocConferenceCall());
         handleIncomingRtt(request, originalConnection);
         if (connection == null) {
             return Connection.createCanceledConnection();
         } else {
+            connection.setTtyEnabled(mDeviceState.isTtyModeEnabled(getApplicationContext()));
             return connection;
         }
     }
@@ -1069,6 +1279,84 @@
     }
 
     @Override
+    public void onCreateIncomingConnectionFailed(PhoneAccountHandle connectionManagerPhoneAccount,
+            ConnectionRequest request) {
+        Log.i(this, "onCreateIncomingConnectionFailed, request: " + request);
+        // If there is an incoming emergency CDMA Call (while the phone is in ECBM w/ No SIM),
+        // make sure the PhoneAccount lookup retrieves the default Emergency Phone.
+        PhoneAccountHandle accountHandle = request.getAccountHandle();
+        boolean isEmergency = false;
+        if (accountHandle != null && PhoneUtils.EMERGENCY_ACCOUNT_HANDLE_ID.equals(
+                accountHandle.getId())) {
+            Log.w(this, "onCreateIncomingConnectionFailed:Emergency call failed... ");
+            isEmergency = true;
+        }
+        Phone phone = getPhoneForAccount(accountHandle, isEmergency,
+                /* Note: when not an emergency, handle can be null for unknown callers */
+                request.getAddress() == null ? null : request.getAddress().getSchemeSpecificPart());
+        if (phone == null) {
+            Log.w(this, "onCreateIncomingConnectionFailed: can not find corresponding phone.");
+            return;
+        }
+
+        Call call = phone.getRingingCall();
+        if (!call.getState().isRinging()) {
+            Log.w(this, "onCreateIncomingConnectionFailed, no ringing call found for failed call");
+            return;
+        }
+
+        com.android.internal.telephony.Connection originalConnection =
+                call.getState() == Call.State.WAITING
+                        ? call.getLatestConnection() : call.getEarliestConnection();
+        TelephonyConnection knownConnection =
+                getConnectionForOriginalConnection(originalConnection);
+        if (knownConnection != null) {
+            Log.w(this, "onCreateIncomingConnectionFailed, original connection already registered."
+                    + " Hanging it up.");
+            knownConnection.onAbort();
+            return;
+        }
+
+        TelephonyConnection connection =
+                createConnectionFor(phone, originalConnection, false /* isOutgoing */,
+                        request.getAccountHandle(), request.getTelecomCallId());
+        if (connection == null) {
+            Log.w(this, "onCreateIncomingConnectionFailed, TelephonyConnection created as null, "
+                    + "ignoring.");
+            return;
+        }
+
+        // We have to do all of this work because in some cases, hanging up the call maps to
+        // different underlying signaling (CDMA), which is already encapsulated in
+        // TelephonyConnection.
+        connection.onReject();
+        connection.close();
+    }
+
+    /**
+     * Called by the {@link ConnectionService} when a newly created {@link Conference} has been
+     * added to the {@link ConnectionService} and sent to Telecom.  Here it is safe to send
+     * connection events.
+     *
+     * @param conference the {@link Conference}.
+     */
+    @Override
+    public void onCreateConferenceComplete(Conference conference) {
+        if (conference instanceof ImsConference) {
+            ImsConference imsConference = (ImsConference)conference;
+            TelephonyConnection telephonyConnection =
+                    (TelephonyConnection)(imsConference.getConferenceHost());
+            maybeSendInternationalCallEvent(telephonyConnection);
+        }
+    }
+
+    public void onCreateIncomingConferenceFailed(PhoneAccountHandle connectionManagerPhoneAccount,
+            ConnectionRequest request) {
+        Log.i(this, "onCreateIncomingConferenceFailed, request: " + request);
+        onCreateIncomingConnectionFailed(connectionManagerPhoneAccount, request);
+    }
+
+    @Override
     public void triggerConferenceRecalculate() {
         if (mTelephonyConferenceController.shouldRecalculate()) {
             mTelephonyConferenceController.recalculate();
@@ -1167,8 +1455,8 @@
         TelephonyConnection connection =
                 createConnectionFor(phone, unknownConnection,
                         !unknownConnection.isIncoming() /* isOutgoing */,
-                        request.getAccountHandle(), request.getTelecomCallId(),
-                        request.getAddress(), videoState);
+                        request.getAccountHandle(), request.getTelecomCallId()
+                );
 
         if (connection == null) {
             return Connection.createCanceledConnection();
@@ -1212,7 +1500,6 @@
     @Override
     public void onConnectionAdded(Connection connection) {
         if (connection instanceof Holdable && !isExternalConnection(connection)) {
-            connection.addConnectionListener(mConnectionListener);
             mHoldTracker.addHoldable(
                     connection.getPhoneAccountHandle(), (Holdable) connection);
         }
@@ -1343,9 +1630,7 @@
         } else {
             // We have run out of Phones to use. Disconnect the call and destroy the connection.
             Log.i(this, "retryOutgoingOriginalConnection, no more Phones to use. Disconnecting.");
-            c.setDisconnected(new DisconnectCause(DisconnectCause.ERROR));
-            c.clearOriginalConnection();
-            c.destroy();
+            closeOrDestroyConnection(c, new DisconnectCause(DisconnectCause.ERROR));
         }
     }
 
@@ -1365,11 +1650,54 @@
 
     private void placeOutgoingConnection(
             TelephonyConnection connection, Phone phone, int videoState, Bundle extras) {
-        String number = connection.getAddress().getSchemeSpecificPart();
+
+        String number = (connection.getAddress() != null)
+                ? connection.getAddress().getSchemeSpecificPart()
+                : "";
 
         com.android.internal.telephony.Connection originalConnection = null;
         try {
             if (phone != null) {
+                EmergencyNumber emergencyNumber =
+                        phone.getEmergencyNumberTracker().getEmergencyNumber(number);
+                if (emergencyNumber != null) {
+                    phone.notifyOutgoingEmergencyCall(emergencyNumber);
+                    if (!getAllConnections().isEmpty()) {
+                        if (!shouldHoldForEmergencyCall(phone)) {
+                            // If we do not support holding ongoing calls for an outgoing
+                            // emergency call, disconnect the ongoing calls.
+                            for (Connection c : getAllConnections()) {
+                                if (!c.equals(connection)
+                                        && c.getState() != Connection.STATE_DISCONNECTED
+                                        && c instanceof TelephonyConnection) {
+                                    ((TelephonyConnection) c).hangup(
+                                            android.telephony.DisconnectCause
+                                                    .OUTGOING_EMERGENCY_CALL_PLACED);
+                                }
+                            }
+                            for (Conference c : getAllConferences()) {
+                                if (c.getState() != Connection.STATE_DISCONNECTED
+                                        && c instanceof Conference) {
+                                    ((Conference) c).onDisconnect();
+                                }
+                            }
+                        } else if (!isVideoCallHoldAllowed(phone)) {
+                            // If we do not support holding ongoing video call for an outgoing
+                            // emergency call, disconnect the ongoing video call.
+                            for (Connection c : getAllConnections()) {
+                                if (!c.equals(connection)
+                                        && c.getState() == Connection.STATE_ACTIVE
+                                        && VideoProfile.isVideo(c.getVideoState())
+                                        && c instanceof TelephonyConnection) {
+                                    ((TelephonyConnection) c).hangup(
+                                            android.telephony.DisconnectCause
+                                                    .OUTGOING_EMERGENCY_CALL_PLACED);
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                }
                 originalConnection = phone.dial(number, new ImsPhone.ImsDialArgs.Builder()
                         .setVideoState(videoState)
                         .setIntentExtras(extras)
@@ -1378,34 +1706,7 @@
             }
         } catch (CallStateException e) {
             Log.e(this, e, "placeOutgoingConnection, phone.dial exception: " + e);
-            int cause = android.telephony.DisconnectCause.OUTGOING_FAILURE;
-            switch (e.getError()) {
-                case CallStateException.ERROR_OUT_OF_SERVICE:
-                    cause = android.telephony.DisconnectCause.OUT_OF_SERVICE;
-                    break;
-                case CallStateException.ERROR_POWER_OFF:
-                    cause = android.telephony.DisconnectCause.POWER_OFF;
-                    break;
-                case CallStateException.ERROR_ALREADY_DIALING:
-                    cause = android.telephony.DisconnectCause.ALREADY_DIALING;
-                    break;
-                case CallStateException.ERROR_CALL_RINGING:
-                    cause = android.telephony.DisconnectCause.CANT_CALL_WHILE_RINGING;
-                    break;
-                case CallStateException.ERROR_CALLING_DISABLED:
-                    cause = android.telephony.DisconnectCause.CALLING_DISABLED;
-                    break;
-                case CallStateException.ERROR_TOO_MANY_CALLS:
-                    cause = android.telephony.DisconnectCause.TOO_MANY_ONGOING_CALLS;
-                    break;
-                case CallStateException.ERROR_OTASP_PROVISIONING_IN_PROCESS:
-                    cause = android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS;
-                    break;
-            }
-            connection.setDisconnected(mDisconnectCauseFactory.toTelecomDisconnectCause(
-                    cause, e.getMessage(), phone.getPhoneId()));
-            connection.clearOriginalConnection();
-            connection.destroy();
+            handleCallStateException(e, connection, phone);
             return;
         }
 
@@ -1421,40 +1722,109 @@
                 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                         Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
                 if (SubscriptionManager.isValidSubscriptionId(subId)) {
-                    intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId);
+                    SubscriptionManager.putSubscriptionIdExtra(intent, subId);
                 }
                 startActivity(intent);
             }
             Log.d(this, "placeOutgoingConnection, phone.dial returned null");
-            connection.setDisconnected(mDisconnectCauseFactory.toTelecomDisconnectCause(
-                    telephonyDisconnectCause, "Connection is null", phone.getPhoneId()));
-            connection.clearOriginalConnection();
-            connection.destroy();
+            connection.setTelephonyConnectionDisconnected(
+                    mDisconnectCauseFactory.toTelecomDisconnectCause(telephonyDisconnectCause,
+                            "Connection is null", phone.getPhoneId()));
+            connection.close();
         } else {
             connection.setOriginalConnection(originalConnection);
         }
     }
 
+    private boolean isVideoCallHoldAllowed(Phone phone) {
+         CarrierConfigManager cfgManager = (CarrierConfigManager)
+                phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (cfgManager == null) {
+            // For some reason CarrierConfigManager is unavailable, return default
+            Log.w(this, "isVideoCallHoldAllowed: couldn't get CarrierConfigManager");
+            return true;
+        }
+        return cfgManager.getConfigForSubId(phone.getSubId()).getBoolean(
+                CarrierConfigManager.KEY_ALLOW_HOLD_VIDEO_CALL_BOOL, true);
+    }
+
+    private boolean shouldHoldForEmergencyCall(Phone phone) {
+        CarrierConfigManager cfgManager = (CarrierConfigManager)
+                phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (cfgManager == null) {
+            // For some reason CarrierConfigManager is unavailable, return default
+            Log.w(this, "shouldHoldForEmergencyCall: couldn't get CarrierConfigManager");
+            return true;
+        }
+        return cfgManager.getConfigForSubId(phone.getSubId()).getBoolean(
+                CarrierConfigManager.KEY_ALLOW_HOLD_CALL_DURING_EMERGENCY_BOOL, true);
+    }
+
+    private void handleCallStateException(CallStateException e, TelephonyConnection connection,
+            Phone phone) {
+        int cause = android.telephony.DisconnectCause.OUTGOING_FAILURE;
+        switch (e.getError()) {
+            case CallStateException.ERROR_OUT_OF_SERVICE:
+                cause = android.telephony.DisconnectCause.OUT_OF_SERVICE;
+                break;
+            case CallStateException.ERROR_POWER_OFF:
+                 cause = android.telephony.DisconnectCause.POWER_OFF;
+                 break;
+            case CallStateException.ERROR_ALREADY_DIALING:
+                 cause = android.telephony.DisconnectCause.ALREADY_DIALING;
+                 break;
+            case CallStateException.ERROR_CALL_RINGING:
+                 cause = android.telephony.DisconnectCause.CANT_CALL_WHILE_RINGING;
+                 break;
+            case CallStateException.ERROR_CALLING_DISABLED:
+                 cause = android.telephony.DisconnectCause.CALLING_DISABLED;
+                 break;
+            case CallStateException.ERROR_TOO_MANY_CALLS:
+                 cause = android.telephony.DisconnectCause.TOO_MANY_ONGOING_CALLS;
+                 break;
+            case CallStateException.ERROR_OTASP_PROVISIONING_IN_PROCESS:
+                 cause = android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS;
+                 break;
+        }
+        connection.setTelephonyConnectionDisconnected(
+                DisconnectCauseUtil.toTelecomDisconnectCause(cause, e.getMessage(),
+                        phone.getPhoneId()));
+        connection.close();
+    }
+
+    private TelephonyConnection createConnectionFor(
+            Phone phone,
+            com.android.internal.telephony.Connection originalConnection,
+            boolean isOutgoing,
+            PhoneAccountHandle phoneAccountHandle,
+            String telecomCallId) {
+            return createConnectionFor(phone, originalConnection, isOutgoing, phoneAccountHandle,
+                    telecomCallId, false);
+    }
+
     private TelephonyConnection createConnectionFor(
             Phone phone,
             com.android.internal.telephony.Connection originalConnection,
             boolean isOutgoing,
             PhoneAccountHandle phoneAccountHandle,
             String telecomCallId,
-            Uri address,
-            int videoState) {
+            boolean isAdhocConference) {
         TelephonyConnection returnConnection = null;
         int phoneType = phone.getPhoneType();
+        int callDirection = isOutgoing ? android.telecom.Call.Details.DIRECTION_OUTGOING
+                : android.telecom.Call.Details.DIRECTION_INCOMING;
         if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
-            returnConnection = new GsmConnection(originalConnection, telecomCallId, isOutgoing);
+            returnConnection = new GsmConnection(originalConnection, telecomCallId, callDirection);
         } else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
             boolean allowsMute = allowsMute(phone);
             returnConnection = new CdmaConnection(originalConnection, mEmergencyTonePlayer,
-                    allowsMute, isOutgoing, telecomCallId);
+                    allowsMute, callDirection, telecomCallId);
         }
         if (returnConnection != null) {
-            // Listen to Telephony specific callbacks from the connection
-            returnConnection.addTelephonyConnectionListener(mTelephonyConnectionListener);
+            if (!isAdhocConference) {
+                // Listen to Telephony specific callbacks from the connection
+                returnConnection.addTelephonyConnectionListener(mTelephonyConnectionListener);
+            }
             returnConnection.setVideoPauseSupported(
                     TelecomAccountRegistry.getInstance(this).isVideoPauseSupported(
                             phoneAccountHandle));
@@ -1464,21 +1834,27 @@
             returnConnection.setShowPreciseFailedCause(
                     TelecomAccountRegistry.getInstance(this).isShowPreciseFailedCause(
                             phoneAccountHandle));
+            returnConnection.setTelephonyConnectionService(this);
         }
         return returnConnection;
     }
 
     private boolean isOriginalConnectionKnown(
             com.android.internal.telephony.Connection originalConnection) {
+        return (getConnectionForOriginalConnection(originalConnection) != null);
+    }
+
+    private TelephonyConnection getConnectionForOriginalConnection(
+            com.android.internal.telephony.Connection originalConnection) {
         for (Connection connection : getAllConnections()) {
             if (connection instanceof TelephonyConnection) {
                 TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
                 if (telephonyConnection.getOriginalConnection() == originalConnection) {
-                    return true;
+                    return telephonyConnection;
                 }
             }
         }
-        return false;
+        return null;
     }
 
     /**
@@ -1511,13 +1887,22 @@
         return chosenPhone;
     }
 
-    private CompletableFuture<Boolean> delayDialForDdsSwitch(Phone phone) {
+    /**
+     * If needed, block until the the default data is is switched for outgoing emergency call, or
+     * timeout expires.
+     */
+    private boolean delayDialForDdsSwitch(Phone phone) {
         if (phone == null) {
-            return CompletableFuture.completedFuture(Boolean.TRUE);
+            return true;
         }
-        return possiblyOverrideDefaultDataForEmergencyCall(phone)
-                .completeOnTimeout(false, DEFAULT_DATA_SWITCH_TIMEOUT_MS,
-                        TimeUnit.MILLISECONDS);
+        try {
+            return possiblyOverrideDefaultDataForEmergencyCall(phone).get(
+                    DEFAULT_DATA_SWITCH_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+        } catch (Exception e) {
+            Log.w(this, "delayDialForDdsSwitch - exception= "
+                    + e.getMessage());
+            return false;
+        }
     }
 
     /**
@@ -1721,6 +2106,8 @@
             // 4)
             // Report Slot's PIN/PUK lock status for sorting later.
             int simState = mSubscriptionManagerProxy.getSimStateForSlotIdx(i);
+            // Record SimState.
+            status.simState = simState;
             if (simState == TelephonyManager.SIM_STATE_PIN_REQUIRED ||
                     simState == TelephonyManager.SIM_STATE_PUK_REQUIRED) {
                 status.isLocked = true;
@@ -1766,6 +2153,15 @@
                         if (o1.hasDialedEmergencyNumber && !o2.hasDialedEmergencyNumber) {
                             return 1;
                         }
+                        // Sort by non-absent SIM.
+                        if (o1.simState == TelephonyManager.SIM_STATE_ABSENT
+                                && o2.simState != TelephonyManager.SIM_STATE_ABSENT) {
+                            return -1;
+                        }
+                        if (o2.simState == TelephonyManager.SIM_STATE_ABSENT
+                                && o1.simState != TelephonyManager.SIM_STATE_ABSENT) {
+                            return 1;
+                        }
                         // First start by seeing if either of the phone slots are locked. If they
                         // are, then sort by non-locked SIM first. If they are both locked, sort
                         // by capability instead.
@@ -1776,30 +2172,24 @@
                             return 1;
                         }
                         // sort by number of RadioAccessFamily Capabilities.
-                        int compare = Integer.bitCount(o1.capabilities) -
-                                Integer.bitCount(o2.capabilities);
+                        int compare = RadioAccessFamily.compare(o1.capabilities, o2.capabilities);
                         if (compare == 0) {
-                            // Sort by highest RAF Capability if the number is the same.
-                            compare = RadioAccessFamily.getHighestRafCapability(o1.capabilities) -
-                                    RadioAccessFamily.getHighestRafCapability(o2.capabilities);
-                            if (compare == 0) {
-                                if (firstOccupiedSlot != null) {
-                                    // If the RAF capability is the same, choose based on whether or
-                                    // not any of the slots are occupied with a SIM card (if both
-                                    // are, always choose the first).
-                                    if (o1.slotId == firstOccupiedSlot.getPhoneId()) {
-                                        return 1;
-                                    } else if (o2.slotId == firstOccupiedSlot.getPhoneId()) {
-                                        return -1;
-                                    }
-                                } else {
-                                    // No slots have SIMs detected in them, so weight the default
-                                    // Phone Id greater than the others.
-                                    if (o1.slotId == defaultPhoneId) {
-                                        return 1;
-                                    } else if (o2.slotId == defaultPhoneId) {
-                                        return -1;
-                                    }
+                            if (firstOccupiedSlot != null) {
+                                // If the RAF capability is the same, choose based on whether or
+                                // not any of the slots are occupied with a SIM card (if both
+                                // are, always choose the first).
+                                if (o1.slotId == firstOccupiedSlot.getPhoneId()) {
+                                    return 1;
+                                } else if (o2.slotId == firstOccupiedSlot.getPhoneId()) {
+                                    return -1;
+                                }
+                            } else {
+                                // No slots have SIMs detected in them, so weight the default
+                                // Phone Id greater than the others.
+                                if (o1.slotId == defaultPhoneId) {
+                                    return 1;
+                                } else if (o2.slotId == defaultPhoneId) {
+                                    return -1;
                                 }
                             }
                         }
@@ -1843,13 +2233,8 @@
         return true;
     }
 
-    @Override
-    public void removeConnection(Connection connection) {
-        super.removeConnection(connection);
-        if (connection instanceof TelephonyConnection) {
-            TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
-            telephonyConnection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
-        }
+    TelephonyConnection.TelephonyConnectionListener getTelephonyConnectionListener() {
+        return mTelephonyConnectionListener;
     }
 
     /**
@@ -1909,7 +2294,8 @@
 
                     // If the CDMA conference has not been merged, add-call will not work, so fail
                     // this request to add a call.
-                    if (cdmaConf.can(Connection.CAPABILITY_MERGE_CONFERENCE)) {
+                    if ((cdmaConf.getConnectionCapabilities()
+                            & Connection.CAPABILITY_MERGE_CONFERENCE) != 0) {
                         return Connection.createFailedConnection(new DisconnectCause(
                                     DisconnectCause.RESTRICTED,
                                     null,
@@ -1943,7 +2329,7 @@
                 // are potentially placing an international call on WFC.
                 Log.i(this, "placeOutgoingConnection - sending international call on WFC " +
                         "confirmation event");
-                telephonyConnection.sendConnectionEvent(
+                telephonyConnection.sendTelephonyConnectionEvent(
                         TelephonyManager.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC, null);
             }
         }
@@ -1959,4 +2345,26 @@
             }
         }
     }
+
+    private void closeOrDestroyConnection(Connection connection, DisconnectCause cause) {
+        if (connection instanceof TelephonyConnection) {
+            TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
+            telephonyConnection.setTelephonyConnectionDisconnected(cause);
+            // Close destroys the connection and notifies TelephonyConnection listeners.
+            telephonyConnection.close();
+        } else {
+            connection.setDisconnected(cause);
+            connection.destroy();
+        }
+    }
+
+    /**
+     * Adds a {@link Conference} to the telephony ConnectionService and registers a listener for
+     * changes to the conference.  Should be used instead of {@link #addConference(Conference)}.
+     * @param conference The conference.
+     */
+    public void addTelephonyConference(@NonNull TelephonyConferenceBase conference) {
+        addConference(conference);
+        conference.addTelephonyConferenceListener(mTelephonyConferenceListener);
+    }
 }
diff --git a/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java b/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java
index 1ced34a..6c29bd2 100644
--- a/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java
+++ b/src/com/android/services/telephony/TelephonyConnectionServiceProxy.java
@@ -30,7 +30,6 @@
     Collection<Connection> getAllConnections();
     void addConference(TelephonyConference mTelephonyConference);
     void addConference(ImsConference mImsConference);
-    void removeConnection(Connection connection);
     void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
             Connection connection);
     void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
diff --git a/src/com/android/services/telephony/rcs/RcsFeatureController.java b/src/com/android/services/telephony/rcs/RcsFeatureController.java
new file mode 100644
index 0000000..5094c57
--- /dev/null
+++ b/src/com/android/services/telephony/rcs/RcsFeatureController.java
@@ -0,0 +1,443 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import android.annotation.AnyThread;
+import android.content.Context;
+import android.net.Uri;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsRcsManager;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.ArrayMap;
+import android.util.Log;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.IFeatureConnector;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper;
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.function.Consumer;
+
+/**
+ * Contains the RCS feature implementations that are associated with this slot's RcsFeature.
+ */
+@AnyThread
+public class RcsFeatureController {
+    private static final String LOG_TAG = "RcsFeatureController";
+
+    /**
+     * Interface used by RCS features that need to listen for when the associated service has been
+     * connected.
+     */
+    public interface Feature {
+        /**
+         * The RcsFeature has been connected to the framework and is ready.
+         */
+        void onRcsConnected(RcsFeatureManager manager);
+
+        /**
+         * The framework has lost the binding to the RcsFeature or it is in the process of changing.
+         */
+        void onRcsDisconnected();
+
+        /**
+         * The subscription associated with the slot this controller is bound to has changed or its
+         * carrier configuration has changed.
+         */
+        void onAssociatedSubscriptionUpdated(int subId);
+
+        /**
+         * Called when the feature should be destroyed.
+         */
+        void onDestroy();
+    }
+
+    /**
+     * Used to inject FeatureConnector instances for testing.
+     */
+    @VisibleForTesting
+    public interface FeatureConnectorFactory<T extends IFeatureConnector> {
+        /**
+         * @return a {@link FeatureConnector} associated for the given {@link IFeatureConnector}
+         * and slot id.
+         */
+        FeatureConnector<T> create(Context context, int slotId,
+                FeatureConnector.Listener<T> listener, Executor executor, String tag);
+    }
+
+    /**
+     * Used to inject ImsRegistrationCallbackHelper instances for testing.
+     */
+    @VisibleForTesting
+    public interface RegistrationHelperFactory {
+        /**
+         * @return an {@link ImsRegistrationCallbackHelper}, which helps manage IMS registration
+         * state.
+         */
+        ImsRegistrationCallbackHelper create(
+                ImsRegistrationCallbackHelper.ImsRegistrationUpdate cb, Executor executor);
+    }
+
+    private FeatureConnectorFactory<RcsFeatureManager> mFeatureFactory = FeatureConnector::new;
+    private RegistrationHelperFactory mRegistrationHelperFactory =
+            ImsRegistrationCallbackHelper::new;
+
+    private final Map<Class<?>, Feature> mFeatures = new ArrayMap<>();
+    private final Context mContext;
+    private final ImsRegistrationCallbackHelper mImsRcsRegistrationHelper;
+    private final int mSlotId;
+    private final Object mLock = new Object();
+    private FeatureConnector<RcsFeatureManager> mFeatureConnector;
+    private RcsFeatureManager mFeatureManager;
+
+    private FeatureConnector.Listener<RcsFeatureManager> mFeatureConnectorListener =
+            new FeatureConnector.Listener<RcsFeatureManager>() {
+                @Override
+                public RcsFeatureManager getFeatureManager() {
+                    return new RcsFeatureManager(mContext, mSlotId);
+                }
+
+                @Override
+                public void connectionReady(RcsFeatureManager manager)
+                        throws com.android.ims.ImsException {
+                    if (manager == null) {
+                        logw("connectionReady returned null RcsFeatureManager");
+                        return;
+                    }
+                    try {
+                        // May throw ImsException if for some reason the connection to the
+                        // ImsService is gone.
+                        setupConnectionToService(manager);
+                    } catch (ImsException e) {
+                        // Use deprecated Exception for compatibility.
+                        throw new com.android.ims.ImsException(e.getMessage(),
+                                ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
+                    }
+                    updateConnectionStatus(manager);
+                }
+
+                @Override
+                public void connectionUnavailable() {
+                    // Call before disabling connection to manager.
+                    removeConnectionToService();
+                    updateConnectionStatus(null /*manager*/);
+                }
+            };
+
+    private ImsRegistrationCallbackHelper.ImsRegistrationUpdate mRcsRegistrationUpdate = new
+            ImsRegistrationCallbackHelper.ImsRegistrationUpdate() {
+                @Override
+                public void handleImsRegistered(int imsRadioTech) {
+                }
+
+                @Override
+                public void handleImsRegistering(int imsRadioTech) {
+                }
+
+                @Override
+                public void handleImsUnregistered(ImsReasonInfo imsReasonInfo) {
+                }
+
+                @Override
+                public void handleImsSubscriberAssociatedUriChanged(Uri[] uris) {
+                }
+            };
+
+    public RcsFeatureController(Context context, int slotId) {
+        mContext = context;
+        mSlotId = slotId;
+        mImsRcsRegistrationHelper = mRegistrationHelperFactory.create(mRcsRegistrationUpdate,
+                mContext.getMainExecutor());
+    }
+
+    /**
+     * Should only be used to inject registration helpers for testing.
+     */
+    @VisibleForTesting
+    public RcsFeatureController(Context context, int slotId, RegistrationHelperFactory f) {
+        mContext = context;
+        mSlotId = slotId;
+        mRegistrationHelperFactory = f;
+        mImsRcsRegistrationHelper = mRegistrationHelperFactory.create(mRcsRegistrationUpdate,
+                mContext.getMainExecutor());
+    }
+
+    /**
+     * This method should be called after constructing an instance of this class to start the
+     * connection process to the associated RcsFeature.
+     */
+    public void connect() {
+        synchronized (mLock) {
+            if (mFeatureConnector != null) return;
+            mFeatureConnector = mFeatureFactory.create(mContext, mSlotId, mFeatureConnectorListener,
+                    mContext.getMainExecutor(), LOG_TAG);
+            mFeatureConnector.connect();
+        }
+    }
+
+    /**
+     * Adds a {@link Feature} to be tracked by this FeatureController.
+     */
+    public <T extends Feature> void addFeature(T connector, Class<T> clazz) {
+        synchronized (mLock) {
+            mFeatures.put(clazz, connector);
+        }
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            connector.onRcsConnected(manager);
+        } else {
+            connector.onRcsDisconnected();
+        }
+    }
+
+    /**
+     * @return The RCS feature implementation tracked by this controller.
+     */
+    @SuppressWarnings("unchecked")
+    public <T> T getFeature(Class<T> clazz) {
+        synchronized (mLock) {
+            return (T) mFeatures.get(clazz);
+        }
+    }
+
+    /**
+     * Removes the feature associated with this class.
+     */
+    public <T> void removeFeature(Class<T> clazz) {
+        synchronized (mLock) {
+            RcsFeatureController.Feature feature = mFeatures.remove(clazz);
+            feature.onDestroy();
+        }
+    }
+
+    /**
+     * @return true if this controller has features it is actively tracking.
+     */
+    public boolean hasActiveFeatures() {
+        synchronized (mLock) {
+            return mFeatures.size() > 0;
+        }
+    }
+
+    /**
+     * Update the subscription associated with this controller.
+     */
+    public void updateAssociatedSubscription(int newSubId) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            try {
+                manager.updateCapabilities();
+            } catch (ImsException e) {
+                Log.w(LOG_TAG, "associatedSubscriptionChanged failed:" + e);
+            }
+        }
+        synchronized (mLock) {
+            for (Feature c : mFeatures.values()) {
+                c.onAssociatedSubscriptionUpdated(newSubId);
+            }
+        }
+    }
+
+    /**
+     * Call before this controller is destroyed to tear down associated features.
+     */
+    public void destroy() {
+        synchronized (mLock) {
+            Log.i(LOG_TAG, "destroy: slotId=" + mSlotId);
+            if (mFeatureConnector != null) {
+                mFeatureConnector.disconnect();
+            }
+            for (Feature c : mFeatures.values()) {
+                c.onRcsDisconnected();
+                c.onDestroy();
+            }
+            mFeatures.clear();
+        }
+    }
+
+    @VisibleForTesting
+    public void setFeatureConnectorFactory(FeatureConnectorFactory factory) {
+        mFeatureFactory = factory;
+    }
+
+    /**
+     * Add a {@link RegistrationManager.RegistrationCallback} callback that gets called when IMS
+     * registration has changed for a specific subscription.
+     */
+    public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback callback)
+            throws ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        manager.registerImsRegistrationCallback(subId, callback);
+    }
+
+    /**
+     * Removes a previously registered {@link RegistrationManager.RegistrationCallback} callback
+     * that is associated with a specific subscription.
+     */
+    public void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback callback) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.unregisterImsRegistrationCallback(subId, callback);
+        }
+    }
+
+    /**
+     * Register an {@link ImsRcsManager.AvailabilityCallback} with the associated RcsFeature,
+     * which will provide availability updates.
+     */
+    public void registerRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback)
+            throws ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        manager.registerRcsAvailabilityCallback(subId, callback);
+    }
+
+    /**
+     * Remove a registered {@link ImsRcsManager.AvailabilityCallback} from the RcsFeature.
+     */
+    public void unregisterRcsAvailabilityCallback(int subId, IImsCapabilityCallback callback) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.unregisterRcsAvailabilityCallback(subId, callback);
+        }
+    }
+
+    /**
+     * Query for the specific capability.
+     */
+    public boolean isCapable(int capability, int radioTech)
+            throws android.telephony.ims.ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        return manager.isCapable(capability, radioTech);
+    }
+
+    /**
+     * Query the availability of an IMS RCS capability.
+     */
+    public boolean isAvailable(int capability) throws android.telephony.ims.ImsException {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager == null) {
+            throw new ImsException("Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+        return manager.isAvailable(capability);
+    }
+
+    /**
+     * Get the IMS RCS registration technology for this Phone.
+     */
+    public void getRegistrationTech(Consumer<Integer> callback) {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.getImsRegistrationTech(callback);
+        }
+        callback.accept(ImsRegistrationImplBase.REGISTRATION_TECH_NONE);
+    }
+
+    /**
+     * Retrieve the current RCS registration state.
+     */
+    public void getRegistrationState(Consumer<Integer> callback) {
+        callback.accept(mImsRcsRegistrationHelper.getImsRegistrationState());
+    }
+
+    private void setupConnectionToService(RcsFeatureManager manager) throws ImsException {
+        // Open persistent listener connection, sends RcsFeature#onFeatureReady.
+        manager.openConnection();
+        manager.updateCapabilities();
+        manager.registerImsRegistrationCallback(mImsRcsRegistrationHelper.getCallbackBinder());
+    }
+
+    private void removeConnectionToService() {
+        RcsFeatureManager manager = getFeatureManager();
+        if (manager != null) {
+            manager.unregisterImsRegistrationCallback(
+                    mImsRcsRegistrationHelper.getCallbackBinder());
+            // Remove persistent listener connection.
+            manager.releaseConnection();
+        }
+        mImsRcsRegistrationHelper.reset();
+    }
+
+    private void updateConnectionStatus(RcsFeatureManager manager) {
+        synchronized (mLock) {
+            mFeatureManager = manager;
+            if (mFeatureManager != null) {
+                for (Feature c : mFeatures.values()) {
+                    c.onRcsConnected(manager);
+                }
+            } else {
+                for (Feature c : mFeatures.values()) {
+                    c.onRcsDisconnected();
+                }
+            }
+        }
+    }
+
+    private RcsFeatureManager getFeatureManager() {
+        synchronized (mLock) {
+            return mFeatureManager;
+        }
+    }
+
+    /**
+     * Dump this controller's instance information for usage in dumpsys.
+     */
+    public void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
+        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
+        pw.print("slotId=");
+        pw.println(mSlotId);
+        pw.print("RegistrationState=");
+        pw.println(mImsRcsRegistrationHelper.getImsRegistrationState());
+        pw.print("connected=");
+        synchronized (mLock) {
+            pw.println(mFeatureManager != null);
+        }
+    }
+
+    private void logw(String log) {
+        Log.w(LOG_TAG, getLogPrefix().append(log).toString());
+    }
+
+    private StringBuilder getLogPrefix() {
+        StringBuilder sb = new StringBuilder("[");
+        sb.append(mSlotId);
+        sb.append("] ");
+        return sb;
+    }
+}
diff --git a/src/com/android/services/telephony/rcs/TelephonyRcsService.java b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
new file mode 100644
index 0000000..c85e9a9
--- /dev/null
+++ b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import android.annotation.AnyThread;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.PhoneConfigurationManager;
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+/**
+ * Singleton service setup to manage RCS related services that the platform provides such as User
+ * Capability Exchange.
+ */
+@AnyThread
+public class TelephonyRcsService {
+
+    private static final String LOG_TAG = "TelephonyRcsService";
+
+    /**
+     * Used to inject RcsFeatureController and UserCapabilityExchangeImpl instances for testing.
+     */
+    @VisibleForTesting
+    public interface FeatureFactory {
+        /**
+         * @return an {@link RcsFeatureController} assoicated with the slot specified.
+         */
+        RcsFeatureController createController(Context context, int slotId);
+
+        /**
+         * @return an instance of {@link UserCapabilityExchangeImpl} associated with the slot
+         * specified.
+         */
+        UserCapabilityExchangeImpl createUserCapabilityExchange(Context context, int slotId,
+                int subId);
+    }
+
+    private FeatureFactory mFeatureFactory = new FeatureFactory() {
+        @Override
+        public RcsFeatureController createController(Context context, int slotId) {
+            return new RcsFeatureController(context, slotId);
+        }
+
+        @Override
+        public UserCapabilityExchangeImpl createUserCapabilityExchange(Context context, int slotId,
+                int subId) {
+            return new UserCapabilityExchangeImpl(context, slotId, subId);
+        }
+    };
+
+    // Notifies this service that there has been a change in available slots.
+    private static final int HANDLER_MSIM_CONFIGURATION_CHANGE = 1;
+
+    private final Context mContext;
+    private final Object mLock = new Object();
+    private int mNumSlots;
+
+    // Maps slot ID -> RcsFeatureController.
+    private SparseArray<RcsFeatureController> mFeatureControllers;
+
+    private BroadcastReceiver mCarrierConfigChangedReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent == null) {
+                return;
+            }
+            if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) {
+                Bundle bundle = intent.getExtras();
+                if (bundle == null) {
+                    return;
+                }
+                int slotId = bundle.getInt(CarrierConfigManager.EXTRA_SLOT_INDEX,
+                        SubscriptionManager.INVALID_PHONE_INDEX);
+                int subId = bundle.getInt(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX,
+                        SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+                updateFeatureControllerSubscription(slotId, subId);
+            }
+        }
+    };
+
+    private Handler mHandler = new Handler(Looper.getMainLooper(), (msg) -> {
+        switch (msg.what) {
+            case HANDLER_MSIM_CONFIGURATION_CHANGE: {
+                AsyncResult result = (AsyncResult) msg.obj;
+                Integer numSlots = (Integer) result.result;
+                if (numSlots == null) {
+                    Log.w(LOG_TAG, "msim config change with null num slots.");
+                    break;
+                }
+                updateFeatureControllerSize(numSlots);
+                break;
+            }
+            default:
+                return false;
+        }
+        return true;
+    });
+
+    public TelephonyRcsService(Context context, int numSlots) {
+        mContext = context;
+        mNumSlots = numSlots;
+        mFeatureControllers = new SparseArray<>(numSlots);
+    }
+
+    /**
+     * @return the {@link RcsFeatureController} associated with the given slot.
+     */
+    public RcsFeatureController getFeatureController(int slotId) {
+        synchronized (mLock) {
+            return mFeatureControllers.get(slotId);
+        }
+    }
+
+    /**
+     * Called after instance creation to initialize internal structures as well as register for
+     * system callbacks.
+     */
+    public void initialize() {
+        updateFeatureControllerSize(mNumSlots);
+
+        PhoneConfigurationManager.registerForMultiSimConfigChange(mHandler,
+                HANDLER_MSIM_CONFIGURATION_CHANGE, null);
+        mContext.registerReceiver(mCarrierConfigChangedReceiver, new IntentFilter(
+                CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED));
+    }
+
+    @VisibleForTesting
+    public void setFeatureFactory(FeatureFactory f) {
+        mFeatureFactory = f;
+    }
+
+    /**
+     * Update the number of {@link RcsFeatureController}s that are created based on the number of
+     * active slots on the device.
+     */
+    @VisibleForTesting
+    public void updateFeatureControllerSize(int newNumSlots) {
+        synchronized (mLock) {
+            int oldNumSlots = mFeatureControllers.size();
+            if (oldNumSlots == newNumSlots) {
+                return;
+            }
+            Log.i(LOG_TAG, "updateFeatureControllers: oldSlots=" + oldNumSlots + ", newNumSlots="
+                    + newNumSlots);
+            mNumSlots = newNumSlots;
+            if (oldNumSlots < newNumSlots) {
+                for (int i = oldNumSlots; i < newNumSlots; i++) {
+                    RcsFeatureController c = constructFeatureController(i);
+                    // Do not add feature controllers for inactive subscriptions
+                    if (c.hasActiveFeatures()) {
+                        mFeatureControllers.put(i, c);
+                    }
+                }
+            } else {
+                for (int i = (oldNumSlots - 1); i > (newNumSlots - 1); i--) {
+                    RcsFeatureController c = mFeatureControllers.get(i);
+                    if (c != null) {
+                        mFeatureControllers.remove(i);
+                        c.destroy();
+                    }
+                }
+            }
+        }
+    }
+
+    private void updateFeatureControllerSubscription(int slotId, int newSubId) {
+        synchronized (mLock) {
+            RcsFeatureController f = mFeatureControllers.get(slotId);
+            Log.i(LOG_TAG, "updateFeatureControllerSubscription: slotId=" + slotId + " newSubId="
+                    + newSubId + ", existing feature=" + (f != null));
+            if (SubscriptionManager.isValidSubscriptionId(newSubId)) {
+                if (f == null) {
+                    // A controller doesn't exist for this slot yet.
+                    f = mFeatureFactory.createController(mContext, slotId);
+                    updateSupportedFeatures(f, slotId, newSubId);
+                    if (f.hasActiveFeatures()) mFeatureControllers.put(slotId, f);
+                } else {
+                    updateSupportedFeatures(f, slotId, newSubId);
+                    // Do not keep an empty container around.
+                    if (!f.hasActiveFeatures()) {
+                        f.destroy();
+                        mFeatureControllers.remove(slotId);
+                    }
+                }
+            }
+            if (f != null) f.updateAssociatedSubscription(newSubId);
+        }
+    }
+
+    private RcsFeatureController constructFeatureController(int slotId) {
+        RcsFeatureController c = mFeatureFactory.createController(mContext, slotId);
+        int subId = getSubscriptionFromSlot(slotId);
+        updateSupportedFeatures(c, slotId, subId);
+        return c;
+    }
+
+    private void updateSupportedFeatures(RcsFeatureController c, int slotId, int subId) {
+        if (doesSubscriptionSupportPresence(subId)) {
+            if (c.getFeature(UserCapabilityExchangeImpl.class) == null) {
+                c.addFeature(mFeatureFactory.createUserCapabilityExchange(mContext, slotId, subId),
+                        UserCapabilityExchangeImpl.class);
+            }
+        } else {
+            if (c.getFeature(UserCapabilityExchangeImpl.class) != null) {
+                c.removeFeature(UserCapabilityExchangeImpl.class);
+            }
+        }
+        // Only start the connection procedure if we have active features.
+        if (c.hasActiveFeatures()) c.connect();
+    }
+
+    private boolean doesSubscriptionSupportPresence(int subId) {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return false;
+        CarrierConfigManager carrierConfigManager =
+                mContext.getSystemService(CarrierConfigManager.class);
+        if (carrierConfigManager == null) return false;
+        boolean supportsUce = carrierConfigManager.getConfigForSubId(subId).getBoolean(
+                CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL);
+        supportsUce |= carrierConfigManager.getConfigForSubId(subId).getBoolean(
+                CarrierConfigManager.KEY_USE_RCS_SIP_OPTIONS_BOOL);
+        return supportsUce;
+    }
+
+
+    private int getSubscriptionFromSlot(int slotId) {
+        SubscriptionManager manager = mContext.getSystemService(SubscriptionManager.class);
+        if (manager == null) {
+            Log.w(LOG_TAG, "Couldn't find SubscriptionManager for slotId=" + slotId);
+            return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+        }
+        int[] subIds = manager.getSubscriptionIds(slotId);
+        if (subIds != null && subIds.length > 0) {
+            return subIds[0];
+        }
+        return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    }
+
+    /**
+     * Dump this instance into a readable format for dumpsys usage.
+     */
+    public void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
+        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
+        pw.println("RcsFeatureControllers:");
+        pw.increaseIndent();
+        synchronized (mLock) {
+            for (int i = 0; i < mNumSlots; i++) {
+                RcsFeatureController f = mFeatureControllers.get(i);
+                pw.increaseIndent();
+                f.dump(fd, printWriter, args);
+                pw.decreaseIndent();
+            }
+        }
+        pw.decreaseIndent();
+    }
+}
diff --git a/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java b/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java
new file mode 100644
index 0000000..ac8f9bf
--- /dev/null
+++ b/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java
@@ -0,0 +1,293 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.RemoteException;
+import android.telephony.ims.RcsContactUceCapability;
+import android.telephony.ims.RcsUceAdapter;
+import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.util.Log;
+
+import com.android.ims.RcsFeatureManager;
+import com.android.ims.ResultCode;
+import com.android.phone.R;
+import com.android.service.ims.presence.ContactCapabilityResponse;
+import com.android.service.ims.presence.PresenceBase;
+import com.android.service.ims.presence.PresencePublication;
+import com.android.service.ims.presence.PresencePublisher;
+import com.android.service.ims.presence.PresenceSubscriber;
+import com.android.service.ims.presence.SubscribePublisher;
+
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
+
+/**
+ * Implements User Capability Exchange using Presence.
+ */
+public class UserCapabilityExchangeImpl implements RcsFeatureController.Feature, SubscribePublisher,
+        PresencePublisher {
+
+    private static final String LOG_TAG = "RcsUceImpl";
+
+    private int mSlotId;
+    private int mSubId;
+
+    private final PresencePublication mPresencePublication;
+    private final PresenceSubscriber mPresenceSubscriber;
+
+    private final ConcurrentHashMap<Integer, IRcsUceControllerCallback> mPendingCapabilityRequests =
+            new ConcurrentHashMap<>();
+
+    UserCapabilityExchangeImpl(Context context, int slotId, int subId) {
+        mSlotId = slotId;
+        mSubId = subId;
+        logi("created");
+
+        String[] volteError = context.getResources().getStringArray(
+                R.array.config_volte_provision_error_on_publish_response);
+        String[] rcsError = context.getResources().getStringArray(
+                R.array.config_rcs_provision_error_on_publish_response);
+
+        // Initialize PresencePublication
+        mPresencePublication = new PresencePublication(null /*PresencePublisher*/, context,
+                volteError, rcsError);
+        // Initialize PresenceSubscriber
+        mPresenceSubscriber = new PresenceSubscriber(null /*SubscribePublisher*/, context,
+                volteError, rcsError);
+
+        onAssociatedSubscriptionUpdated(mSubId);
+    }
+
+
+    // Runs on main thread.
+    @Override
+    public void onRcsConnected(RcsFeatureManager rcsFeatureManager) {
+        logi("onRcsConnected");
+        mPresencePublication.updatePresencePublisher(this);
+        mPresenceSubscriber.updatePresenceSubscriber(this);
+    }
+
+    // Runs on main thread.
+    @Override
+    public void onRcsDisconnected() {
+        logi("onRcsDisconnected");
+        mPresencePublication.removePresencePublisher();
+        mPresenceSubscriber.removePresenceSubscriber();
+    }
+
+    // Runs on main thread.
+    @Override
+    public void onAssociatedSubscriptionUpdated(int subId) {
+        mPresencePublication.handleAssociatedSubscriptionChanged(subId);
+        mPresenceSubscriber.handleAssociatedSubscriptionChanged(subId);
+    }
+
+    /**
+     * Should be called before destroying this instance.
+     * This instance is not usable after this method is called.
+     */
+    // Called on main thread.
+    public void onDestroy() {
+        onRcsDisconnected();
+    }
+
+    /**
+     * @return the UCE Publish state.
+     */
+    // May happen on a Binder thread, PresencePublication locks to get result.
+    public int getUcePublishState() {
+        int publishState = mPresencePublication.getPublishState();
+        return toUcePublishState(publishState);
+    }
+
+    /**
+     * Perform a capabilities request and call {@link IRcsUceControllerCallback} with the result.
+     */
+    // May happen on a Binder thread, PresenceSubscriber locks when requesting Capabilities.
+    public void requestCapabilities(List<Uri> contactNumbers, IRcsUceControllerCallback c) {
+        List<String> numbers = contactNumbers.stream()
+                .map(UserCapabilityExchangeImpl::getNumberFromUri).collect(Collectors.toList());
+        int taskId = mPresenceSubscriber.requestCapability(numbers,
+                new ContactCapabilityResponse() {
+                    @Override
+                    public void onSuccess(int reqId) {
+                        logi("onSuccess called for reqId:" + reqId);
+                    }
+
+                    @Override
+                    public void onError(int reqId, int resultCode) {
+                        IRcsUceControllerCallback c = mPendingCapabilityRequests.remove(reqId);
+                        try {
+                            if (c != null) {
+                                c.onError(toUceError(resultCode));
+                            } else {
+                                logw("onError called for unknown reqId:" + reqId);
+                            }
+                        } catch (RemoteException e) {
+                            logi("Calling back to dead service");
+                        }
+                    }
+
+                    @Override
+                    public void onFinish(int reqId) {
+                        logi("onFinish called for reqId:" + reqId);
+                    }
+
+                    @Override
+                    public void onTimeout(int reqId) {
+                        IRcsUceControllerCallback c = mPendingCapabilityRequests.remove(reqId);
+                        try {
+                            if (c != null) {
+                                c.onError(RcsUceAdapter.ERROR_REQUEST_TIMEOUT);
+                            } else {
+                                logw("onTimeout called for unknown reqId:" + reqId);
+                            }
+                        } catch (RemoteException e) {
+                            logi("Calling back to dead service");
+                        }
+                    }
+
+                    @Override
+                    public void onCapabilitiesUpdated(int reqId,
+                            List<RcsContactUceCapability> contactCapabilities,
+                            boolean updateLastTimestamp) {
+                        IRcsUceControllerCallback c = mPendingCapabilityRequests.remove(reqId);
+                        try {
+                            if (c != null) {
+                                c.onCapabilitiesReceived(contactCapabilities);
+                            } else {
+                                logw("onCapabilitiesUpdated, unknown reqId:" + reqId);
+                            }
+                        } catch (RemoteException e) {
+                            logw("onCapabilitiesUpdated on dead service");
+                        }
+                    }
+                });
+        if (taskId < 0) {
+            try {
+                c.onError(toUceError(taskId));
+                return;
+            } catch (RemoteException e) {
+                logi("Calling back to dead service");
+            }
+        }
+        mPendingCapabilityRequests.put(taskId, c);
+    }
+
+    @Override
+    public int getPublisherState() {
+        return 0;
+    }
+
+    @Override
+    public int requestPublication(RcsContactUceCapability capabilities, String contactUri,
+            int taskId) {
+        return 0;
+    }
+
+    @Override
+    public int requestCapability(String[] formatedContacts, int taskId) {
+        return 0;
+    }
+
+    @Override
+    public int requestAvailability(String formattedContact, int taskId) {
+        return 0;
+    }
+
+    @Override
+    public int getStackStatusForCapabilityRequest() {
+        return 0;
+    }
+
+    @Override
+    public void updatePublisherState(int publishState) {
+
+    }
+
+    private static String getNumberFromUri(Uri uri) {
+        String number = uri.getSchemeSpecificPart();
+        String[] numberParts = number.split("[@;:]");
+
+        if (numberParts.length == 0) {
+            return null;
+        }
+        return numberParts[0];
+    }
+
+    private static int toUcePublishState(int publishState) {
+        switch (publishState) {
+            case PresenceBase.PUBLISH_STATE_200_OK:
+                return RcsUceAdapter.PUBLISH_STATE_OK;
+            case PresenceBase.PUBLISH_STATE_NOT_PUBLISHED:
+                return RcsUceAdapter.PUBLISH_STATE_NOT_PUBLISHED;
+            case PresenceBase.PUBLISH_STATE_VOLTE_PROVISION_ERROR:
+                return RcsUceAdapter.PUBLISH_STATE_VOLTE_PROVISION_ERROR;
+            case PresenceBase.PUBLISH_STATE_RCS_PROVISION_ERROR:
+                return RcsUceAdapter.PUBLISH_STATE_RCS_PROVISION_ERROR;
+            case PresenceBase.PUBLISH_STATE_REQUEST_TIMEOUT:
+                return RcsUceAdapter.PUBLISH_STATE_REQUEST_TIMEOUT;
+            case PresenceBase.PUBLISH_STATE_OTHER_ERROR:
+                return RcsUceAdapter.PUBLISH_STATE_OTHER_ERROR;
+            default:
+                return RcsUceAdapter.PUBLISH_STATE_OTHER_ERROR;
+        }
+    }
+
+    private static int toUceError(int resultCode) {
+        switch (resultCode) {
+            case ResultCode.SUBSCRIBE_NOT_REGISTERED:
+                return RcsUceAdapter.ERROR_NOT_REGISTERED;
+            case ResultCode.SUBSCRIBE_REQUEST_TIMEOUT:
+                return RcsUceAdapter.ERROR_REQUEST_TIMEOUT;
+            case ResultCode.SUBSCRIBE_FORBIDDEN:
+                return RcsUceAdapter.ERROR_FORBIDDEN;
+            case ResultCode.SUBSCRIBE_NOT_FOUND:
+                return RcsUceAdapter.ERROR_NOT_FOUND;
+            case ResultCode.SUBSCRIBE_TOO_LARGE:
+                return RcsUceAdapter.ERROR_REQUEST_TOO_LARGE;
+            case ResultCode.SUBSCRIBE_INSUFFICIENT_MEMORY:
+                return RcsUceAdapter.ERROR_INSUFFICIENT_MEMORY;
+            case ResultCode.SUBSCRIBE_LOST_NETWORK:
+                return RcsUceAdapter.ERROR_LOST_NETWORK;
+            case ResultCode.SUBSCRIBE_ALREADY_IN_QUEUE:
+                return RcsUceAdapter.ERROR_ALREADY_IN_QUEUE;
+            default:
+                return RcsUceAdapter.ERROR_GENERIC_FAILURE;
+        }
+    }
+
+    private void logi(String log) {
+        Log.i(LOG_TAG, getLogPrefix().append(log).toString());
+    }
+
+    private void logw(String log) {
+        Log.w(LOG_TAG, getLogPrefix().append(log).toString());
+    }
+
+    private StringBuilder getLogPrefix() {
+        StringBuilder builder = new StringBuilder("[");
+        builder.append(mSlotId);
+        builder.append("->");
+        builder.append(mSubId);
+        builder.append("] ");
+        return builder;
+    }
+}
diff --git a/testapps/Android.mk b/testapps/Android.mk
deleted file mode 100644
index 5053e7d..0000000
--- a/testapps/Android.mk
+++ /dev/null
@@ -1 +0,0 @@
-include $(call all-subdir-makefiles)
diff --git a/testapps/EmbmsServiceTestApp/Android.bp b/testapps/EmbmsServiceTestApp/Android.bp
new file mode 100644
index 0000000..e4a54cb
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/Android.bp
@@ -0,0 +1,11 @@
+// Build the Sample Embms Services
+android_app {
+    name: "EmbmsTestService",
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    privileged: true,
+    // Uncomment the following line to build the EmbmsTestService
+    // into the userdebug build:
+    // LOCAL_MODULE_TAGS := debug
+}
diff --git a/testapps/EmbmsServiceTestApp/Android.mk b/testapps/EmbmsServiceTestApp/Android.mk
deleted file mode 100644
index 29b8112..0000000
--- a/testapps/EmbmsServiceTestApp/Android.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Sample Embms Services
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := EmbmsTestService
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-# Uncomment the following line to build the EmbmsTestService into the userdebug build.
-# LOCAL_MODULE_TAGS := debug
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsTestDownloadApp/Android.bp b/testapps/EmbmsTestDownloadApp/Android.bp
new file mode 100644
index 0000000..63f4e83
--- /dev/null
+++ b/testapps/EmbmsTestDownloadApp/Android.bp
@@ -0,0 +1,12 @@
+src_dirs = ["src"]
+res_dirs = ["res"]
+android_test {
+    name: "EmbmsTestDownloadApp",
+    static_libs: [
+        "androidx.recyclerview_recyclerview",
+        "androidx.legacy_legacy-support-v4",
+    ],
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+}
diff --git a/testapps/EmbmsTestDownloadApp/Android.mk b/testapps/EmbmsTestDownloadApp/Android.mk
deleted file mode 100644
index bd53d79..0000000
--- a/testapps/EmbmsTestDownloadApp/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Sample Embms Download frontend
-include $(CLEAR_VARS)
-LOCAL_USE_AAPT2 := true
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-        androidx.recyclerview_recyclerview \
-        androidx.legacy_legacy-support-v4
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := EmbmsTestDownloadApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsTestStreamingApp/Android.bp b/testapps/EmbmsTestStreamingApp/Android.bp
new file mode 100644
index 0000000..814c5ca
--- /dev/null
+++ b/testapps/EmbmsTestStreamingApp/Android.bp
@@ -0,0 +1,7 @@
+android_test {
+    name: "EmbmsTestStreamingApp",
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    //LOCAL_MODULE_TAGS := debug
+}
diff --git a/testapps/EmbmsTestStreamingApp/Android.mk b/testapps/EmbmsTestStreamingApp/Android.mk
deleted file mode 100644
index f574990..0000000
--- a/testapps/EmbmsTestStreamingApp/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# Build the Sample Embms Streaming frontend
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := EmbmsTestStreamingApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-#LOCAL_MODULE_TAGS := debug
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/ImsTestService/Android.bp b/testapps/ImsTestService/Android.bp
new file mode 100644
index 0000000..a0b4edb
--- /dev/null
+++ b/testapps/ImsTestService/Android.bp
@@ -0,0 +1,13 @@
+android_app {
+    name: "ImsTestApp",
+    static_libs: [
+        "androidx.legacy_legacy-support-v4",
+        "androidx.appcompat_appcompat",
+        "androidx.recyclerview_recyclerview",
+        "androidx.cardview_cardview",
+    ],
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    privileged: true,
+}
diff --git a/testapps/ImsTestService/Android.mk b/testapps/ImsTestService/Android.mk
deleted file mode 100644
index 2869c86..0000000
--- a/testapps/ImsTestService/Android.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_STATIC_ANDROID_LIBRARIES := \
-    androidx.legacy_legacy-support-v4 \
-    androidx.appcompat_appcompat \
-    androidx.recyclerview_recyclerview \
-    androidx.cardview_cardview
-
-LOCAL_USE_AAPT2 := true
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := ImsTestApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_PRIVILEGED_MODULE := true
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
index 4ee9355..5c0416b 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
@@ -24,6 +24,7 @@
 import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsMmTelManager;
 import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
 import android.util.ArrayMap;
 import android.util.Log;
@@ -103,8 +104,8 @@
     }
 
 
-    private final ImsMmTelManager.RegistrationCallback mRegistrationCallback =
-            new ImsMmTelManager.RegistrationCallback() {
+    private final RegistrationManager.RegistrationCallback mRegistrationCallback =
+            new RegistrationManager.RegistrationCallback() {
 
         @Override
         public void onRegistered(int imsRadioTech) {
diff --git a/testapps/SmsManagerTestApp/Android.bp b/testapps/SmsManagerTestApp/Android.bp
new file mode 100644
index 0000000..5333eab
--- /dev/null
+++ b/testapps/SmsManagerTestApp/Android.bp
@@ -0,0 +1,5 @@
+android_app {
+    name: "SmsManagerTestApp",
+    srcs: ["src/**/*.java"],
+    sdk_version: "current",
+}
diff --git a/testapps/SmsManagerTestApp/Android.mk b/testapps/SmsManagerTestApp/Android.mk
deleted file mode 100644
index 307366b..0000000
--- a/testapps/SmsManagerTestApp/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := SmsManagerTestApp
-
-LOCAL_SDK_VERSION := current
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/TelephonyManagerTestApp/Android.bp b/testapps/TelephonyManagerTestApp/Android.bp
new file mode 100644
index 0000000..8a37c99
--- /dev/null
+++ b/testapps/TelephonyManagerTestApp/Android.bp
@@ -0,0 +1,7 @@
+android_test {
+    name: "TelephonyManagerTestApp",
+    srcs: ["src/**/*.java"],
+    javacflags: ["-parameters"],
+    platform_apis: true,
+    certificate: "platform",
+}
diff --git a/testapps/TelephonyManagerTestApp/Android.mk b/testapps/TelephonyManagerTestApp/Android.mk
deleted file mode 100644
index 290b261..0000000
--- a/testapps/TelephonyManagerTestApp/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_JAVACFLAGS := -parameters
-
-LOCAL_PACKAGE_NAME := TelephonyManagerTestApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-
-include $(BUILD_PACKAGE)
diff --git a/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java b/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java
index 097c90a..ccb5639 100644
--- a/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java
+++ b/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/ParameterParser.java
@@ -19,12 +19,19 @@
 import android.content.Context;
 import android.telephony.NumberVerificationCallback;
 import android.telephony.PhoneNumberRange;
+import android.telephony.RadioAccessSpecifier;
+import android.text.TextUtils;
 import android.widget.Toast;
 
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Executor;
+import java.util.function.Consumer;
 import java.util.function.Function;
+import java.util.stream.Collectors;
 
 class ParameterParser {
     private static ParameterParser sInstance;
@@ -42,6 +49,9 @@
                 put(PhoneNumberRange.class, ParameterParser::parsePhoneNumberRange);
                 put(Executor.class, s -> parseExecutor(s));
                 put(NumberVerificationCallback.class, s -> parseNumberVerificationCallback(s));
+                put(Consumer.class, s -> parseConsumer(s));
+                put(List.class, s -> parseList(s));
+                put(RadioAccessSpecifier.class, s -> parseRadioAccessSpecifier(s));
             }};
 
     private ParameterParser(Context context) {
@@ -49,6 +59,7 @@
     }
 
     Object executeParser(Class type, String input) {
+        if ("null".equals(input)) return null;
         return mParsers.getOrDefault(type, s -> null).apply(input);
     }
 
@@ -64,6 +75,57 @@
         return mContext.getMainExecutor();
     }
 
+    private Consumer parseConsumer(String input) {
+        return o -> Toast.makeText(mContext, "Consumer: " + String.valueOf(o), Toast.LENGTH_SHORT)
+                .show();
+    }
+
+    /**
+     * input format: (ran)/(band1)+(band2)+.../(chan1)+(chan2)+...
+     * @return
+     */
+    private RadioAccessSpecifier parseRadioAccessSpecifier(String input) {
+        String[] parts = input.split("/");
+        int ran = Integer.parseInt(parts[0]);
+        String[] bandStrings = parts[1].split("\\+");
+        int[] bands = new int[bandStrings.length];
+        String[] chanStrings = parts[2].split("\\+");
+        int[] chans = new int[chanStrings.length];
+
+        for (int i = 0; i < bands.length; i++) {
+            bands[i] = Integer.parseInt(bandStrings[i]);
+        }
+
+        for (int i = 0; i < chans.length; i++) {
+            chans[i] = Integer.parseInt(chanStrings[i]);
+        }
+        return new RadioAccessSpecifier(ran, bands, chans);
+    }
+
+    private List parseList(String input) {
+        if (TextUtils.isEmpty(input)) {
+            return Collections.emptyList();
+        }
+        String[] components = input.split(" ");
+        String className = components[0];
+        Class c;
+        try {
+            c = mContext.getClassLoader().loadClass(className);
+        } catch (ClassNotFoundException e) {
+            Toast.makeText(mContext, "Invalid class " + className,
+                    Toast.LENGTH_SHORT).show();
+            return null;
+        }
+        if (!mParsers.containsKey(c)) {
+            Toast.makeText(mContext, "Cannot parse " + className,
+                    Toast.LENGTH_SHORT).show();
+            return null;
+        }
+        return Arrays.stream(components).skip(1)
+                .map(mParsers.get(c))
+                .collect(Collectors.toList());
+    }
+
     private NumberVerificationCallback parseNumberVerificationCallback(String input) {
         return new NumberVerificationCallback() {
             @Override
diff --git a/testapps/TelephonyRegistryTestApp/Android.bp b/testapps/TelephonyRegistryTestApp/Android.bp
new file mode 100644
index 0000000..fec5286
--- /dev/null
+++ b/testapps/TelephonyRegistryTestApp/Android.bp
@@ -0,0 +1,7 @@
+android_test {
+    name: "TelephonyRegistryTestApp",
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+    //LOCAL_MODULE_TAGS := debug
+}
diff --git a/testapps/TelephonyRegistryTestApp/Android.mk b/testapps/TelephonyRegistryTestApp/Android.mk
deleted file mode 100644
index 8c0d286..0000000
--- a/testapps/TelephonyRegistryTestApp/Android.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-src_dirs := src
-res_dirs := res
-
-LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
-LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
-
-LOCAL_PACKAGE_NAME := TelephonyRegistryTestApp
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_CERTIFICATE := platform
-LOCAL_MODULE_TAGS := tests
-#LOCAL_MODULE_TAGS := debug
-
-include $(BUILD_PACKAGE)
diff --git a/tests/Android.bp b/tests/Android.bp
new file mode 100644
index 0000000..7ed234e
--- /dev/null
+++ b/tests/Android.bp
@@ -0,0 +1,47 @@
+//
+// Copyright (C) 2009 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+android_test {
+    name: "TeleServiceTests",
+
+    srcs: ["src/**/*.java"],
+
+    libs: [
+        "android.test.mock",
+        "android.test.runner",
+        "telephony-common",
+        "android.test.base",
+        "ims-common",
+        "android.test.mock",
+    ],
+    platform_apis: true,
+    certificate: "platform",
+
+    instrumentation_for: "TeleService",
+
+    static_libs: [
+        "androidx.test.rules",
+        "mockito-target-minus-junit4",
+        "androidx.test.espresso.core",
+        "truth-prebuilt",
+    ],
+
+    test_suites: [
+        "device-tests",
+        "mts",
+    ],
+
+}
diff --git a/tests/Android.mk b/tests/Android.mk
deleted file mode 100644
index 76140ac..0000000
--- a/tests/Android.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-LOCAL_PACKAGE_NAME := TeleServiceTests
-LOCAL_PRIVATE_PLATFORM_APIS := true
-LOCAL_CERTIFICATE := platform
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_JAVA_LIBRARIES := telephony-common android.test.base
-
-LOCAL_INSTRUMENTATION_FOR := TeleService
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
-        android.test.mock \
-        androidx.test.rules \
-        mockito-target-minus-junit4 \
-        androidx.test.espresso.core \
-        truth-prebuilt
-
-LOCAL_COMPATIBILITY_SUITE := device-tests
-
-include $(BUILD_PACKAGE)
diff --git a/tests/src/com/android/TelephonyTestBase.java b/tests/src/com/android/TelephonyTestBase.java
index 01267d8..132d893 100644
--- a/tests/src/com/android/TelephonyTestBase.java
+++ b/tests/src/com/android/TelephonyTestBase.java
@@ -16,10 +16,14 @@
 
 package com.android;
 
+import static org.mockito.Mockito.spy;
+
 import android.os.Handler;
 import android.os.Looper;
 import android.util.Log;
 
+import com.android.internal.telephony.PhoneConfigurationManager;
+
 import org.mockito.MockitoAnnotations;
 
 import java.util.concurrent.CountDownLatch;
@@ -34,7 +38,7 @@
 
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        mContext = new TestContext();
+        mContext = spy(new TestContext());
         // Set up the looper if it does not exist on the test thread.
         if (Looper.myLooper() == null) {
             Looper.prepare();
@@ -50,6 +54,8 @@
     }
 
     public void tearDown() throws Exception {
+        // Ensure there are no static references to handlers after test completes.
+        PhoneConfigurationManager.unregisterAllMultiSimConfigChangeRegistrants();
     }
 
     protected final void waitForHandlerAction(Handler h, long timeoutMillis) {
diff --git a/tests/src/com/android/TestContext.java b/tests/src/com/android/TestContext.java
index 4868647..c5b9b1e 100644
--- a/tests/src/com/android/TestContext.java
+++ b/tests/src/com/android/TestContext.java
@@ -23,7 +23,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.res.Resources;
 import android.os.Handler;
 import android.os.PersistableBundle;
 import android.telecom.TelecomManager;
@@ -35,20 +34,26 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.util.concurrent.Executor;
+
 public class TestContext extends MockContext {
 
     @Mock CarrierConfigManager mMockCarrierConfigManager;
     @Mock TelecomManager mMockTelecomManager;
     @Mock TelephonyManager mMockTelephonyManager;
     @Mock SubscriptionManager mMockSubscriptionManager;
-    @Mock Resources mMockResources;
 
     private PersistableBundle mCarrierConfig = new PersistableBundle();
 
     public TestContext() {
         MockitoAnnotations.initMocks(this);
         doReturn(mCarrierConfig).when(mMockCarrierConfigManager).getConfigForSubId(anyInt());
-        doReturn("test").when(mMockResources).getText(anyInt());
+    }
+
+    @Override
+    public Executor getMainExecutor() {
+        // Just run on current thread
+        return Runnable::run;
     }
 
     @Override
@@ -62,6 +67,11 @@
     }
 
     @Override
+    public String getAttributionTag() {
+        return "";
+    }
+
+    @Override
     public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
         return null;
     }
@@ -72,11 +82,6 @@
     }
 
     @Override
-    public Resources getResources() {
-        return mMockResources;
-    }
-
-    @Override
     public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter,
             String broadcastPermission, Handler scheduler) {
         return null;
diff --git a/tests/src/com/android/phone/CallFeaturesSettingTest.java b/tests/src/com/android/phone/CallFeaturesSettingTest.java
index 2468de4..7c7d6f8 100644
--- a/tests/src/com/android/phone/CallFeaturesSettingTest.java
+++ b/tests/src/com/android/phone/CallFeaturesSettingTest.java
@@ -21,8 +21,13 @@
 import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
 import static androidx.test.espresso.matcher.ViewMatchers.withText;
 
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.when;
 
+import android.app.KeyguardManager;
+import android.content.Context;
+
+import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.FlakyTest;
 import androidx.test.rule.ActivityTestRule;
 
@@ -46,13 +51,16 @@
     IccCard mMockIccCard;
     @Rule
     public ActivityTestRule<CallFeaturesSetting> mRule =
-            new ActivityTestRule<>(CallFeaturesSetting.class);
+            new ActivityTestRule<>(CallFeaturesSetting.class, false, true);
     private CallFeaturesSetting mActivity;
 
     @Before
-    public void setUp() {
+    public void setUp() throws Throwable {
         MockitoAnnotations.initMocks(this);
         mActivity = mRule.getActivity();
+        Context targetContext = InstrumentationRegistry.getTargetContext();
+        doReturn(targetContext).when(mMockPhone).getContext();
+        keepScreenOn(mRule, mActivity);
     }
 
     @Ignore
@@ -65,7 +73,7 @@
         when(mMockIccCard.getIccFdnAvailable()).thenReturn(true);
         getField("mPhone").set(mActivity, mMockPhone);
 
-        mActivity.onResume();
+        mActivity.runOnUiThread(() -> mActivity.onResume());
 
         // Check the FDN menu is displayed.
         onView(withText(R.string.fdn)).check(matches(isDisplayed()));
@@ -80,7 +88,7 @@
         when(mMockPhone.getIccCard()).thenReturn(null);
         getField("mPhone").set(mActivity, mMockPhone);
 
-        mActivity.onResume();
+        mActivity.runOnUiThread(() -> mActivity.onResume());
 
         // Check the FDN menu is not displayed.
         onView(withText(R.string.fdn)).check(doesNotExist());
@@ -96,7 +104,7 @@
         when(mMockIccCard.getIccFdnAvailable()).thenReturn(false);
         getField("mPhone").set(mActivity, mMockPhone);
 
-        mActivity.onResume();
+        mActivity.runOnUiThread(() -> mActivity.onResume());
 
         // Check the FDN menu is not displayed.
         onView(withText(R.string.fdn)).check(doesNotExist());
@@ -107,4 +115,19 @@
         field.setAccessible(true);
         return field;
     }
+
+    /**
+     * Automatically wake up device to perform tests.
+     */
+    private static void keepScreenOn(ActivityTestRule activityTestRule,
+            final CallFeaturesSetting activity) throws Throwable {
+        activityTestRule.runOnUiThread(() -> {
+            activity.setTurnScreenOn(true);
+            activity.setShowWhenLocked(true);
+            KeyguardManager keyguardManager =
+                    activity.getSystemService(KeyguardManager.class);
+            keyguardManager.requestDismissKeyguard(activity, null);
+        });
+        InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+    }
 }
diff --git a/tests/src/com/android/phone/CdmaOptionsTest.java b/tests/src/com/android/phone/CdmaOptionsTest.java
deleted file mode 100644
index 1a1516c..0000000
--- a/tests/src/com/android/phone/CdmaOptionsTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.internal.telephony.PhoneConstants;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class CdmaOptionsTest {
-    @Test
-    public void shouldAddApnExpandPreference_doesNotExpandOnGsm() {
-        PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
-        assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_GSM, bundle))
-                .isFalse();
-    }
-
-    @Test
-    public void shouldAddApnExpandPreference_showExpandOnCdma() {
-        PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
-        assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_CDMA, bundle))
-                .isTrue();
-    }
-
-    @Test
-    public void shouldAddApnExpandPreference_doesNotExpandOnCdmaIfCarrierConfigDisabled() {
-        PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, false);
-        assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_CDMA, bundle))
-                .isFalse();
-    }
-}
diff --git a/tests/src/com/android/phone/CnapTest.java b/tests/src/com/android/phone/CnapTest.java
deleted file mode 100644
index 7161ba8..0000000
--- a/tests/src/com/android/phone/CnapTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// Need to be in this package to access package methods.
-package com.android.phone;
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.util.Log;
-import com.android.internal.telephony.CallerInfo;
-import com.android.phone.PhoneUtils;
-import static com.android.internal.telephony.PhoneConstants.PRESENTATION_ALLOWED;
-import static com.android.internal.telephony.PhoneConstants.PRESENTATION_PAYPHONE;
-import static com.android.internal.telephony.PhoneConstants.PRESENTATION_RESTRICTED;
-import static com.android.internal.telephony.PhoneConstants.PRESENTATION_UNKNOWN;
-
-// Test suite for the Caller Name Presentation (CNAP) handling.
-// See AndroidManifest.xml how to run these tests.
-public class CnapTest extends AndroidTestCase {
-    private static final String TAG = "CnapTest";
-    private Context mContext;
-    private CallerInfo mCallerInfo;
-    // TODO: This string should be loaded from the phone package and
-    // not hardcoded.
-    private String mUnknown = "Unknown";
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mContext = getContext();
-        mCallerInfo = new CallerInfo();
-    }
-
-    // Checks the cnap 'ABSENT NUMBER' is mapped to the unknown presentation.
-    @SmallTest
-    public void testAbsentNumberIsMappedToUnknown() throws Exception {
-        String num = modifyForSpecialCnapCases("ABSENT NUMBER", PRESENTATION_ALLOWED);
-        assertIsUnknown(num);
-    }
-
-    // HELPERS
-
-    /**
-     * Checks the number and CallerInfo structure indicate the number
-     * is unknown.
-     */
-    private void assertIsUnknown(String number) {
-        assertEquals(mUnknown, number);
-        assertEquals(PRESENTATION_UNKNOWN, mCallerInfo.numberPresentation);
-        // TODO: cnapName and name presentation should be set to
-        // unknown. At least I cannot see why it shouldn't be the case
-        // assertEquals(mUnknown, mCallerInfo.cnapName);
-        // assertEquals(PRESENTATION_UNKNOWN, mCallerInfo.namePresentation);
-    }
-
-    /**
-     * Shorthand for PhoneUtils.modifyForSpecialCnapCases(mContext, mCallerInfo, ...)
-     */
-    private String modifyForSpecialCnapCases(String number, int presentation) {
-        return PhoneUtils.modifyForSpecialCnapCases(
-            mContext, mCallerInfo, number, presentation);
-    }
-}
diff --git a/tests/src/com/android/phone/LocationAccessPolicyTest.java b/tests/src/com/android/phone/LocationAccessPolicyTest.java
index 77ff158..b2489e7 100644
--- a/tests/src/com/android/phone/LocationAccessPolicyTest.java
+++ b/tests/src/com/android/phone/LocationAccessPolicyTest.java
@@ -21,6 +21,7 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.when;
 
 import android.Manifest;
@@ -190,11 +191,11 @@
                 anyInt(), anyInt())).thenReturn(s.appHasCoarseManifest
                 ? PackageManager.PERMISSION_GRANTED : PackageManager.PERMISSION_DENIED);
 
-        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OP_FINE_LOCATION),
-                anyInt(), anyString()))
+        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OPSTR_FINE_LOCATION),
+                anyInt(), anyString(), nullable(String.class), nullable(String.class)))
                 .thenReturn(s.fineAppOp);
-        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OP_COARSE_LOCATION),
-                anyInt(), anyString()))
+        when(mAppOpsManager.noteOpNoThrow(eq(AppOpsManager.OPSTR_COARSE_LOCATION),
+                anyInt(), anyString(), nullable(String.class), nullable(String.class)))
                 .thenReturn(s.coarseAppOp);
 
         // set this permission to denied by default, and only allow for the proper pid/uid
@@ -226,6 +227,7 @@
         return new LocationAccessPolicy.LocationPermissionQuery.Builder()
                 .setMethod("test")
                 .setCallingPackage("com.android.test")
+                .setCallingFeatureId(null)
                 .setCallingPid(TESTING_PID)
                 .setCallingUid(TESTING_UID);
     }
diff --git a/tests/src/com/android/phone/NumberVerificationManagerTest.java b/tests/src/com/android/phone/NumberVerificationManagerTest.java
index d476ba5..f7914ab 100644
--- a/tests/src/com/android/phone/NumberVerificationManagerTest.java
+++ b/tests/src/com/android/phone/NumberVerificationManagerTest.java
@@ -57,7 +57,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         ServiceState ss = mock(ServiceState.class);
-        when(ss.getVoiceRegState()).thenReturn(ServiceState.STATE_IN_SERVICE);
+        when(ss.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
         when(mPhone1.getServiceState()).thenReturn(ss);
         when(mPhone1.getForegroundCall()).thenReturn(mForegroundCall);
         when(mPhone1.getRingingCall()).thenReturn(mRingingCall);
@@ -107,7 +107,7 @@
     @Test
     public void testNoPhoneInServiceFailure() throws Exception {
         ServiceState ss = mock(ServiceState.class);
-        when(ss.getVoiceRegState()).thenReturn(ServiceState.STATE_POWER_OFF);
+        when(ss.getState()).thenReturn(ServiceState.STATE_POWER_OFF);
         when(mPhone1.getServiceState()).thenReturn(ss);
         when(mPhone2.getServiceState()).thenReturn(ss);
         NumberVerificationManager manager =
@@ -138,7 +138,7 @@
     @Test
     public void testVerificationWorksWithOnePhoneInService() throws Exception {
         ServiceState ss = mock(ServiceState.class);
-        when(ss.getVoiceRegState()).thenReturn(ServiceState.STATE_POWER_OFF);
+        when(ss.getState()).thenReturn(ServiceState.STATE_POWER_OFF);
         when(mPhone1.getServiceState()).thenReturn(ss);
         NumberVerificationManager manager =
                 new NumberVerificationManager(() -> new Phone[]{mPhone1, mPhone2});
diff --git a/tests/src/com/android/phone/PhoneGlobalsTest.java b/tests/src/com/android/phone/PhoneGlobalsTest.java
new file mode 100644
index 0000000..d45a890
--- /dev/null
+++ b/tests/src/com/android/phone/PhoneGlobalsTest.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import static org.junit.Assert.assertEquals;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Locale;
+
+
+@RunWith(AndroidJUnit4.class)
+public class PhoneGlobalsTest extends TelephonyTestBase {
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    public void testGetImsResources() throws Exception {
+        // Do not use test context here, we are testing that overlaying for different locales works
+        // correctly
+        Context realContext = InstrumentationRegistry.getTargetContext();
+        String defaultImsMmtelPackage = getResourcesForLocale(realContext, Locale.US).getString(
+                R.string.config_ims_mmtel_package);
+        String defaultImsMmtelPackageUk = getResourcesForLocale(realContext, Locale.UK).getString(
+                R.string.config_ims_mmtel_package);
+        assertEquals("locales changed IMS package configuration!", defaultImsMmtelPackage,
+                defaultImsMmtelPackageUk);
+    }
+
+    private Resources getResourcesForLocale(Context context, Locale locale) {
+        Configuration config = new Configuration();
+        config.setToDefaults();
+        config.setLocale(locale);
+        Context localeContext = context.createConfigurationContext(config);
+        return localeContext.getResources();
+    }
+}
diff --git a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java b/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
deleted file mode 100644
index 9f8de9e..0000000
--- a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import static junit.framework.TestCase.fail;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-
-import android.content.pm.PackageManager;
-import android.os.Binder;
-import android.util.Log;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.TelephonyTestBase;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-
-@RunWith(AndroidJUnit4.class)
-public class PhoneInterfaceManagerTest extends TelephonyTestBase {
-
-    private static final String PRIVILEGED_PACKAGE_NAME = "test.package.name";
-
-    private static final String TAG = "PhoneInterfaceManagerTest";
-
-    private PhoneInterfaceManager mPhoneInterfaceManager;
-    private PhoneGlobals mMockPhoneGlobals;
-
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-        mMockPhoneGlobals = mock(PhoneGlobals.class);
-        //PhoneGlobals phoneGlobals = new PhoneGlobals(mContext);
-        mPhoneInterfaceManager = new PhoneInterfaceManager(mMockPhoneGlobals);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-    @Test
-    public void testGetUiccCardsInfoSecurity() {
-        // Set up mocks so that the supplied package UID does not equal the calling UID
-        PackageManager mockPackageManager = mock(PackageManager.class);
-        try {
-            doReturn(Binder.getCallingUid() + 1).when(mockPackageManager)
-                    .getPackageUid(eq(PRIVILEGED_PACKAGE_NAME), anyInt());
-        } catch (Exception e) {
-            Log.d(TAG, "testGetUiccCardsInfoSecurity unable to setup mocks");
-            fail();
-        }
-        doReturn(mockPackageManager).when(mContext).getPackageManager();
-        doReturn(mockPackageManager).when(mMockPhoneGlobals).getPackageManager();
-        try {
-            mPhoneInterfaceManager.getUiccCardsInfo(PRIVILEGED_PACKAGE_NAME);
-            fail();
-        } catch (SecurityException e) {
-            Log.d(TAG, "testGetUiccCardsInfoSecurity e = " + e);
-        }
-    }
-}
diff --git a/tests/src/com/android/phone/RoamingDialogFragmentTest.java b/tests/src/com/android/phone/RoamingDialogFragmentTest.java
deleted file mode 100644
index a9b32ea..0000000
--- a/tests/src/com/android/phone/RoamingDialogFragmentTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import static androidx.test.espresso.Espresso.onData;
-import static androidx.test.espresso.Espresso.onView;
-import static androidx.test.espresso.action.ViewActions.click;
-import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static androidx.test.espresso.assertion.ViewAssertions.matches;
-import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant;
-import static androidx.test.espresso.matcher.ViewMatchers.isChecked;
-import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static androidx.test.espresso.matcher.ViewMatchers.withId;
-import static androidx.test.espresso.matcher.ViewMatchers.withText;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Activity;
-import android.content.pm.ActivityInfo;
-import android.provider.Settings.Global;
-import android.provider.Settings.SettingNotFoundException;
-
-import androidx.test.espresso.matcher.PreferenceMatchers;
-import androidx.test.filters.FlakyTest;
-import androidx.test.rule.ActivityTestRule;
-
-import junit.framework.AssertionFailedError;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-/**
- * Espresso tests to check some properties of the dialog that appears when a user
- * tries to turn on data roaming.
- */
-public class RoamingDialogFragmentTest {
-
-    @Rule
-    public ActivityTestRule<MobileNetworkSettings> mRule =
-            new ActivityTestRule<>(MobileNetworkSettings.class);
-    private Activity mActivity;
-
-    /**
-     * Make sure roaming is off before we start a test since this checks the dialog that only
-     * shows up when we try to turn it on.
-     */
-    @Before
-    public void disableRoaming() {
-        mActivity = mRule.getActivity();
-
-        // turn off data roaming if it is on
-        try {
-            onData(PreferenceMatchers.withTitle(R.string.roaming))
-                    .check(matches(hasDescendant(isChecked())))
-                    .perform(click());
-        } catch (AssertionFailedError e) {
-            // don't click the switch if it is already off.
-        }
-    }
-
-    @FlakyTest
-    @Test
-    public void dataRoamingDialogPersistsOnRotation() {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // request both orientations to ensure at least one rotation occurs
-        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
-        mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-
-        // verify the title of the dialog is visible
-        onView(withText(R.string.roaming_alert_title)).check(matches(isDisplayed()));
-
-    }
-
-    @FlakyTest
-    @Test
-    public void dataRoamingEnabledWhenPositiveButtonClicked() throws SettingNotFoundException {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // click to confirm we want to turn on data roaming
-        onView(withId(android.R.id.button1)).perform(click());
-
-        // verify that the the setting has actually been changed
-        assertThat(Global.getInt(mActivity.getApplicationContext().getContentResolver(),
-                Global.DATA_ROAMING)).isEqualTo(1);
-    }
-
-    @FlakyTest
-    @Test
-    public void dialogDismissedOnNegativeButtonClicked() {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // click to cancel turning on data roaming
-        onView(withId(android.R.id.button2)).perform(click());
-
-        // verify the title of the dialog is gone
-        onView(withText(R.string.roaming_alert_title)).check(doesNotExist());
-    }
-
-    @FlakyTest
-    @Test
-    public void dataRoamingStaysDisabledWhenDialogCanceled() throws SettingNotFoundException {
-        // click on the data roaming preference to trigger warning dialog
-        onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
-        // click to cancel turning on data roaming
-        onView(withId(android.R.id.button2)).perform(click());
-
-        // verify that the the setting has not been changed
-        assertThat(Global.getInt(mActivity.getApplicationContext().getContentResolver(),
-                Global.DATA_ROAMING)).isEqualTo(0);
-
-    }
-}
diff --git a/tests/src/com/android/phone/ServiceStateProviderTest.java b/tests/src/com/android/phone/ServiceStateProviderTest.java
new file mode 100644
index 0000000..32e5f26
--- /dev/null
+++ b/tests/src/com/android/phone/ServiceStateProviderTest.java
@@ -0,0 +1,307 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import static android.provider.Telephony.ServiceStateTable;
+import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionId;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+
+import android.content.Context;
+import android.content.pm.ProviderInfo;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.net.Uri;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.test.mock.MockContentResolver;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests for simple queries of ServiceStateProvider.
+ *
+ * Build, install and run the tests by running the commands below:
+ *     runtest --path <dir or file>
+ *     runtest --path <dir or file> --test-method <testMethodName>
+ *     e.g.)
+ *         runtest --path tests/src/com/android/phone/ServiceStateProviderTest.java \
+ *                 --test-method testGetServiceState
+ */
+public class ServiceStateProviderTest {
+    private static final String TAG = "ServiceStateProviderTest";
+
+    private Context mContext;
+    private MockContentResolver mContentResolver;
+    private ServiceState mTestServiceState;
+    private ServiceState mTestServiceStateForSubId1;
+
+    private final String[] mTestProjection =
+    {
+        ServiceStateTable.VOICE_REG_STATE,
+        ServiceStateProvider.DATA_REG_STATE,
+        ServiceStateProvider.VOICE_OPERATOR_ALPHA_LONG,
+        ServiceStateProvider.VOICE_OPERATOR_ALPHA_SHORT,
+        ServiceStateTable.VOICE_OPERATOR_NUMERIC,
+        ServiceStateProvider.DATA_OPERATOR_ALPHA_LONG,
+        ServiceStateProvider.DATA_OPERATOR_ALPHA_SHORT,
+        ServiceStateProvider.DATA_OPERATOR_NUMERIC,
+        ServiceStateTable.IS_MANUAL_NETWORK_SELECTION,
+        ServiceStateProvider.RIL_VOICE_RADIO_TECHNOLOGY,
+        ServiceStateProvider.RIL_DATA_RADIO_TECHNOLOGY,
+        ServiceStateProvider.CSS_INDICATOR,
+        ServiceStateProvider.NETWORK_ID,
+        ServiceStateProvider.SYSTEM_ID,
+        ServiceStateProvider.CDMA_ROAMING_INDICATOR,
+        ServiceStateProvider.CDMA_DEFAULT_ROAMING_INDICATOR,
+        ServiceStateProvider.CDMA_ERI_ICON_INDEX,
+        ServiceStateProvider.CDMA_ERI_ICON_MODE,
+        ServiceStateProvider.IS_EMERGENCY_ONLY,
+        ServiceStateProvider.IS_USING_CARRIER_AGGREGATION,
+        ServiceStateProvider.OPERATOR_ALPHA_LONG_RAW,
+        ServiceStateProvider.OPERATOR_ALPHA_SHORT_RAW,
+    };
+
+    @Before
+    public void setUp() throws Exception {
+        mContext = mock(Context.class);
+        mContentResolver = new MockContentResolver() {
+            @Override
+            public void notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork) {
+                throw new RuntimeException("notifyChange!");
+            }
+        };
+        doReturn(mContentResolver).when(mContext).getContentResolver();
+
+        mTestServiceState = new ServiceState();
+        mTestServiceState.setStateOutOfService();
+        mTestServiceStateForSubId1 = new ServiceState();
+        mTestServiceStateForSubId1.setStateOff();
+
+        // Mock out the actual phone state
+        ServiceStateProvider provider = new ServiceStateProvider() {
+            @Override
+            public ServiceState getServiceState(int subId) {
+                if (subId == 1) {
+                    return mTestServiceStateForSubId1;
+                } else {
+                    return mTestServiceState;
+                }
+            }
+
+            @Override
+            public int getDefaultSubId() {
+                return 0;
+            }
+        };
+        ProviderInfo providerInfo = new ProviderInfo();
+        providerInfo.authority = "service-state";
+        provider.attachInfoForTesting(mContext, providerInfo);
+        mContentResolver.addProvider("service-state", provider);
+    }
+
+    @Test
+    @SmallTest
+    public void testQueryServiceStateWithNoSubId() {
+        // Verify that when calling query with no subId in the uri the default ServiceState is
+        // returned.
+        // In this case the subId is set to 0 and the expected service state is
+        // mTestServiceState.
+        verifyServiceStateForSubId(ServiceStateTable.CONTENT_URI, mTestServiceState);
+    }
+
+    @Test
+    @SmallTest
+    public void testGetServiceStateWithDefaultSubId() {
+        // Verify that when calling with the DEFAULT_SUBSCRIPTION_ID the correct ServiceState is
+        // returned
+        // In this case the subId is set to 0 and the expected service state is
+        // mTestServiceState.
+        verifyServiceStateForSubId(
+                getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+                mTestServiceState);
+    }
+
+    /**
+     * Test querying the service state for a given subId
+     */
+    @Test
+    @SmallTest
+    public void testGetServiceStateForSubId() {
+        // Verify that when calling with a specific subId the correct ServiceState is returned
+        // In this case the subId is set to 1 and the expected service state is
+        // mTestServiceStateForSubId1
+        verifyServiceStateForSubId(getUriForSubscriptionId(1), mTestServiceStateForSubId1);
+    }
+
+    private void verifyServiceStateForSubId(Uri uri, ServiceState ss) {
+        Cursor cursor = mContentResolver.query(uri, mTestProjection, "",
+                null, null);
+        assertNotNull(cursor);
+        cursor.moveToFirst();
+
+        final int voiceRegState = ss.getState();
+        final int dataRegState = ss.getDataRegistrationState();
+        final String voiceOperatorAlphaLong = ss.getOperatorAlphaLong();
+        final String voiceOperatorAlphaShort = ss.getOperatorAlphaShort();
+        final String voiceOperatorNumeric = ss.getOperatorNumeric();
+        final String dataOperatorAlphaLong = ss.getOperatorAlphaLong();
+        final String dataOperatorAlphaShort = ss.getOperatorAlphaShort();
+        final String dataOperatorNumeric = ss.getOperatorNumeric();
+        final int isManualNetworkSelection = (ss.getIsManualSelection()) ? 1 : 0;
+        final int rilVoiceRadioTechnology = ss.getRilVoiceRadioTechnology();
+        final int rilDataRadioTechnology = ss.getRilDataRadioTechnology();
+        final int cssIndicator = ss.getCssIndicator();
+        final int networkId = ss.getCdmaNetworkId();
+        final int systemId = ss.getCdmaSystemId();
+        final int cdmaRoamingIndicator = ss.getCdmaRoamingIndicator();
+        final int cdmaDefaultRoamingIndicator = ss.getCdmaDefaultRoamingIndicator();
+        final int cdmaEriIconIndex = ss.getCdmaEriIconIndex();
+        final int cdmaEriIconMode = ss.getCdmaEriIconMode();
+        final int isEmergencyOnly = (ss.isEmergencyOnly()) ? 1 : 0;
+        final int isUsingCarrierAggregation = (ss.isUsingCarrierAggregation()) ? 1 : 0;
+        final String operatorAlphaLongRaw = ss.getOperatorAlphaLongRaw();
+        final String operatorAlphaShortRaw = ss.getOperatorAlphaShortRaw();
+
+        assertEquals(voiceRegState, cursor.getInt(0));
+        assertEquals(dataRegState, cursor.getInt(1));
+        assertEquals(voiceOperatorAlphaLong, cursor.getString(2));
+        assertEquals(voiceOperatorAlphaShort, cursor.getString(3));
+        assertEquals(voiceOperatorNumeric, cursor.getString(4));
+        assertEquals(dataOperatorAlphaLong, cursor.getString(5));
+        assertEquals(dataOperatorAlphaShort, cursor.getString(6));
+        assertEquals(dataOperatorNumeric, cursor.getString(7));
+        assertEquals(isManualNetworkSelection, cursor.getInt(8));
+        assertEquals(rilVoiceRadioTechnology, cursor.getInt(9));
+        assertEquals(rilDataRadioTechnology, cursor.getInt(10));
+        assertEquals(cssIndicator, cursor.getInt(11));
+        assertEquals(networkId, cursor.getInt(12));
+        assertEquals(systemId, cursor.getInt(13));
+        assertEquals(cdmaRoamingIndicator, cursor.getInt(14));
+        assertEquals(cdmaDefaultRoamingIndicator, cursor.getInt(15));
+        assertEquals(cdmaEriIconIndex, cursor.getInt(16));
+        assertEquals(cdmaEriIconMode, cursor.getInt(17));
+        assertEquals(isEmergencyOnly, cursor.getInt(18));
+        assertEquals(isUsingCarrierAggregation, cursor.getInt(19));
+        assertEquals(operatorAlphaLongRaw, cursor.getString(20));
+        assertEquals(operatorAlphaShortRaw, cursor.getString(21));
+    }
+
+    /**
+     * Test that we don't notify for certain field changes. (e.g. we don't notify when the NetworkId
+     * or SystemId change) This is an intentional behavior change from the broadcast.
+     */
+    @Test
+    @SmallTest
+    public void testNoNotify() {
+        int subId = 0;
+
+        ServiceState oldSS = new ServiceState();
+        oldSS.setStateOutOfService();
+        oldSS.setCdmaSystemAndNetworkId(1, 1);
+
+        ServiceState newSS = new ServiceState();
+        newSS.setStateOutOfService();
+        newSS.setCdmaSystemAndNetworkId(0, 0);
+
+        // Test that notifyChange is not called for these fields
+        boolean notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubIdAndField(mContext, oldSS, newSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertFalse(notifyChangeWasCalled);
+    }
+
+    @Test
+    @SmallTest
+    public void testNotifyChanged() {
+        int subId = 0;
+
+        ServiceState oldSS = new ServiceState();
+        oldSS.setStateOutOfService();
+        oldSS.setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE);
+
+        ServiceState copyOfOldSS = new ServiceState();
+        copyOfOldSS.setStateOutOfService();
+        copyOfOldSS.setVoiceRegState(ServiceState.STATE_OUT_OF_SERVICE);
+
+        ServiceState newSS = new ServiceState();
+        newSS.setStateOutOfService();
+        newSS.setVoiceRegState(ServiceState.STATE_POWER_OFF);
+
+        // Test that notifyChange is not called with no change in notifyChangeForSubIdAndField
+        boolean notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubIdAndField(mContext, oldSS, copyOfOldSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertFalse(notifyChangeWasCalled);
+
+        // Test that notifyChange is not called with no change in notifyChangeForSubId
+        notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubId(mContext, oldSS, copyOfOldSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertFalse(notifyChangeWasCalled);
+
+        // Test that notifyChange is called by notifyChangeForSubIdAndField when the voice_reg_state
+        // changes
+        notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubIdAndField(mContext, oldSS, newSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertTrue(notifyChangeWasCalled);
+
+        // Test that notifyChange is called by notifyChangeForSubId when the voice_reg_state changes
+        notifyChangeWasCalled = false;
+        try {
+            ServiceStateProvider.notifyChangeForSubId(mContext, oldSS, newSS, subId);
+        } catch (RuntimeException e) {
+            final String message = e.getMessage();
+            if (message != null &&  message.equals("notifyChange!")) {
+                notifyChangeWasCalled = true;
+            }
+        }
+        assertTrue(notifyChangeWasCalled);
+    }
+}
diff --git a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
index b8f2ec1..85dba51 100644
--- a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
+++ b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
@@ -121,7 +121,7 @@
         }
 
         @Override
-        protected void grantDefaultPermissionsToActiveLuiApp(ActivityInfo activityInfo) {}
+        protected void grantDefaultPermissionsToLuiApp(ActivityInfo activityInfo) {}
 
         @Override
         protected void revokePermissionFromLuiApps(Intent intent) {}
diff --git a/tests/src/com/android/phone/tests/CallDialTest.java b/tests/src/com/android/phone/tests/CallDialTest.java
index b30f5b2..6e78be0 100644
--- a/tests/src/com/android/phone/tests/CallDialTest.java
+++ b/tests/src/com/android/phone/tests/CallDialTest.java
@@ -22,9 +22,9 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.telecom.PhoneAccount;
 import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyFrameworkInitializer;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
@@ -155,7 +155,11 @@
         log("==> number: '" + number + "'");
 
         try {
-            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            ITelephony phone = ITelephony.Stub.asInterface(
+                    TelephonyFrameworkInitializer
+                            .getTelephonyServiceManager()
+                            .getTelephonyServiceRegisterer()
+                            .get());
             log("- phone: " + phone);
             log("- calling call()...");
             phone.call(getPackageName(), number);
@@ -173,7 +177,11 @@
         log("==> number: '" + number + "'");
 
         try {
-            ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+            ITelephony phone = ITelephony.Stub.asInterface(
+                    TelephonyFrameworkInitializer
+                            .getTelephonyServiceManager()
+                            .getTelephonyServiceRegisterer()
+                            .get());
             log("- phone: " + phone);
             log("- calling dial()...");
             phone.dial(number);
diff --git a/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java b/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
index 4336a20..ede0965 100644
--- a/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
+++ b/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
@@ -16,7 +16,7 @@
 
 package com.android.services.telephony;
 
-import static android.telecom.ConferenceParticipant.getParticipantAddress;
+import static com.android.ims.internal.ConferenceParticipant.getParticipantAddress;
 
 import static org.junit.Assert.assertEquals;
 
diff --git a/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
new file mode 100644
index 0000000..7f9efdc
--- /dev/null
+++ b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony;
+
+import static android.media.ToneGenerator.TONE_PROP_PROMPT;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.TestCase.assertEquals;
+
+import android.telephony.DisconnectCause;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DisconnectCauseUtilTest {
+    /**
+     * Verifies that a call drop due to loss of WIFI results in a disconnect cause of error and that
+     * the label, description and tone are all present.
+     */
+    @Test
+    public void testDropDueToWifiLoss() {
+        android.telecom.DisconnectCause tcCause = DisconnectCauseUtil.toTelecomDisconnectCause(
+                DisconnectCause.WIFI_LOST);
+        assertEquals(android.telecom.DisconnectCause.ERROR, tcCause.getCode());
+        assertEquals(TONE_PROP_PROMPT, tcCause.getTone());
+        assertNotNull(tcCause.getDescription());
+        assertNotNull(tcCause.getReason());
+    }
+}
diff --git a/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java b/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java
index aa832aa..edfc34f 100644
--- a/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java
+++ b/tests/src/com/android/services/telephony/ImsConferenceControllerTest.java
@@ -16,14 +16,13 @@
 
 package com.android.services.telephony;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.times;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 
 import android.os.Looper;
 import android.test.suitebuilder.annotation.SmallTest;
@@ -32,7 +31,6 @@
 
 import org.junit.Before;
 import org.junit.Test;
-
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
@@ -85,7 +83,7 @@
         mControllerTest.add(mTestTelephonyConnectionA);
 
         mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         assertTrue(mTestTelephonyConnectionA.getConferenceables()
                 .contains(mTestTelephonyConnectionB));
@@ -125,10 +123,9 @@
         mControllerTest.add(mTestTelephonyConnectionA);
 
         mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         verify(mMockTelephonyConnectionServiceProxy, times(2))
                 .addConference(any(ImsConference.class));
-
     }
 }
diff --git a/tests/src/com/android/services/telephony/ImsConferenceTest.java b/tests/src/com/android/services/telephony/ImsConferenceTest.java
index eaec5b6..f172d67 100644
--- a/tests/src/com/android/services/telephony/ImsConferenceTest.java
+++ b/tests/src/com/android/services/telephony/ImsConferenceTest.java
@@ -16,40 +16,34 @@
 
 package com.android.services.telephony;
 
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.times;
-
-import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.net.Uri;
 import android.os.Looper;
 import android.telecom.Call;
 import android.telecom.Conference;
-import android.telecom.ConferenceParticipant;
 import android.telecom.Connection;
 import android.telecom.PhoneAccountHandle;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.internal.telephony.PhoneConstants;
+import com.android.ims.internal.ConferenceParticipant;
 
 import org.junit.Before;
 import org.junit.Test;
-
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
 
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 
 public class ImsConferenceTest {
     @Mock
@@ -80,14 +74,15 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
                 "A",
                 Uri.parse("sip:6505551212@testims.com"),
                 Connection.STATE_ACTIVE,
-                Call.Details.DIRECTION_INCOMING);
+                Call.Details.DIRECTION_OUTGOING);
         ConferenceParticipant participant2 = new ConferenceParticipant(
                 Uri.parse("tel:6505551213"),
                 "A",
@@ -105,8 +100,8 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1));
         assertEquals(0, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
-                any(Connection.class));
+        // Ensure the call direction is set correctly during emulation
+        assertEquals(Call.Details.DIRECTION_OUTGOING, imsConference.getCallDirection());
         reset(mMockTelephonyConnectionServiceProxy);
 
         // Back to 2!
@@ -129,7 +124,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         // Start off with 3 participants.
         ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -169,8 +165,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2, participant3Disconnected));
         assertEquals(2, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(1)).removeConnection(
-                any(Connection.class));
         reset(mMockTelephonyConnectionServiceProxy);
 
         // Now remove it from another CEP update; should still be the same number of participants
@@ -178,8 +172,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2));
         assertEquals(2, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, never()).removeConnection(
-                any(Connection.class));
         verify(mMockTelephonyConnectionServiceProxy, never()).addExistingConnection(
                 any(PhoneAccountHandle.class), any(Connection.class),
                 any(Conference.class));
@@ -196,7 +188,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         // Start off with 3 participants.
         ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -230,8 +223,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2));
         assertEquals(2, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(1)).removeConnection(
-                any(Connection.class));
         verify(mMockTelephonyConnectionServiceProxy, never()).addExistingConnection(
                 any(PhoneAccountHandle.class), any(Connection.class),
                 any(Conference.class));
@@ -255,7 +246,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         // Setup the initial conference state with 2 participants.
         ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -288,8 +280,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1, participant2Disconnected));
         assertEquals(0, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
-                any(Connection.class));
         reset(mMockTelephonyConnectionServiceProxy);
 
         // Pretend to merge someone else into the conference.
@@ -315,17 +305,18 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         final boolean[] isConferenceState = new boolean[1];
-        Conference.Listener conferenceListener = new Conference.Listener() {
+        TelephonyConferenceBase.TelephonyConferenceListener conferenceListener =
+                new TelephonyConferenceBase.TelephonyConferenceListener() {
             @Override
-            public void onConferenceStateChanged(Conference c, boolean isConference) {
-                super.onConferenceStateChanged(c, isConference);
-                isConferenceState[0] = isConference;
+            public void onConferenceMembershipChanged(Connection connection) {
+                isConferenceState[0] = connection.getConference() != null;
             }
         };
-        imsConference.addListener(conferenceListener);
+        imsConference.addTelephonyConferenceListener(conferenceListener);
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
@@ -350,8 +341,6 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1));
         assertEquals(0, imsConference.getNumberOfParticipants());
-        verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
-                any(Connection.class));
 
         // Emulate a pre-disconnect conference event package; there will be zero participants.
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
@@ -362,6 +351,62 @@
     }
 
     /**
+     * Verify that the single party emulate correctly when the conference start with only
+     * one participant.
+     */
+    @Test
+    @SmallTest
+    public void testSinglePartyEmulationWithOneParticipantAtBeginning() {
+        when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+                .thenReturn(false);
+
+        ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+                mMockTelephonyConnectionServiceProxy, mConferenceHost,
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
+
+        ConferenceParticipant participant1 = new ConferenceParticipant(
+                Uri.parse("tel:6505551212"),
+                "A",
+                Uri.parse("sip:6505551212@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+                Arrays.asList(participant1));
+        assertFalse(imsConference.isMultiparty());
+    }
+
+    /**
+     * Verify that the single party emulate correctly when the conference starts with a single
+     * party as part of the initial setup.  This mimics how an ImsCall can get CEP data prior to the
+     * ImsConference being created.
+     */
+    @Test
+    @SmallTest
+    public void testSinglePartyEmulationWithSinglePartyAtCreation() {
+        when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+                .thenReturn(false);
+
+        ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+                mMockTelephonyConnectionServiceProxy, mConferenceHost,
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
+
+        ConferenceParticipant participant1 = new ConferenceParticipant(
+                Uri.parse("tel:6505551214"),
+                "A",
+                Uri.parse("sip:6505551214@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        List<ConferenceParticipant> cps = Arrays.asList(participant1);
+        when(mConferenceHost.mMockRadioConnection.getConferenceParticipants())
+                .thenReturn(cps);
+        imsConference.updateConferenceParticipantsAfterCreation();
+
+        assertFalse(imsConference.isMultiparty());
+    }
+
+    /**
      * Verify that we do not use single party emulation when a sim call manager is in use.
      */
     @Test
@@ -373,7 +418,8 @@
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
@@ -404,13 +450,14 @@
 
     @Test
     @SmallTest
-    public void testNormalConference() {
+    public void testNormalConference() throws Exception {
         when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
                 .thenReturn(false);
 
         ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
                 mMockTelephonyConnectionServiceProxy, mConferenceHost,
-                null /* phoneAccountHandle */, () -> false /* featureFlagProxy */);
+                null /* phoneAccountHandle */, () -> false /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder().build());
 
         ConferenceParticipant participant1 = new ConferenceParticipant(
                 Uri.parse("tel:6505551212"),
@@ -432,5 +479,45 @@
         imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
                 Arrays.asList(participant1));
         assertEquals(1, imsConference.getNumberOfParticipants());
+
+        // Drop to 0 participants; should not hangup the conf now
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost, Collections.emptyList());
+        assertEquals(0, imsConference.getNumberOfParticipants());
+        verify(mConferenceHost.mMockCall, never()).hangup();
+    }
+
+    @Test
+    @SmallTest
+    public void testLocalDisconnectOnEmptyConference() throws Exception {
+        when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+                .thenReturn(false);
+
+        ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+                mMockTelephonyConnectionServiceProxy, mConferenceHost,
+                null /* phoneAccountHandle */, () -> false /* featureFlagProxy */,
+                new ImsConference.CarrierConfiguration.Builder()
+                        .setShouldLocalDisconnectEmptyConference(true)
+                        .build());
+
+        ConferenceParticipant participant1 = new ConferenceParticipant(
+                Uri.parse("tel:6505551212"),
+                "A",
+                Uri.parse("sip:6505551212@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        ConferenceParticipant participant2 = new ConferenceParticipant(
+                Uri.parse("tel:6505551213"),
+                "A",
+                Uri.parse("sip:6505551213@testims.com"),
+                Connection.STATE_ACTIVE,
+                Call.Details.DIRECTION_INCOMING);
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+                Arrays.asList(participant1, participant2));
+        assertEquals(2, imsConference.getNumberOfParticipants());
+
+        // Drop to 0 participants; should have a hangup request.
+        imsConference.handleConferenceParticipantsUpdate(mConferenceHost, Collections.emptyList());
+        assertEquals(0, imsConference.getNumberOfParticipants());
+        verify(mConferenceHost.mMockCall).hangup();
     }
 }
diff --git a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
index 8b46bf0..d55a2fa 100644
--- a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
+++ b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
@@ -34,6 +34,7 @@
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.TelephonyTestBase;
+import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 
@@ -55,6 +56,7 @@
 
     @Mock Phone mMockPhone;
     @Mock RadioOnStateListener.Callback mCallback;
+    @Mock CommandsInterface mMockCi;
     RadioOnStateListener mListener;
 
     @Override
@@ -67,9 +69,11 @@
     @Override
     @After
     public void tearDown() throws Exception {
+        mListener.setTimeBetweenRetriesMillis(5000);
+        mListener.setMaxNumRetries(5);
+        mListener.getHandler().removeCallbacksAndMessages(null);
         // Wait for the queue to clear...
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS /*ms timeout*/);
-        mListener.getHandler().removeCallbacksAndMessages(null);
         mListener = null;
         super.tearDown();
     }
@@ -80,13 +84,17 @@
     @Test
     @SmallTest
     public void testRegisterForCallback() {
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
 
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
 
         verify(mMockPhone).unregisterForServiceStateChanged(any(Handler.class));
         verify(mMockPhone).registerForServiceStateChanged(any(Handler.class),
                 eq(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED), isNull());
+
+        verify(mMockCi).registerForOffOrNotAvailable(any(Handler.class),
+                eq(RadioOnStateListener.MSG_RADIO_OFF_OR_NOT_AVAILABLE), isNull());
     }
 
     /**
@@ -99,9 +107,11 @@
     public void testPhoneChangeState_OkToCallTrue() {
         ServiceState state = new ServiceState();
         state.setState(ServiceState.STATE_IN_SERVICE);
+        when(mMockPhone.getServiceState()).thenReturn(state);
         when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
         when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(true);
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
 
         mListener.getHandler().obtainMessage(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED,
@@ -124,7 +134,8 @@
         when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
         when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(false);
         when(mMockPhone.getServiceState()).thenReturn(state);
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
         waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
 
         mListener.getHandler().obtainMessage(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED,
@@ -152,10 +163,33 @@
         mListener.setMaxNumRetries(2);
 
         // Wait for the timer to expire and check state manually in onRetryTimeout
-        mListener.waitForRadioOn(mMockPhone, mCallback);
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
         waitForHandlerActionDelayed(mListener.getHandler(), TIMEOUT_MS, TIMEOUT_MS /*delay*/);
 
         verify(mCallback).onComplete(eq(mListener), eq(false));
-        verify(mMockPhone, times(2)).setRadioPower(eq(true));
+        verify(mMockPhone, times(2)).setRadioPower(eq(true),
+                eq(false), eq(false), eq(false));
+    }
+
+    @Test
+    @SmallTest
+    public void testTimeout_RetryFailure_ForEmergency() {
+        ServiceState state = new ServiceState();
+        state.setState(ServiceState.STATE_POWER_OFF);
+        when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
+        when(mMockPhone.getServiceState()).thenReturn(state);
+        when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(false);
+        mListener.setTimeBetweenRetriesMillis(0/*ms*/);
+        mListener.setMaxNumRetries(2);
+
+        // Wait for the timer to expire and check state manually in onRetryTimeout
+        mMockPhone.mCi = mMockCi;
+        mListener.waitForRadioOn(mMockPhone, mCallback, true, true);
+        waitForHandlerActionDelayed(mListener.getHandler(), TIMEOUT_MS, TIMEOUT_MS /*delay*/);
+
+        verify(mCallback).onComplete(eq(mListener), eq(false));
+        verify(mMockPhone, times(2)).setRadioPower(eq(true),
+                eq(true), eq(true), eq(false));
     }
 }
diff --git a/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java b/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java
index 275bcc6..cfdc2fd 100644
--- a/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConferenceControllerTest.java
@@ -16,6 +16,13 @@
 
 package com.android.services.telephony;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.os.Looper;
 import android.telecom.Conference;
 import android.telecom.Connection;
@@ -23,18 +30,9 @@
 
 import org.junit.Before;
 import org.junit.Test;
-
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.mockito.ArgumentCaptor;
-
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.any;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -50,7 +48,7 @@
     private TelephonyConnectionServiceProxy mMockTelephonyConnectionServiceProxy;
 
     @Mock
-    private Conference.Listener mMockListener;
+    private TelephonyConferenceBase.TelephonyConferenceListener mMockListener;
 
     private TestTelephonyConnection mTestTelephonyConnectionA;
     private TestTelephonyConnection mTestTelephonyConnectionB;
@@ -94,8 +92,8 @@
         // add telephony connection A
         mControllerTest.add(mTestTelephonyConnectionA);
 
-        mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionA.setTelephonyConnectionActive();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         assertTrue(mTestTelephonyConnectionA.getConferenceables()
                 .contains(mTestTelephonyConnectionB));
@@ -146,8 +144,8 @@
         // add telephony connection A
         mControllerTest.add(mTestTelephonyConnectionA);
 
-        mTestTelephonyConnectionA.setActive();
-        mTestTelephonyConnectionB.setOnHold();
+        mTestTelephonyConnectionA.setTelephonyConnectionActive();
+        mTestTelephonyConnectionB.setTelephonyConnectionOnHold();
 
         assertTrue(mTestTelephonyConnectionA.getConferenceables()
                 .contains(mTestTelephonyConnectionB));
@@ -160,7 +158,7 @@
         verify(mMockTelephonyConnectionServiceProxy).addConference(argumentCaptor.capture());
 
         // add a listener to the added conference
-        argumentCaptor.getValue().addListener(mMockListener);
+        argumentCaptor.getValue().addTelephonyConferenceListener(mMockListener);
 
         verify(mMockListener, never()).onDestroyed(any(Conference.class));
 
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 583b498..2060e6f 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -16,15 +16,20 @@
 
 package com.android.services.telephony;
 
+import static com.android.internal.telephony.RILConstants.GSM_PHONE;
+
 import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertTrue;
 import static junit.framework.Assert.fail;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -37,6 +42,8 @@
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
 import android.telecom.ConnectionRequest;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccountHandle;
@@ -55,6 +62,7 @@
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneSwitcher;
+import com.android.internal.telephony.ServiceStateTracker;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 import com.android.internal.telephony.gsm.SuppServiceNotification;
 
@@ -90,6 +98,7 @@
     private static final PhoneAccountHandle PHONE_ACCOUNT_HANDLE_2 = new PhoneAccountHandle(
             TEST_COMPONENT_NAME, TEST_ACCOUNT_ID2);
     private static final Uri TEST_ADDRESS = Uri.parse("tel:+16505551212");
+    private android.telecom.Connection mConnection;
 
     @Mock TelephonyConnectionService.TelephonyManagerProxy mTelephonyManagerProxy;
     @Mock TelephonyConnectionService.SubscriptionManagerProxy mSubscriptionManagerProxy;
@@ -98,9 +107,13 @@
     @Mock TelephonyConnectionService.PhoneSwitcherProxy mPhoneSwitcherProxy;
     @Mock TelephonyConnectionService.PhoneNumberUtilsProxy mPhoneNumberUtilsProxy;
     @Mock TelephonyConnectionService.PhoneUtilsProxy mPhoneUtilsProxy;
+    @Mock TelephonyConnectionService.HandlerFactory mHandlerFactory;
     @Mock TelephonyConnectionService.DisconnectCauseFactory mDisconnectCauseFactory;
+    @Mock Handler mMockHandler;
     @Mock EmergencyNumberTracker mEmergencyNumberTracker;
     @Mock PhoneSwitcher mPhoneSwitcher;
+    @Mock RadioOnHelper mRadioOnHelper;
+    @Mock ServiceStateTracker mSST;
 
     private static class TestTelephonyConnectionService extends TelephonyConnectionService {
 
@@ -130,9 +143,17 @@
         doReturn(false).when(mDeviceState).shouldCheckSimStateBeforeOutgoingCall(any());
         mTestConnectionService.setPhoneSwitcherProxy(mPhoneSwitcherProxy);
         doReturn(mPhoneSwitcher).when(mPhoneSwitcherProxy).getPhoneSwitcher();
+        when(mPhoneNumberUtilsProxy.convertToEmergencyNumber(any(), anyString()))
+                .thenAnswer(invocation -> invocation.getArgument(1));
         mTestConnectionService.setPhoneNumberUtilsProxy(mPhoneNumberUtilsProxy);
         mTestConnectionService.setPhoneUtilsProxy(mPhoneUtilsProxy);
+        HandlerThread mockHandlerThread = mock(HandlerThread.class);
+        doReturn(mockHandlerThread).when(mHandlerFactory).createHandlerThread(anyString());
+        doReturn(null).when(mockHandlerThread).getLooper();
+        doReturn(mMockHandler).when(mHandlerFactory).createHandler(any());
+        mTestConnectionService.setHandlerFactory(mHandlerFactory);
         mTestConnectionService.setDeviceState(mDeviceState);
+        mTestConnectionService.setRadioOnHelper(mRadioOnHelper);
         doReturn(new DisconnectCause(DisconnectCause.UNKNOWN)).when(mDisconnectCauseFactory)
                 .toTelecomDisconnectCause(anyInt(), any());
         doReturn(new DisconnectCause(DisconnectCause.UNKNOWN)).when(mDisconnectCauseFactory)
@@ -336,6 +357,37 @@
 
     /**
      * Prerequisites:
+     * - MSIM Device, only slot 1 inserted and PUK locked
+     * - slot 1 has higher capabilities
+     *
+     * Result: getFirstPhoneForEmergencyCall returns the slot 1 phone because it is the only one
+     * with a SIM inserted (even if it is PUK locked)
+     */
+    @Test
+    @SmallTest
+    public void testSlot1PinLockedAndSlot0Absent() {
+        Phone slot0Phone = makeTestPhone(SLOT_0_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+                false /*isEmergencyOnly*/);
+        Phone slot1Phone = makeTestPhone(SLOT_1_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+                false /*isEmergencyOnly*/);
+        setDefaultPhone(slot0Phone);
+        setupDeviceConfig(slot0Phone, slot1Phone, SLOT_0_PHONE_ID);
+        setPhoneSlotState(SLOT_0_PHONE_ID, TelephonyManager.SIM_STATE_ABSENT);
+        setPhoneSlotState(SLOT_1_PHONE_ID, TelephonyManager.SIM_STATE_PIN_REQUIRED);
+        // Slot 1 has more capabilities
+        setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_GSM);
+        setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
+        // Slot 1 has SIM inserted.
+        setSlotHasIccCard(SLOT_0_PHONE_ID, false /*isInserted*/);
+        setSlotHasIccCard(SLOT_1_PHONE_ID, true /*isInserted*/);
+
+        Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
+
+        assertEquals(slot1Phone, resultPhone);
+    }
+
+    /**
+     * Prerequisites:
      * - MSIM Device, two slots with SIMs inserted
      * - Slot 1 is LTE capable, Slot 0 is GSM capable
      *
@@ -879,11 +931,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_carrierconfig_dds() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup test to not support SUPL on the non-DDS subscription
         doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -895,27 +945,80 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "150");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher).overrideDefaultDataForEmergency(eq(0) /*phoneId*/ ,
                 eq(150) /*extensionTime*/, any());
     }
 
     /**
+     * Test that the TelephonyConnectionService successfully turns radio on before placing the
+     * emergency call.
+     */
+    @Test
+    @SmallTest
+    public void testCreateOutgoingEmerge_exitingApm_disconnected() {
+        when(mDeviceState.isAirplaneModeOn(any())).thenReturn(true);
+        Phone testPhone = setupConnectionServiceInApm();
+
+        ArgumentCaptor<RadioOnStateListener.Callback> callback =
+                ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
+        verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
+                eq(testPhone));
+
+        assertFalse(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+        when(mSST.isRadioOn()).thenReturn(true);
+        assertTrue(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+
+        mConnection.setDisconnected(null);
+        callback.getValue().onComplete(null, true);
+        for (Phone phone : mPhoneFactoryProxy.getPhones()) {
+            verify(phone).setRadioPower(true, false, false, true);
+        }
+    }
+
+    /**
+     * Test that the TelephonyConnectionService successfully turns radio on before placing the
+     * emergency call.
+     */
+    @Test
+    @SmallTest
+    public void testCreateOutgoingEmergencyConnection_exitingApm_placeCall() {
+        when(mDeviceState.isAirplaneModeOn(any())).thenReturn(true);
+        Phone testPhone = setupConnectionServiceInApm();
+
+        ArgumentCaptor<RadioOnStateListener.Callback> callback =
+                ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
+        verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
+                eq(testPhone));
+
+        assertFalse(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+        when(mSST.isRadioOn()).thenReturn(true);
+        assertTrue(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+
+        callback.getValue().onComplete(null, true);
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
+        try {
+            doAnswer(invocation -> null).when(mContext).startActivity(any());
+            delayDialRunnable.run();
+            verify(testPhone).dial(anyString(), any());
+        } catch (CallStateException e) {
+            // This shouldn't happen
+            fail();
+        }
+    }
+
+    /**
      * Test that the TelephonyConnectionService does not perform a DDS switch when the carrier
      * supports control-plane fallback.
      */
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_nocarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup test to not support SUPL on the non-DDS subscription
         doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -927,10 +1030,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any());
     }
@@ -942,11 +1042,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_supportsuplondds() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // If the non-DDS supports SUPL, dont switch data
         doReturn(false).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -958,10 +1056,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any());
     }
@@ -973,11 +1068,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_roaming_nocarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup test to not support SUPL on the non-DDS subscription
         doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
         getTestContext().getCarrierConfig().putStringArray(
@@ -989,10 +1082,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher, never()).overrideDefaultDataForEmergency(anyInt(), anyInt(), any());
     }
@@ -1005,11 +1095,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial_roamingcarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup voice roaming scenario
         String testRoamingOperator = "001001";
         // In some roaming conditions, we are not technically "roaming"
@@ -1027,10 +1115,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher).overrideDefaultDataForEmergency(eq(0) /*phoneId*/ ,
                 eq(0) /*extensionTime*/, any());
@@ -1044,11 +1129,9 @@
     @Test
     @SmallTest
     public void testCreateOutgoingEmergencyConnection_delayDial__roaming_roamingcarrierconfig() {
-        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
-                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
-                .setAddress(TEST_ADDRESS)
-                .build();
         Phone testPhone = setupConnectionServiceForDelayDial();
+        Runnable delayDialRunnable = verifyRunnablePosted();
+
         // Setup voice roaming scenario
         String testRoamingOperator = "001001";
         testPhone.getServiceState().setRoaming(true);
@@ -1065,10 +1148,7 @@
                 CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
         getTestContext().getCarrierConfig().putString(
                 CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
-
-        android.telecom.Connection testConnection = mTestConnectionService
-                .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
-        assertNotNull("test connection was not set up correctly.", testConnection);
+        delayDialRunnable.run();
 
         verify(mPhoneSwitcher).overrideDefaultDataForEmergency(eq(0) /*phoneId*/ ,
                 eq(0) /*extensionTime*/, any());
@@ -1079,6 +1159,10 @@
      * @return the Phone associated with slot 0.
      */
     private Phone setupConnectionServiceForDelayDial() {
+        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
+                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
+                .setAddress(TEST_ADDRESS)
+                .build();
         Phone testPhone0 = makeTestPhone(0 /*phoneId*/, ServiceState.STATE_IN_SERVICE,
                 false /*isEmergencyOnly*/);
         Phone testPhone1 = makeTestPhone(1 /*phoneId*/, ServiceState.STATE_OUT_OF_SERVICE,
@@ -1100,9 +1184,62 @@
         doReturn(emergencyNumbers).when(mTelephonyManagerProxy).getCurrentEmergencyNumberList();
         doReturn(2).when(mTelephonyManagerProxy).getPhoneCount();
 
+        mConnection = mTestConnectionService.onCreateOutgoingConnection(
+                PHONE_ACCOUNT_HANDLE_1, connectionRequest);
+        assertNotNull("test connection was not set up correctly.", mConnection);
+
         return testPhone0;
     }
 
+
+    /**
+     * Set up a mock MSIM device with TEST_ADDRESS set as an emergency number in airplane mode.
+     * @return the Phone associated with slot 0.
+     */
+    private Phone setupConnectionServiceInApm() {
+        ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
+                .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
+                .setAddress(TEST_ADDRESS)
+                .build();
+        Phone testPhone0 = makeTestPhone(0 /*phoneId*/, ServiceState.STATE_POWER_OFF,
+                false /*isEmergencyOnly*/);
+        Phone testPhone1 = makeTestPhone(1 /*phoneId*/, ServiceState.STATE_POWER_OFF,
+                false /*isEmergencyOnly*/);
+        doReturn(GSM_PHONE).when(testPhone0).getPhoneType();
+        doReturn(GSM_PHONE).when(testPhone1).getPhoneType();
+        List<Phone> phones = new ArrayList<>(2);
+        doReturn(false).when(testPhone0).isRadioOn();
+        doReturn(false).when(testPhone1).isRadioOn();
+        phones.add(testPhone0);
+        phones.add(testPhone1);
+        setPhones(phones);
+        setupHandleToPhoneMap(PHONE_ACCOUNT_HANDLE_1, testPhone0);
+        setupDeviceConfig(testPhone0, testPhone1, 0);
+        doReturn(true).when(mTelephonyManagerProxy).isCurrentEmergencyNumber(
+                TEST_ADDRESS.getSchemeSpecificPart());
+        HashMap<Integer, List<EmergencyNumber>> emergencyNumbers = new HashMap<>(1);
+        List<EmergencyNumber> numbers = new ArrayList<>();
+        numbers.add(setupEmergencyNumber(TEST_ADDRESS));
+        emergencyNumbers.put(0 /*subId*/, numbers);
+        doReturn(emergencyNumbers).when(mTelephonyManagerProxy).getCurrentEmergencyNumberList();
+        doReturn(2).when(mTelephonyManagerProxy).getPhoneCount();
+
+        mConnection = mTestConnectionService.onCreateOutgoingConnection(
+                PHONE_ACCOUNT_HANDLE_1, connectionRequest);
+        assertNotNull("test connection was not set up correctly.", mConnection);
+
+        return testPhone0;
+    }
+
+    private Runnable verifyRunnablePosted() {
+        ArgumentCaptor<Message> runnableCaptor = ArgumentCaptor.forClass(Message.class);
+        verify(mMockHandler).sendMessageDelayed(runnableCaptor.capture(), anyLong());
+        assertNotNull("Invalid Message created", runnableCaptor.getValue());
+        Runnable runnable = runnableCaptor.getValue().getCallback();
+        assertNotNull("sendMessageDelayed never occurred.", runnableCaptor);
+        return runnable;
+    }
+
     private EmergencyNumber setupEmergencyNumber(Uri address) {
         return new EmergencyNumber(address.getSchemeSpecificPart(), "", "",
         EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED,
@@ -1134,6 +1271,9 @@
         when(phone.getServiceState()).thenReturn(testServiceState);
         when(phone.getPhoneId()).thenReturn(phoneId);
         when(phone.getDefaultPhone()).thenReturn(phone);
+        when(phone.getEmergencyNumberTracker()).thenReturn(mEmergencyNumberTracker);
+        when(phone.getServiceStateTracker()).thenReturn(mSST);
+        when(mEmergencyNumberTracker.getEmergencyNumber(anyString())).thenReturn(null);
         return phone;
     }
 
@@ -1163,6 +1303,7 @@
 
     private void setPhones(List<Phone> phones) {
         when(mPhoneFactoryProxy.getPhones()).thenReturn(phones.toArray(new Phone[phones.size()]));
+        when(mPhoneFactoryProxy.getDefaultPhone()).thenReturn(phones.get(0));
     }
 
     private void setPhonesDialConnection(Phone phone, Connection c) {
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
new file mode 100644
index 0000000..7d15680
--- /dev/null
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
@@ -0,0 +1,25 @@
+package com.android.services.telephony;
+
+import static junit.framework.Assert.assertEquals;
+
+import android.os.Bundle;
+import android.telecom.Connection;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import androidx.test.runner.AndroidJUnit4;
+
+@RunWith(AndroidJUnit4.class)
+public class TelephonyConnectionTest {
+
+    @Test
+    public void testCodecInIms() {
+        TestTelephonyConnection c = new TestTelephonyConnection();
+        c.updateState();
+        Bundle extras = c.getExtras();
+        int codec = extras.getInt(Connection.EXTRA_AUDIO_CODEC, Connection.AUDIO_CODEC_NONE);
+        assertEquals(codec, Connection.AUDIO_CODEC_AMR);
+    }
+
+}
diff --git a/tests/src/com/android/services/telephony/TestTelephonyConnection.java b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
index c4d6568..09cec17 100644
--- a/tests/src/com/android/services/telephony/TestTelephonyConnection.java
+++ b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
@@ -24,14 +24,17 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.Connection;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
@@ -57,6 +60,9 @@
     @Mock
     Resources mMockResources;
 
+    @Mock
+    EmergencyNumberTracker mEmergencyNumberTracker;
+
     private Phone mMockPhone;
     private int mNotifyPhoneAccountChangedCount = 0;
     private List<String> mLastConnectionEvents = new ArrayList<>();
@@ -67,20 +73,30 @@
         return mMockRadioConnection;
     }
 
+    @Override
+    protected Call getCall() {
+        return mMockCall;
+    }
+
     public TestTelephonyConnection() {
-        super(null, null, false);
+        super(null, null, android.telecom.Call.Details.DIRECTION_INCOMING);
         MockitoAnnotations.initMocks(this);
 
         mMockPhone = mock(Phone.class);
         mMockContext = mock(Context.class);
-        mOriginalConnection = mock(Connection.class);
+        mOriginalConnection = mMockRadioConnection;
         // Set up mMockRadioConnection and mMockPhone to contain an active call
         when(mMockRadioConnection.getState()).thenReturn(Call.State.ACTIVE);
+        when(mOriginalConnection.getState()).thenReturn(Call.State.ACTIVE);
+        when(mMockRadioConnection.getAudioCodec()).thenReturn(
+                android.telecom.Connection.AUDIO_CODEC_AMR);
         when(mMockRadioConnection.getCall()).thenReturn(mMockCall);
         when(mMockRadioConnection.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
         doNothing().when(mMockRadioConnection).addListener(any(Connection.Listener.class));
         doNothing().when(mMockRadioConnection).addPostDialListener(
                 any(Connection.PostDialListener.class));
+        when(mEmergencyNumberTracker.getEmergencyNumber(anyString())).thenReturn(null);
+        when(mMockPhone.getEmergencyNumberTracker()).thenReturn(mEmergencyNumberTracker);
         when(mMockPhone.getRingingCall()).thenReturn(mMockCall);
         when(mMockPhone.getContext()).thenReturn(mMockContext);
         when(mMockPhone.getCurrentSubscriberUris()).thenReturn(null);
@@ -90,6 +106,11 @@
         when(mMockPhone.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
         when(mMockCall.getState()).thenReturn(Call.State.ACTIVE);
         when(mMockCall.getPhone()).thenReturn(mMockPhone);
+        try {
+            doNothing().when(mMockCall).hangup();
+        } catch (CallStateException e) {
+            e.printStackTrace();
+        }
     }
 
     @Override
@@ -134,6 +155,16 @@
     }
 
     @Override
+    public CharSequence getResourceText(int messageId) {
+        return "TEST";
+    }
+
+    @Override
+    public String getResourceString(int id) {
+        return "TEST";
+    }
+
+    @Override
     void refreshConferenceSupported() {
         // Requires ImsManager dependencies, do not implement during testing.
     }
diff --git a/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
new file mode 100644
index 0000000..fbb270d
--- /dev/null
+++ b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
@@ -0,0 +1,283 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.telephony.AccessNetworkConstants;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.telephony.ims.feature.RcsFeature;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+import com.android.ims.FeatureConnector;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+
+import java.util.concurrent.Executor;
+
+@RunWith(AndroidJUnit4.class)
+public class RcsFeatureControllerTest extends TelephonyTestBase {
+
+    private static final ImsReasonInfo REASON_DISCONNECTED = new ImsReasonInfo(
+            ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN, 0, "test");
+
+    @Mock RcsFeatureManager mFeatureManager;
+    @Mock RcsFeatureController.FeatureConnectorFactory<RcsFeatureManager> mFeatureFactory;
+    @Mock ImsRegistrationCallbackHelper.ImsRegistrationUpdate mRegistrationCallback;
+    @Mock FeatureConnector<RcsFeatureManager> mFeatureConnector;
+    @Mock RcsFeatureController.Feature mMockFeature;
+    @Captor ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mConnectorListener;
+
+    private RcsFeatureController.RegistrationHelperFactory mRegistrationFactory =
+            new RcsFeatureController.RegistrationHelperFactory() {
+                @Override
+                public ImsRegistrationCallbackHelper create(
+                        ImsRegistrationCallbackHelper.ImsRegistrationUpdate cb, Executor executor) {
+                    // Run on current thread for testing.
+                    return new ImsRegistrationCallbackHelper(mRegistrationCallback, Runnable::run);
+                }
+            };
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    public void testRcsFeatureManagerConnectDisconnect() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+        verify(mMockFeature).onRcsDisconnected();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+
+        verify(mFeatureManager).updateCapabilities();
+        verify(mFeatureManager).registerImsRegistrationCallback(any());
+        verify(mMockFeature).onRcsConnected(mFeatureManager);
+
+        // Disconnect
+        mConnectorListener.getValue().connectionUnavailable();
+
+        verify(mFeatureManager).unregisterImsRegistrationCallback(any());
+        verify(mMockFeature, times(2)).onRcsDisconnected();
+    }
+
+    @Test
+    public void testFeatureManagerConnectedAddRemoveFeature() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+
+        verify(mMockFeature).onRcsConnected(mFeatureManager);
+        assertEquals(mMockFeature, controller.getFeature(RcsFeatureController.Feature.class));
+
+        controller.removeFeature(RcsFeatureController.Feature.class);
+        verify(mMockFeature).onDestroy();
+        assertNull(controller.getFeature(RcsFeatureController.Feature.class));
+    }
+
+    @Test
+    public void testFeatureManagerConnectedRegister() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        IImsRegistrationCallback regCb = mock(IImsRegistrationCallback.class);
+        IImsCapabilityCallback capCb = mock(IImsCapabilityCallback.class);
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+
+        try {
+            controller.registerImsRegistrationCallback(0 /*subId*/, regCb);
+            controller.registerRcsAvailabilityCallback(0 /*subId*/, capCb);
+            controller.isCapable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE,
+                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+            controller.isAvailable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE);
+            controller.getRegistrationTech(integer -> {
+            });
+            verify(mFeatureManager).registerImsRegistrationCallback(0, regCb);
+            verify(mFeatureManager).registerRcsAvailabilityCallback(0, capCb);
+            verify(mFeatureManager).isCapable(
+                    RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE,
+                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+            verify(mFeatureManager).isAvailable(
+                    RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE);
+            verify(mFeatureManager).getImsRegistrationTech(any());
+        } catch (ImsException e) {
+            fail("ImsException not expected.");
+        }
+
+        controller.unregisterImsRegistrationCallback(0, regCb);
+        controller.unregisterRcsAvailabilityCallback(0, capCb);
+        verify(mFeatureManager).unregisterImsRegistrationCallback(0, regCb);
+        verify(mFeatureManager).unregisterRcsAvailabilityCallback(0, capCb);
+    }
+
+    @Test
+    public void testFeatureManagerConnectedHelper() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        ArgumentCaptor<IImsRegistrationCallback> captor =
+                ArgumentCaptor.forClass(IImsRegistrationCallback.class);
+        verify(mFeatureManager).registerImsRegistrationCallback(captor.capture());
+        assertNotNull(captor.getValue());
+
+        captor.getValue().onDeregistered(REASON_DISCONNECTED);
+        controller.getRegistrationState(result -> {
+            assertNotNull(result);
+            assertEquals(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED, result.intValue());
+        });
+        verify(mRegistrationCallback).handleImsUnregistered(REASON_DISCONNECTED);
+
+        captor.getValue().onRegistering(ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+        controller.getRegistrationState(result -> {
+            assertNotNull(result);
+            assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERING, result.intValue());
+        });
+        verify(mRegistrationCallback).handleImsRegistering(
+                AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
+
+        captor.getValue().onRegistered(ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+        controller.getRegistrationState(result -> {
+            assertNotNull(result);
+            assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERED, result.intValue());
+        });
+        verify(mRegistrationCallback).handleImsRegistered(
+                AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
+    }
+
+    @Test
+    public void testFeatureManagerDisconnectedAddFeature() {
+        RcsFeatureController controller = createFeatureController();
+        // Disconnect the RcsFeatureManager
+        mConnectorListener.getValue().connectionUnavailable();
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+
+        verify(mMockFeature).onRcsDisconnected();
+    }
+
+    @Test
+    public void testFeatureManagerDisconnectedException() {
+        RcsFeatureController controller = createFeatureController();
+        IImsRegistrationCallback regCb = mock(IImsRegistrationCallback.class);
+        IImsCapabilityCallback capCb = mock(IImsCapabilityCallback.class);
+        // Disconnect the RcsFeatureManager
+        mConnectorListener.getValue().connectionUnavailable();
+
+        try {
+            controller.registerImsRegistrationCallback(0 /*subId*/, null /*callback*/);
+            fail("ImsException expected for IMS registration.");
+        } catch (ImsException e) {
+            //expected
+        }
+        try {
+            controller.registerRcsAvailabilityCallback(0 /*subId*/, null /*callback*/);
+            fail("ImsException expected for availability");
+        } catch (ImsException e) {
+            //expected
+        }
+        try {
+            controller.isCapable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE,
+                    ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
+            fail("ImsException expected for capability check");
+        } catch (ImsException e) {
+            //expected
+        }
+        try {
+            controller.isAvailable(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE);
+            fail("ImsException expected for availability check");
+        } catch (ImsException e) {
+            //expected
+        }
+        controller.getRegistrationTech(integer -> {
+            assertNotNull(integer);
+            assertEquals(ImsRegistrationImplBase.REGISTRATION_TECH_NONE, integer.intValue());
+        });
+        controller.unregisterImsRegistrationCallback(0, regCb);
+        controller.unregisterRcsAvailabilityCallback(0, capCb);
+        verify(mFeatureManager, never()).unregisterImsRegistrationCallback(0, regCb);
+        verify(mFeatureManager, never()).unregisterRcsAvailabilityCallback(0, capCb);
+    }
+
+    @Test
+    public void testChangeSubId() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        verify(mFeatureManager).updateCapabilities();
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+
+        controller.updateAssociatedSubscription(1 /*new sub id*/);
+
+        verify(mFeatureManager, times(2)).updateCapabilities();
+        verify(mMockFeature).onAssociatedSubscriptionUpdated(1 /*new sub id*/);
+    }
+
+    @Test
+    public void testDestroy() throws Exception {
+        RcsFeatureController controller = createFeatureController();
+        // Connect the RcsFeatureManager
+        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
+        controller.destroy();
+
+        verify(mFeatureConnector).disconnect();
+        verify(mMockFeature).onRcsDisconnected();
+        verify(mMockFeature).onDestroy();
+        assertNull(controller.getFeature(RcsFeatureController.Feature.class));
+    }
+
+    private RcsFeatureController createFeatureController() {
+        RcsFeatureController controller = new RcsFeatureController(mContext, 0 /*slotId*/,
+                mRegistrationFactory);
+        controller.setFeatureConnectorFactory(mFeatureFactory);
+        doReturn(mFeatureConnector).when(mFeatureFactory).create(any(), anyInt(),
+                mConnectorListener.capture(), any(), any());
+        controller.connect();
+        assertNotNull(mConnectorListener.getValue());
+        return controller;
+    }
+}
diff --git a/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
new file mode 100644
index 0000000..cfb68b7
--- /dev/null
+++ b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
@@ -0,0 +1,249 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.content.BroadcastReceiver;
+import android.content.Intent;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+import com.android.ims.FeatureConnector;
+import com.android.ims.RcsFeatureManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+
+@RunWith(AndroidJUnit4.class)
+public class TelephonyRcsServiceTest extends TelephonyTestBase {
+
+    @Captor ArgumentCaptor<BroadcastReceiver> mReceiverCaptor;
+    @Mock TelephonyRcsService.FeatureFactory mFeatureFactory;
+    @Mock UserCapabilityExchangeImpl mMockUceSlot0;
+    @Mock UserCapabilityExchangeImpl mMockUceSlot1;
+    @Mock RcsFeatureController.RegistrationHelperFactory mRegistrationFactory;
+    @Mock RcsFeatureController.FeatureConnectorFactory<RcsFeatureManager> mFeatureConnectorFactory;
+    @Mock FeatureConnector<RcsFeatureManager> mFeatureConnector;
+
+    private RcsFeatureController mFeatureControllerSlot0;
+    private RcsFeatureController mFeatureControllerSlot1;
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        doReturn(mFeatureConnector).when(mFeatureConnectorFactory).create(any(), anyInt(),
+                any(), any(), any());
+        mFeatureControllerSlot0 = createFeatureController(0 /*slotId*/);
+        mFeatureControllerSlot1 = createFeatureController(1 /*slotId*/);
+        doReturn(mFeatureControllerSlot0).when(mFeatureFactory).createController(any(), eq(0));
+        doReturn(mFeatureControllerSlot1).when(mFeatureFactory).createController(any(), eq(1));
+        doReturn(mMockUceSlot0).when(mFeatureFactory).createUserCapabilityExchange(any(), eq(0),
+                anyInt());
+        doReturn(mMockUceSlot1).when(mFeatureFactory).createUserCapabilityExchange(any(), eq(1),
+                anyInt());
+        //set up default slot-> sub ID mappings.
+        setSlotToSubIdMapping(0 /*slotId*/, 1/*subId*/);
+        setSlotToSubIdMapping(1 /*slotId*/, 2/*subId*/);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    public void testUserCapabilityExchangePresenceConnected() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+    }
+
+    @Test
+    public void testUserCapabilityExchangeOptionsConnected() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_SIP_OPTIONS_BOOL, true /*isEnabled*/);
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+    }
+
+    @Test
+    public void testNoFeaturesEnabled() {
+        createRcsService(1 /*numSlots*/);
+        // No carrier config set for UCE.
+        verify(mFeatureControllerSlot0, never()).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, never()).connect();
+    }
+
+    @Test
+    public void testNoFeaturesEnabledCarrierConfigChanged() {
+        createRcsService(1 /*numSlots*/);
+        // No carrier config set for UCE.
+
+        sendCarrierConfigChanged(0, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        verify(mFeatureControllerSlot0, never()).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, never()).connect();
+        verify(mFeatureControllerSlot0, never()).updateAssociatedSubscription(anyInt());
+    }
+
+
+    @Test
+    public void testSlotUpdates() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        TelephonyRcsService service = createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+
+        // there should be no changes if the new num slots = old num
+        service.updateFeatureControllerSize(1 /*newNumSlots*/);
+        verify(mFeatureControllerSlot0, times(1)).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, times(1)).connect();
+
+        // Add a new slot.
+        verify(mFeatureControllerSlot1, never()).addFeature(mMockUceSlot1,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1, never()).connect();
+        service.updateFeatureControllerSize(2 /*newNumSlots*/);
+        // This shouldn't have changed for slot 0.
+        verify(mFeatureControllerSlot0, times(1)).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, times(1)).connect();
+        verify(mFeatureControllerSlot1).addFeature(mMockUceSlot1, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1, times(1)).connect();
+
+        // Remove a slot.
+        verify(mFeatureControllerSlot0, never()).destroy();
+        verify(mFeatureControllerSlot1, never()).destroy();
+        service.updateFeatureControllerSize(1 /*newNumSlots*/);
+        // addFeature/connect shouldn't have been called again
+        verify(mFeatureControllerSlot0, times(1)).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, times(1)).connect();
+        verify(mFeatureControllerSlot1, times(1)).addFeature(mMockUceSlot1,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1, times(1)).connect();
+        // Verify destroy is only called for slot 1.
+        verify(mFeatureControllerSlot0, never()).destroy();
+        verify(mFeatureControllerSlot1, times(1)).destroy();
+    }
+
+    @Test
+    public void testCarrierConfigUpdate() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        createRcsService(2 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot1).addFeature(mMockUceSlot1, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+        verify(mFeatureControllerSlot1).connect();
+
+
+        // Send carrier config update for each slot.
+        sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+        verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+        verify(mFeatureControllerSlot1, never()).updateAssociatedSubscription(1);
+        sendCarrierConfigChanged(1 /*slotId*/, 2 /*subId*/);
+        verify(mFeatureControllerSlot0, never()).updateAssociatedSubscription(2);
+        verify(mFeatureControllerSlot1, times(1)).updateAssociatedSubscription(2);
+    }
+
+    @Test
+    public void testCarrierConfigUpdateUceToNoUce() {
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+
+
+        // Send carrier config update for each slot.
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, false /*isEnabled*/);
+        sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+        verify(mFeatureControllerSlot0).removeFeature(UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+    }
+
+    @Test
+    public void testCarrierConfigUpdateNoUceToUce() {
+        createRcsService(1 /*numSlots*/);
+        verify(mFeatureControllerSlot0, never()).addFeature(mMockUceSlot0,
+                UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0, never()).connect();
+
+
+        // Send carrier config update for each slot.
+        setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+        sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+        verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
+        verify(mFeatureControllerSlot0).connect();
+        verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+    }
+
+    private void sendCarrierConfigChanged(int slotId, int subId) {
+        Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
+        intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, slotId);
+        intent.putExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, subId);
+        mReceiverCaptor.getValue().onReceive(mContext, intent);
+    }
+
+    private void setCarrierConfig(String key, boolean value) {
+        PersistableBundle bundle = mContext.getCarrierConfig();
+        bundle.putBoolean(key, value);
+    }
+
+    private void setSlotToSubIdMapping(int slotId, int loadedSubId) {
+        SubscriptionManager m = mContext.getSystemService(SubscriptionManager.class);
+        int [] subIds = new int[1];
+        subIds[0] = loadedSubId;
+        doReturn(subIds).when(m).getSubscriptionIds(eq(slotId));
+    }
+
+    private TelephonyRcsService createRcsService(int numSlots) {
+        TelephonyRcsService service = new TelephonyRcsService(mContext, numSlots);
+        service.setFeatureFactory(mFeatureFactory);
+        service.initialize();
+        verify(mContext).registerReceiver(mReceiverCaptor.capture(), any());
+        return service;
+    }
+
+    private RcsFeatureController createFeatureController(int slotId) {
+        // Create a spy instead of a mock because TelephonyRcsService relies on state provided by
+        // RcsFeatureController.
+        RcsFeatureController controller = spy(new RcsFeatureController(mContext, slotId,
+                mRegistrationFactory));
+        controller.setFeatureConnectorFactory(mFeatureConnectorFactory);
+        return controller;
+    }
+}
