summaryrefslogtreecommitdiff
path: root/init.hardware.usb.rc
blob: 3551c32dcc4cbc0cfdacff3f113963d330457258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#
# Copyright (C) 2016 The Android Open-Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

on early-boot
    mkdir /config/usb_gadget/g1 0770
    mkdir /config/usb_gadget/g1/strings/0x409 0770
    write /config/usb_gadget/g1/bcdUSB 0x0200
    write /config/usb_gadget/g1/idVendor 0x18d1
    write /config/usb_gadget/g1/bcdDevice 0x0440
    write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
    write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
    write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
    mkdir /config/usb_gadget/g1/functions/accessory.gs2
    mkdir /config/usb_gadget/g1/functions/audio_source.gs3
    mkdir /config/usb_gadget/g1/functions/midi.gs5
    mkdir /config/usb_gadget/g1/functions/ffs.adb
    mkdir /config/usb_gadget/g1/functions/ffs.mtp
    mkdir /config/usb_gadget/g1/functions/ffs.ptp
    mkdir /config/usb_gadget/g1/functions/diag.diag
    mkdir /config/usb_gadget/g1/functions/diag.diag_mdm
    mkdir /config/usb_gadget/g1/functions/cser.dun.0
    mkdir /config/usb_gadget/g1/functions/cser.nmea.1
    mkdir /config/usb_gadget/g1/functions/gsi.rmnet
    mkdir /config/usb_gadget/g1/functions/gsi.rndis
    mkdir /config/usb_gadget/g1/functions/gsi.dpl
    mkdir /config/usb_gadget/g1/functions/qdss.qdss
    mkdir /config/usb_gadget/g1/functions/qdss.qdss_mdm
    mkdir /config/usb_gadget/g1/configs/b.1 0770
    mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770
    write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
    write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
    mkdir /dev/usb-ffs 0775 shell shell
    mkdir /dev/usb-ffs/adb 0770 shell shell
    mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1
    mkdir /dev/usb-ffs/mtp 0770 mtp mtp
    mkdir /dev/usb-ffs/ptp 0770 mtp mtp
    mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
    mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
    setprop sys.usb.mtp.device_type 3
    setprop sys.usb.controller "a600000.dwc3"
    symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
    write /sys/module/libcomposite/parameters/disable_l1_for_hs "y"
    write /config/usb_gadget/g1/functions/gsi.rndis/rndis_class_id 1

    # chown file/folder permission
    chown system system /config/usb_gadget/
    chown system system /config/usb_gadget/g1
    chown system system /config/usb_gadget/g1/UDC
    chown system system /config/usb_gadget/g1/bDeviceClass
    chown system system /config/usb_gadget/g1/bDeviceProtocol
    chown system system /config/usb_gadget/g1/bDeviceSubClass
    chown system system /config/usb_gadget/g1/bMaxPacketSize0
    chown system system /config/usb_gadget/g1/bcdDevice
    chown system system /config/usb_gadget/g1/bcdUSB
    chown system system /config/usb_gadget/g1/configs
    chown system system /config/usb_gadget/g1/configs/b.1
    chown system system /config/usb_gadget/g1/configs/b.1/MaxPower
    chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes
    chown system system /config/usb_gadget/g1/configs/b.1/strings
    chown system system /config/usb_gadget/g1/functions
    chown system system /config/usb_gadget/g1/functions/accessory.gs2
    chown system system /config/usb_gadget/g1/functions/audio_source.gs3
    chown system system /config/usb_gadget/g1/functions/cser.dun.0
    chown system system /config/usb_gadget/g1/functions/cser.dun.0/status
    chown system system /config/usb_gadget/g1/functions/cser.nmea.1
    chown system system /config/usb_gadget/g1/functions/cser.nmea.1/status
    chown system system /config/usb_gadget/g1/functions/diag.diag
    chown system system /config/usb_gadget/g1/functions/diag.diag_mdm
    chown system system /config/usb_gadget/g1/functions/ffs.adb
    chown system system /config/usb_gadget/g1/functions/ffs.mtp
    chown system system /config/usb_gadget/g1/functions/ffs.ptp
    chown system system /config/usb_gadget/g1/functions/gsi.dpl
    chown system system /config/usb_gadget/g1/functions/gsi.dpl/info
    chown system system /config/usb_gadget/g1/functions/gsi.rmnet
    chown system system /config/usb_gadget/g1/functions/gsi.rmnet/info
    chown system system /config/usb_gadget/g1/functions/gsi.rndis
    chown system system /config/usb_gadget/g1/functions/gsi.rndis/info
    chown system system /config/usb_gadget/g1/functions/gsi.rndis/rndis_class_id
    chown system system /config/usb_gadget/g1/functions/midi.gs5
    chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen
    chown system system /config/usb_gadget/g1/functions/midi.gs5/id
    chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports
    chown system system /config/usb_gadget/g1/functions/midi.gs5/index
    chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports
    chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen
    chown system system /config/usb_gadget/g1/functions/qdss.qdss
    chown system system /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface
    chown system system /config/usb_gadget/g1/functions/qdss.qdss_mdm
    chown system system /config/usb_gadget/g1/functions/qdss.qdss_mdm/enable_debug_inface
    chown system system /config/usb_gadget/g1/idProduct
    chown system system /config/usb_gadget/g1/idVendor
    chown system system /config/usb_gadget/g1/os_desc
    chown system system /config/usb_gadget/g1/os_desc/b.1
    chown system system /config/usb_gadget/g1/os_desc/b.1/MaxPower
    chown system system /config/usb_gadget/g1/os_desc/b.1/bmAttributes
    chown system system /config/usb_gadget/g1/os_desc/b.1/strings
    chown system system /config/usb_gadget/g1/os_desc/b.1/strings/0x409
    chown system system /config/usb_gadget/g1/os_desc/b.1/strings/0x409/configuration
    chown system system /config/usb_gadget/g1/os_desc/b_vendor_code
    chown system system /config/usb_gadget/g1/os_desc/qw_sign
    chown system system /config/usb_gadget/g1/os_desc/use
    chown system system /config/usb_gadget/g1/strings
    chown system system /config/usb_gadget/g1/strings/0x409
    chown system system /config/usb_gadget/g1/strings/0x409/manufacturer
    chown system system /config/usb_gadget/g1/strings/0x409/product
    chown system system /config/usb_gadget/g1/strings/0x409/serialnumber

on property:init.svc.console=running
    write /sys/class/power_supply/usb/moisture_detection_enabled 0

on property:init.svc.vendor.charger=running
    write /sys/class/typec/port0/port_type sink

on property:vendor.usb.contaminantdisable=true
    write /sys/class/power_supply/usb/moisture_detection_enabled 0

on boot
    setprop sys.usb.configfs 2

on property:sys.usb.config=none && property:sys.usb.configfs=1
    rm /config/usb_gadget/g1/configs/b.1/f1
    rm /config/usb_gadget/g1/configs/b.1/f2
    rm /config/usb_gadget/g1/configs/b.1/f3
    rm /config/usb_gadget/g1/configs/b.1/f4
    rm /config/usb_gadget/g1/configs/b.1/f5
    rm /config/usb_gadget/g1/configs/b.1/f6
    rm /config/usb_gadget/g1/configs/b.1/f7
    rm /config/usb_gadget/g1/configs/b.1/f8
    rm /config/usb_gadget/g1/configs/b.1/f9

on charger
    mkdir /config/usb_gadget/g1 0770
    mkdir /config/usb_gadget/g1/strings/0x409 0770
    write /config/usb_gadget/g1/bcdUSB 0x0200
    write /config/usb_gadget/g1/idVendor 0x18d1
    write /config/usb_gadget/g1/bcdDevice 0x0440
    write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
    write /config/usb_gadget/g1/strings/0x409/manufacturer Google
    write /config/usb_gadget/g1/strings/0x409/product Pixel
    mkdir /config/usb_gadget/g1/functions/midi.gs5
    mkdir /config/usb_gadget/g1/configs/b.1 0770
    mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770
    symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
    setprop sys.usb.controller "a600000.dwc3"

on property:ro.bootmode=charger
    setprop sys.usb.config midi

on property:sys.usb.config=midi && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi"
    rm /config/usb_gadget/g1/configs/b.1/f1
    rm /config/usb_gadget/g1/configs/b.1/f2
    rm /config/usb_gadget/g1/configs/b.1/f3
    rm /config/usb_gadget/g1/configs/b.1/f4
    write /config/usb_gadget/g1/idVendor 0x18d1
    write /config/usb_gadget/g1/idProduct 0x4eea
    symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1
    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
    setprop sys.usb.state ${sys.usb.config}