-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinit.qcom.rc
executable file
·355 lines (294 loc) · 13.2 KB
/
init.qcom.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
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# Copyright (c) 2009-2012, 2014-2019, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
import /vendor/etc/init/hw/init.qcom.usb.rc
import /vendor/etc/init/hw/init.target.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
chown root system /dev/kmsg
chmod 0620 /dev/kmsg
on post-fs
chmod 0755 /sys/kernel/debug/tracing
on early-boot
# set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
# Allow subsystem (modem etc) debugging
write /sys/kernel/boot_adsp/boot 1
write /sys/kernel/boot_slpi/boot 1
exec u:r:qti_init_shell:s0 -- /vendor/bin/init.qcom.early_boot.sh
# for backward compatibility
chown system system /persist/sensors
chown system system /persist/sensors/registry
chown system system /persist/sensors/registry/registry
chown system system /persist/sensors/registry/registry/sensors_registry
chown system system /persist/sensors/sensors_settings
chown system system /persist/sensors/registry/config
chmod 0664 /persist/sensors/sensors_settings
chown system system /mnt/vendor/persist/sensors
chown system system /mnt/vendor/persist/sensors/sns.reg
chown system system /mnt/vendor/persist/sensors/sensors_list.txt
chown system system /mnt/vendor/persist/sensors/registry
chown system system /mnt/vendor/persist/sensors/registry/registry
chown system system /mnt/vendor/persist/sensors/registry/registry/sensors_registry
chown system system /mnt/vendor/persist/sensors/sensors_settings
chown system system /mnt/vendor/persist/sensors/registry/sns_reg_config
chown system system /mnt/vendor/persist/sensors/registry/config
chmod 0664 /mnt/vendor/persist/sensors/sensors_settings
# Graphics
chown system graphics /sys/class/graphics/fb0/idle_time
chmod 0664 /sys/class/graphics/fb0/idle_time
chown system graphics /sys/class/graphics/fb0/dynamic_fps
chmod 0664 /sys/class/graphics/fb0/dynamic_fps
chown system graphics /sys/class/graphics/fb0/dyn_pu
chmod 0664 /sys/class/graphics/fb0/dyn_pu
chown system graphics /sys/class/graphics/fb0/modes
chmod 0664 /sys/class/graphics/fb0/modes
chown system graphics /sys/class/graphics/fb0/mode
chmod 0664 /sys/class/graphics/fb0/mode
chown system graphics /sys/class/graphics/fb0/msm_cmd_autorefresh_en
chmod 0664 /sys/class/graphics/fb0/msm_cmd_autorefresh_en
on boot
chown system system /sys/bus/i2c/devices/3-0038/set_cover_mode
chmod 0660 /sys/bus/i2c/devices/3-0038/set_cover_mode
chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
chown system system /sys/module/radio_iris_transport/parameters/fmsmd_set
chown system system /sys/module/msm_core/parameters/polling_interval
chown system system /sys/module/msm_core/parameters/disabled
chown system system /sys/kernel/debug/msm_core/enable
chown system system /sys/kernel/debug/msm_core/ptable
chown system system /sys/kernel/boot_slpi/ssr
chown system system /sys/kernel/boot_adsp/ssr
chmod 0660 /sys/module/bluetooth_power/parameters/power
chmod 0660 /sys/module/radio_iris_transport/parameters/fmsmd_set
chown system system /sys/devices/soc/78b7000.i2c/i2c-3/3-0038/enable_dt2w
chmod 0664 /sys/devices/soc/78b7000.i2c/i2c-3/3-0038/enable_dt2w
# This location is used by QCRIL to host UNIX domain
# socket files used for internal IPC within QCRIL
# modules
mkdir /dev/socket/qmux_radio 0770 radio radio
chmod 2770 /dev/socket/qmux_radio
mkdir /persist/drm 0770 system system
mkdir /mnt/vendor/persist/bluetooth 0770 bluetooth bluetooth
mkdir /persist/misc 0770 system system
mkdir /mnt/vendor/persist/alarm 0770 system system
mkdir /mnt/vendor/persist/time 0770 system system
mkdir /mnt/vendor/persist/secnvm 0770 system system
restorecon_recursive /mnt/vendor/persist
# To prevent out of order acknowledgements from making
# connection tracking to treat them as not belonging to
# the connection they belong to.
# Otherwise, a weird issue happens in which some long
# connections on high-throughput links get dropped when
# an ack packet comes out of order
write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
# Set the console loglevel to < KERN_INFO
# Set the default message loglevel to KERN_INFO
write /proc/sys/kernel/printk "6 6 1 7"
chown wifi wifi /sys/module/wlan/parameters/fwpath
# Create hvdcp_opti directory
mkdir /mnt/vendor/persist/hvdcp_opti 0770 root system
# msm specific files that need to be created on /data
on post-fs-data
mkdir /data/vendor/misc 01771 system system
# Create directory used by display clients
mkdir /data/vendor/display 0770 system graphics
# Create IOP daemon related dirs
mkdir /data/vendor/iop 0700 root system
# Create directory used by media clients
mkdir /data/vendor/media 0770 mediacodec media
mkdir /data/vendor/ramdump 0771 root system
mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth
mkdir /data/vendor/ramdump/bluetooth 0770 bluetooth bluetooth
# Create directory for tftp
chown system system /data/vendor/tombstones
mkdir /data/vendor/tombstones/rfs 0771 system system
mkdir /data/vendor/tombstones/rfs/modem 0771 system system
mkdir /data/vendor/tombstones/rfs/lpass 0771 system system
mkdir /data/vendor/tombstones/rfs/slpi 0771 system system
# Create the directories used by the Wireless subsystem
mkdir /data/vendor/wifi 0771 wifi wifi
mkdir /data/vendor/wifi/wpa 0770 wifi wifi
mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
mkdir /data/vendor/wifi/sockets 0770 wifi wifi
mkdir /data/vendor/wifi/hostapd 0770 wifi wifi
mkdir /data/vendor/wifi/hostapd/ctrl 0770 wifi wifi
mkdir /data/vendor/wifi/wpa_supplicant 0770 wifi wifi
# Create the directories used by CnE subsystem
mkdir /data/vendor/connectivity 0771 radio radio
chown radio radio /data/vendor/connectivity
# Create directory for radio
mkdir /data/vendor/radio 0770 system radio
# Create directory for modem_config
mkdir /data/vendor/modem_config 0570 radio root
chown system system /persist/WCNSS_qcom_wlan_nv.bin
#Create directories for Location services
mkdir /data/vendor/location 0770 gps gps
mkdir /data/vendor/location/mq 0770 gps gps
mkdir /data/vendor/location/xtwifi 0770 gps gps
mkdir /dev/socket/location 0770 gps gps
mkdir /dev/socket/location/mq 0770 gps gps
mkdir /dev/socket/location/xtra 0770 gps gps
mkdir /data/vendor/location-partner 0770 gps gps
mkdir /data/vendor/location-partner/dre 0770 gps gps
mkdir /data/vendor/location-partner/ppe 0770 gps gps
mkdir /dev/socket/location 0770 gps gps
mkdir /dev/socket/location/ehub 0770 gps gps
# Create /data/vendor/time folder for time-services
mkdir /data/vendor/time/ 0700 system system
mkdir /data/vendor/audio/ 0770 media audio
# Create a folder for audio delta files
mkdir /data/vendor/audio/acdbdata 0770 media audio
mkdir /data/vendor/audio/acdbdata/delta 0770 media audio
setprop vold.post_fs_data_done 1
#Create FM dir for patchdownloader
mkdir /data/vendor/fm 0770 system system
chmod 0770 /data/vendor/fm
# Secure Element directory for loader service functionality
mkdir /data/vendor/secure_element 0770 secure_element secure_element
# Create dir for TUI
mkdir /data/vendor/tui 0700 system drmrpc
# Mark the copy complete flag to not completed
write /data/vendor/radio/copy_complete 0
chown radio radio /data/vendor/radio/copy_complete
chmod 0660 /data/vendor/radio/copy_complete
# copy prebuilt qcril.db files always
copy /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril_prebuilt.db
chown radio radio /data/vendor/radio/qcril_prebuilt.db
chmod 0660 /data/vendor/radio/qcril_prebuilt.db
# File flags for prebuilt ril db file
write /data/vendor/radio/prebuilt_db_support 1
chown radio radio /data/vendor/radio/prebuilt_db_support
chmod 0400 /data/vendor/radio/prebuilt_db_support
write /data/vendor/radio/db_check_done 0
chown radio radio /data/vendor/radio/db_check_done
chmod 0660 /data/vendor/radio/db_check_done
# set aggressive read ahead for dm-0 and dm-1 during boot up
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
on property:sys.boot_completed=1
write /dev/kmsg "Boot completed "
#Reset read ahead for dm-0 and dm-1 to 512kb
write /sys/block/dm-0/queue/read_ahead_kb 512
write /sys/block/dm-1/queue/read_ahead_kb 512
on property:persist.vendor.radio.atfwd.start=false
stop vendor.atfwd
on property:vendor.radio.atfwd.start=false
stop vendor.atfwd
on property:vold.decrypt=trigger_restart_framework
restart vendor.camera-provider-2-4
restart vendor.audio-hal-2-0
restart vendor.fps_hal
start wcnss-service
on property:persist.env.fastdorm.enabled=true
setprop persist.radio.data_no_toggle 1
service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
class core
user root
oneshot
service iop /system/vendor/bin/iop
class main
user root
group root
disabled
socket iop seqpacket 0666 root system
writepid /dev/cpuset/system-background/tasks
service vendor.atfwd /vendor/bin/ATFWD-daemon
class late_start
user system
group system radio
writepid /dev/cpuset/system-background/tasks
service vendor.sensors.qti /vendor/bin/sensors.qti
class core
user system
group system
writepid /dev/cpuset/system-background/tasks
service loc_launcher /vendor/bin/loc_launcher
class late_start
user gps
group gps
writepid /dev/cpuset/system-background/tasks
service qcom-sh /vendor/bin/init.qcom.sh
class late_start
user root
group root system radio
oneshot
on property:ro.vendor.ril.mbn_copy_completed=1
write /data/vendor/radio/copy_complete 1
service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh
class late_start
user root
group root system wakelock graphics
disabled
oneshot
on property:sys.boot_completed=1
start qcom-post-boot
on property:ro.data.large_tcp_window_size=true
# Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
write /proc/sys/net/ipv4/tcp_adv_win_scale 2
on property:sys.sysctl.tcp_adv_win_scale=*
write /proc/sys/net/ipv4/tcp_adv_win_scale ${sys.sysctl.tcp_adv_win_scale}
service vendor.ril-daemon2 /vendor/bin/hw/rild -c 2
class main
user radio
group radio cache inet misc audio sdcard_r sdcard_rw diag log
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
service vendor.charger /system/bin/chargeonlymode
class charger
user system
group system graphics input
capabilities SYS_BOOT
seclabel u:r:charger:s0
service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf
class core
user root
group root
disabled
service vendor.msm_irqbal_lb /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance_little_big.conf
class core
user root
group root
disabled
on charger
start qcom-post-boot
service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service
override
class hal
user audioserver
# media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct oem_2901 wakelock system
capabilities BLOCK_SUSPEND SYS_NICE
ioprio rt 4
writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks
onrestart restart audioserver
service vendor.power_off_alarm /vendor/bin/power_off_alarm
class core
group system
disabled
oneshot
on property:dev.bootcomplete=1
setprop sys.io.scheduler "bfq"
restart ril-daemon