marlin: Enable MTP over functionfs

Test: on device
Bug: 30976142
Change-Id: I51991bface547691f15b17db03d0d1fc1cdd0bb6
diff --git a/init.common.usb.rc b/init.common.usb.rc
index 7e93b8a..e020a34 100644
--- a/init.common.usb.rc
+++ b/init.common.usb.rc
@@ -12,13 +12,18 @@
     write /sys/class/android_usb/android0/f_rndis_qc/rndis_transports BAM2BAM_IPA
     write /sys/module/g_android/parameters/mtp_tx_req_len 131072
     write /sys/module/g_android/parameters/mtp_rx_req_len 131072
+    setprop sys.usb.ffs.max_write 524288
+    setprop sys.usb.ffs.max_read 524288
+    setprop sys.usb.mtp.device_type 3
     setprop sys.usb.rps_mask 0
 
 on post-fs
-    write /sys/class/android_usb/android0/f_ffs/aliases adb
-    mkdir /dev/usb-ffs 0770 shell shell
+    write /sys/class/android_usb/android0/f_ffs/aliases adb,mtp
+    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
+    mkdir /dev/usb-ffs/mtp 0770 mtp mtp
+    mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024
 
 on property:sys.usb.config=mtp
     stop adbd
@@ -76,7 +81,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 ${sys.usb.config}
+    write /sys/class/android_usb/android0/functions mtp
     write /sys/class/android_usb/android0/enable 1
     setprop sys.usb.state ${sys.usb.config}
 
@@ -87,7 +92,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 ${sys.usb.config}
+    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}