angler: fingerprint: update to SW20
am: cbdd3c6fe8

Change-Id: Ie875ed53ae33956648cf3556d6ef5fe6f314607f
diff --git a/BoardConfig.mk b/BoardConfig.mk
index f003696..60b0033 100644
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -76,15 +76,6 @@
 # Enable auto suspend in poweroff charging to save power
 BOARD_CHARGER_ENABLE_SUSPEND := true
 
-# Enable dex-preoptimization to speed up first boot sequence
-ifeq ($(HOST_OS),linux)
-  ifneq ($(TARGET_BUILD_VARIANT),eng)
-    ifeq ($(WITH_DEXPREOPT),)
-      WITH_DEXPREOPT := true
-    endif
-  endif
-endif
-
 TARGET_USERIMAGES_USE_EXT4 := true
 BOARD_BOOTIMAGE_PARTITION_SIZE := 33554432
 BOARD_RECOVERYIMAGE_PARTITION_SIZE := 33554432
@@ -139,4 +130,6 @@
 
 USE_CLANG_PLATFORM_BUILD := true
 
+TARGET_FS_CONFIG_GEN += device/huawei/angler/config.fs
+
 -include vendor/huawei/angler/BoardConfigVendor.mk
diff --git a/android_filesystem_config.h b/android_filesystem_config.h
deleted file mode 100644
index ff78148..0000000
--- a/android_filesystem_config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-/* This file is used to define the properties of the filesystem
-** images generated by build tools (mkbootfs and mkyaffs2image) and
-** by the device side of adb.
-*/
-
-#include <private/android_filesystem_config.h>
-
-#define NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
-/* static const struct fs_path_config android_device_dirs[] = { }; */
-
-/* Rules for files.
-** These rules are applied based on "first match", so they
-** should start with the most specific path and work their
-** way up to the root. Prefixes ending in * denotes wildcard
-** and will allow partial matches.
-*/
-static const struct fs_path_config android_device_files[] = {
-    { 00700, AID_RADIO,     AID_SHELL,     (1ULL << CAP_BLOCK_SUSPEND), "vendor/bin/qmuxd" },
-    { 00700, AID_CAMERA,    AID_SHELL,     (1ULL << CAP_SYS_NICE), "vendor/bin/mm-qcamera-daemon" },
-#ifdef NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
-    { 00000, AID_ROOT,      AID_ROOT,      0, "system/etc/fs_config_dirs" },
-#endif
-};
diff --git a/camera/QCamera2/HAL/QCamera2HWI.cpp b/camera/QCamera2/HAL/QCamera2HWI.cpp
index 104412c..1d75233 100644
--- a/camera/QCamera2/HAL/QCamera2HWI.cpp
+++ b/camera/QCamera2/HAL/QCamera2HWI.cpp
@@ -1977,7 +1977,7 @@
             mParameters.getHfrFps(pFpsRange);
             streamInfo->user_buf_info.frameInterval =
                     (long)((1000/pFpsRange.video_max_fps) * 1000);
-            CDBG_HIGH("%s: Video Batch Count = %d, interval = %d", __func__,
+            CDBG_HIGH("%s: Video Batch Count = %d, interval = %ld", __func__,
                     streamInfo->user_buf_info.frame_buf_cnt,
                     streamInfo->user_buf_info.frameInterval);
         }
diff --git a/camera/QCamera2/HAL/QCamera2HWICallbacks.cpp b/camera/QCamera2/HAL/QCamera2HWICallbacks.cpp
index c73ff13..c2523d5 100644
--- a/camera/QCamera2/HAL/QCamera2HWICallbacks.cpp
+++ b/camera/QCamera2/HAL/QCamera2HWICallbacks.cpp
@@ -2193,7 +2193,7 @@
                             }
                         }
 
-                        CDBG_HIGH("%s: written number of bytes %ld\n",
+                        CDBG_HIGH("%s: written number of bytes %zd\n",
                             __func__, written_len);
                         close(file_fd);
                     } else {
diff --git a/camera/QCamera2/HAL/QCameraParameters.cpp b/camera/QCamera2/HAL/QCameraParameters.cpp
index 4d93682..88f21d2 100644
--- a/camera/QCamera2/HAL/QCameraParameters.cpp
+++ b/camera/QCamera2/HAL/QCameraParameters.cpp
@@ -5078,7 +5078,7 @@
             m_pCapability->hfr_tbl,
             m_pCapability->hfr_tbl_cnt);
     set(KEY_QC_SUPPORTED_HFR_SIZES, hfrSizeValues.string());
-    CDBG("HFR values %s HFR Sizes = %d", hfrValues.string(), hfrSizeValues.string());
+    CDBG("HFR values %s HFR Sizes = %s", hfrValues.string(), hfrSizeValues.string());
     setHighFrameRate(CAM_HFR_MODE_OFF);
 
     // Set Focus algorithms
@@ -5884,7 +5884,7 @@
         }
     }
 
-    ALOGE("%s, invalid params, type:%d, pos: %d", __func__, type, pos);
+    ALOGE("%s, invalid params, type:%d, pos: %f", __func__, type, pos);
     return BAD_VALUE;
 }
 
@@ -8836,6 +8836,7 @@
             format = m_pCapability->analysis_recommended_format;
         } else {
             ALOGE("%s:%d invalid analysis_recommended_format %d\n",
+                    __func__, __LINE__,
                     m_pCapability->analysis_recommended_format);
             format = mPreviewFormat;
         }
diff --git a/camera/QCamera2/HAL/QCameraStream.cpp b/camera/QCamera2/HAL/QCameraStream.cpp
index 80e9831..2d197ca 100644
--- a/camera/QCamera2/HAL/QCameraStream.cpp
+++ b/camera/QCamera2/HAL/QCameraStream.cpp
@@ -117,7 +117,7 @@
     *initial_reg_flag   = stream->mRegFlags;
     *num_bufs           = stream->mNumBufs;
     *bufs               = stream->mBufDefs;
-    CDBG_HIGH("%s: stream type: %d, mRegFlags: 0x%x, numBufs: %d",
+    CDBG_HIGH("%s: stream type: %d, mRegFlags: %p, numBufs: %d",
             __func__, stream->getMyType(), stream->mRegFlags, stream->mNumBufs);
     return NO_ERROR;
 }
@@ -1211,8 +1211,8 @@
     *num_bufs = mNumBufs;
     *initial_reg_flag = regFlags;
     *bufs = mBufDefs;
-    CDBG_HIGH("%s: stream type: %d, mRegFlags: 0x%x, numBufs: %d",
-            __func__, mStreamInfo->stream_type, regFlags, mBufDefs);
+    CDBG_HIGH("%s: stream type: %d, mRegFlags: %p, numBufs: %d",
+            __func__, mStreamInfo->stream_type, regFlags, mNumBufs);
 
     if (mNumBufsNeedAlloc > 0) {
         pthread_mutex_lock(&m_lock);
diff --git a/camera/QCamera2/HAL3/QCamera3Stream.cpp b/camera/QCamera2/HAL3/QCamera3Stream.cpp
index efd00e5..399e73d 100644
--- a/camera/QCamera2/HAL3/QCamera3Stream.cpp
+++ b/camera/QCamera2/HAL3/QCamera3Stream.cpp
@@ -699,7 +699,7 @@
 
         mBufDefs[index].mem_info = NULL;
     } else {
-        ALOGE("%s: Buffer at index %d not registered", __func__);
+        ALOGE("%s: Buffer at index %d not registered", __func__, index);
         return BAD_INDEX;
     }
 
diff --git a/camera/QCamera2/stack/mm-camera-test/Android.mk b/camera/QCamera2/stack/mm-camera-test/Android.mk
index 43c4371..74c7b3b 100644
--- a/camera/QCamera2/stack/mm-camera-test/Android.mk
+++ b/camera/QCamera2/stack/mm-camera-test/Android.mk
@@ -103,7 +103,7 @@
 LOCAL_CFLAGS += -Wall -Wextra -Werror
 
 LOCAL_SHARED_LIBRARIES:= \
-         libcutils libdl libmmcamera_interface
+         liblog libcutils libdl libmmcamera_interface
 
 LOCAL_MODULE_TAGS := optional
 
@@ -214,7 +214,7 @@
 LOCAL_CFLAGS += -Wall -Wextra -Werror
 
 LOCAL_SHARED_LIBRARIES:= \
-         libcutils libdl libmmcamera_interface
+         liblog libcutils libdl libmmcamera_interface
 
 LOCAL_MODULE_TAGS := optional
 
diff --git a/camera/mm-image-codec/qomx_core/Android.mk b/camera/mm-image-codec/qomx_core/Android.mk
index 4d4e39c..b5a6ba0 100644
--- a/camera/mm-image-codec/qomx_core/Android.mk
+++ b/camera/mm-image-codec/qomx_core/Android.mk
@@ -22,7 +22,7 @@
 
 LOCAL_MODULE           := libqomx_core
 LOCAL_PRELINK_MODULE   := false
-LOCAL_SHARED_LIBRARIES := libcutils libdl
+LOCAL_SHARED_LIBRARIES := liblog libcutils libdl
 
 LOCAL_32_BIT_ONLY := true
 include $(BUILD_SHARED_LIBRARY)
diff --git a/config.fs b/config.fs
new file mode 100644
index 0000000..b4113e5
--- /dev/null
+++ b/config.fs
@@ -0,0 +1,10 @@
+[system/bin/qmuxd]
+mode: 0700
+user: AID_RADIO
+group: AID_SHELL
+caps: BLOCK_SUSPEND
+[vendor/bin/mm-qcamera-daemon]
+mode: 0700
+user: AID_CAMERA
+group: AID_SHELL
+caps: SYS_NICE
diff --git a/dataservices/sockev/src/sockev_cli.c b/dataservices/sockev/src/sockev_cli.c
index 5cecf36..2bd2710 100644
--- a/dataservices/sockev/src/sockev_cli.c
+++ b/dataservices/sockev/src/sockev_cli.c
@@ -79,7 +79,7 @@
 
 	while (1) {
 		recvfrom(skfd, nlh, sizeof(struct sknlsockevmsg) + 16, 0,
-			 (const struct sockaddr *)&src_addr, &addrlen);
+			 (struct sockaddr *)&src_addr, &addrlen);
 		msg = NLMSG_DATA(nlh);
 		printf("----------------------------\n");
 		printf("pid:\t%d\n", msg->pid);
diff --git a/device.mk b/device.mk
index 41ffa67..081261e 100644
--- a/device.mk
+++ b/device.mk
@@ -194,6 +194,20 @@
     libaudio-resampler \
     dsm_ctrl
 
+ifeq ($(ENABLE_TREBLE), true)
+PRODUCT_PACKAGES += \
+    android.hardware.audio@2.0-service
+endif
+
+PRODUCT_PACKAGES += \
+    android.hardware.soundtrigger@2.0-impl
+
+# TODO(b/31817599) remove when angler_treble goes away
+ifeq ($(TARGET_PRODUCT), angler_treble)
+PRODUCT_PACKAGES += \
+    android.hardware.audio@2.0-service
+endif
+
 # Audio effects
 PRODUCT_PACKAGES += \
     libqcomvisualizer \
@@ -260,21 +274,43 @@
     libwpa_client \
     hostapd \
     wlutil \
+    wificond \
     wpa_supplicant \
     wpa_supplicant.conf
 
+# Bluetooth HAL
+PRODUCT_PACKAGES += \
+    android.hardware.bluetooth@1.0-impl
+
+ifeq ($(ENABLE_TREBLE), true)
+PRODUCT_PACKAGES += \
+    android.hardware.bluetooth@1.0-service
+endif
+
 # NFC
 PRODUCT_PACKAGES += \
     libnfc-nci \
     nfc_nci.angler \
     NfcNci \
-    Tag
+    Tag \
+    android.hardware.nfc@1.0-impl \
+
+ifeq ($(ENABLE_TREBLE), true)
+PRODUCT_PACKAGES += \
+    android.hardware.nfc@1.0-service
+endif
 
 # Power HAL
 PRODUCT_PACKAGES += \
     power.angler \
     thermal.angler
 
+# Test HAL for hwbinder performance benchamrk  (only for userdebug and eng builds)
+ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
+PRODUCT_PACKAGES += \
+    android.hardware.tests.libhwbinder@1.0-impl
+endif
+
 PRODUCT_COPY_FILES += \
     device/huawei/angler/nfc/libnfc-brcm.conf:system/etc/libnfc-brcm.conf \
     device/huawei/angler/nfc/libnfc-nxp.conf:system/etc/libnfc-nxp.conf
@@ -485,12 +521,6 @@
 PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/platform/soc.0/f9824900.sdhci/by-name/vendor
 $(call inherit-product, build/target/product/verity.mk)
 
-# b/28992626
-# For app investigation, make ASAN-lite only sanitize 32-bit.
-ifeq (true,$(SANITIZE_LITE))
-  SANITIZE_ARCH := 32
-endif
-
 # b/29995499
 $(call add-product-sanitizer-module-config,cameraserver,never)
 $(call add-product-sanitizer-module-config,mm-qcamera-daemon,never)
diff --git a/init.angler.power.sh b/init.angler.power.sh
index 8254e62..7f98b0a 100755
--- a/init.angler.power.sh
+++ b/init.angler.power.sh
@@ -50,7 +50,7 @@
 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif 1
 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay 19000
 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load 99
-write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 19000
+write /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate 20000
 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq 960000
 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy 1
 write /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads "65 460000:75 960000:80"
@@ -68,7 +68,7 @@
 write /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif 1
 write /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay 19000
 write /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load 99
-write /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate 19000
+write /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate 20000
 write /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq 1248000
 write /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy 1
 write /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads "70 960000:80 1248000:85"
diff --git a/init.angler.rc b/init.angler.rc
index 817f133..ef2b52a 100755
--- a/init.angler.rc
+++ b/init.angler.rc
@@ -203,10 +203,10 @@
     chmod 0660 /proc/bluetooth/sleep/btwrite
     chmod 0660 /sys/class/rfkill/rfkill0/state
     chmod 0660 /dev/ttyHS0
-    chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm
-    chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
-    chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
-    chown bluetooth net_bt_stack /dev/ttyHS0
+    chown bluetooth bluetooth /proc/bluetooth/sleep/lpm
+    chown bluetooth bluetooth /proc/bluetooth/sleep/btwrite
+    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
+    chown bluetooth bluetooth /dev/ttyHS0
 
     # Create nfc local data
     mkdir /data/nfc 0770 nfc nfc
@@ -389,7 +389,7 @@
     group input
     writepid /dev/cpuset/system-background/tasks
 
-service p2p_supplicant /system/bin/wpa_supplicant \
+service wpa_supplicant /system/bin/wpa_supplicant \
         -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
         -I/system/etc/wifi/p2p_supplicant_overlay.conf \
         -O/data/misc/wifi/sockets \
@@ -401,15 +401,6 @@
     disabled
     oneshot
 
-service wpa_supplicant /system/bin/wpa_supplicant \
-        -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
-        -I/system/etc/wifi/wpa_supplicant_overlay.conf \
-        -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
-    class main
-    socket wpa_wlan0 dgram 660 wifi wifi
-    disabled
-    oneshot
-
 service imsqmidaemon /system/bin/imsqmidaemon
     class main
     user system
diff --git a/overlay/frameworks/base/core/res/res/values-mcc204-mnc08/config.xml b/overlay/frameworks/base/core/res/res/values-mcc204-mnc08/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc204-mnc08/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc206-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc206-mnc01/config.xml
index 2cdfb61..732ac3c 100755
--- a/overlay/frameworks/base/core/res/res/values-mcc206-mnc01/config.xml
+++ b/overlay/frameworks/base/core/res/res/values-mcc206-mnc01/config.xml
@@ -34,25 +34,4 @@
         <item>INTERMEDIATE_POS=0</item>
         <item>SUPL_ES=0</item>
     </string-array>
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
 </resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc206-mnc05/config.xml b/overlay/frameworks/base/core/res/res/values-mcc206-mnc05/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc206-mnc05/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc222-mnc99/config.xml b/overlay/frameworks/base/core/res/res/values-mcc222-mnc99/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc222-mnc99/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc228-mnc02/config.xml b/overlay/frameworks/base/core/res/res/values-mcc228-mnc02/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc228-mnc02/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc232-mnc05/config.xml b/overlay/frameworks/base/core/res/res/values-mcc232-mnc05/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc232-mnc05/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc232-mnc10/config.xml b/overlay/frameworks/base/core/res/res/values-mcc232-mnc10/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc232-mnc10/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc238-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc238-mnc01/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc238-mnc01/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc238-mnc06/config.xml b/overlay/frameworks/base/core/res/res/values-mcc238-mnc06/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc238-mnc06/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc238-mnc20/config.xml b/overlay/frameworks/base/core/res/res/values-mcc238-mnc20/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc238-mnc20/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc240-mnc02/config.xml b/overlay/frameworks/base/core/res/res/values-mcc240-mnc02/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc240-mnc02/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc240-mnc07/config.xml b/overlay/frameworks/base/core/res/res/values-mcc240-mnc07/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc240-mnc07/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc242-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc242-mnc01/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc242-mnc01/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc262-mnc07/config.xml b/overlay/frameworks/base/core/res/res/values-mcc262-mnc07/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc262-mnc07/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc272-mnc01/config.xml b/overlay/frameworks/base/core/res/res/values-mcc272-mnc01/config.xml
index 2cdfb61..732ac3c 100755
--- a/overlay/frameworks/base/core/res/res/values-mcc272-mnc01/config.xml
+++ b/overlay/frameworks/base/core/res/res/values-mcc272-mnc01/config.xml
@@ -34,25 +34,4 @@
         <item>INTERMEDIATE_POS=0</item>
         <item>SUPL_ES=0</item>
     </string-array>
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
 </resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc440-mnc10/config.xml b/overlay/frameworks/base/core/res/res/values-mcc440-mnc10/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc440-mnc10/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml b/overlay/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
index dbd3b3b..1373d47 100755
--- a/overlay/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
+++ b/overlay/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
@@ -32,26 +32,6 @@
     <string translatable= "false" name= "config_mobile_hotspot_provision_response">com.huawei.entitlement.SILENT_ENTITLEMENT_CHECK_RESULT</string >
     <!-- Config SoftAP 2G channel list -->
     <string  translatable="false" name="config_wifi_framework_sap_2G_channel_list">1,6</string>
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
     <!-- Values for GPS configuration for SBM-->
     <string-array translatable="false" name="config_gpsParameters">
         <item>SUPL_HOST=supl.google.com</item>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc505-mnc02/config.xml b/overlay/frameworks/base/core/res/res/values-mcc505-mnc02/config.xml
deleted file mode 100755
index 663093b..0000000
--- a/overlay/frameworks/base/core/res/res/values-mcc505-mnc02/config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2015, 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
-</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc505-mnc03/config.xml b/overlay/frameworks/base/core/res/res/values-mcc505-mnc03/config.xml
index 8f6f83a..9858dff 100755
--- a/overlay/frameworks/base/core/res/res/values-mcc505-mnc03/config.xml
+++ b/overlay/frameworks/base/core/res/res/values-mcc505-mnc03/config.xml
@@ -34,27 +34,6 @@
         <item>INTERMEDIATE_POS=0</item>
         <item>SUPL_ES=0</item>
     </string-array>
-    <!-- The list of ril radio technologies (see ServiceState.java) which only support
-         a single data connection at one time.  This may change by carrier via
-         overlays (some don't support multiple pdp on UMTS).  All unlisted radio
-         tech types support unlimited types (practically only 2-4 used). -->
-    <integer-array name="config_onlySingleDcAllowed">
-        <item>1</item>  <!-- GPRS -->
-        <item>2</item>  <!-- EDGE -->
-        <item>3</item>  <!-- UMTS -->
-        <item>4</item>  <!-- IS95A -->
-        <item>5</item>  <!-- IS95B -->
-        <item>6</item>  <!-- 1xRTT -->
-        <item>7</item>  <!-- EVDO_0 -->
-        <item>8</item>  <!-- EVDO_A -->
-        <item>9</item>  <!-- HSDPA -->
-        <item>10</item> <!-- HSUPA -->
-        <item>11</item> <!-- HSPA -->
-        <item>12</item> <!-- EVDO_B -->
-        <item>13</item> <!-- EHRPD -->
-        <item>14</item> <!-- LTE -->
-        <item>15</item> <!-- HSPAP -->
-    </integer-array>
     <!-- Don't use roaming icon for considered operators -->
     <string-array translatable="false" name="config_operatorConsideredNonRoaming">
         <item>505</item>
diff --git a/overlay/packages/apps/CarrierConfig/res/xml/vendor.xml b/overlay/packages/apps/CarrierConfig/res/xml/vendor.xml
new file mode 100755
index 0000000..7373bf8
--- /dev/null
+++ b/overlay/packages/apps/CarrierConfig/res/xml/vendor.xml
@@ -0,0 +1,461 @@
+<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
+<!-- This is a place for device-specific config values. The format and
+     filtering rules are the same as those in carrier_config*.xml files. This
+     file is read after any specific config file from the assets folder, so it
+     must use explicit filters for MCC ad MNC if that is desired. -->
+<carrier_config_list>
+    <carrier_config mcc="204" mnc="08">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="206" mnc="01">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="206" mnc="05">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="222" mnc="99">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="228" mnc="02">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="232" mnc="05">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="232" mnc="10">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="238" mnc="01">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="238" mnc="06">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="238" mnc="20">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="240" mnc="02">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="240" mnc="07">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="242" mnc="01">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="262" mnc="07">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="272" mnc="01">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="440" mnc="10">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="440" mnc="20">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="14">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="505" mnc="02">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+
+    <carrier_config mcc="505" mnc="03">
+        <!-- The list of ril radio technologies (see ServiceState.java) which only support
+             a single data connection at one time.  This may change by carrier via
+             overlays (some don't support multiple pdp on UMTS).  All unlisted radio
+             tech types support unlimited types (practically only 2-4 used). -->
+        <int-array name="only_single_dc_allowed_int_array" num="15">
+            <item value="1" />  <!-- GPRS -->
+            <item value="2" />  <!-- EDGE -->
+            <item value="3" />  <!-- UMTS -->
+            <item value="4" />  <!-- IS95A -->
+            <item value="5" />  <!-- IS95B -->
+            <item value="6" />  <!-- 1xRTT -->
+            <item value="7" />  <!-- EVDO_0 -->
+            <item value="8" />  <!-- EVDO_A -->
+            <item value="9" />  <!-- HSDPA -->
+            <item value="10" /> <!-- HSUPA -->
+            <item value="11" /> <!-- HSPA -->
+            <item value="12" /> <!-- EVDO_B -->
+            <item value="13" /> <!-- EHRPD -->
+            <item value="14" /> <!-- LTE -->
+            <item value="15" /> <!-- HSPAP -->
+        </int-array>
+    </carrier_config>
+</carrier_config_list>
diff --git a/sepolicy/atfwd.te b/sepolicy/atfwd.te
index 4872da6..20f6ad1 100644
--- a/sepolicy/atfwd.te
+++ b/sepolicy/atfwd.te
@@ -1,4 +1,4 @@
-type atfwd, domain, domain_deprecated;
+type atfwd, domain, device_domain_deprecated;
 type atfwd_exec, exec_type, file_type;
 
 # Started by init
diff --git a/sepolicy/attributes b/sepolicy/attributes
new file mode 100644
index 0000000..d140949
--- /dev/null
+++ b/sepolicy/attributes
@@ -0,0 +1,4 @@
+# domain_deprecated attribute is being removed from core policy. Leave it
+# in device-specific policy for device-specific domains. Unlike core policy,
+# device-specific policy will eventually be deprecated.
+attribute device_domain_deprecated;
diff --git a/sepolicy/camera.te b/sepolicy/camera.te
index c0dc97c..d27c292 100644
--- a/sepolicy/camera.te
+++ b/sepolicy/camera.te
@@ -1,4 +1,4 @@
-type camera, domain, domain_deprecated;
+type camera, domain, device_domain_deprecated;
 type camera_exec, exec_type, file_type;
 
 # Started by init
@@ -13,7 +13,7 @@
 
 allow camera system_server:unix_stream_socket { read write };
 
-allow camera video_device:chr_file rw_file_perms;
+allow camera camera_device:chr_file rw_file_perms;
 allow camera input_device:dir r_dir_perms;
 allow camera input_device:chr_file r_file_perms;
 allow camera media_device:chr_file rw_file_perms;
diff --git a/sepolicy/cnd.te b/sepolicy/cnd.te
index b964f2a..78bb2bb 100644
--- a/sepolicy/cnd.te
+++ b/sepolicy/cnd.te
@@ -1,4 +1,4 @@
-type cnd, domain, domain_deprecated;
+type cnd, domain, device_domain_deprecated;
 type cnd_exec, exec_type, file_type;
 
 # Started by init
@@ -11,6 +11,7 @@
 allow cnd self:capability { setuid setgid net_raw };
 
 allow cnd self:socket create_socket_perms;
+allowxperm cnd self:socket ioctl msm_sock_ipc_ioctls;
 allow cnd self:udp_socket create_socket_perms;
 
 allow cnd sysfs_msm_subsys:dir r_dir_perms;
diff --git a/sepolicy/device_domain_deprecated.te b/sepolicy/device_domain_deprecated.te
new file mode 100644
index 0000000..bbe0b71
--- /dev/null
+++ b/sepolicy/device_domain_deprecated.te
@@ -0,0 +1,36 @@
+allow device_domain_deprecated adbd:unix_stream_socket connectto;
+allow device_domain_deprecated adbd:fd use;
+allow device_domain_deprecated adbd:unix_stream_socket { getattr getopt ioctl read write shutdown };
+allow device_domain_deprecated rootfs:dir r_dir_perms;
+allow device_domain_deprecated rootfs:file r_file_perms;
+allow device_domain_deprecated rootfs:lnk_file r_file_perms;
+allow device_domain_deprecated device:file read;
+allow device_domain_deprecated system_file:dir r_dir_perms;
+allow device_domain_deprecated system_file:file r_file_perms;
+allow device_domain_deprecated system_file:lnk_file r_file_perms;
+allow device_domain_deprecated system_data_file:file { getattr read };
+allow device_domain_deprecated system_data_file:lnk_file r_file_perms;
+allow device_domain_deprecated apk_data_file:dir { getattr search };
+allow device_domain_deprecated apk_data_file:file r_file_perms;
+allow device_domain_deprecated apk_data_file:lnk_file r_file_perms;
+allow device_domain_deprecated dalvikcache_data_file:dir { search getattr };
+allow device_domain_deprecated dalvikcache_data_file:file r_file_perms;
+allow device_domain_deprecated cache_file:dir r_dir_perms;
+allow device_domain_deprecated cache_file:file { getattr read };
+allow device_domain_deprecated cache_file:lnk_file r_file_perms;
+allow device_domain_deprecated ion_device:chr_file rw_file_perms;
+allow device_domain_deprecated proc:dir r_dir_perms;
+allow device_domain_deprecated proc:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated sysfs:dir r_dir_perms;
+allow device_domain_deprecated sysfs:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated inotify:dir r_dir_perms;
+allow device_domain_deprecated inotify:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated cgroup:dir r_dir_perms;
+allow device_domain_deprecated cgroup:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated proc_meminfo:file r_file_perms;
+allow device_domain_deprecated proc_net:dir r_dir_perms;
+allow device_domain_deprecated proc_net:{ file lnk_file } r_file_perms;
+allow device_domain_deprecated selinuxfs:dir r_dir_perms;
+allow device_domain_deprecated selinuxfs:file r_file_perms;
+allow device_domain_deprecated asec_public_file:file r_file_perms;
+allow device_domain_deprecated { asec_public_file asec_apk_file }:dir r_dir_perms;
diff --git a/sepolicy/diag.te b/sepolicy/diag.te
index 0631322..1d57e49 100644
--- a/sepolicy/diag.te
+++ b/sepolicy/diag.te
@@ -1,4 +1,4 @@
-type diag, domain, domain_deprecated;
+type diag, domain, device_domain_deprecated;
 type diag_exec, exec_type, file_type;
 
 init_daemon_domain(diag)
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index a8a68a6..4f7f58b 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -3,13 +3,13 @@
 /dev/block/platform/soc\.0/f9824900\.sdhci/by-name/frp           u:object_r:frp_block_device:s0
 /dev/diag                      u:object_r:diag_device:s0
 /dev/dpl_ctrl                  u:object_r:dpl_device:s0
-/dev/jpeg[0-9]+                u:object_r:video_device:s0
+/dev/jpeg[0-9]+                u:object_r:camera_device:s0
 
 # GPU device
 /dev/kgsl-3d0                  u:object_r:gpu_device:s0
 /dev/kgsl                      u:object_r:gpu_device:s0
 
-/dev/media([0-9])+             u:object_r:video_device:s0
+/dev/media([0-9])+             u:object_r:camera_device:s0
 /dev/msm_thermal_query         u:object_r:thermal_engine_device:s0
 /dev/pn54x                     u:object_r:nfc_device:s0
 /dev/qseecom                   u:object_r:tee_device:s0
@@ -111,6 +111,8 @@
 /sys/module/msm_performance(/.*)?                                   u:object_r:sysfs_performance:s0
 /sys/module/msm_thermal(/.*)?                                       u:object_r:sysfs_thermal:s0
 
+# sysfs files used by wifi
+/sys/module/bcmdhd/parameters/firmware_path u:object_r:sysfs_wlan_fwpath:s0
 
 # wifi mac address
 /sys/devices/virtual/net/wlan0/address                   u:object_r:sysfs_mac_address:s0
diff --git a/sepolicy/hal_audio.te b/sepolicy/hal_audio.te
new file mode 100644
index 0000000..93b9311
--- /dev/null
+++ b/sepolicy/hal_audio.te
@@ -0,0 +1,19 @@
+binder_call(hal_audio, rild)
+
+userdebug_or_eng(`
+  allow hal_audio diag_device:chr_file rw_file_perms;
+')
+
+# access for speaker calibration file
+allow hal_audio persist_file:dir search;
+allow hal_audio persist_audio_file:dir search;
+allow hal_audio persist_audio_file:file r_file_perms;
+
+# allow communication w/perfd
+allow hal_audio perfd_data_file:dir search;
+allow hal_audio perfd_data_file:sock_file write;
+allow hal_audio perfd:unix_dgram_socket sendto;
+allow hal_audio perfd:unix_stream_socket connectto;
+
+# allow reading /sys/devices/soc0/hw_platform for acdb
+allow hal_audio sysfs:file { getattr open read };
diff --git a/sepolicy/ims.te b/sepolicy/ims.te
index d781c03..4b20d87 100644
--- a/sepolicy/ims.te
+++ b/sepolicy/ims.te
@@ -1,4 +1,4 @@
-type ims, domain, domain_deprecated;
+type ims, domain, device_domain_deprecated;
 type ims_exec, exec_type, file_type;
 
 init_daemon_domain(ims)
@@ -15,9 +15,10 @@
 
 allow ims ims_socket:sock_file write;
 allow ims self:socket create_socket_perms;
+allowxperm ims self:socket ioctl msm_sock_ipc_ioctls;
 allow ims self:udp_socket create_socket_perms;
-allow ims self:netlink_socket create_socket_perms;
-allow ims self:netlink_route_socket { create_socket_perms nlmsg_write nlmsg_read };
+allow ims self:netlink_socket create_socket_perms_no_ioctl;
+allow ims self:netlink_route_socket { create_socket_perms_no_ioctl nlmsg_write nlmsg_read };
 
 allow ims sysfs_msm_subsys:dir r_dir_perms;
 allow ims sysfs_msm_subsys:lnk_file r_file_perms;
diff --git a/sepolicy/init-mcfg-sh.te b/sepolicy/init-mcfg-sh.te
index 1c335b6..0248963 100644
--- a/sepolicy/init-mcfg-sh.te
+++ b/sepolicy/init-mcfg-sh.te
@@ -1,4 +1,4 @@
-type init-mcfg-sh, domain, domain_deprecated;
+type init-mcfg-sh, domain, device_domain_deprecated;
 type init-mcfg-sh_exec, exec_type, file_type;
 
 init_daemon_domain(init-mcfg-sh)
diff --git a/sepolicy/init-power-sh.te b/sepolicy/init-power-sh.te
index 1e07987..fac3d25 100644
--- a/sepolicy/init-power-sh.te
+++ b/sepolicy/init-power-sh.te
@@ -1,4 +1,4 @@
-type init-power-sh, domain, domain_deprecated;
+type init-power-sh, domain, device_domain_deprecated;
 type init-power-sh_exec, exec_type, file_type;
 
 init_daemon_domain(init-power-sh)
diff --git a/sepolicy/inputeventfind.te b/sepolicy/inputeventfind.te
index eaa7fdf..7408382 100644
--- a/sepolicy/inputeventfind.te
+++ b/sepolicy/inputeventfind.te
@@ -1,4 +1,4 @@
-type inputeventfind, domain, domain_deprecated;
+type inputeventfind, domain, device_domain_deprecated;
 type inputeventfind_exec, exec_type, file_type;
 
 init_daemon_domain(inputeventfind)
@@ -9,5 +9,5 @@
 
 # create symlink to /dev/stm_sensor
 allow inputeventfind device:dir { add_name write };
-allow inputeventfind video_device:lnk_file create;
-type_transition inputeventfind device:lnk_file video_device;
+allow inputeventfind camera_device:lnk_file create;
+type_transition inputeventfind device:lnk_file camera_device;
diff --git a/sepolicy/ioctl_defines b/sepolicy/ioctl_defines
new file mode 100644
index 0000000..93a833d
--- /dev/null
+++ b/sepolicy/ioctl_defines
@@ -0,0 +1,7 @@
+# socket ioctls defined in the kernel in include/uapi/linux/msm_ipc.h
+define(`IPC_ROUTER_IOCTL_GET_VERSION', `0x0000c300')
+define(`IPC_ROUTER_IOCTL_GET_MTU', `0x0000c301')
+define(`IPC_ROUTER_IOCTL_LOOKUP_SERVER', `0x0000c302')
+define(`IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE', `0x0000c303')
+define(`IPC_ROUTER_IOCTL_BIND_CONTROL_PORT', `0x0000c304')
+define(`IPC_ROUTER_IOCTL_CONFIG_SEC_RULES', `0x0000c305')
diff --git a/sepolicy/ioctl_macros b/sepolicy/ioctl_macros
new file mode 100644
index 0000000..dd9a2e8
--- /dev/null
+++ b/sepolicy/ioctl_macros
@@ -0,0 +1,8 @@
+define(`msm_sock_ipc_ioctls', `{
+IPC_ROUTER_IOCTL_GET_VERSION
+IPC_ROUTER_IOCTL_GET_MTU
+IPC_ROUTER_IOCTL_LOOKUP_SERVER
+IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE
+IPC_ROUTER_IOCTL_BIND_CONTROL_PORT
+IPC_ROUTER_IOCTL_CONFIG_SEC_RULES
+}')
diff --git a/sepolicy/irqbalance.te b/sepolicy/irqbalance.te
index e097645..bfc33b0 100644
--- a/sepolicy/irqbalance.te
+++ b/sepolicy/irqbalance.te
@@ -1,4 +1,4 @@
-type irqbalance, domain, domain_deprecated;
+type irqbalance, domain, device_domain_deprecated;
 type irqbalance_exec, exec_type, file_type;
 
 init_daemon_domain(irqbalance);
@@ -6,3 +6,6 @@
 allow irqbalance sysfs_devices_system_cpu:file rw_file_perms;
 allow irqbalance proc_irq:dir r_dir_perms;
 allow irqbalance proc_irq:file rw_file_perms;
+
+allow irqbalance proc_stat:file r_file_perms;
+allow irqbalance proc_interrupts:file r_file_perms;
diff --git a/sepolicy/irsc_util.te b/sepolicy/irsc_util.te
index a6d1d47..f2fb7a3 100644
--- a/sepolicy/irsc_util.te
+++ b/sepolicy/irsc_util.te
@@ -1,6 +1,7 @@
-type irsc_util, domain, domain_deprecated;
+type irsc_util, domain, device_domain_deprecated;
 type irsc_util_exec, exec_type, file_type;
 
 init_daemon_domain(irsc_util);
 
 allow irsc_util self:socket create_socket_perms;
+allowxperm irsc_util self:socket ioctl msm_sock_ipc_ioctls;
diff --git a/sepolicy/location.te b/sepolicy/location.te
index 40793c1..ae24d54 100644
--- a/sepolicy/location.te
+++ b/sepolicy/location.te
@@ -1,4 +1,4 @@
-type location, domain, domain_deprecated;
+type location, domain, device_domain_deprecated;
 type location_exec, exec_type, file_type;
 
 # Started by init
@@ -9,6 +9,7 @@
 allow location self:capability { setuid setgid net_raw };
 
 allow location self:socket create_socket_perms;
+allowxperm location self:socket ioctl msm_sock_ipc_ioctls;
 
 binder_use(location)
 binder_call(location, system_server)
diff --git a/sepolicy/netmgrd.te b/sepolicy/netmgrd.te
index 2e8e2d3..9e135e1 100644
--- a/sepolicy/netmgrd.te
+++ b/sepolicy/netmgrd.te
@@ -1,20 +1,23 @@
 # Network utilities (radio process)
-type netmgrd, domain, domain_deprecated;
+type netmgrd, domain, device_domain_deprecated;
 type netmgrd_exec, exec_type, file_type;
 
 # Started by init
 init_daemon_domain(netmgrd)
 
 net_domain(netmgrd)
+allowxperm netmgrd self:udp_socket ioctl priv_sock_ioctls;
+
 allow netmgrd self:capability { setuid setgid net_admin net_raw };
 dontaudit netmgrd self:capability setpcap;
 
 set_prop(netmgrd, net_radio_prop)
 
-allow netmgrd self:netlink_socket create_socket_perms;
+allow netmgrd self:netlink_socket create_socket_perms_no_ioctl;
 allow netmgrd self:netlink_route_socket nlmsg_write;
-allow netmgrd self:netlink_xfrm_socket { create_socket_perms nlmsg_write nlmsg_read};
+allow netmgrd self:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write nlmsg_read};
 allow netmgrd self:socket create_socket_perms;
+allowxperm netmgrd self:socket ioctl msm_sock_ipc_ioctls;
 allow netmgrd netd_socket:sock_file w_file_perms;
 allow netmgrd net_data_file:dir r_dir_perms;
 allow netmgrd net_data_file:file r_file_perms;
diff --git a/sepolicy/oem_qmi_server.te b/sepolicy/oem_qmi_server.te
index a169237..f5ef8c9 100644
--- a/sepolicy/oem_qmi_server.te
+++ b/sepolicy/oem_qmi_server.te
@@ -1,4 +1,4 @@
-type oem_qmi_server, domain, domain_deprecated, mlstrustedsubject;
+type oem_qmi_server, domain, device_domain_deprecated, mlstrustedsubject;
 type oem_qmi_server_exec, exec_type, file_type;
 
 init_daemon_domain(oem_qmi_server)
@@ -11,6 +11,7 @@
 allow oem_qmi_server sysfs_msm_subsys:lnk_file rw_file_perms;
 
 allow oem_qmi_server self:socket create_socket_perms;
+allowxperm oem_qmi_server self:socket ioctl msm_sock_ipc_ioctls;
 
 # Access device /dev/diag
 userdebug_or_eng(`
diff --git a/sepolicy/perfd.te b/sepolicy/perfd.te
index 4382b06..09cf9f3 100644
--- a/sepolicy/perfd.te
+++ b/sepolicy/perfd.te
@@ -1,4 +1,4 @@
-type perfd, domain, domain_deprecated;
+type perfd, domain, device_domain_deprecated;
 type perfd_exec, exec_type, file_type;
 
 init_daemon_domain(perfd)
diff --git a/sepolicy/peripheral_manager.te b/sepolicy/peripheral_manager.te
index 9acbb21..05bc266 100644
--- a/sepolicy/peripheral_manager.te
+++ b/sepolicy/peripheral_manager.te
@@ -1,4 +1,4 @@
-type per_mgr, domain, domain_deprecated;
+type per_mgr, domain, device_domain_deprecated;
 type per_mgr_exec, exec_type, file_type;
 init_daemon_domain(per_mgr);
 
@@ -17,3 +17,4 @@
 
 allow per_mgr self:capability net_raw;
 allow per_mgr self:socket create_socket_perms;
+allowxperm per_mgr self:socket ioctl msm_sock_ipc_ioctls;
diff --git a/sepolicy/peripheral_proxy.te b/sepolicy/peripheral_proxy.te
index 6b57da7..547ba5c 100644
--- a/sepolicy/peripheral_proxy.te
+++ b/sepolicy/peripheral_proxy.te
@@ -1,4 +1,4 @@
-type per_proxy, domain, domain_deprecated;
+type per_proxy, domain, device_domain_deprecated;
 type per_proxy_exec, exec_type, file_type;
 init_daemon_domain(per_proxy);
 
diff --git a/sepolicy/postprocd.te b/sepolicy/postprocd.te
index 9c32849..06a04c5 100644
--- a/sepolicy/postprocd.te
+++ b/sepolicy/postprocd.te
@@ -1,4 +1,4 @@
-type postprocd, domain, domain_deprecated;
+type postprocd, domain, device_domain_deprecated;
 type postprocd_exec, exec_type, file_type;
 
 # Started by init
diff --git a/sepolicy/qmux.te b/sepolicy/qmux.te
index 2a36ea2..8b8de37 100644
--- a/sepolicy/qmux.te
+++ b/sepolicy/qmux.te
@@ -1,5 +1,5 @@
 # Qualcomm Management Interface Multiplexer
-type qmux, domain, domain_deprecated;
+type qmux, domain, device_domain_deprecated;
 type qmux_exec, exec_type, file_type;
 
 init_daemon_domain(qmux)
diff --git a/sepolicy/qti.te b/sepolicy/qti.te
index 81d6e07..39f80a0 100644
--- a/sepolicy/qti.te
+++ b/sepolicy/qti.te
@@ -1,4 +1,4 @@
-type qti, domain, domain_deprecated;
+type qti, domain, device_domain_deprecated;
 type qti_exec, exec_type, file_type;
 
 init_daemon_domain(qti)
@@ -7,6 +7,7 @@
 allow qti sysfs_msm_subsys:lnk_file r_file_perms;
 
 allow qti self:socket create_socket_perms;
+allowxperm qti self:socket ioctl msm_sock_ipc_ioctls;
 
 allow qti dpl_device:chr_file rw_file_perms;
 allow qti rmnet_device:chr_file rw_file_perms;
diff --git a/sepolicy/rild.te b/sepolicy/rild.te
index 26fe0a9..ff99a9d 100644
--- a/sepolicy/rild.te
+++ b/sepolicy/rild.te
@@ -18,3 +18,7 @@
 allow rild audioserver_service:service_manager find;
 allow rild mediaserver_service:service_manager find;
 allow rild per_mgr_service:service_manager find;
+
+# allow rild to use qualcomm's socket ipc ioctls
+allow rild self:socket ioctl;
+allowxperm rild self:socket ioctl msm_sock_ipc_ioctls;
diff --git a/sepolicy/rmt.te b/sepolicy/rmt.te
index b56c03f..e57e1ac 100644
--- a/sepolicy/rmt.te
+++ b/sepolicy/rmt.te
@@ -1,5 +1,5 @@
 # remote storage process
-type rmt, domain, domain_deprecated;
+type rmt, domain, device_domain_deprecated;
 type rmt_exec, exec_type, file_type;
 
 init_daemon_domain(rmt)
@@ -13,6 +13,7 @@
 allow rmt uio_device:chr_file rw_file_perms;
 
 allow rmt self:socket create_socket_perms;
+allowxperm rmt self:socket ioctl msm_sock_ipc_ioctls;
 
 allow rmt root_block_device:blk_file r_file_perms;
 allow rmt modem_block_device:blk_file rw_file_perms;
diff --git a/sepolicy/sensortool.te b/sepolicy/sensortool.te
index 05441c8..ce13dd0 100644
--- a/sepolicy/sensortool.te
+++ b/sepolicy/sensortool.te
@@ -1,4 +1,4 @@
-type sensortool, domain, domain_deprecated;
+type sensortool, domain, device_domain_deprecated;
 type sensortool_exec, exec_type, file_type;
 
 init_daemon_domain(sensortool)
diff --git a/sepolicy/ssr.te b/sepolicy/ssr.te
index a8cc721..087c524 100644
--- a/sepolicy/ssr.te
+++ b/sepolicy/ssr.te
@@ -1,4 +1,4 @@
-type ssr, domain, domain_deprecated;
+type ssr, domain, device_domain_deprecated;
 type ssr_exec, exec_type, file_type;
 
 # Started by init
diff --git a/sepolicy/ssr_setup.te b/sepolicy/ssr_setup.te
index 9829c3a..6a22d53 100644
--- a/sepolicy/ssr_setup.te
+++ b/sepolicy/ssr_setup.te
@@ -1,4 +1,4 @@
-type ssr_setup, domain, domain_deprecated;
+type ssr_setup, domain, device_domain_deprecated;
 type ssr_setup_exec, exec_type, file_type;
 init_daemon_domain(ssr_setup);
 
diff --git a/sepolicy/system_server.te b/sepolicy/system_server.te
index ac98a56..915fd15 100644
--- a/sepolicy/system_server.te
+++ b/sepolicy/system_server.te
@@ -44,3 +44,7 @@
 
 # Access for thermal-engine
 allow system_server sysfs_thermal:file write;
+
+# use MSM ipc router ioctls
+allow system_server self:socket ioctl;
+allowxperm system_server self:socket ioctl msm_sock_ipc_ioctls;
diff --git a/sepolicy/thermald.te b/sepolicy/thermald.te
index b038548..df974cc 100644
--- a/sepolicy/thermald.te
+++ b/sepolicy/thermald.te
@@ -1,4 +1,4 @@
-type thermald, domain, domain_deprecated;
+type thermald, domain, device_domain_deprecated;
 type thermald_exec, exec_type, file_type;
 
 init_daemon_domain(thermald)
@@ -7,6 +7,7 @@
 allow thermald thermal_engine_device:chr_file rw_file_perms;
 
 allow thermald self:socket create_socket_perms;
+allowxperm thermald self:socket ioctl msm_sock_ipc_ioctls;
 type_transition thermald socket_device:sock_file thermald_socket;
 allow thermald thermald_socket:sock_file create_file_perms;
 
diff --git a/sepolicy/time.te b/sepolicy/time.te
index ed8f685..e1048d9 100644
--- a/sepolicy/time.te
+++ b/sepolicy/time.te
@@ -1,4 +1,4 @@
-type time, domain, domain_deprecated;
+type time, domain, device_domain_deprecated;
 type time_exec, exec_type, file_type;
 
 # Started by init
@@ -16,6 +16,7 @@
 allow time sysfs_msm_subsys:lnk_file r_file_perms;
 
 allow time self:socket create_socket_perms;
+allowxperm time self:socket ioctl msm_sock_ipc_ioctls;
 
 userdebug_or_eng(`
     allow time shared_log_device:chr_file rw_file_perms;