bullhead: Enable MTP over functionfs

Test: On device
Bug: 30976142
Change-Id: Ie9c0a0df51f4b69f2126c485c6953949e8b050b2
diff --git a/init.bullhead.usb.rc b/init.bullhead.usb.rc
index 7965754..2c69c65 100644
--- a/init.bullhead.usb.rc
+++ b/init.bullhead.usb.rc
@@ -23,10 +23,17 @@
     write /sys/class/android_usb/android0/iProduct ${ro.product.model}
 
 on post-fs
-    mkdir /dev/usb-ffs 0770 shell shell
+    mkdir /dev/usb-ffs 0775 shell shell
     mkdir /dev/usb-ffs/adb 0770 shell shell
     mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
-    write /sys/class/android_usb/android0/f_ffs/aliases adb
+    mkdir /dev/usb-ffs/mtp 0770 mtp mtp
+    mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024
+    write /sys/module/g_android/parameters/mtp_rx_req_len 131072
+    write /sys/module/g_android/parameters/mtp_tx_reqs 32
+    setprop sys.usb.ffs.max_write 262144
+    setprop sys.usb.ffs.max_read 262144
+    setprop sys.usb.mtp.device_type 3
+    write /sys/class/android_usb/android0/f_ffs/aliases adb,mtp
 
 on post-fs-data
     write /sys/module/rndis_ipa/parameters/min_cpu_freq 1036800
@@ -42,8 +49,6 @@
     write /sys/class/android_usb/android0/bDeviceSubClass 0
     write /sys/class/android_usb/android0/bDeviceProtocol 0
     write /sys/class/android_usb/android0/functions mtp
-    write /sys/module/g_android/parameters/mtp_rx_req_len 131072
-    write /sys/module/g_android/parameters/mtp_tx_reqs 32
     write /sys/class/android_usb/android0/enable 1
     setprop sys.usb.state ${sys.usb.config}
 
@@ -55,8 +60,6 @@
     write /sys/class/android_usb/android0/bDeviceSubClass 0
     write /sys/class/android_usb/android0/bDeviceProtocol 0
     write /sys/class/android_usb/android0/functions mtp,adb
-    write /sys/module/g_android/parameters/mtp_rx_req_len 131072
-    write /sys/module/g_android/parameters/mtp_tx_reqs 32
     write /sys/class/android_usb/android0/enable 1
     start adbd
     setprop sys.usb.state ${sys.usb.config}
@@ -95,7 +98,7 @@
     write /sys/class/android_usb/android0/bDeviceClass 0
     write /sys/class/android_usb/android0/bDeviceSubClass 0
     write /sys/class/android_usb/android0/bDeviceProtocol 0
-    write /sys/class/android_usb/android0/functions ptp
+    write /sys/class/android_usb/android0/functions mtp
     write /sys/class/android_usb/android0/enable 1
     setprop sys.usb.state ${sys.usb.config}
 
@@ -106,7 +109,7 @@
     write /sys/class/android_usb/android0/bDeviceClass 0
     write /sys/class/android_usb/android0/bDeviceSubClass 0
     write /sys/class/android_usb/android0/bDeviceProtocol 0
-    write /sys/class/android_usb/android0/functions ptp,adb
+    write /sys/class/android_usb/android0/functions mtp,adb
     write /sys/class/android_usb/android0/enable 1
     start adbd
     setprop sys.usb.state ${sys.usb.config}