summaryrefslogtreecommitdiff
path: root/recovery/init.recovery.amlogic.rc (plain)
blob: 9d189cc41aa14d1d3755a4961a4fd0c990cf633e
1on early-init
2 insmod /boot/dwc3.ko
3
4on init
5
6on fs
7
8on 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
14on 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 p212
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
36service console /sbin/sh
37 seclabel u:r:shell:s0
38 console
39
40service remotecfg3 /sbin/remotecfg -c /etc/remote.cfg -t /etc/remote.tab3 -d
41 oneshot
42 seclabel u:r:shell:s0
43
44service remotecfg1 /sbin/remotecfg -c /etc/remote.cfg -t /etc/remote.tab1 -d
45 oneshot
46 seclabel u:r:shell:s0
47
48service remotecfg2 /sbin/remotecfg -c /etc/remote.cfg -t /etc/remote.tab2 -d
49 oneshot
50 seclabel u:r:shell:s0
51
52
53on property:sys.usb.config=none && property:sys.usb.configfs=1
54 setprop sys.usb.ffs.ready 0
55
56on property:init.svc.adbd=stopped
57 setprop sys.usb.ffs.ready 0
58
59on property:sys.usb.config=mtp && property:sys.usb.configfs=1
60 write /config/usb_gadget/g1/idProduct 0x4e41
61
62on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
63 write /config/usb_gadget/g1/idProduct 0x4e12
64
65on property:sys.usb.config=adb && property:sys.usb.configfs=1
66 write /config/usb_gadget/g1/idProduct 0x4e40
67
68on 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
81on property:sys.usb.config=adb && property:sys.usb.configfs=1
82 start adbd
83
84on 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
90on 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
96on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
97 start adbd
98
99on 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
106on 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
112on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
113 start adbd
114
115on 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
122on 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
128on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1
129 start adbd
130
131on 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
138on 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
144on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1
145 start adbd
146
147on 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
154on 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
161on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1
162 start adbd
163
164on 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
172on 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
178on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1
179 start adbd
180
181on 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
188on 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
195on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1
196 start adbd
197
198on 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
206on property:ro.kernel.qemu=1
207 start adbd
208
209# Used to disable USB when switching states
210on 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
219on 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
229on 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
238on 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
248on 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
257on 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
267on 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
276on 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
287on 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
295on 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
299on 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
304on 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
308on 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
313on 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
317on 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