diff --git a/init.deb.rc b/init.deb.rc
index 32eb036..b1494ee 100644
--- a/init.deb.rc
+++ b/init.deb.rc
@@ -95,6 +95,8 @@
     # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
     write /sys/module/wakelock/parameters/debug_mask 7
 
+    write /proc/sys/vm/swappiness 0
+
     #To allow interfaces to get v6 address when tethering is enabled
     write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2
     write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2
@@ -183,6 +185,9 @@
     # Modify from 777 (for camera calibration) to 775
     chmod 775 /persist/camera_calibration
 
+    chmod 664 /persist/ssn
+    chmod 664 /persist/60isn
+
     #Provide the access to hostapd.conf only to root and group
     chmod 0660 /data/hostapd/hostapd.conf
 
@@ -243,6 +248,7 @@
     write /sys/devices/system/cpu/cpu1/online 1
     write /sys/devices/system/cpu/cpu2/online 1
     write /sys/devices/system/cpu/cpu3/online 1
+    write /dev/cpuctl/apps/cpu.notify_on_migrate 1
 
 on charger
     # Enable Power modes and set the CPU Freq Sampling rates
@@ -417,8 +423,9 @@
 service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
     class main
 
-service ppd /system/bin/mm-pp-daemon -s
+service ppd /system/bin/mm-pp-daemon
     class late_start
+    disabled
     user system
     socket pps stream 0660 system system graphics
     group system graphics
@@ -457,5 +464,8 @@
     class late_start
     disabled
 
+on property:init.svc.surfaceflinger=running
+    start ppd
+
 on property:init.svc.surfaceflinger=stopped
     stop ppd
diff --git a/kernel-headers/media/msm_cam_sensor.h b/kernel-headers/media/msm_cam_sensor.h
index 1a76179..4a67c61 100644
--- a/kernel-headers/media/msm_cam_sensor.h
+++ b/kernel-headers/media/msm_cam_sensor.h
@@ -298,272 +298,282 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint8_t wb_val;
  int8_t exp_compensation;
+ int8_t fps;
  } cfg;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 struct csid_cfg_data {
  enum csid_cfg_type_t cfgtype;
  union {
- uint32_t csid_version;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint32_t csid_version;
  struct msm_camera_csid_params *csid_params;
  } cfg;
 };
-struct csiphy_cfg_data {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct csiphy_cfg_data {
  enum csiphy_cfg_type_t cfgtype;
  union {
  struct msm_camera_csiphy_params *csiphy_params;
- struct msm_camera_csi_lane_params *csi_lane_params;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_camera_csi_lane_params *csi_lane_params;
  } cfg;
 };
 enum eeprom_cfg_type_t {
- CFG_EEPROM_GET_INFO,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_EEPROM_GET_INFO,
  CFG_EEPROM_GET_DATA,
  CFG_EEPROM_READ_DATA,
  CFG_EEPROM_WRITE_DATA,
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 struct eeprom_get_t {
  uint16_t num_bytes;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct eeprom_read_t {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint8_t *dbuffer;
  uint16_t num_bytes;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct eeprom_write_t {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint8_t *dbuffer;
  uint16_t num_bytes;
 };
-struct msm_eeprom_cfg_data {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct msm_eeprom_cfg_data {
  enum eeprom_cfg_type_t cfgtype;
  uint8_t is_supported;
  union {
- char eeprom_name[MAX_SENSOR_NAME];
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char eeprom_name[MAX_SENSOR_NAME];
  struct eeprom_get_t get_data;
  struct eeprom_read_t read_data;
  struct eeprom_write_t write_data;
- } cfg;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } cfg;
 };
 enum msm_sensor_cfg_type_t {
  CFG_SET_SLAVE_INFO,
- CFG_WRITE_I2C_ARRAY,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_WRITE_I2C_ARRAY,
  CFG_WRITE_I2C_SEQ_ARRAY,
  CFG_POWER_UP,
  CFG_POWER_DOWN,
- CFG_SET_STOP_STREAM_SETTING,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_SET_STOP_STREAM_SETTING,
  CFG_GET_SENSOR_INFO,
  CFG_GET_SENSOR_INIT_PARAMS,
  CFG_SET_INIT_SETTING,
- CFG_SET_RESOLUTION,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_SET_RESOLUTION,
  CFG_SET_STOP_STREAM,
  CFG_SET_START_STREAM,
  CFG_SET_EFFECT,
- CFG_SET_WB,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CFG_SET_WB,
+ CFG_SET_FPS,
  CFG_SET_EXPOSURE_COMPENSATION,
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum msm_actuator_cfg_type_t {
  CFG_GET_ACTUATOR_INFO,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  CFG_SET_ACTUATOR_INFO,
  CFG_SET_DEFAULT_FOCUS,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  CFG_MOVE_FOCUS,
  CFG_ACTUATOR_POWERDOWN,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum actuator_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ACTUATOR_VCM,
  ACTUATOR_PIEZO,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum msm_actuator_data_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  MSM_ACTUATOR_BYTE_DATA = 1,
  MSM_ACTUATOR_WORD_DATA,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum msm_actuator_addr_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  MSM_ACTUATOR_BYTE_ADDR = 1,
  MSM_ACTUATOR_WORD_ADDR,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct reg_settings_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint16_t reg_addr;
  uint16_t reg_data;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct region_params_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint16_t step_bound[2];
  uint16_t code_per_step;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct damping_params_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t damping_step;
  uint32_t damping_delay;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t hw_params;
 };
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct msm_actuator_move_params_t {
  int8_t dir;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int8_t sign_dir;
  int16_t dest_step_pos;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int32_t num_steps;
  struct damping_params_t *ringing_params;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct msm_actuator_tuning_params_t {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int16_t initial_code;
  uint16_t pwd_step;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint16_t region_size;
  uint32_t total_steps;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct region_params_t *region_params;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct msm_actuator_params_t {
  enum actuator_type act_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint8_t reg_tbl_size;
  uint16_t data_size;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint16_t init_setting_size;
  uint32_t i2c_addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  enum msm_actuator_addr_type i2c_addr_type;
  enum msm_actuator_data_type i2c_data_type;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct msm_actuator_reg_params_t *reg_tbl_params;
  struct reg_settings_t *init_settings;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct msm_actuator_set_info_t {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct msm_actuator_params_t actuator_params;
  struct msm_actuator_tuning_params_t af_tuning_params;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 struct msm_actuator_get_info_t {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t focal_length_num;
  uint32_t focal_length_den;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t f_number_num;
  uint32_t f_number_den;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t f_pix_num;
  uint32_t f_pix_den;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t total_f_dist_num;
  uint32_t total_f_dist_den;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t hor_view_angle_num;
  uint32_t hor_view_angle_den;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  uint32_t ver_view_angle_num;
  uint32_t ver_view_angle_den;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
 enum af_camera_name {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ACTUATOR_MAIN_CAM_0,
  ACTUATOR_MAIN_CAM_1,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ACTUATOR_MAIN_CAM_2,
  ACTUATOR_MAIN_CAM_3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ACTUATOR_MAIN_CAM_4,
  ACTUATOR_MAIN_CAM_5,
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ACTUATOR_WEB_CAM_0,
  ACTUATOR_WEB_CAM_1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ACTUATOR_WEB_CAM_2,
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EFFECT_OFF 0
 #define CAMERA_EFFECT_MONO 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EFFECT_NEGATIVE 2
 #define CAMERA_EFFECT_SOLARIZE 3
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EFFECT_SEPIA 4
 #define CAMERA_EFFECT_POSTERIZE 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EFFECT_WHITEBOARD 6
 #define CAMERA_EFFECT_BLACKBOARD 7
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EFFECT_AQUA 8
 #define CAMERA_EFFECT_EMBOSS 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EFFECT_SKETCH 10
 #define CAMERA_EFFECT_NEON 11
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EFFECT_MAX 12
 #define YUV_CAMERA_WB_AUTO 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define YUV_CAMERA_WB_CUSTOM 1
 #define YUV_CAMERA_WB_INCANDESCENT 2
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define YUV_CAMERA_WB_FLUORESCENT 3
-#define YUV_CAMERA_WB_DAYLIGHT 4
-#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 5
-#define YUV_CAMERA_WB_TWILIGHT 6
+#define YUV_CAMERA_WB_WARM_FLUORESCENT 4
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define YUV_CAMERA_WB_SHADE 7
+#define YUV_CAMERA_WB_DAYLIGHT 5
+#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 6
+#define YUV_CAMERA_WB_TWILIGHT 7
+#define YUV_CAMERA_WB_SHADE 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EXPOSURE_COMPENSATION_LV0 12
 #define CAMERA_EXPOSURE_COMPENSATION_LV1 6
 #define CAMERA_EXPOSURE_COMPENSATION_LV2 0
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CAMERA_EXPOSURE_COMPENSATION_LV3 -6
-#define CAMERA_EXPOSURE_COMPENSATION_LV4 -12
-struct msm_actuator_cfg_data {
- int cfgtype;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_EXPOSURE_COMPENSATION_LV4 -12
+#define CAMERA_FPS_FIX_30 30
+#define CAMERA_FPS_FIX_25 25
+#define CAMERA_FPS_FIX_24 24
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAMERA_FPS_FIX_20 20
+#define CAMERA_FPS_FIX_15 15
+#define CAMERA_FPS_AUTO_30 0
+struct msm_actuator_cfg_data {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int cfgtype;
  uint8_t is_af_supported;
  union {
  struct msm_actuator_move_params_t move;
- struct msm_actuator_set_info_t set_info;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct msm_actuator_set_info_t set_info;
  struct msm_actuator_get_info_t get_info;
  enum af_camera_name cam_name;
  } cfg;
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 enum msm_actuator_write_type {
  MSM_ACTUATOR_WRITE_HW_DAMP,
  MSM_ACTUATOR_WRITE_DAC,
-};
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
 struct msm_actuator_reg_params_t {
  enum msm_actuator_write_type reg_write_type;
  uint32_t hw_mask;
- uint16_t reg_addr;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uint16_t reg_addr;
  uint16_t hw_shift;
  uint16_t data_shift;
 };
-enum msm_camera_led_config_t {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum msm_camera_led_config_t {
  MSM_CAMERA_LED_OFF,
  MSM_CAMERA_LED_LOW,
  MSM_CAMERA_LED_HIGH,
- MSM_CAMERA_LED_INIT,
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ MSM_CAMERA_LED_INIT,
  MSM_CAMERA_LED_RELEASE,
 };
 struct msm_camera_led_cfg_t {
- enum msm_camera_led_config_t cfgtype;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum msm_camera_led_config_t cfgtype;
 };
 #define VIDIOC_MSM_SENSOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
 #define VIDIOC_MSM_SENSOR_RELEASE   _IO('V', BASE_VIDIOC_PRIVATE + 2)
-#define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID   _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID   _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
 #define VIDIOC_MSM_CSIPHY_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csid_cfg_data)
 #define VIDIOC_MSM_CSID_IO_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csiphy_cfg_data)
 #define VIDIOC_MSM_ACTUATOR_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
-#define VIDIOC_MSM_FLASH_LED_DATA_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VIDIOC_MSM_FLASH_LED_DATA_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
 #define VIDIOC_MSM_EEPROM_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
 #define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A')
 #define MSM_V4L2_PIX_FMT_RESERVED_0 v4l2_fourcc('R', 'E', 'S', '0')
-#endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-
+#endif
diff --git a/original-kernel-headers/media/msm_cam_sensor.h b/original-kernel-headers/media/msm_cam_sensor.h
old mode 100755
new mode 100644
index fe56e25..a092324
--- a/original-kernel-headers/media/msm_cam_sensor.h
+++ b/original-kernel-headers/media/msm_cam_sensor.h
@@ -269,6 +269,7 @@
 		int8_t effect;
 		uint8_t wb_val;
 		int8_t exp_compensation;
+		int8_t fps;
 	} cfg;
 };
 
@@ -334,6 +335,7 @@
 	CFG_SET_START_STREAM,
 	CFG_SET_EFFECT,
 	CFG_SET_WB,
+	CFG_SET_FPS,
 	CFG_SET_EXPOSURE_COMPENSATION,
 };
 
@@ -457,10 +459,11 @@
 #define  YUV_CAMERA_WB_CUSTOM             1
 #define  YUV_CAMERA_WB_INCANDESCENT       2
 #define  YUV_CAMERA_WB_FLUORESCENT        3
-#define  YUV_CAMERA_WB_DAYLIGHT           4
-#define  YUV_CAMERA_WB_CLOUDY_DAYLIGHT    5
-#define  YUV_CAMERA_WB_TWILIGHT           6
-#define  YUV_CAMERA_WB_SHADE              7
+#define  YUV_CAMERA_WB_WARM_FLUORESCENT   4
+#define  YUV_CAMERA_WB_DAYLIGHT           5
+#define  YUV_CAMERA_WB_CLOUDY_DAYLIGHT    6
+#define  YUV_CAMERA_WB_TWILIGHT           7
+#define  YUV_CAMERA_WB_SHADE              8
 
 #define CAMERA_EXPOSURE_COMPENSATION_LV0			12
 #define CAMERA_EXPOSURE_COMPENSATION_LV1			6
@@ -468,6 +471,13 @@
 #define CAMERA_EXPOSURE_COMPENSATION_LV3			-6
 #define CAMERA_EXPOSURE_COMPENSATION_LV4			-12
 
+#define CAMERA_FPS_FIX_30			30
+#define CAMERA_FPS_FIX_25			25
+#define CAMERA_FPS_FIX_24			24
+#define CAMERA_FPS_FIX_20			20
+#define CAMERA_FPS_FIX_15			15
+#define CAMERA_FPS_AUTO_30			0
+
 struct msm_actuator_cfg_data {
 	int cfgtype;
 	uint8_t is_af_supported;
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc026/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc026/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc026/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc090/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc090/config.xml
new file mode 100644
index 0000000..c534be5
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc090/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2012, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- Set to true if we need to not prefer an APN.
+         This is being added to enable a simple scenario of pre-paid
+         provisioning on some carriers, working around a bug (7305641)
+         where if the preferred is used we don't try the others. -->
+    <bool name="config_dontPreferApn">true</bool>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc160/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc160/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc160/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc200/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc200/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc200/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc210/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc210/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc210/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc220/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc220/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc220/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc230/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc230/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc230/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc240/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc240/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc240/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc250/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc250/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc250/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc270/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc270/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc270/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc290/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc290/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc290/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc310/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc310/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc310/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc330/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc330/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc330/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc490/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc490/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc490/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc580/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc580/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc580/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc660/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc660/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc660/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values-mcc310-mnc800/config.xml b/overlay/frameworks/base/core/res/res/values-mcc310-mnc800/config.xml
new file mode 100644
index 0000000..8b9732f
--- /dev/null
+++ b/overlay/frameworks/base/core/res/res/values-mcc310-mnc800/config.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- T-Mobile -->
+
+    <string name="mobile_provisioning_url">
+        http://www.t-mobile.com/shop/Plans/ActivatePrepaidWeb.aspx
+    </string>
+</resources>
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index c849fcd..55c30fa 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -189,7 +189,7 @@
     <bool name="config_voice_capable">false</bool>
 
     <!-- This device does not allow sms service. -->
-    <bool name="config_sms_capable">false</bool>
+    <bool name="config_sms_capable">true</bool>
 
     <!-- This string array should be overridden by the device to present a list of radio
          attributes.  This is used by the connectivity manager to decide which networks can coexist
diff --git a/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
index 2ddce57..41f269c 100644
--- a/overlay/frameworks/base/core/res/res/xml/power_profile.xml
+++ b/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -72,5 +72,5 @@
         <value>239.7</value> <!-- 1512 MHz CPU speed -->
     </array>
     <!-- This is the battery capacity in mAh -->
-    <item name="battery.capacity">2100</item>
+    <item name="battery.capacity">3448</item>
 </device>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values-mcc310/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values-mcc310/config.xml
new file mode 100644
index 0000000..e1f4e67
--- /dev/null
+++ b/overlay/frameworks/base/packages/SystemUI/res/values-mcc310/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2012, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
+    <bool name="config_show4GForLTE">false</bool>
+</resources>
diff --git a/overlay/frameworks/base/packages/SystemUI/res/values-mcc311/config.xml b/overlay/frameworks/base/packages/SystemUI/res/values-mcc311/config.xml
new file mode 100644
index 0000000..e1f4e67
--- /dev/null
+++ b/overlay/frameworks/base/packages/SystemUI/res/values-mcc311/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2012, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+     for different hardware and product builds. -->
+<resources>
+    <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
+    <bool name="config_show4GForLTE">false</bool>
+</resources>
diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt
index 346671f..24b30a1 100644
--- a/proprietary-blobs.txt
+++ b/proprietary-blobs.txt
@@ -133,6 +133,7 @@
 /system/vendor/firmware/a300_pfp.fw
 /system/vendor/firmware/a300_pm4.fw
 /system/vendor/firmware/bcm2079x-b5_firmware.ncd
+/system/vendor/firmware/bcm2079x-b5_pre_firmware.ncd
 /system/vendor/firmware/discretix/dxhdcp2.b00
 /system/vendor/firmware/discretix/dxhdcp2.b01
 /system/vendor/firmware/discretix/dxhdcp2.b02
diff --git a/system.prop b/system.prop
index 937fbb7..c38dc6b 100644
--- a/system.prop
+++ b/system.prop
@@ -3,3 +3,5 @@
 #LTE, GSM, WCDMA(9)
 #
 ro.telephony.default_network=9
+#Display Traditional Chinese/Simplified Chinese carriers name
+persist.radio.use_cc_names=true
