init.recovery.usb.rc 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # Copyright (c) 2020, The Linux Foundation. All rights reserved.
  2. #
  3. on early-init
  4. write /sys/module/musb_hdrc/parameters/kernel_init_done 1
  5. on init
  6. setprop sys.usb.configfs 1
  7. setprop sys.usb.ffs.aio_compat 1
  8. setprop vendor.usb.controller "musb-hdrc"
  9. setprop vendor.usb.acm_cnt 0
  10. setprop vendor.usb.acm_port0 ""
  11. setprop vendor.usb.acm_port1 ""
  12. setprop vendor.usb.acm_enable 0
  13. on property:ro.boot.usbcontroller=*
  14. setprop sys.usb.controller ${ro.boot.usbcontroller}
  15. on fs
  16. mkdir /config
  17. mkdir /dev/usb-ffs 0770 shell shell
  18. mkdir /dev/usb-ffs/adb 0770 shell shell
  19. mount configfs none /config
  20. mkdir /config/usb_gadget/g1 0770 shell shell
  21. mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell
  22. write /config/usb_gadget/g1/bcdDevice 0x0223
  23. write /config/usb_gadget/g1/bcdUSB 0x0200
  24. write /config/usb_gadget/g1/os_desc/use 1
  25. write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
  26. write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
  27. write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
  28. mkdir /config/usb_gadget/g1/functions/mass_storage.usb0
  29. mkdir /config/usb_gadget/g1/functions/ffs.adb
  30. mkdir /config/usb_gadget/g1/functions/mtp.gs0
  31. write /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id "MTP"
  32. mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
  33. mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
  34. write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
  35. write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
  36. #write /config/usb_gadget/g1/configs/b.1/MaxPower 500
  37. symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
  38. mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
  39. write /sys/class/android_usb/android0/f_ffs/aliases adb
  40. on property:sys.usb.config=none && property:sys.usb.configfs=1
  41. write /config/usb_gadget/g1/UDC "none"
  42. stop adbd
  43. setprop sys.usb.ffs.ready 0
  44. setprop sys.usb.ffs.mtp.ready 0
  45. write /config/usb_gadget/g1/bDeviceClass 0
  46. write /config/usb_gadget/g1/bDeviceSubClass 0
  47. write /config/usb_gadget/g1/bDeviceProtocol 0
  48. rm /config/usb_gadget/g1/configs/b.1/f1
  49. rm /config/usb_gadget/g1/configs/b.1/f2
  50. #rmdir /config/usb_gadget/g1/functions/rndis.gs4
  51. write /sys/devices/platform/mt_usb/saving 0
  52. setprop sys.usb.state ${sys.usb.config}
  53. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1
  54. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb"
  55. write /config/usb_gadget/g1/idVendor 0x18d1
  56. write /config/usb_gadget/g1/idProduct 0xd001
  57. write /config/usb_gadget/g1/os_desc/use 1
  58. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
  59. write /config/usb_gadget/g1/UDC ${sys.usb.controller}
  60. setprop sys.usb.state ${sys.usb.config}
  61. on property:sys.usb.config=sideload && property:sys.usb.ffs.ready=1 && property:sys.usb.configfs=1
  62. write /config/usb_gadget/g1/idVendor 0x18d1
  63. on property:sys.usb.config=mtp && property:sys.usb.configfs=1
  64. setprop sys.usb.ffs.mtp.ready 1
  65. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
  66. rm /config/usb_gadget/g1/configs/b.1/f1
  67. rm /config/usb_gadget/g1/configs/b.1/f2
  68. write /config/usb_gadget/g1/idVendor 0x0e8d
  69. write /config/usb_gadget/g1/idProduct 0x2008
  70. write /config/usb_gadget/g1/os_desc/use 1
  71. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  72. write /config/usb_gadget/g1/UDC ${sys.usb.controller}
  73. setprop sys.usb.state ${sys.usb.config}
  74. on property:sys.usb.config=mtp,adb
  75. start adbd
  76. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
  77. setprop sys.usb.ffs.mtp.ready 1
  78. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb"
  79. rm /config/usb_gadget/g1/configs/b.1/f1
  80. rm /config/usb_gadget/g1/configs/b.1/f2
  81. write /config/usb_gadget/g1/idVendor 0x0e8d
  82. write /config/usb_gadget/g1/idProduct 0x201d
  83. write /config/usb_gadget/g1/os_desc/use 1
  84. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  85. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  86. write /config/usb_gadget/g1/UDC ${sys.usb.controller}
  87. setprop sys.usb.state ${sys.usb.config}