forked from Evervolv/android_device_htc_bravo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.bravo.usb.rc
143 lines (118 loc) · 5.19 KB
/
init.bravo.usb.rc
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
# Copyright 2013 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.
# Workaround to revert https://github.com/CyanogenMod/android_frameworks_base/commit/1a008c1ca04871386830f511ee4b47299b92b01f
# Remove mtp from persist.sys.usb.config right after it's added
on property:persist.sys.usb.config=charging,adb
setprop persist.sys.usb.config adb
on init
write /sys/class/android_usb/android0/f_rndis/manufacturer HTC
write /sys/class/android_usb/android0/f_rndis/vendorID 0BB4
write /sys/class/android_usb/android0/f_rndis/wceis 1
on fs
mkdir /dev/usb-ffs 0770 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
write /sys/class/android_usb/android0/f_ffs/aliases adb
# this is for M charge-only
on property:sys.usb.config=charged
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 0bb4
write /sys/class/android_usb/android0/idProduct 0f0b
write /sys/class/android_usb/android0/functions charging
write /sys/class/android_usb/android0/enable 1
write /sys/devices/platform/android_usb/usb_function_switch 1048576
setprop sys.usb.state ${sys.usb.config}
# this is for M charge-only but USB debugging is on, we switch to adb
on property:sys.usb.config=charged,adb
stop adbd
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 0bb4
write /sys/class/android_usb/android0/idProduct 0ff9
write /sys/class/android_usb/android0/functions adb
write /sys/class/android_usb/android0/enable 1
start adbd
write /sys/devices/platform/android_usb/usb_function_switch 2
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.disable=1
setprop sys.usb.config none
write /sys/devices/platform/android_usb/usb_cable_connect 0
on property:sys.usb.disable=0
write /sys/devices/platform/android_usb/usb_cable_connect 1
setprop sys.usb.config ${persist.sys.usb.config}
# adb only USB configuration
# This is the fallback configuration if the
# USB manager fails to set a standard configuration
on property:sys.usb.config=adb
stop adbd
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 0bb4
write /sys/class/android_usb/android0/idProduct 0ff9
write /sys/class/android_usb/android0/functions ${sys.usb.config}
write /sys/class/android_usb/android0/enable 1
start adbd
write /sys/devices/platform/android_usb/usb_function_switch 2
setprop sys.usb.state ${sys.usb.config}
on property:persist.sys.usb.config=adb
setprop sys.usb.config ${persist.sys.usb.config}
on property:sys.usb.config=adboff
stop adbd
write /sys/class/android_usb/android0/f_adb/on 0
setprop sys.usb.state ${sys.usb.config}
# make Android M compatible with L
on property:persist.sys.usb.config=adboff
setprop persist.sys.usb.config charged
# For GEP, make Android M compatible with L
on property:persist.sys.usb.config=mtp,adb
setprop persist.sys.usb.config charged,adb
# For GEP, make Android M compatible with L
on property:persist.sys.usb.config=mtp
setprop persist.sys.usb.config charged
# For GEP, make Android M compatible with L
on property:persist.sys.usb.config=ptp,adb
setprop persist.sys.usb.config charged,adb
# For GEP, make Android M compatible with L
on property:persist.sys.usb.config=ptp
setprop persist.sys.usb.config charged
# RNDIS
on property:sys.usb.config=rndis
write /sys/devices/platform/android_usb/usb_function_switch 4
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=rndis,adb
start adbd
write /sys/devices/platform/android_usb/usb_function_switch 6
setprop sys.usb.state ${sys.usb.config}
# MTP
on property:sys.usb.config=mtp
write /sys/devices/platform/android_usb/usb_function_switch 128
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=mtp,adb
start adbd
write /sys/devices/platform/android_usb/usb_function_switch 130
setprop sys.usb.state ${sys.usb.config}
# PTP
on property:sys.usb.config=ptp
write /sys/devices/platform/android_usb/usb_function_switch 262144
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.config=ptp,adb
start adbd
write /sys/devices/platform/android_usb/usb_function_switch 262146
setprop sys.usb.state ${sys.usb.config}
on property:sys.usb.projector.enable=1
write /sys/class/android_usb/f_projector/on 1
on property:sys.usb.projector.enable=0
write /sys/class/android_usb/f_projector/on 0
on property:bugreport.debug=1
write /sys/class/android_usb/android0/bugreport_debug 1
on property:bugreport.debug=0
write /sys/class/android_usb/android0/bugreport_debug 0