blob: 339c5c65ad5be778bbbdaffd95c38161fadbc3ec
1 | on early-init |
2 | insmod /boot/dwc3.ko |
3 | |
4 | on init |
5 | |
6 | on fs |
7 | |
8 | on post-fs-data |
9 | chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file |
10 | chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file |
11 | chown system system /sys/class/android_usb/android0/f_rndis/ethaddr |
12 | chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr |
13 | |
14 | on boot |
15 | mkdir /dev/usb-ffs 0770 shell shell |
16 | mkdir /dev/usb-ffs/adb 0770 shell shell |
17 | mount configfs none /config |
18 | mkdir /config/usb_gadget/g1 0770 shell shell |
19 | write /config/usb_gadget/g1/idVendor 0x18d1 |
20 | write /config/usb_gadget/g1/bcdDevice 0x0223 |
21 | write /config/usb_gadget/g1/bcdUSB 0x0200 |
22 | mkdir /config/usb_gadget/g1/strings/0x409 0770 |
23 | write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} |
24 | write /config/usb_gadget/g1/strings/0x409/manufacturer amlogic |
25 | write /config/usb_gadget/g1/strings/0x409/product p230 |
26 | mkdir /config/usb_gadget/g1/functions/ffs.adb |
27 | mkdir /config/usb_gadget/g1/functions/mtp.gs0 |
28 | mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell |
29 | mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell |
30 | write /config/usb_gadget/g1/configs/b.1/MaxPower 500 |
31 | symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 |
32 | mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 |
33 | setprop sys.usb.configfs 1 |
34 | setprop sys.usb.controller "c9100000.dwc2_a" |
35 | |
36 | service console /sbin/sh |
37 | seclabel u:r:shell:s0 |
38 | console |
39 | |
40 | service remotecfg3 /sbin/remotecfg -c /etc/remote.cfg -t /etc/remote.tab3 -d |
41 | oneshot |
42 | seclabel u:r:shell:s0 |
43 | |
44 | service remotecfg1 /sbin/remotecfg -c /etc/remote.cfg -t /etc/remote.tab1 -d |
45 | oneshot |
46 | seclabel u:r:shell:s0 |
47 | |
48 | service remotecfg2 /sbin/remotecfg -c /etc/remote.cfg -t /etc/remote.tab2 -d |
49 | oneshot |
50 | seclabel u:r:shell:s0 |
51 | |
52 | |
53 | on property:sys.usb.config=none && property:sys.usb.configfs=1 |
54 | setprop sys.usb.ffs.ready 0 |
55 | |
56 | on property:init.svc.adbd=stopped |
57 | setprop sys.usb.ffs.ready 0 |
58 | |
59 | on property:sys.usb.config=mtp && property:sys.usb.configfs=1 |
60 | write /config/usb_gadget/g1/idProduct 0x4e41 |
61 | |
62 | on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 |
63 | write /config/usb_gadget/g1/idProduct 0x4e12 |
64 | |
65 | on property:sys.usb.config=adb && property:sys.usb.configfs=1 |
66 | write /config/usb_gadget/g1/idProduct 0x4e40 |
67 | |
68 | on property:sys.usb.config=none && property:sys.usb.configfs=1 |
69 | write /config/usb_gadget/g1/UDC "none" |
70 | stop adbd |
71 | setprop sys.usb.ffs.ready 0 |
72 | write /config/usb_gadget/g1/bDeviceClass 0 |
73 | write /config/usb_gadget/g1/bDeviceSubClass 0 |
74 | write /config/usb_gadget/g1/bDeviceProtocol 0 |
75 | rm /config/usb_gadget/g1/configs/b.1/f1 |
76 | rm /config/usb_gadget/g1/configs/b.1/f2 |
77 | rm /config/usb_gadget/g1/configs/b.1/f3 |
78 | rmdir /config/usb_gadget/g1/functions/rndis.gs4 |
79 | setprop sys.usb.state ${sys.usb.config} |
80 | |
81 | on property:sys.usb.config=adb && property:sys.usb.configfs=1 |
82 | start adbd |
83 | |
84 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 |
85 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" |
86 | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 |
87 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
88 | setprop sys.usb.state ${sys.usb.config} |
89 | |
90 | on property:sys.usb.config=mtp && property:sys.usb.configfs=1 |
91 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" |
92 | symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 |
93 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
94 | setprop sys.usb.state ${sys.usb.config} |
95 | |
96 | on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 |
97 | start adbd |
98 | |
99 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 |
100 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_adb" |
101 | symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 |
102 | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 |
103 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
104 | setprop sys.usb.state ${sys.usb.config} |
105 | |
106 | on property:sys.usb.config=ptp && property:sys.usb.configfs=1 |
107 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp" |
108 | symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1 |
109 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
110 | setprop sys.usb.state ${sys.usb.config} |
111 | |
112 | on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 |
113 | start adbd |
114 | |
115 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 |
116 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ptp_adb" |
117 | symlink /config/usb_gadget/g1/functions/ptp.gs1 /config/usb_gadget/g1/configs/b.1/f1 |
118 | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 |
119 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
120 | setprop sys.usb.state ${sys.usb.config} |
121 | |
122 | on property:sys.usb.config=accessory && property:sys.usb.configfs=1 |
123 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory" |
124 | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 |
125 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
126 | setprop sys.usb.state ${sys.usb.config} |
127 | |
128 | on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 |
129 | start adbd |
130 | |
131 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 |
132 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_adb" |
133 | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 |
134 | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 |
135 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
136 | setprop sys.usb.state ${sys.usb.config} |
137 | |
138 | on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 |
139 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "audiosource" |
140 | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f1 |
141 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
142 | setprop sys.usb.state ${sys.usb.config} |
143 | |
144 | on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 |
145 | start adbd |
146 | |
147 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 |
148 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "audiosource_adb" |
149 | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f1 |
150 | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 |
151 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
152 | setprop sys.usb.state ${sys.usb.config} |
153 | |
154 | on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 |
155 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_audiosource" |
156 | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 |
157 | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f2 |
158 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
159 | setprop sys.usb.state ${sys.usb.config} |
160 | |
161 | on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 |
162 | start adbd |
163 | |
164 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 |
165 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "accessory_audiosource_adb" |
166 | symlink /config/usb_gadget/g1/functions/accessory.gs2 /config/usb_gadget/g1/configs/b.1/f1 |
167 | symlink /config/usb_gadget/g1/functions/audio_source.gs3 /config/usb_gadget/g1/configs/b.1/f2 |
168 | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 |
169 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
170 | setprop sys.usb.state ${sys.usb.config} |
171 | |
172 | on property:sys.usb.config=midi && property:sys.usb.configfs=1 |
173 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi" |
174 | symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 |
175 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
176 | setprop sys.usb.state ${sys.usb.config} |
177 | |
178 | on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 |
179 | start adbd |
180 | |
181 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 |
182 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi_adb" |
183 | symlink /config/usb_gadget/g1/functions/midi.gs5 /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 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
186 | setprop sys.usb.state ${sys.usb.config} |
187 | |
188 | on property:sys.usb.config=rndis && property:sys.usb.configfs=1 |
189 | mkdir /config/usb_gadget/g1/functions/rndis.gs4 |
190 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" |
191 | symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 |
192 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
193 | setprop sys.usb.state ${sys.usb.config} |
194 | |
195 | on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 |
196 | start adbd |
197 | |
198 | on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 |
199 | mkdir /config/usb_gadget/g1/functions/rndis.gs4 |
200 | write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" |
201 | symlink /config/usb_gadget/g1/functions/rndis.gs4 /config/usb_gadget/g1/configs/b.1/f1 |
202 | symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 |
203 | write /config/usb_gadget/g1/UDC ${sys.usb.controller} |
204 | setprop sys.usb.state ${sys.usb.config} |
205 | |
206 | on property:ro.kernel.qemu=1 |
207 | start adbd |
208 | |
209 | # Used to disable USB when switching states |
210 | on property:sys.usb.config=none && property:sys.usb.configfs=0 |
211 | stop adbd |
212 | write /sys/class/android_usb/android0/enable 0 |
213 | write /sys/class/android_usb/android0/bDeviceClass 0 |
214 | setprop sys.usb.state ${sys.usb.config} |
215 | |
216 | # adb only USB configuration |
217 | # This is the fallback configuration if the |
218 | # USB manager fails to set a standard configuration |
219 | on property:sys.usb.config=adb && property:sys.usb.configfs=0 |
220 | write /sys/class/android_usb/android0/enable 0 |
221 | write /sys/class/android_usb/android0/idVendor 18d1 |
222 | write /sys/class/android_usb/android0/idProduct 4EE7 |
223 | write /sys/class/android_usb/android0/functions ${sys.usb.config} |
224 | write /sys/class/android_usb/android0/enable 1 |
225 | start adbd |
226 | setprop sys.usb.state ${sys.usb.config} |
227 | |
228 | # USB accessory configuration |
229 | on property:sys.usb.config=accessory && property:sys.usb.configfs=0 |
230 | write /sys/class/android_usb/android0/enable 0 |
231 | write /sys/class/android_usb/android0/idVendor 18d1 |
232 | write /sys/class/android_usb/android0/idProduct 2d00 |
233 | write /sys/class/android_usb/android0/functions ${sys.usb.config} |
234 | write /sys/class/android_usb/android0/enable 1 |
235 | setprop sys.usb.state ${sys.usb.config} |
236 | |
237 | # USB accessory configuration, with adb |
238 | on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0 |
239 | write /sys/class/android_usb/android0/enable 0 |
240 | write /sys/class/android_usb/android0/idVendor 18d1 |
241 | write /sys/class/android_usb/android0/idProduct 2d01 |
242 | write /sys/class/android_usb/android0/functions ${sys.usb.config} |
243 | write /sys/class/android_usb/android0/enable 1 |
244 | start adbd |
245 | setprop sys.usb.state ${sys.usb.config} |
246 | |
247 | # audio accessory configuration |
248 | on property:sys.usb.config=audio_source && property:sys.usb.configfs=0 |
249 | write /sys/class/android_usb/android0/enable 0 |
250 | write /sys/class/android_usb/android0/idVendor 18d1 |
251 | write /sys/class/android_usb/android0/idProduct 2d02 |
252 | write /sys/class/android_usb/android0/functions ${sys.usb.config} |
253 | write /sys/class/android_usb/android0/enable 1 |
254 | setprop sys.usb.state ${sys.usb.config} |
255 | |
256 | # audio accessory configuration, with adb |
257 | on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=0 |
258 | write /sys/class/android_usb/android0/enable 0 |
259 | write /sys/class/android_usb/android0/idVendor 18d1 |
260 | write /sys/class/android_usb/android0/idProduct 2d03 |
261 | write /sys/class/android_usb/android0/functions ${sys.usb.config} |
262 | write /sys/class/android_usb/android0/enable 1 |
263 | start adbd |
264 | setprop sys.usb.state ${sys.usb.config} |
265 | |
266 | # USB and audio accessory configuration |
267 | on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=0 |
268 | write /sys/class/android_usb/android0/enable 0 |
269 | write /sys/class/android_usb/android0/idVendor 18d1 |
270 | write /sys/class/android_usb/android0/idProduct 2d04 |
271 | write /sys/class/android_usb/android0/functions ${sys.usb.config} |
272 | write /sys/class/android_usb/android0/enable 1 |
273 | setprop sys.usb.state ${sys.usb.config} |
274 | |
275 | # USB and audio accessory configuration, with adb |
276 | on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=0 |
277 | write /sys/class/android_usb/android0/enable 0 |
278 | write /sys/class/android_usb/android0/idVendor 18d1 |
279 | write /sys/class/android_usb/android0/idProduct 2d05 |
280 | write /sys/class/android_usb/android0/functions ${sys.usb.config} |
281 | write /sys/class/android_usb/android0/enable 1 |
282 | start adbd |
283 | setprop sys.usb.state ${sys.usb.config} |
284 | |
285 | # Used to set USB configuration at boot and to switch the configuration |
286 | # when changing the default configuration |
287 | on boot && property:persist.sys.usb.config=* |
288 | setprop sys.usb.config ${persist.sys.usb.config} |
289 | |
290 | # |
291 | # USB type C |
292 | # |
293 | |
294 | # USB mode changes |
295 | on property:sys.usb.typec.mode=dfp |
296 | write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode} |
297 | setprop sys.usb.typec.state ${sys.usb.typec.mode} |
298 | |
299 | on property:sys.usb.typec.mode=ufp |
300 | write /sys/class/dual_role_usb/otg_default/mode ${sys.usb.typec.mode} |
301 | setprop sys.usb.typec.state ${sys.usb.typec.mode} |
302 | |
303 | # USB data role changes |
304 | on property:sys.usb.typec.data_role=device |
305 | write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role} |
306 | setprop sys.usb.typec.state ${sys.usb.typec.data_role} |
307 | |
308 | on property:sys.usb.typec.data_role=host |
309 | write /sys/class/dual_role_usb/otg_default/data_role ${sys.usb.typec.data_role} |
310 | setprop sys.usb.typec.state ${sys.usb.typec.data_role} |
311 | |
312 | # USB power role changes |
313 | on property:sys.usb.typec.power_role=source |
314 | write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role} |
315 | setprop sys.usb.typec.state ${sys.usb.typec.power_role} |
316 | |
317 | on property:sys.usb.typec.power_role=sink |
318 | write /sys/class/dual_role_usb/otg_default/power_role ${sys.usb.typec.power_role} |
319 | setprop sys.usb.typec.state ${sys.usb.typec.power_role} |
320 |