Merge "common: display: Move reset sequence to panel"
diff --git a/generate_extra_images.mk b/generate_extra_images.mk
index 9cba87f..3327f48 100644
--- a/generate_extra_images.mk
+++ b/generate_extra_images.mk
@@ -13,6 +13,7 @@
 INSTALLED_USERDATAIMAGE_TARGET := $(PRODUCT_OUT)/userdata.img
 INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
 recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img
+INSTALLED_USBIMAGE_TARGET := $(PRODUCT_OUT)/usbdisk.img
 
 #----------------------------------------------------------------------
 # Generate secure boot image
@@ -100,6 +101,40 @@
 ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
 endif
 
+#---------------------------------------------------------------------
+# Generate usbdisk.img FAT32 image
+# Please NOTICE: the valid max size of usbdisk.bin is 10GB
+#---------------------------------------------------------------------
+ifneq ($(strip $(BOARD_USBIMAGE_PARTITION_SIZE_KB)),)
+define build-usbimage-target
+	$(hide) mkfs.vfat -n "Internal SD" -F 32 -C $(PRODUCT_OUT)/usbdisk.tmp $(BOARD_USBIMAGE_PARTITION_SIZE_KB)
+	$(hide) dd if=$(PRODUCT_OUT)/usbdisk.tmp of=$(INSTALLED_USBIMAGE_TARGET) bs=1024 count=20480
+	$(hide) rm -f $(PRODUCT_OUT)/usbdisk.tmp
+endef
+
+$(INSTALLED_USBIMAGE_TARGET):
+	$(build-usbimage-target)
+ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_USBIMAGE_TARGET)
+ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
+endif
+
+#----------------------------------------------------------------------
+# Generate CDROM image
+#----------------------------------------------------------------------
+ifneq ($(wildcard $(CDROM_RES_FILE)),)
+CDROM_ISO_TARGET := $(PRODUCT_OUT)/system/etc/cdrom_install.iso
+CDROM_RES_FILE = $(TARGET_DEVICE_DIR)/cdrom_res
+
+define build-cdrom-target
+    $(hide) mkisofs -o $(CDROM_ISO_TARGET)  $(CDROM_RES_FILE)
+endef
+
+$(CDROM_ISO_TAREGT): $(CDROM_RES_FILE)
+	$(build-cdrom-target)
+
+ALL_DEFAULT_INSTALLED_MODULES += $(CDROM_ISO_TARGET)
+ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(CDROM_ISO_TARGET)
+endif
 
 #----------------------------------------------------------------------
 # Generate NAND images
diff --git a/rootdir/etc/init.qcom.early_boot.sh b/rootdir/etc/init.qcom.early_boot.sh
index bfb7acf..ac26f80 100755
--- a/rootdir/etc/init.qcom.early_boot.sh
+++ b/rootdir/etc/init.qcom.early_boot.sh
@@ -159,9 +159,11 @@
     case "$value" in
             "dtv panel")
         chown system.graphics $file/hpd
+        chown system.system $file/hdcp/tp
         chown system.graphics $file/vendor_name
         chown system.graphics $file/product_description
         chmod 0664 $file/hpd
+        chmod 0664 $file/hdcp/tp
         chmod 0664 $file/vendor_name
         chmod 0664 $file/product_description
         chmod 0664 $file/video_mode
diff --git a/rootdir/etc/init.qcom.factory.sh b/rootdir/etc/init.qcom.factory.sh
index 6d54931..d09436c 100644
--- a/rootdir/etc/init.qcom.factory.sh
+++ b/rootdir/etc/init.qcom.factory.sh
@@ -77,7 +77,9 @@
 
     # setup permissions for fb1 related nodes
     chown system.graphics /sys/class/graphics/fb1/hpd
+    chown system.system /sys/class/graphics/fb1/hdcp/tp
     chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
+    chmod 0664 /sys/devices/virtual/graphics/fb1/hdcp/tp
     chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode
     chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d
 
diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc
index 9b075f6..cdac84c 100644
--- a/rootdir/etc/init.qcom.rc
+++ b/rootdir/etc/init.qcom.rc
@@ -279,6 +279,9 @@
     start qcom-c_main-sh
     start config_bluetooth
 
+on property:persist.env.fastdorm.enabled=true
+    setprop persist.radio.data_no_toggle 1
+
 service cnd /system/bin/cnd
     class late_start
     socket cnd stream 660 root inet
diff --git a/rootdir/etc/init.qcom.ril.sh b/rootdir/etc/init.qcom.ril.sh
index 531b86f..2a1f3c1 100755
--- a/rootdir/etc/init.qcom.ril.sh
+++ b/rootdir/etc/init.qcom.ril.sh
@@ -40,3 +40,36 @@
         start ril-daemon1
         start ril-daemon2
 fi
+
+carrier=`getprop persist.env.spec`
+if [ "$carrier" = "ChinaTelecom" ]; then
+    # Update the props.
+    setprop persist.env.phone.global true
+    setprop persist.env.plmn.update true
+
+    # Remount /system with read-write permission for copy action.
+    `mount -o remount,rw /system`
+
+    # Copy the modules to system app.
+    `cp /system/vendor/ChinaTelecom/system/app/RoamingSettings.apk /system/app/RoamingSettings.apk`
+    `cp /system/vendor/ChinaTelecom/system/app/UniversalDownload.apk /system/app/UniversalDownload.apk`
+    `chmod 644 /system/app/RoamingSettings.apk`
+    `chmod 644 /system/app/UniversalDownload.apk`
+
+    # Remount /system with read-only
+    `mount -o remount,ro /system`
+else
+    # Update the props.
+    setprop persist.env.phone.global false
+    setprop persist.env.plmn.update false
+
+    # Remount /system with read-write permission for remove action.
+    `mount -o remount,rw /system`
+
+    # Remove the modules from the system app.
+    `rm /system/app/RoamingSettings.apk`
+    `rm /system/app/UniversalDownload.apk`
+
+    # Remount /system with read-only
+    `mount -o remount,ro /system`
+fi
diff --git a/rootdir/etc/init.qcom.sh b/rootdir/etc/init.qcom.sh
index ea8b50f..1166331 100755
--- a/rootdir/etc/init.qcom.sh
+++ b/rootdir/etc/init.qcom.sh
@@ -210,8 +210,11 @@
         case "$baseband" in
             "msm")
                 start_battery_monitor
-                start_charger_monitor
                 ;;
         esac
+        start_charger_monitor
+        ;;
+    "msm8226")
+        start_charger_monitor
         ;;
 esac
diff --git a/rootdir/etc/init.qcom.usb.sh b/rootdir/etc/init.qcom.usb.sh
index 3962552..776c3aa 100644
--- a/rootdir/etc/init.qcom.usb.sh
+++ b/rootdir/etc/init.qcom.usb.sh
@@ -88,43 +88,30 @@
 usb_config=`getprop persist.sys.usb.config`
 case "$usb_config" in
     "" | "adb") #USB persist config not set, select default configuration
-        case $target in
-            "msm8960" | "msm8974" | "msm8226" | "msm8610" | "apq8084")
-                case "$baseband" in
-                    "mdm")
-                         setprop persist.sys.usb.config diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
-                    ;;
-                    "sglte")
-                         setprop persist.sys.usb.config diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage,adb
-                    ;;
-                    "dsda" | "sglte2")
-                         setprop persist.sys.usb.config diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage,adb
-                    ;;
-                    "dsda2")
-                         setprop persist.sys.usb.config diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,mass_storage,adb
-                    ;;
-                    *)
-                         setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb
-                    ;;
-                esac
-            ;;
-            "msm7627a")
-                setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_smd,mass_storage,adb
-            ;;
-            * )
-                case "$baseband" in
-                    "svlte2a")
-                         setprop persist.sys.usb.config diag,diag_mdm,serial_sdio,serial_smd,rmnet_smd_sdio,mass_storage,adb
-                    ;;
-                    "csfb")
-                         setprop persist.sys.usb.config diag,diag_mdm,serial_sdio,serial_tty,rmnet_sdio,mass_storage,adb
-                    ;;
-                    *)
-                         setprop persist.sys.usb.config diag,serial_tty,serial_tty,rmnet_smd,mass_storage,adb
-                    ;;
-                esac
-            ;;
-        esac
+      case "$target" in
+          "apq8084")
+               setprop persist.sys.usb.config diag,adb
+          ;;
+          *)
+               case "$baseband" in
+                  "mdm")
+                       setprop persist.sys.usb.config diag,diag_mdm,serial_hsic,serial_tty,rmnet_hsic,mass_storage,adb
+                  ;;
+                  "sglte")
+                       setprop persist.sys.usb.config diag,diag_qsc,serial_smd,serial_tty,serial_hsuart,rmnet_hsuart,mass_storage,adb
+                  ;;
+                  "dsda" | "sglte2")
+                       setprop persist.sys.usb.config diag,diag_mdm,diag_qsc,serial_hsic,serial_hsuart,rmnet_hsic,rmnet_hsuart,mass_storage,adb
+                  ;;
+                  "dsda2")
+                       setprop persist.sys.usb.config diag,diag_mdm,diag_mdm2,serial_hsic,serial_hsusb,rmnet_hsic,rmnet_hsusb,mass_storage,adb
+                  ;;
+                  *)
+                       setprop persist.sys.usb.config diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb
+                  ;;
+              esac
+          ;;
+      esac
     ;;
     * ) ;; #USB persist config exists, do nothing
 esac
@@ -136,7 +123,7 @@
 cdromname="/system/etc/cdrom_install.iso"
 cdromenable=`getprop persist.service.cdrom.enable`
 case "$target" in
-        "msm7627a" | "msm8226" | "msm8610")
+        "msm8226" | "msm8610")
                 case "$cdromenable" in
                         0)
                                 echo "" > /sys/class/android_usb/android0/f_mass_storage/lun0/file
diff --git a/sec_config b/sec_config
index 3f8de4d..62e5097 100644
--- a/sec_config
+++ b/sec_config
@@ -1,3 +1,5 @@
 /* IPC Security Config */
 /* <GPS QMI Service ID - 16>:<GPS QMI Instance ID - all instances>:<Client Group ID> */
 16:4294967295:1000:3004
+/* Allow SS CTL service to be used by system and net_raw processes */
+43:4294967295:1000:3004