init.recovery.usb.rc 42 KB

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