on early-init write /sys/module/musb_hdrc/parameters/kernel_init_done 1 # write /sys/module/musb_hdrc/parameters/musb_force_on 1 # write /sys/class/udc/musb-hdrc/device/cmode 3 on post-fs setprop vendor.usb.vid "0x0E8D" mkdir /dev/usb-ffs 0775 shell shell mkdir /dev/usb-ffs/adb 0770 shell shell mkdir /config/usb_gadget/g1 0770 shell shell write /config/usb_gadget/g1/idVendor ${vendor.usb.vid} write /config/usb_gadget/g1/bcdDevice 0x0223 write /config/usb_gadget/g1/bcdUSB 0x0200 write /config/usb_gadget/g1/os_desc/use 1 mkdir /config/usb_gadget/g1/strings/0x409 0770 write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} #SDD: add multi device name by lijia.chen 2020.08.10 start write /config/usb_gadget/g1/strings/0x409/product "Android ADB Interface" #SDD: add multi device name by lijia.chen 2020.08.10 end mkdir /config/usb_gadget/g1/functions/accessory.gs2 mkdir /config/usb_gadget/g1/functions/audio_source.gs3 mkdir /config/usb_gadget/g1/functions/ffs.adb mkdir /config/usb_gadget/g1/functions/ffs.mtp write /config/usb_gadget/g1/functions/ffs.mtp/os_desc/interface.MTP/compatible_id "MTP" mkdir /config/usb_gadget/g1/functions/ffs.ptp mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 mkdir /config/usb_gadget/g1/functions/midi.gs5 mkdir /config/usb_gadget/g1/functions/acm.gs0 mkdir /config/usb_gadget/g1/functions/acm.gs1 mkdir /config/usb_gadget/g1/functions/acm.gs2 mkdir /config/usb_gadget/g1/functions/acm.gs3 mkdir /config/usb_gadget/g1/functions/mass_storage.usb0 mkdir /config/usb_gadget/g1/functions/hid.gs0 mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" write /config/usb_gadget/g1/configs/b.1/MaxPower 500 symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1 mkdir /dev/usb-ffs/mtp 0770 mtp mtp mkdir /dev/usb-ffs/ptp 0770 mtp mtp mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 on post-fs-data mkdir /config/usb_gadget/g1/functions/via_modem.gs0 mkdir /config/usb_gadget/g1/functions/via_ets.gs0 mkdir /config/usb_gadget/g1/functions/via_atc.gs0 on boot setprop sys.usb.configfs 1 setprop sys.usb.controller "musb-hdrc" setprop vendor.usb.controller "musb-hdrc" setprop sys.usb.ffs.aio_compat 0 setprop vendor.usb.acm_cnt 0 setprop vendor.usb.acm_port0 "" setprop vendor.usb.acm_port1 "" setprop vendor.usb.acm_enable 0 write /sys/class/android_usb/android0/f_mtp/cpu_mask 0x80 write /sys/module/usb_f_mtp/parameters/mtp_rx_cont 1 chmod 0664 /sys/class/android_usb/android0/iSerial chown root system /sys/class/android_usb/android0/iSerial chown radio system /sys/class/usb_rawbulk/data/enable chmod 0660 /sys/class/usb_rawbulk/data/enable chown radio system /sys/class/usb_rawbulk/ets/enable chmod 0660 /sys/class/usb_rawbulk/ets/enable chown radio system /sys/class/usb_rawbulk/atc/enable chmod 0660 /sys/class/usb_rawbulk/atc/enable chown radio system /sys/class/usb_rawbulk/pcv/enable chmod 0660 /sys/class/usb_rawbulk/pcv/enable chown radio system /sys/class/usb_rawbulk/gps/enable chmod 0660 /sys/class/usb_rawbulk/gps/enable chown system radio /dev/ttyGS0 chmod 0660 /dev/ttyGS0 chown system radio /dev/ttyGS1 chmod 0660 /dev/ttyGS1 chown system radio /dev/ttyGS2 chmod 0660 /dev/ttyGS2 chown system radio /dev/ttyGS3 chmod 0660 /dev/ttyGS3 #SDD: add multi device name by lijia.chen 2020.08.10 start chmod a+x config/usb_gadget/g1 chmod a+x config/usb_gadget/g1/strings/0x409 chmod 0666 /config/usb_gadget/g1/strings/0x409/product #SDD: add multi device name by lijia.chen 2020.08.10 end # for usb otg sdcard hot plug detection write /sys/module/block/parameters/events_dfl_poll_msecs 1000 on charger mkdir /config/usb_gadget/g1 0770 shell shell write /config/usb_gadget/g1/idVendor 0x0E8D write /config/usb_gadget/g1/bcdDevice 0x0223 write /config/usb_gadget/g1/bcdUSB 0x0200 write /config/usb_gadget/g1/os_desc/use 1 mkdir /config/usb_gadget/g1/strings/0x409 0770 write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} #SDD: add multi device name by lijia.chen 2020.08.10 start #write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model} #SDD: add multi device name by lijia.chen 2020.08.10 end mkdir /config/usb_gadget/g1/functions/hid.gs0 mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/configs/b.1/MaxPower 500 mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 setprop sys.usb.configfs 1 setprop vendor.usb.controller "musb-hdrc" setprop vendor.usb.acm_cnt 0 setprop vendor.usb.acm_port0 "" setprop vendor.usb.acm_port1 "" setprop vendor.usb.acm_enable 0 setprop sys.usb.config hid ### more command at init.usb.configfs.rc ### on property:sys.usb.config=none && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor ${vendor.usb.vid} rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 write /sys/devices/platform/soc/mt_usb/saving 0 ### HID for KPOC ### on property:sys.usb.config=hid && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "HID" write /config/usb_gadget/g1/idProduct 0x20FF write /config/usb_gadget/g1/functions/hid.gs0/protocol 0 write /config/usb_gadget/g1/functions/hid.gs0/subclass 0 #write /config/usb_gadget/g1/functions/hid.gs0/report_length 4 #write /config/usb_gadget/g1/functions/hid.gs0/report_desc \\x05\\x01\\x09\\x00\\xa1\\x01\\xc0 symlink /config/usb_gadget/g1/functions/hid.gs0 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### main function : adb ### ### start adbd at init.usb.configfs.rc ### on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x201C on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2006 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2029 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \ property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \ property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### main function : mtp ### on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2008 on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2012 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x202A on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=1 && \ property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /config/usb_gadget/g1/os_desc/use 1 write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=0 && \ property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /config/usb_gadget/g1/os_desc/use 1 symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### start adbd at init.usb.configfs.rc ### on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x201D on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x200A setprop vendor.usb.acm_port1 "" on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2026 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \ property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /config/usb_gadget/g1/os_desc/use 1 write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \ property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.mtp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /config/usb_gadget/g1/os_desc/use 1 symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### main function : ptp ### on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x200B on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2013 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x202B on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=1 && \ property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=0 && \ property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### start adbd at init.usb.configfs.rc ### on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x200C on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x200D setprop vendor.usb.acm_port1 "" on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2027 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \ property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \ property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 && property:vendor.usb.ffs.ptp.ready=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} symlink /config/usb_gadget/g1/functions/ffs.ptp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### main function : rndis ### on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2004 on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2011 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x202C on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=1 && \ property:sys.usb.configfs=1 mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=0 && \ property:sys.usb.configfs=1 mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2005 on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2010 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2028 on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \ property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \ property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 mkdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} symlink /config/usb_gadget/g1/functions/mtk_rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### main function : midi ### on property:sys.usb.config=midi && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idProduct 0x2046 on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idProduct 0x2048 ### main function : accessory ### on property:sys.usb.config=accessory && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d00 on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d01 ### main function : audio_source ### on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d02 on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d03 ### main function : accessory,audio_source ### on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d04 on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d05 on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2031 on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2033 setprop vendor.usb.acm_port1 "" ##via_modem,via_ets,via_atc,acm on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=1 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ##via_modem,via_ets,via_atc,adb on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=0 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2032 on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2034 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2050 on property:sys.usb.config=via_bypass,adb && property:sys.usb.configfs=1 start adbd ##via_modem,via_ets,via_atc,adb,acm on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \ property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f5 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ##via_modem,acm,adb on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \ property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm2" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ##via_modem,via_ets,via_atc,adb on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \ property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### main function : mass_storage ### on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2002 on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x200F setprop vendor.usb.acm_port1 "" on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x202D on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=1 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=0 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2003 on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2006 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2029 on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \ property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \ property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### main function : bicr ### on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2002 on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x200F setprop vendor.usb.acm_port1 "" on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x202D on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=1 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=0 && \ property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=0 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2003 on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=1 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2006 setprop vendor.usb.acm_port1 "" on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=2 && \ property:sys.usb.configfs=1 setprop vendor.usb.pid 0x2029 on property:sys.usb.config=bicr,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \ property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /sys/devices/platform/soc/mt_usb/saving 1 write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \ property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb" write /config/usb_gadget/g1/idProduct ${vendor.usb.pid} write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1 write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0" symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} ### ACM APPEND SERIES ### on property:persist.vendor.radio.port_index="0" && property:sys.boot_completed=1 setprop vendor.usb.acm_idx "" setprop vendor.usb.acm_cnt 0 setprop vendor.usb.acm_enable 0 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} on property:persist.vendor.radio.port_index="1" && property:sys.boot_completed=1 setprop sys.usb.config acm_gs0 on property:sys.usb.config=mass_storage,adb,acm setprop sys.usb.config acm_gs0 on property:sys.usb.config=acm_gs0 setprop vendor.usb.acm_port0 0 setprop vendor.usb.acm_port1 "" setprop vendor.usb.acm_cnt 1 setprop vendor.usb.acm_enable 1 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.acm_idx "1" on property:persist.vendor.radio.port_index="2" && property:sys.boot_completed=1 setprop sys.usb.config acm_gs1 on property:sys.usb.config=acm_gs1 setprop vendor.usb.acm_port0 1 setprop vendor.usb.acm_port1 "" setprop vendor.usb.acm_cnt 1 setprop vendor.usb.acm_enable 1 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.acm_idx "2" on property:persist.vendor.radio.port_index="3" && property:sys.boot_completed=1 setprop sys.usb.config acm_gs2 on property:sys.usb.config=acm_third setprop sys.usb.config acm_gs2 on property:sys.usb.config=acm_gs2 setprop vendor.usb.acm_port0 2 setprop vendor.usb.acm_port1 "" setprop vendor.usb.acm_cnt 1 setprop vendor.usb.acm_enable 1 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.acm_idx "3" on property:persist.vendor.radio.port_index="4" && property:sys.boot_completed=1 setprop sys.usb.config acm_gs3 on property:sys.usb.config=gs3 setprop sys.usb.config acm_gs3 on property:sys.usb.config=mtp,gs3 setprop sys.usb.config acm_gs3 on property:sys.usb.config=acm_gs3 setprop vendor.usb.acm_port0 3 setprop vendor.usb.acm_port1 "" setprop vendor.usb.acm_cnt 1 setprop vendor.usb.acm_enable 1 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.acm_idx "4" on property:sys.usb.config=mtp,gs0gs1 setprop sys.usb.config acm_gs0gs1 on property:sys.usb.config=gs0gs1 setprop sys.usb.config acm_gs0gs1 on property:sys.usb.config=rndis,gs0gs1 setprop sys.usb.config acm_gs0gs1 on property:sys.usb.config=rndis,adb,gs0gs1 setprop sys.usb.config acm_gs0gs1 on property:sys.usb.config=acm_gs0gs1 setprop vendor.usb.acm_port0 0 setprop vendor.usb.acm_port1 1 setprop vendor.usb.acm_cnt 2 setprop vendor.usb.acm_enable 1 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.acm_idx "1,2" on property:sys.usb.config=gs3,dual_acm setprop sys.usb.config acm_gs0gs3 on property:sys.usb.config=mtp,gs3,dual_acm setprop sys.usb.config acm_gs0gs3 on property:sys.usb.config=mtp,gs0gs3 setprop sys.usb.config acm_gs0gs3 on property:sys.usb.config=gs0gs3 setprop sys.usb.config acm_gs0gs3 on property:sys.usb.config=rndis,gs0gs3 setprop sys.usb.config acm_gs0gs3 on property:sys.usb.config=rndis,adb,gs0gs3 setprop sys.usb.config acm_gs0gs3 on property:sys.usb.config=acm_gs0gs3 setprop vendor.usb.acm_port0 0 setprop vendor.usb.acm_port1 3 setprop vendor.usb.acm_cnt 2 setprop vendor.usb.acm_enable 1 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.acm_idx "1,4" on property:sys.usb.config=gs1gs3 setprop sys.usb.config acm_gs1gs3 on property:sys.usb.config=mtp,gs1gs3 setprop sys.usb.config acm_gs1gs3 on property:sys.usb.config=via_bypass,gs1gs3 setprop sys.usb.config acm_gs1gs3 on property:sys.usb.config=rndis,gs1gs3 setprop sys.usb.config acm_gs1gs3 on property:sys.usb.config=acm_gs1gs3 setprop vendor.usb.acm_port0 1 setprop vendor.usb.acm_port1 3 setprop vendor.usb.acm_cnt 2 setprop vendor.usb.acm_enable 1 setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.acm_idx "2,4" # For ATM (Android Test Mode) on property:vendor.usb.clear=1 && property:sys.usb.configfs=1 write /config/usb_gadget/g1/UDC "none" write /config/usb_gadget/g1/bDeviceClass 0 write /config/usb_gadget/g1/bDeviceSubClass 0 write /config/usb_gadget/g1/bDeviceProtocol 0 rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rmdir /config/usb_gadget/g1/functions/mtk_rndis.gs4 write /sys/devices/platform/soc/mt_usb/saving 0 setprop vendor.usb.clear 2 # has permission issue when read from ${sys.usb.ffs.ready} on property:sys.usb.ffs.ready=0 setprop vendor.usb.ffs.ready 0 on property:sys.usb.ffs.ready=1 setprop vendor.usb.ffs.ready 1 on property:sys.usb.config=atm_gs0 && property:sys.usb.configfs=1 stop adbd setprop vendor.usb.ffs.ready 0 setprop vendor.usb.clear 1 on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0 && \ property:vendor.usb.clear=2 && property:sys.usb.configfs=1 start adbd on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0 && \ property:vendor.usb.clear=2 && property:sys.usb.configfs=1 setprop vendor.usb.acm_port0 0 setprop vendor.usb.acm_port1 "" setprop vendor.usb.acm_cnt 1 setprop vendor.usb.acm_enable 1 write /sys/devices/platform/soc/mt_usb/saving 1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atm_gs0" write /config/usb_gadget/g1/idProduct 0x200A symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} #setprop sys.usb.state ${sys.usb.config} setprop vendor.usb.pid 0x200A #setprop vendor.usb.clear 0 setprop vendor.usb.acm_idx "1" on property:sys.usb.config=atm_gs0gs3 && property:sys.usb.configfs=1 stop adbd setprop vendor.usb.ffs.ready 0 setprop vendor.usb.clear 1 on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0gs3 && \ property:vendor.usb.clear=2 && property:sys.usb.configfs=1 start adbd on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0gs3 && \ property:vendor.usb.clear=2 && property:sys.usb.configfs=1 setprop vendor.usb.acm_port0 0 setprop vendor.usb.acm_port1 3 setprop vendor.usb.acm_cnt 2 setprop vendor.usb.acm_enable 1 write /sys/devices/platform/soc/mt_usb/saving 1 write /config/usb_gadget/g1/idProduct 0x2026 symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} #setprop sys.usb.state ${sys.usb.config} setprop vendor.usb.pid 0x2026 #setprop vendor.usb.clear 0 setprop vendor.usb.acm_idx "1,4" ### CHARGING ### on property:sys.usb.config=cdp && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" write /config/usb_gadget/g1/idProduct 0x2008 write /config/usb_gadget/g1/os_desc/use 1 symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${vendor.usb.controller} setprop sys.usb.state ${sys.usb.config} setprop vendor.usb.pid 0x2008 on property:sys.usb.config=charging_yes setprop vendor.usb.charging yes setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} on property:sys.usb.config=charging_no setprop sys.usb.config none setprop sys.usb.config ${sys.usb.state} setprop vendor.usb.charging no on property:vendor.usb.charging=yes write /sys/class/udc/musb-hdrc/device/cmode 0 on property:vendor.usb.charging=no write /sys/class/udc/musb-hdrc/device/cmode 1 on property:vendor.usb.bicr=yes write /sys/class/android_usb/android0/f_mass_storage/bicr 1 write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0" on property:vendor.usb.bicr=no write /sys/class/android_usb/android0/f_mass_storage/bicr 0 write /sys/class/android_usb/android0/f_mass_storage/lun/file "off" on property:vendor.usb.port.mode=usb write /sys/devices/platform/soc/mt_usb/portmode 0 on property:vendor.usb.port.mode=uart write /sys/devices/platform/soc/mt_usb/portmode 1 on property:vendor.em.usb.set=term_sel write /proc/mtk_usb/usb-phy0/u2_phy/term_sel ${vendor.em.usb.value} on property:vendor.em.usb.set=vrt_sel write /proc/mtk_usb/usb-phy0/u2_phy/vrt_sel ${vendor.em.usb.value} on property:vendor.em.usb.set=phy_rev6 write /proc/mtk_usb/usb-phy0/u2_phy/phy_rev6 ${vendor.em.usb.value} on property:vendor.em.usb.set=discth write /proc/mtk_usb/usb-phy0/u2_phy/discth ${vendor.em.usb.value} on property:vendor.em.usb.bypass.enable=0 write /sys/class/usb_rawbulk/gps/enable 1 on property:vendor.em.usb.bypass.enable=1 write /sys/class/usb_rawbulk/pcv/enable 1 on property:vendor.em.usb.bypass.enable=2 write /sys/class/usb_rawbulk/atc/enable 1 on property:vendor.em.usb.bypass.enable=3 write /sys/class/usb_rawbulk/ets/enable 1 on property:vendor.em.usb.bypass.enable=4 write /sys/class/usb_rawbulk/data/enable 1 on property:vendor.em.usb.bypass.disable=0 write /sys/class/usb_rawbulk/gps/enable 0 on property:vendor.em.usb.bypass.disable=1 write /sys/class/usb_rawbulk/pcv/enable 0 on property:vendor.em.usb.bypass.disable=2 write /sys/class/usb_rawbulk/atc/enable 0 on property:vendor.em.usb.bypass.disable=3 write /sys/class/usb_rawbulk/ets/enable 0 on property:vendor.em.usb.bypass.disable=4 write /sys/class/usb_rawbulk/data/enable 0 ### vendor process start ### on property:vendor.usb.config=* setprop sys.usb.config ${vendor.usb.config} ### vendor process end ### ### test command start ### on property:vendor.usb.test=* setprop sys.usb.config none setprop sys.usb.config ${vendor.usb.test} ### test command end ### on property:vendor.usb.printk=* write /proc/sys/kernel/printk ${vendor.usb.printk} on property:persist.vendor.usb.printk=* setprop vendor.usb.printk ${persist.vendor.usb.printk} on property:vendor.usb.speed.mode=u3 write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed write /sys/class/udc/${vendor.usb.controller}/device/mode 0 write /sys/class/udc/${vendor.usb.controller}/device/mode 1 on property:vendor.usb.speed.mode=u2 write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed write /sys/class/udc/${vendor.usb.controller}/device/mode 0 write /sys/class/udc/${vendor.usb.controller}/device/mode 1 on property:persist.vendor.usb.speed.mode=u3 write /sys/class/udc/${vendor.usb.controller}/device/max_speed super-speed write /sys/class/udc/${vendor.usb.controller}/device/mode 0 write /sys/class/udc/${vendor.usb.controller}/device/mode 1 on property:persist.vendor.usb.speed.mode=u2 write /sys/class/udc/${vendor.usb.controller}/device/max_speed high-speed write /sys/class/udc/${vendor.usb.controller}/device/mode 0 write /sys/class/udc/${vendor.usb.controller}/device/mode 1 on property:vendor.usb.sib_enable=1 write /proc/mtk_usb/usb-phy0/u3_phy/sib 1 on property:vendor.usb.sib_enable=0 write /proc/mtk_usb/usb-phy0/u3_phy/sib 0 on property:vendor.usb.testmode=0 write /proc/mtk_usb/xhci0/testmode "0" on property:vendor.usb.testmode=1 write /proc/mtk_usb/xhci0/testmode "test SE0 NAK" on property:vendor.usb.testmode=2 write /proc/mtk_usb/xhci0/testmode "test J" on property:vendor.usb.testmode=3 write /proc/mtk_usb/xhci0/testmode "test K" on property:vendor.usb.testmode=4 write /proc/mtk_usb/xhci0/testmode "test packet" on property:vendor.usb.device.wakeup=* write ${vendor.usb.device.wakeup} "enabled" ### PLATFORM VARIANT, cat $rc_file | grep write | sort | grep -vE "android0|usb20_phy" | awk '{print $2}' | uniq ###