init.recovery.usb.rc 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849
  1. # Copyright (c) 2020, The Linux Foundation. All rights reserved.
  2. #
  3. on boot
  4. setprop sys.usb.configfs 1
  5. setprop sys.usb.ffs.aio_compat 0
  6. setprop vendor.usb.controller "musb-hdrc"
  7. setprop vendor.usb.acm_cnt 0
  8. setprop vendor.usb.acm_port0 ""
  9. setprop vendor.usb.acm_port1 ""
  10. setprop vendor.usb.acm_enable 0
  11. write /sys/class/android_usb/android0/f_mtp/cpu_mask 0xF0
  12. chown radio system /sys/class/usb_rawbulk/data/enable
  13. chmod 0660 /sys/class/usb_rawbulk/data/enable
  14. chown radio system /sys/class/usb_rawbulk/ets/enable
  15. chmod 0660 /sys/class/usb_rawbulk/ets/enable
  16. chown radio system /sys/class/usb_rawbulk/atc/enable
  17. chmod 0660 /sys/class/usb_rawbulk/atc/enable
  18. chown radio system /sys/class/usb_rawbulk/pcv/enable
  19. chmod 0660 /sys/class/usb_rawbulk/pcv/enable
  20. chown radio system /sys/class/usb_rawbulk/gps/enable
  21. chmod 0660 /sys/class/usb_rawbulk/gps/enable
  22. chown system radio /dev/ttyGS0
  23. chmod 0660 /dev/ttyGS0
  24. chown system radio /dev/ttyGS1
  25. chmod 0660 /dev/ttyGS1
  26. chown system radio /dev/ttyGS2
  27. chmod 0660 /dev/ttyGS2
  28. chown system radio /dev/ttyGS3
  29. chmod 0660 /dev/ttyGS3
  30. on charger
  31. mkdir /config/usb_gadget/g1 0770 shell shell
  32. write /config/usb_gadget/g1/idVendor 0x0E8D
  33. write /config/usb_gadget/g1/bcdDevice 0x0223
  34. write /config/usb_gadget/g1/bcdUSB 0x0200
  35. write /config/usb_gadget/g1/os_desc/use 1
  36. mkdir /config/usb_gadget/g1/strings/0x409 0770
  37. write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
  38. write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
  39. write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
  40. mkdir /config/usb_gadget/g1/functions/hid.gs0
  41. mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
  42. mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
  43. write /config/usb_gadget/g1/configs/b.1/MaxPower 500
  44. mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
  45. setprop sys.usb.configfs 1
  46. setprop vendor.usb.controller "musb-hdrc"
  47. setprop vendor.usb.acm_cnt 0
  48. setprop vendor.usb.acm_port0 ""
  49. setprop vendor.usb.acm_port1 ""
  50. setprop vendor.usb.acm_enable 0
  51. setprop sys.usb.config hid
  52. ### more command at init.usb.configfs.rc ###
  53. on property:sys.usb.config=none && property:sys.usb.configfs=1
  54. write /config/usb_gadget/g1/idVendor ${vendor.usb.vid}
  55. rm /config/usb_gadget/g1/configs/b.1/f4
  56. rm /config/usb_gadget/g1/configs/b.1/f5
  57. write /sys/devices/platform/mt_usb/saving 0
  58. ### HID for KPOC ###
  59. on property:sys.usb.config=hid && property:sys.usb.configfs=1
  60. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "HID"
  61. write /config/usb_gadget/g1/idProduct 0x20FF
  62. write /config/usb_gadget/g1/functions/hid.gs0/protocol 0
  63. write /config/usb_gadget/g1/functions/hid.gs0/subclass 0
  64. #write /config/usb_gadget/g1/functions/hid.gs0/report_length 4
  65. #write /config/usb_gadget/g1/functions/hid.gs0/report_desc \\x05\\x01\\x09\\x00\\xa1\\x01\\xc0
  66. symlink /config/usb_gadget/g1/functions/hid.gs0 /config/usb_gadget/g1/configs/b.1/f1
  67. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  68. setprop sys.usb.state ${sys.usb.config}
  69. ### main function : adb ###
  70. ### start adbd at init.usb.configfs.rc ###
  71. on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=0 && \
  72. property:sys.usb.configfs=1
  73. setprop vendor.usb.pid 0x201C
  74. on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=1 && \
  75. property:sys.usb.configfs=1
  76. setprop vendor.usb.pid 0x2006
  77. setprop vendor.usb.acm_port1 ""
  78. on property:sys.usb.config=adb && property:vendor.usb.acm_cnt=2 && \
  79. property:sys.usb.configfs=1
  80. setprop vendor.usb.pid 0x2029
  81. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
  82. property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
  83. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_acm"
  84. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  85. write /sys/devices/platform/mt_usb/saving 1
  86. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  87. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  88. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
  89. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
  90. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  91. setprop sys.usb.state ${sys.usb.config}
  92. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && \
  93. property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
  94. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb"
  95. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  96. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1
  97. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  98. setprop sys.usb.state ${sys.usb.config}
  99. ### main function : mtp ###
  100. on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=0 && \
  101. property:sys.usb.configfs=1
  102. setprop vendor.usb.pid 0x2008
  103. on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=1 && \
  104. property:sys.usb.configfs=1
  105. setprop vendor.usb.pid 0x2012
  106. setprop vendor.usb.acm_port1 ""
  107. on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=2 && \
  108. property:sys.usb.configfs=1
  109. setprop vendor.usb.pid 0x202A
  110. on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=1 && \
  111. property:sys.usb.configfs=1
  112. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_acm"
  113. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  114. write /config/usb_gadget/g1/os_desc/use 1
  115. write /sys/devices/platform/mt_usb/saving 1
  116. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  117. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
  118. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
  119. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  120. setprop sys.usb.state ${sys.usb.config}
  121. on property:sys.usb.config=mtp && property:vendor.usb.acm_enable=0 && \
  122. property:sys.usb.configfs=1
  123. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
  124. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  125. write /config/usb_gadget/g1/os_desc/use 1
  126. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  127. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  128. setprop sys.usb.state ${sys.usb.config}
  129. ### start adbd at init.usb.configfs.rc ###
  130. on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=0 && \
  131. property:sys.usb.configfs=1
  132. setprop vendor.usb.pid 0x201D
  133. on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=1 && \
  134. property:sys.usb.configfs=1
  135. setprop vendor.usb.pid 0x200A
  136. setprop vendor.usb.acm_port1 ""
  137. on property:sys.usb.config=mtp,adb && property:vendor.usb.acm_cnt=2 && \
  138. property:sys.usb.configfs=1
  139. setprop vendor.usb.pid 0x2026
  140. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \
  141. property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
  142. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb_acm"
  143. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  144. write /config/usb_gadget/g1/os_desc/use 1
  145. write /sys/devices/platform/mt_usb/saving 1
  146. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  147. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  148. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
  149. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
  150. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  151. setprop sys.usb.state ${sys.usb.config}
  152. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && \
  153. property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
  154. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb"
  155. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  156. write /config/usb_gadget/g1/os_desc/use 1
  157. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  158. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  159. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  160. setprop sys.usb.state ${sys.usb.config}
  161. ### main function : ptp ###
  162. on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=0 && \
  163. property:sys.usb.configfs=1
  164. setprop vendor.usb.pid 0x200B
  165. on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=1 && \
  166. property:sys.usb.configfs=1
  167. setprop vendor.usb.pid 0x2013
  168. setprop vendor.usb.acm_port1 ""
  169. on property:sys.usb.config=ptp && property:vendor.usb.acm_cnt=2 && \
  170. property:sys.usb.configfs=1
  171. setprop vendor.usb.pid 0x202B
  172. on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=1 && \
  173. property:sys.usb.configfs=1
  174. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_acm"
  175. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  176. write /sys/devices/platform/mt_usb/saving 1
  177. symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1
  178. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
  179. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
  180. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  181. setprop sys.usb.state ${sys.usb.config}
  182. on property:sys.usb.config=ptp && property:vendor.usb.acm_enable=0 && \
  183. property:sys.usb.configfs=1
  184. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp"
  185. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  186. symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1
  187. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  188. setprop sys.usb.state ${sys.usb.config}
  189. ### start adbd at init.usb.configfs.rc ###
  190. on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=0 && \
  191. property:sys.usb.configfs=1
  192. setprop vendor.usb.pid 0x200C
  193. on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=1 && \
  194. property:sys.usb.configfs=1
  195. setprop vendor.usb.pid 0x200D
  196. setprop vendor.usb.acm_port1 ""
  197. on property:sys.usb.config=ptp,adb && property:vendor.usb.acm_cnt=2 && \
  198. property:sys.usb.configfs=1
  199. setprop vendor.usb.pid 0x2027
  200. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \
  201. property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
  202. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb_acm"
  203. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  204. write /sys/devices/platform/mt_usb/saving 1
  205. symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1
  206. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  207. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
  208. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
  209. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  210. setprop sys.usb.state ${sys.usb.config}
  211. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && \
  212. property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
  213. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb"
  214. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  215. symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1
  216. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  217. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  218. setprop sys.usb.state ${sys.usb.config}
  219. ### main function : rndis ###
  220. on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=0 && \
  221. property:sys.usb.configfs=1
  222. setprop vendor.usb.pid 0x2004
  223. on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=1 && \
  224. property:sys.usb.configfs=1
  225. setprop vendor.usb.pid 0x2011
  226. setprop vendor.usb.acm_port1 ""
  227. on property:sys.usb.config=rndis && property:vendor.usb.acm_cnt=2 && \
  228. property:sys.usb.configfs=1
  229. setprop vendor.usb.pid 0x202C
  230. on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=1 && \
  231. property:sys.usb.configfs=1
  232. mkdir /config/usb_gadget/g1/functions/rndis.gs4
  233. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
  234. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  235. write /sys/devices/platform/mt_usb/saving 1
  236. symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
  237. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
  238. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
  239. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  240. setprop sys.usb.state ${sys.usb.config}
  241. on property:sys.usb.config=rndis && property:vendor.usb.acm_enable=0 && \
  242. property:sys.usb.configfs=1
  243. mkdir /config/usb_gadget/g1/functions/rndis.gs4
  244. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis"
  245. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  246. symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
  247. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  248. setprop sys.usb.state ${sys.usb.config}
  249. on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=0 && \
  250. property:sys.usb.configfs=1
  251. setprop vendor.usb.pid 0x2005
  252. on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=1 && \
  253. property:sys.usb.configfs=1
  254. setprop vendor.usb.pid 0x2010
  255. setprop vendor.usb.acm_port1 ""
  256. on property:sys.usb.config=rndis,adb && property:vendor.usb.acm_cnt=2 && \
  257. property:sys.usb.configfs=1
  258. setprop vendor.usb.pid 0x2028
  259. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \
  260. property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
  261. mkdir /config/usb_gadget/g1/functions/rndis.gs4
  262. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm"
  263. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  264. write /sys/devices/platform/mt_usb/saving 1
  265. symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
  266. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  267. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
  268. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
  269. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  270. setprop sys.usb.state ${sys.usb.config}
  271. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && \
  272. property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
  273. mkdir /config/usb_gadget/g1/functions/rndis.gs4
  274. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
  275. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  276. symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1
  277. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  278. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  279. setprop sys.usb.state ${sys.usb.config}
  280. ### main function : midi ###
  281. on property:sys.usb.config=midi && property:sys.usb.configfs=1
  282. write /config/usb_gadget/g1/idProduct 0x2046
  283. on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1
  284. write /config/usb_gadget/g1/idProduct 0x2048
  285. ### main function : accessory ###
  286. on property:sys.usb.config=accessory && property:sys.usb.configfs=1
  287. write /config/usb_gadget/g1/idVendor 0x18d1
  288. write /config/usb_gadget/g1/idProduct 0x2d00
  289. on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
  290. write /config/usb_gadget/g1/idVendor 0x18d1
  291. write /config/usb_gadget/g1/idProduct 0x2d01
  292. ### main function : audio_source ###
  293. on property:sys.usb.config=audio_source && property:sys.usb.configfs=1
  294. write /config/usb_gadget/g1/idVendor 0x18d1
  295. write /config/usb_gadget/g1/idProduct 0x2d02
  296. on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1
  297. write /config/usb_gadget/g1/idVendor 0x18d1
  298. write /config/usb_gadget/g1/idProduct 0x2d03
  299. ### main function : accessory,audio_source ###
  300. on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1
  301. write /config/usb_gadget/g1/idVendor 0x18d1
  302. write /config/usb_gadget/g1/idProduct 0x2d04
  303. on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1
  304. write /config/usb_gadget/g1/idVendor 0x18d1
  305. write /config/usb_gadget/g1/idProduct 0x2d05
  306. on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=0 && \
  307. property:sys.usb.configfs=1
  308. setprop vendor.usb.pid 0x2031
  309. on property:sys.usb.config=via_bypass && property:vendor.usb.acm_cnt=1 && \
  310. property:sys.usb.configfs=1
  311. setprop vendor.usb.pid 0x2033
  312. setprop vendor.usb.acm_port1 ""
  313. ##via_modem,via_ets,via_atc,acm
  314. on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=1 && \
  315. property:sys.usb.configfs=1
  316. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass"
  317. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  318. write /sys/devices/platform/mt_usb/saving 1
  319. symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
  320. symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
  321. symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
  322. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f4
  323. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  324. setprop sys.usb.state ${sys.usb.config}
  325. ##via_modem,via_ets,via_atc,adb
  326. on property:sys.usb.config=via_bypass && property:vendor.usb.acm_enable=0 && \
  327. property:sys.usb.configfs=1
  328. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "via_bypass"
  329. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  330. write /sys/devices/platform/mt_usb/saving 1
  331. symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
  332. symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
  333. symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
  334. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  335. setprop sys.usb.state ${sys.usb.config}
  336. on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=0 && \
  337. property:sys.usb.configfs=1
  338. setprop vendor.usb.pid 0x2032
  339. on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=1 && \
  340. property:sys.usb.configfs=1
  341. setprop vendor.usb.pid 0x2034
  342. setprop vendor.usb.acm_port1 ""
  343. on property:sys.usb.config=via_bypass,adb && property:vendor.usb.acm_cnt=2 && \
  344. property:sys.usb.configfs=1
  345. setprop vendor.usb.pid 0x2050
  346. on property:sys.usb.config=via_bypass,adb && property:sys.usb.configfs=1
  347. start adbd
  348. ##via_modem,via_ets,via_atc,adb,acm
  349. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
  350. property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=1 && \
  351. property:sys.usb.configfs=1
  352. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm"
  353. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  354. write /sys/devices/platform/mt_usb/saving 1
  355. symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
  356. symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
  357. symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
  358. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
  359. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f5
  360. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  361. setprop sys.usb.state ${sys.usb.config}
  362. ##via_modem,acm,adb
  363. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
  364. property:vendor.usb.acm_enable=1 && property:vendor.usb.acm_cnt=2 && \
  365. property:sys.usb.configfs=1
  366. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb_acm2"
  367. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  368. write /sys/devices/platform/mt_usb/saving 1
  369. symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
  370. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  371. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
  372. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
  373. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  374. setprop sys.usb.state ${sys.usb.config}
  375. ##via_modem,via_ets,via_atc,adb
  376. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=via_bypass,adb && \
  377. property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
  378. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb"
  379. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  380. write /sys/devices/platform/mt_usb/saving 1
  381. symlink /config/usb_gadget/g1/functions/via_modem.gs0 /config/usb_gadget/g1/configs/b.1/f1
  382. symlink /config/usb_gadget/g1/functions/via_ets.gs0 /config/usb_gadget/g1/configs/b.1/f2
  383. symlink /config/usb_gadget/g1/functions/via_atc.gs0 /config/usb_gadget/g1/configs/b.1/f3
  384. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
  385. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  386. setprop sys.usb.state ${sys.usb.config}
  387. ### main function : mass_storage ###
  388. on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=0 && \
  389. property:sys.usb.configfs=1
  390. setprop vendor.usb.pid 0x2002
  391. on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=1 && \
  392. property:sys.usb.configfs=1
  393. setprop vendor.usb.pid 0x200F
  394. setprop vendor.usb.acm_port1 ""
  395. on property:sys.usb.config=mass_storage && property:vendor.usb.acm_cnt=2 && \
  396. property:sys.usb.configfs=1
  397. setprop vendor.usb.pid 0x202D
  398. on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=1 && \
  399. property:sys.usb.configfs=1
  400. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
  401. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  402. write /sys/devices/platform/mt_usb/saving 1
  403. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  404. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
  405. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
  406. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  407. setprop sys.usb.state ${sys.usb.config}
  408. on property:sys.usb.config=mass_storage && property:vendor.usb.acm_enable=0 && \
  409. property:sys.usb.configfs=1
  410. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums"
  411. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  412. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  413. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  414. setprop sys.usb.state ${sys.usb.config}
  415. on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=0 && \
  416. property:sys.usb.configfs=1
  417. setprop vendor.usb.pid 0x2003
  418. on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=1 && \
  419. property:sys.usb.configfs=1
  420. setprop vendor.usb.pid 0x2006
  421. setprop vendor.usb.acm_port1 ""
  422. on property:sys.usb.config=mass_storage,adb && property:vendor.usb.acm_cnt=2 && \
  423. property:sys.usb.configfs=1
  424. setprop vendor.usb.pid 0x2029
  425. on property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1
  426. start adbd
  427. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \
  428. property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
  429. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm"
  430. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  431. write /sys/devices/platform/mt_usb/saving 1
  432. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  433. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  434. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
  435. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
  436. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  437. setprop sys.usb.state ${sys.usb.config}
  438. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && \
  439. property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
  440. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb"
  441. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  442. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  443. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  444. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  445. setprop sys.usb.state ${sys.usb.config}
  446. ### main function : bicr ###
  447. on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=0 && \
  448. property:sys.usb.configfs=1
  449. setprop vendor.usb.pid 0x2002
  450. on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=1 && \
  451. property:sys.usb.configfs=1
  452. setprop vendor.usb.pid 0x200F
  453. setprop vendor.usb.acm_port1 ""
  454. on property:sys.usb.config=bicr && property:vendor.usb.acm_cnt=2 && \
  455. property:sys.usb.configfs=1
  456. setprop vendor.usb.pid 0x202D
  457. on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=1 && \
  458. property:sys.usb.configfs=1
  459. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_acm"
  460. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  461. write /sys/devices/platform/mt_usb/saving 1
  462. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
  463. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
  464. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  465. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f2
  466. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f3
  467. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  468. setprop sys.usb.state ${sys.usb.config}
  469. on property:sys.usb.config=bicr && property:vendor.usb.acm_enable=0 && \
  470. property:sys.usb.configfs=1
  471. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums"
  472. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  473. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
  474. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
  475. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  476. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  477. setprop sys.usb.state ${sys.usb.config}
  478. on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=0 && \
  479. property:sys.usb.configfs=1
  480. setprop vendor.usb.pid 0x2003
  481. on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=1 && \
  482. property:sys.usb.configfs=1
  483. setprop vendor.usb.pid 0x2006
  484. setprop vendor.usb.acm_port1 ""
  485. on property:sys.usb.config=bicr,adb && property:vendor.usb.acm_cnt=2 && \
  486. property:sys.usb.configfs=1
  487. setprop vendor.usb.pid 0x2029
  488. on property:sys.usb.config=bicr,adb && property:sys.usb.configfs=1
  489. start adbd
  490. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \
  491. property:vendor.usb.acm_enable=1 && property:sys.usb.configfs=1
  492. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb_acm"
  493. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  494. write /sys/devices/platform/mt_usb/saving 1
  495. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
  496. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
  497. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  498. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  499. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port0} /config/usb_gadget/g1/configs/b.1/f3
  500. symlink /config/usb_gadget/g1/functions/acm.gs${vendor.usb.acm_port1} /config/usb_gadget/g1/configs/b.1/f4
  501. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  502. setprop sys.usb.state ${sys.usb.config}
  503. on property:sys.usb.ffs.ready=1 && property:sys.usb.config=bicr,adb && \
  504. property:vendor.usb.acm_enable=0 && property:sys.usb.configfs=1
  505. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ums_adb"
  506. write /config/usb_gadget/g1/idProduct ${vendor.usb.pid}
  507. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/cdrom 1
  508. write /config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file "/dev/block/loop0"
  509. symlink /config/usb_gadget/g1/functions/mass_storage.usb0 /config/usb_gadget/g1/configs/b.1/f1
  510. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  511. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  512. setprop sys.usb.state ${sys.usb.config}
  513. ### ACM APPEND SERIES ###
  514. on property:persist.vendor.radio.port_index=0 && property:sys.boot_completed=1
  515. setprop vendor.usb.acm_idx ""
  516. setprop vendor.usb.acm_cnt 0
  517. setprop vendor.usb.acm_enable 0
  518. setprop sys.usb.config none
  519. setprop sys.usb.config ${sys.usb.state}
  520. on property:persist.vendor.radio.port_index=1 && property:sys.boot_completed=1
  521. setprop sys.usb.config acm_gs0
  522. on property:sys.usb.config=mass_storage,adb,acm
  523. setprop sys.usb.config acm_gs0
  524. on property:sys.usb.config=acm_gs0
  525. setprop vendor.usb.acm_port0 0
  526. setprop vendor.usb.acm_port1 ""
  527. setprop vendor.usb.acm_cnt 1
  528. setprop vendor.usb.acm_enable 1
  529. setprop sys.usb.config none
  530. setprop sys.usb.config ${sys.usb.state}
  531. setprop vendor.usb.acm_idx "1"
  532. on property:persist.vendor.radio.port_index=2 && property:sys.boot_completed=1
  533. setprop sys.usb.config acm_gs1
  534. on property:sys.usb.config=acm_gs1
  535. setprop vendor.usb.acm_port0 1
  536. setprop vendor.usb.acm_port1 ""
  537. setprop vendor.usb.acm_cnt 1
  538. setprop vendor.usb.acm_enable 1
  539. setprop sys.usb.config none
  540. setprop sys.usb.config ${sys.usb.state}
  541. setprop vendor.usb.acm_idx "2"
  542. on property:persist.vendor.radio.port_index=3 && property:sys.boot_completed=1
  543. setprop sys.usb.config acm_gs2
  544. on property:sys.usb.config=acm_third
  545. setprop sys.usb.config acm_gs2
  546. on property:sys.usb.config=acm_gs2
  547. setprop vendor.usb.acm_port0 2
  548. setprop vendor.usb.acm_port1 ""
  549. setprop vendor.usb.acm_cnt 1
  550. setprop vendor.usb.acm_enable 1
  551. setprop sys.usb.config none
  552. setprop sys.usb.config ${sys.usb.state}
  553. setprop vendor.usb.acm_idx "3"
  554. on property:persist.vendor.radio.port_index=4 && property:sys.boot_completed=1
  555. setprop sys.usb.config acm_gs3
  556. on property:sys.usb.config=gs3
  557. setprop sys.usb.config acm_gs3
  558. on property:sys.usb.config=mtp,gs3
  559. setprop sys.usb.config acm_gs3
  560. on property:sys.usb.config=acm_gs3
  561. setprop vendor.usb.acm_port0 3
  562. setprop vendor.usb.acm_port1 ""
  563. setprop vendor.usb.acm_cnt 1
  564. setprop vendor.usb.acm_enable 1
  565. setprop sys.usb.config none
  566. setprop sys.usb.config ${sys.usb.state}
  567. setprop vendor.usb.acm_idx "4"
  568. on property:sys.usb.config=mtp,gs0gs1
  569. setprop sys.usb.config acm_gs0gs1
  570. on property:sys.usb.config=gs0gs1
  571. setprop sys.usb.config acm_gs0gs1
  572. on property:sys.usb.config=rndis,gs0gs1
  573. setprop sys.usb.config acm_gs0gs1
  574. on property:sys.usb.config=rndis,adb,gs0gs1
  575. setprop sys.usb.config acm_gs0gs1
  576. on property:sys.usb.config=acm_gs0gs1
  577. setprop vendor.usb.acm_port0 0
  578. setprop vendor.usb.acm_port1 1
  579. setprop vendor.usb.acm_cnt 2
  580. setprop vendor.usb.acm_enable 1
  581. setprop sys.usb.config none
  582. setprop sys.usb.config ${sys.usb.state}
  583. setprop vendor.usb.acm_idx "1,2"
  584. on property:sys.usb.config=gs3,dual_acm
  585. setprop sys.usb.config acm_gs0gs3
  586. on property:sys.usb.config=mtp,gs3,dual_acm
  587. setprop sys.usb.config acm_gs0gs3
  588. on property:sys.usb.config=mtp,gs0gs3
  589. setprop sys.usb.config acm_gs0gs3
  590. on property:sys.usb.config=gs0gs3
  591. setprop sys.usb.config acm_gs0gs3
  592. on property:sys.usb.config=rndis,gs0gs3
  593. setprop sys.usb.config acm_gs0gs3
  594. on property:sys.usb.config=rndis,adb,gs0gs3
  595. setprop sys.usb.config acm_gs0gs3
  596. on property:sys.usb.config=acm_gs0gs3
  597. setprop vendor.usb.acm_port0 0
  598. setprop vendor.usb.acm_port1 3
  599. setprop vendor.usb.acm_cnt 2
  600. setprop vendor.usb.acm_enable 1
  601. setprop sys.usb.config none
  602. setprop sys.usb.config ${sys.usb.state}
  603. setprop vendor.usb.acm_idx "1,4"
  604. on property:sys.usb.config=gs1gs3
  605. setprop sys.usb.config acm_gs1gs3
  606. on property:sys.usb.config=mtp,gs1gs3
  607. setprop sys.usb.config acm_gs1gs3
  608. on property:sys.usb.config=via_bypass,gs1gs3
  609. setprop sys.usb.config acm_gs1gs3
  610. on property:sys.usb.config=rndis,gs1gs3
  611. setprop sys.usb.config acm_gs1gs3
  612. on property:sys.usb.config=acm_gs1gs3
  613. setprop vendor.usb.acm_port0 1
  614. setprop vendor.usb.acm_port1 3
  615. setprop vendor.usb.acm_cnt 2
  616. setprop vendor.usb.acm_enable 1
  617. setprop sys.usb.config none
  618. setprop sys.usb.config ${sys.usb.state}
  619. setprop vendor.usb.acm_idx "2,4"
  620. # For ATM (Android Test Mode)
  621. on property:vendor.usb.clear=1 && property:sys.usb.configfs=1
  622. write /config/usb_gadget/g1/UDC "none"
  623. write /config/usb_gadget/g1/bDeviceClass 0
  624. write /config/usb_gadget/g1/bDeviceSubClass 0
  625. write /config/usb_gadget/g1/bDeviceProtocol 0
  626. rm /config/usb_gadget/g1/configs/b.1/f1
  627. rm /config/usb_gadget/g1/configs/b.1/f2
  628. rm /config/usb_gadget/g1/configs/b.1/f3
  629. rm /config/usb_gadget/g1/configs/b.1/f4
  630. rm /config/usb_gadget/g1/configs/b.1/f5
  631. rmdir /config/usb_gadget/g1/functions/rndis.gs4
  632. write /sys/devices/platform/mt_usb/saving 0
  633. setprop vendor.usb.clear 2
  634. # has permission issue when read from ${sys.usb.ffs.ready}
  635. on property:sys.usb.ffs.ready=0
  636. setprop vendor.usb.ffs.ready 0
  637. on property:sys.usb.ffs.ready=1
  638. setprop vendor.usb.ffs.ready 1
  639. on property:sys.usb.config=atm_gs0 && property:sys.usb.configfs=1
  640. stop adbd
  641. setprop vendor.usb.ffs.ready 0
  642. setprop vendor.usb.clear 1
  643. on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0 && \
  644. property:vendor.usb.clear=2 && property:sys.usb.configfs=1
  645. start adbd
  646. on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0 && \
  647. property:vendor.usb.clear=2 && property:sys.usb.configfs=1
  648. setprop vendor.usb.acm_port0 0
  649. setprop vendor.usb.acm_port1 ""
  650. setprop vendor.usb.acm_cnt 1
  651. setprop vendor.usb.acm_enable 1
  652. write /sys/class/udc/musb-hdrc/device/saving 1
  653. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "atm_gs0"
  654. write /config/usb_gadget/g1/idProduct 0x200A
  655. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  656. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  657. symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
  658. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  659. #setprop sys.usb.state ${sys.usb.config}
  660. #setprop vendor.usb.pid 0x200A
  661. setprop vendor.usb.clear 0
  662. setprop vendor.usb.acm_idx "1"
  663. on property:sys.usb.config=atm_gs0gs3 && property:sys.usb.configfs=1
  664. stop adbd
  665. setprop vendor.usb.ffs.ready 0
  666. setprop vendor.usb.clear 1
  667. on property:vendor.usb.ffs.ready=0 && property:sys.usb.config=atm_gs0gs3 && \
  668. property:vendor.usb.clear=2 && property:sys.usb.configfs=1
  669. start adbd
  670. on property:vendor.usb.ffs.ready=1 && property:sys.usb.config=atm_gs0gs3 && \
  671. property:vendor.usb.clear=2 && property:sys.usb.configfs=1
  672. setprop vendor.usb.acm_port0 0
  673. setprop vendor.usb.acm_port1 3
  674. setprop vendor.usb.acm_cnt 2
  675. setprop vendor.usb.acm_enable 1
  676. write /sys/class/udc/musb-hdrc/device/saving 1
  677. write /config/usb_gadget/g1/idProduct 0x2026
  678. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  679. symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2
  680. symlink /config/usb_gadget/g1/functions/acm.gs0 /config/usb_gadget/g1/configs/b.1/f3
  681. symlink /config/usb_gadget/g1/functions/acm.gs3 /config/usb_gadget/g1/configs/b.1/f4
  682. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  683. #setprop sys.usb.state ${sys.usb.config}
  684. #setprop vendor.usb.pid 0x2026
  685. setprop vendor.usb.clear 0
  686. setprop vendor.usb.acm_idx "1,4"
  687. ### CHARGING ###
  688. on property:sys.usb.config=cdp && property:sys.usb.configfs=1
  689. write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp"
  690. write /config/usb_gadget/g1/idProduct 0x2008
  691. write /config/usb_gadget/g1/os_desc/use 1
  692. symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1
  693. write /config/usb_gadget/g1/UDC ${vendor.usb.controller}
  694. setprop sys.usb.state ${sys.usb.config}
  695. setprop vendor.usb.pid 0x2008
  696. on property:sys.usb.config=charging_yes
  697. setprop vendor.usb.state ${sys.usb.state}
  698. setprop vendor.usb.charging yes
  699. setprop sys.usb.config none
  700. setprop sys.usb.config ${vendor.usb.state}
  701. on property:sys.usb.config=charging_no
  702. setprop vendor.usb.state ${sys.usb.state}
  703. setprop sys.usb.config none
  704. setprop sys.usb.config ${vendor.usb.state}
  705. setprop vendor.usb.charging no
  706. on property:vendor.usb.charging=yes
  707. write /sys/class/udc/musb-hdrc/device/cmode 2
  708. on property:vendor.usb.charging=no
  709. write /sys/class/udc/musb-hdrc/device/cmode 1
  710. on property:vendor.usb.bicr=yes
  711. write /sys/class/android_usb/android0/f_mass_storage/bicr 1
  712. write /sys/class/android_usb/android0/f_mass_storage/lun/file "/dev/block/loop0"
  713. on property:vendor.usb.bicr=no
  714. write /sys/class/android_usb/android0/f_mass_storage/bicr 0
  715. write /sys/class/android_usb/android0/f_mass_storage/lun/file "off"
  716. on property:vendor.usb.port.mode=usb
  717. write /sys/devices/platform/mt_usb/portmode 0
  718. on property:vendor.usb.port.mode=uart
  719. write /sys/devices/platform/mt_usb/portmode 1
  720. on property:vendor.em.usb.set=USB_DRIVING_CAPABILITY
  721. write /sys/kernel/debug/usb20_phy/USB_DRIVING_CAPABILITY ${mediatek.em.usb.value}
  722. on property:vendor.em.usb.set=RG_USB20_TERM_VREF_SEL
  723. write /sys/kernel/debug/usb20_phy/RG_USB20_TERM_VREF_SEL ${mediatek.em.usb.value}
  724. on property:vendor.em.usb.set=RG_USB20_HSTX_SRCTRL
  725. write /sys/kernel/debug/usb20_phy/RG_USB20_HSTX_SRCTRL ${mediatek.em.usb.value}
  726. on property:vendor.em.usb.set=RG_USB20_VRT_VREF_SEL
  727. write /sys/kernel/debug/usb20_phy/RG_USB20_VRT_VREF_SEL ${mediatek.em.usb.value}
  728. on property:vendor.em.usb.set=RG_USB20_INTR_EN
  729. write /sys/kernel/debug/usb20_phy/RG_USB20_INTR_EN ${mediatek.em.usb.value}
  730. on property:vendor.em.usb.set=RG_USB20_PHY_REV6
  731. write /sys/kernel/debug/usb20_phy/RG_USB20_PHY_REV6 ${mediatek.em.usb.value}
  732. on property:vendor.em.usb.bypass.enable=0
  733. write /sys/class/usb_rawbulk/gps/enable 1
  734. on property:vendor.em.usb.bypass.enable=1
  735. write /sys/class/usb_rawbulk/pcv/enable 1
  736. on property:vendor.em.usb.bypass.enable=2
  737. write /sys/class/usb_rawbulk/atc/enable 1
  738. on property:vendor.em.usb.bypass.enable=3
  739. write /sys/class/usb_rawbulk/ets/enable 1
  740. on property:vendor.em.usb.bypass.enable=4
  741. write /sys/class/usb_rawbulk/data/enable 1
  742. on property:vendor.em.usb.bypass.disable=0
  743. write /sys/class/usb_rawbulk/gps/enable 0
  744. on property:vendor.em.usb.bypass.disable=1
  745. write /sys/class/usb_rawbulk/pcv/enable 0
  746. on property:vendor.em.usb.bypass.disable=2
  747. write /sys/class/usb_rawbulk/atc/enable 0
  748. on property:vendor.em.usb.bypass.disable=3
  749. write /sys/class/usb_rawbulk/ets/enable 0
  750. on property:vendor.em.usb.bypass.disable=4
  751. write /sys/class/usb_rawbulk/data/enable 0
  752. ### vendor process start ###
  753. on property:vendor.usb.config=*
  754. setprop sys.usb.config ${vendor.usb.config}
  755. ### vendor process end ###
  756. ### test command start ###
  757. on property:vendor.usb.test=*
  758. setprop sys.usb.config none
  759. setprop sys.usb.config ${vendor.usb.test}
  760. ### test command end ###
  761. on property:vendor.usb.printk=*
  762. write /proc/sys/kernel/printk ${vendor.usb.printk}
  763. on property:persist.vendor.usb.printk=*
  764. setprop vendor.usb.printk ${persist.vendor.usb.printk}
  765. ### PLATFORM VARIANT, cat $rc_file | grep write | sort | grep -vE "android0|usb20_phy" | awk '{print $2}' | uniq ###