Currently, USB gadgdet hal couldn't access configfs nodes during device booting. The permission of configfs nodes are root as default, and they are modified to system by init process. Therefore, USB gadget HAL can't access them before permission changes completely. The patch will modify permission of USB gadget hal so that it can access configfs nodes without permission change. Bug: 204378488 Test: check connection time Change-Id: I97f5446a51183225227744043e4a6e0088fecf0b
253 lines
12 KiB
Text
253 lines
12 KiB
Text
on early-boot
|
|
mkdir /config/usb_gadget/g1
|
|
mkdir /config/usb_gadget/g1/strings/0x409
|
|
mkdir /config/usb_gadget/g1/configs/b.1
|
|
write /config/usb_gadget/g1/idVendor 0x18d1
|
|
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
|
|
write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
|
|
write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
|
|
write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384
|
|
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
|
|
write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
|
|
|
|
# ffs function
|
|
mkdir /config/usb_gadget/g1/functions/ffs.adb 0770 shell shell
|
|
mkdir /config/usb_gadget/g1/functions/ffs.mtp
|
|
mkdir /config/usb_gadget/g1/functions/ffs.ptp
|
|
mkdir /dev/usb-ffs 0775 shell shell
|
|
mkdir /dev/usb-ffs/adb 0770 shell shell
|
|
mkdir /dev/usb-ffs/mtp 0770 mtp mtp
|
|
mkdir /dev/usb-ffs/ptp 0770 mtp mtp
|
|
mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1
|
|
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
|
|
setprop sys.usb.mtp.device_type 3
|
|
symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
|
|
|
|
# mtp function
|
|
mkdir /config/usb_gadget/g1/functions/mtp.gs0
|
|
|
|
# ptp function
|
|
mkdir /config/usb_gadget/g1/functions/ptp.gs1
|
|
|
|
# accessory function
|
|
mkdir /config/usb_gadget/g1/functions/accessory.gs2
|
|
|
|
# audio_source function
|
|
mkdir /config/usb_gadget/g1/functions/audio_source.gs3
|
|
|
|
# rndis function
|
|
mkdir /config/usb_gadget/g1/functions/rndis.gs4
|
|
# Modify class/subclass/protocol for rndis.gs4
|
|
# Remote NDIS: Class: Wireless Controller (0xe0), Subclass: 0x1, Protocol: 0x3
|
|
write /config/usb_gadget/g1/functions/rndis.gs4/class e0
|
|
write /config/usb_gadget/g1/functions/rndis.gs4/subclass 01
|
|
write /config/usb_gadget/g1/functions/rndis.gs4/protocol 03
|
|
write /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.ncm/compatible_id RNDIS
|
|
write /config/usb_gadget/g1/functions/rndis.gs4/ifname rndis%d
|
|
setprop vendor.usb.rndis.config rndis.gs4
|
|
|
|
# midi function
|
|
mkdir /config/usb_gadget/g1/functions/midi.gs5
|
|
|
|
# acm function
|
|
mkdir /config/usb_gadget/g1/functions/acm.gs6
|
|
|
|
# dm function
|
|
mkdir /config/usb_gadget/g1/functions/dm.gs7
|
|
|
|
# uts function
|
|
mkdir /config/usb_gadget/g1/functions/uts.gs8
|
|
|
|
# ncm function
|
|
mkdir /config/usb_gadget/g1/functions/ncm.gs9
|
|
write /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id WINNCM
|
|
write /config/usb_gadget/g1/functions/ncm.gs9/ifname ncm%d
|
|
|
|
# etr_miu function
|
|
mkdir /config/usb_gadget/g1/functions/etr_miu.gs11
|
|
|
|
# disable permission change. TODO (b/206902205): add back later
|
|
# setprop vendor.usb.functions.ready 1
|
|
|
|
on boot
|
|
write /config/usb_gadget/g1/bcdDevice 0x0510
|
|
# Use USB Gadget HAL
|
|
setprop sys.usb.configfs 2
|
|
|
|
on property:sys.usb.config=accessory && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x2D00
|
|
write /config/usb_gadget/g1/idVendor 0x18D1
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x2D01
|
|
write /config/usb_gadget/g1/idVendor 0x18D1
|
|
|
|
on property:sys.usb.config=none && property:sys.usb.configfs=1
|
|
rm /config/usb_gadget/g1/configs/b.1/f4
|
|
|
|
on property:sys.usb.config=mtp && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6860
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6860
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6860
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6860
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
on property:sys.usb.config=rndis && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6863
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6864
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
on property:sys.usb.config=ptp && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6865
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x6866
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
|
|
# Enable dm,acm,adb functions once in factory build
|
|
on property:ro.vendor.factory=1 && property:sys.usb.configfs=1 && property:sys.boot_completed=1
|
|
setprop sys.usb.config dm,acm,adb
|
|
|
|
# We introduce lsi mode to call sys.usb.config none
|
|
on property:sys.usb.config=rndis,acm,dm,adb && property:sys.usb.configfs=1
|
|
setprop sys.usb.config "none"
|
|
setprop sys.usb.config "lsi-rndis,acm,dm,adb"
|
|
|
|
on property:sys.usb.config=lsi-rndis,acm,dm,adb && property:sys.usb.configfs=1
|
|
start adbd
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=lsi-rndis,acm,dm,adb && property:sys.usb.configfs=1
|
|
mkdir /config/usb_gadget/g1/functions/rndis.gs4
|
|
write /config/usb_gadget/g1/idProduct 0x6862
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_acm_dm_adb"
|
|
symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
|
|
symlink /config/usb_gadget/g1/functions/acm.gs6 /config/usb_gadget/g1/configs/b.1/f2
|
|
symlink /config/usb_gadget/g1/functions/dm.gs7 /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 ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=dm,acm,adb && property:sys.usb.configfs=1
|
|
setprop sys.usb.config "none"
|
|
setprop sys.usb.config "lsi-dm,acm,adb"
|
|
|
|
on property:sys.usb.config=lsi-dm,acm,adb && property:sys.usb.configfs=1
|
|
start adbd
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=lsi-dm,acm,adb && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x685D
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "dm_acm_adb"
|
|
symlink /config/usb_gadget/g1/functions/dm.gs7 /config/usb_gadget/g1/configs/b.1/f1
|
|
symlink /config/usb_gadget/g1/functions/acm.gs6 /config/usb_gadget/g1/configs/b.1/f2
|
|
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3
|
|
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=dm,acm,uts,adb && property:sys.usb.configfs=1
|
|
setprop sys.usb.config "none"
|
|
setprop sys.usb.config "lsi-dm,acm,uts,adb"
|
|
|
|
on property:sys.usb.config=lsi-dm,acm,uts,adb && property:sys.usb.configfs=1
|
|
start adbd
|
|
|
|
on property:sys.usb.ffs.ready=1 && property:sys.usb.config=lsi-dm,acm,uts,adb && property:sys.usb.configfs=1
|
|
mkdir /config/usb_gadget/g1/functions/rndis.gs4
|
|
write /config/usb_gadget/g1/idProduct 0x6862
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "dm_acm_uts_adb"
|
|
symlink /config/usb_gadget/g1/functions/dm.gs7 /config/usb_gadget/g1/configs/b.1/f1
|
|
symlink /config/usb_gadget/g1/functions/acm.gs6 /config/usb_gadget/g1/configs/b.1/f2
|
|
symlink /config/usb_gadget/g1/functions/uts.gs8 /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 ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=mass_storage && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x685B
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mass_storage"
|
|
symlink /config/usb_gadget/g1/functions/mass_storage.gs9 /config/usb_gadget/g1/configs/b.1/f1
|
|
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
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:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x685E
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mass_storage_adb"
|
|
symlink /config/usb_gadget/g1/functions/mass_storage.gs9 /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 ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=mass_storage,acm && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x685E
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mass_storage_acm"
|
|
symlink /config/usb_gadget/g1/functions/mass_storage.gs9 /config/usb_gadget/g1/configs/b.1/f1
|
|
symlink /config/usb_gadget/g1/functions/acm.gs6 /config/usb_gadget/g1/configs/b.1/f2
|
|
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=rndis,diag && property:sys.usb.configfs=1
|
|
write /sys/class/android_usb/android0/enable 0
|
|
write /sys/class/android_usb/android0/idVendor 04e8
|
|
write /sys/class/android_usb/android0/idProduct 6862
|
|
write /sys/class/android_usb/android0/f_diag/clients diag_mdm
|
|
write /sys/class/android_usb/android0/functions ${sys.usb.config}
|
|
write /sys/class/android_usb/android0/enable 1
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=rndis,diag && property:sys.usb.configfs=1
|
|
mkdir /config/usb_gadget/g1/functions/rndis.gs4
|
|
write /config/usb_gadget/g1/idProduct 0x6862
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag"
|
|
symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
|
|
symlink /config/usb_gadget/g1/functions/diag.gs10 /config/usb_gadget/g1/configs/b.1/f2
|
|
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=diag,acm && property:sys.usb.configfs=1
|
|
write /config/usb_gadget/g1/idProduct 0x685d
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_acm"
|
|
symlink /config/usb_gadget/g1/functions/diag.gs10 /config/usb_gadget/g1/configs/b.1/f1
|
|
symlink /config/usb_gadget/g1/functions/acm.gs6 /config/usb_gadget/g1/configs/b.1/f2
|
|
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:sys.usb.config=rndis,acm,diag && property:sys.usb.configfs=1
|
|
mkdir /config/usb_gadget/g1/functions/rndis.gs4
|
|
write /config/usb_gadget/g1/idProduct 0x6864
|
|
write /config/usb_gadget/g1/idVendor 0x04E8
|
|
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_acm_diag"
|
|
symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
|
|
symlink /config/usb_gadget/g1/functions/acm.gs6 /config/usb_gadget/g1/configs/b.1/f2
|
|
symlink /config/usb_gadget/g1/functions/diag.gs10 /config/usb_gadget/g1/configs/b.1/f3
|
|
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
|
|
setprop sys.usb.state ${sys.usb.config}
|
|
|
|
on property:vendor.usb.config=*
|
|
start usbd
|
|
|
|
on property:persist.vendor.usb.usbradio.config=*
|
|
start usbd
|