init.recovery.usb.rc 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. # Copyright 2014 The Android Open Source Project
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. #
  15. on boot
  16. mkdir /dev/usb-ffs 0770 shell shell
  17. mkdir /dev/usb-ffs/adb 0770 shell shell
  18. mount configfs none /config
  19. mkdir /config/usb_gadget/g1 0770 shell shell
  20. mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell
  21. write /config/usb_gadget/g1/bcdUSB 0x0200
  22. write /config/usb_gadget/g1/os_desc/use 1
  23. write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
  24. write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
  25. write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
  26. mkdir /config/usb_gadget/g1/functions/mass_storage.0
  27. mkdir /config/usb_gadget/g1/functions/mtp.gs0
  28. mkdir /config/usb_gadget/g1/functions/ptp.gs1
  29. mkdir /config/usb_gadget/g1/functions/accessory.gs2
  30. mkdir /config/usb_gadget/g1/functions/audio_source.gs2
  31. mkdir /config/usb_gadget/g1/functions/audio_source.gs3
  32. mkdir /config/usb_gadget/g1/functions/midi.gs5
  33. mkdir /config/usb_gadget/g1/functions/ffs.adb
  34. mkdir /config/usb_gadget/g1/functions/diag.diag
  35. mkdir /config/usb_gadget/g1/functions/cser.dun.0
  36. mkdir /config/usb_gadget/g1/functions/cser.nmea.1
  37. mkdir /config/usb_gadget/g1/functions/gsi.rmnet
  38. mkdir /config/usb_gadget/g1/functions/gsi.rndis
  39. mkdir /config/usb_gadget/g1/functions/gsi.dpl
  40. mkdir /config/usb_gadget/g1/functions/qdss.qdss
  41. mkdir /config/usb_gadget/g1/functions/rndis_bam.rndis
  42. mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet
  43. mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl
  44. mkdir /config/usb_gadget/g1/functions/ncm.0
  45. mkdir /config/usb_gadget/g1/functions/ccid.ccid
  46. mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
  47. mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
  48. write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
  49. write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
  50. symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
  51. mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
  52. write /sys/class/android_usb/android0/f_ffs/aliases adb
  53. setprop sys.usb.configfs 1
  54. setprop sys.usb.rndis.func.name "rndis_bam"
  55. setprop sys.usb.rmnet.func.name "rmnet_bam"
  56. # USB compositions
  57. on property:sys.usb.config=none
  58. write /config/usb_gadget/g1/UDC "none"
  59. stop adbd
  60. setprop sys.usb.ffs.ready 0
  61. write /config/usb_gadget/g1/bDeviceClass 0
  62. write /config/usb_gadget/g1/bDeviceSubClass 0
  63. write /config/usb_gadget/g1/bDeviceProtocol 0
  64. setprop sys.usb.state ${sys.usb.config}
  65. on property:sys.usb.config=adb
  66. start adbd
  67. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb
  68. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb"
  69. rm /config/usb_gadget/g1/configs/b.1/f1
  70. rm /config/usb_gadget/g1/configs/b.1/f2
  71. rm /config/usb_gadget/g1/configs/b.1/f3
  72. rm /config/usb_gadget/g1/configs/b.1/f4
  73. rm /config/usb_gadget/g1/configs/b.1/f5
  74. write /config/usb_gadget/g1/idVendor 0x0fce
  75. write /config/usb_gadget/g1/idProduct 0x7${ro.usb.pid_suffix}
  76. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
  77. write /config/usb_gadget/g1/UDC ${sys.usb.controller}
  78. setprop sys.usb.state ${sys.usb.config}
  79. on property:sys.usb.config=mtp
  80. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
  81. rm /config/usb_gadget/g1/configs/b.1/f1
  82. rm /config/usb_gadget/g1/configs/b.1/f2
  83. rm /config/usb_gadget/g1/configs/b.1/f3
  84. rm /config/usb_gadget/g1/configs/b.1/f4
  85. rm /config/usb_gadget/g1/configs/b.1/f5
  86. write /config/usb_gadget/g1/idVendor 0x0fce
  87. write /config/usb_gadget/g1/idProduct 0x7${ro.usb.pid_suffix}
  88. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  89. write /config/usb_gadget/g1/UDC ${sys.usb.controller}
  90. setprop sys.usb.state ${sys.usb.config}
  91. on property:sys.usb.config=mtp,adb
  92. start adbd
  93. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb
  94. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb"
  95. rm /config/usb_gadget/g1/configs/b.1/f1
  96. rm /config/usb_gadget/g1/configs/b.1/f2
  97. rm /config/usb_gadget/g1/configs/b.1/f3
  98. rm /config/usb_gadget/g1/configs/b.1/f4
  99. rm /config/usb_gadget/g1/configs/b.1/f5
  100. write /config/usb_gadget/g1/idVendor 0x0fce
  101. write /config/usb_gadget/g1/idProduct 0x7${ro.usb.pid_suffix}
  102. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  103. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  104. write /config/usb_gadget/g1/UDC ${sys.usb.controller}
  105. setprop sys.usb.state ${sys.usb.config}