• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright 2015 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17import init.angler.usb.rc
18import init.angler.diag.rc
19import init.angler.sensorhub.rc
20
21on early-init
22    mount debugfs debugfs /sys/kernel/debug
23    chown system system /sys/kernel/debug/kgsl/proc
24
25on init
26    # Load persistent dm-verity state
27    verity_load_state
28
29    # Set permissions for persist partition
30    mkdir /persist 0771 system system
31    mkdir /firmware 0771 system system
32
33    symlink /sdcard /storage/sdcard0
34
35    # Setup zram options
36    write /sys/block/zram0/comp_algorithm lz4
37    write /sys/block/zram0/max_comp_streams 4
38
39    write /proc/sys/vm/page-cluster 0
40
41on fs
42    mount_all ./fstab.angler
43    swapon_all ./fstab.angler
44
45    restorecon_recursive /persist
46    mkdir /persist/data/sfs 0700 system system
47    mkdir /persist/data/tz 0700 system system
48
49    # Enable rmnet data and aggregation
50    setprop persist.rmnet.mux enabled
51    setprop persist.rmnet.data.enable true
52    setprop persist.data.wda.enable true
53    setprop persist.data.df.agg.dl_pkt 10
54    setprop persist.data.df.agg.dl_size 4096
55
56on early-boot
57    # set RLIMIT_MEMLOCK to 64MB
58    setrlimit 8 67108864 67108864
59
60    # Update dm-verity state and set partition.*.verified properties
61    verity_update_state
62
63    # Busy loop to wait for devices booted by devstart_sh just in case device not ready
64    exec - root root system -- /system/bin/init.qcom.devwait.sh
65
66on boot
67    # execute script to set initial CPU settings
68    # don't run as a service to avoid race conditions
69    exec - root system -- /system/bin/init.angler.power.sh
70
71    # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP
72    write /sys/module/wakelock/parameters/debug_mask 7
73
74    # add a cpuset for the camera daemon
75    # we want all the little cores for camera
76    mkdir /dev/cpuset/camera-daemon
77    write /dev/cpuset/camera-daemon/cpus 0
78    write /dev/cpuset/camera-daemon/mems 0
79    chown system system /dev/cpuset/camera-daemon
80    chown system system /dev/cpuset/camera-daemon/tasks
81    chmod 0664 /dev/cpuset/camera-daemon/tasks
82
83    # update foreground cpuset now that processors are up
84    # reserve CPU 3 for the top app and camera daemon
85    write /dev/cpuset/foreground/cpus 0-2,4-7
86    write /dev/cpuset/foreground/boost/cpus 4-7
87    write /dev/cpuset/background/cpus 0
88    write /dev/cpuset/system-background/cpus 0-2
89    write /dev/cpuset/top-app/cpus 0-7
90    write /dev/cpuset/camera-daemon/cpus 0-3
91
92    # setup permissions for fb0 related nodes
93    chown radio radio /sys/class/graphics/fb0/dynamic_dsitiming
94
95    # create symlink for fb1 as HDMI
96    symlink /dev/graphics/fb1 /dev/graphics/hdmi
97
98    # setup permissions for fb1 related nodes
99    chown system graphics /sys/class/graphics/fb1/hpd
100    chown system graphics /sys/class/graphics/fb1/vendor_name
101    chown system graphics /sys/class/graphics/fb1/product_description
102    chmod 0664 /sys/devices/virtual/graphics/fb1/hpd
103    chmod 0664 /sys/devices/virtual/graphics/fb1/vendor_name
104    chmod 0664 /sys/devices/virtual/graphics/fb1/product_description
105
106    #Create QMUX deamon socket
107    mkdir /dev/socket/qmux_radio 0770 radio radio
108    chmod 2770 /dev/socket/qmux_radio
109    mkdir /dev/socket/qmux_audio 0770 media audio
110    chmod 2770 /dev/socket/qmux_audio
111    mkdir /dev/socket/qmux_gps 0770 gps gps
112    chmod 2770 /dev/socket/qmux_gps
113
114    setprop wifi.interface wlan0
115
116    #wifi sar
117    chown radio radio /sys/module/wifi_sar/parameters/wifi_tx_power_limit
118
119    #compass compensation
120    chown root system /sys/class/power_supply/battery/compass_compensation
121
122    write /sys/bus/platform/drivers/xhci_msm_hsic/unbind msm_hsic_host
123    write /sys/module/rmnet_usb/parameters/mux_enabled 1
124    write /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links 8
125    write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev 17
126    write /sys/module/rmnet_usb/parameters/rmnet_data_init 1
127    chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait
128
129    # Assign TCP buffer thresholds to be ceiling value of technology maximums
130    # Increased technology maximums should be reflected here.
131    write /proc/sys/net/core/rmem_max  8388608
132    write /proc/sys/net/core/wmem_max  8388608
133
134    # Leds
135    chown system system /sys/class/leds/red/on_off_ms
136    chown system system /sys/class/leds/green/on_off_ms
137    chown system system /sys/class/leds/blue/on_off_ms
138    chown system system /sys/class/leds/red/rgb_start
139
140    # GPU Tuning
141    chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight
142    chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight
143    chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency
144    chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency
145
146    # Wifi firmware reload path
147    chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path
148
149    # Wifi firmware reload path
150    chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path
151
152on property:init.svc.per_mgr=running
153    start per_proxy
154
155on property:sys.shutdown.requested=*
156    stop per_proxy
157
158on post-fs
159    symlink /dev/block/platform/soc.0/f9824900.sdhci /dev/block/bootdevice
160
161    start qseecomd
162    # Busy loop to wait for qseecomd started
163    exec - root root system -- /system/bin/init.angler.qseecomd.sh
164    # Start devices by sysfs trigger
165    start devstart_sh
166
167on post-fs-data
168    # boot time fs tune
169    write /sys/block/mmcblk0/queue/iostats 0
170    write /sys/block/mmcblk0/queue/scheduler cfq
171    write /sys/block/mmcblk0/queue/iosched/slice_idle 0
172    write /sys/block/mmcblk0/queue/read_ahead_kb 2048
173    write /sys/block/mmcblk0/queue/nr_requests 256
174    write /sys/block/dm-0/queue/read_ahead_kb 2048
175    write /sys/block/dm-1/queue/read_ahead_kb 2048
176    write /sys/block/dm-2/queue/read_ahead_kb 2048
177
178    # Ecc_Handler qcril.db
179    mkdir /data/misc/radio 0770 system radio
180
181    setprop vold.post_fs_data_done 1
182
183    mkdir /data/misc/qsee 0770 system system
184    mkdir /data/fpc 0700 system system
185
186    #Create folder for mm-qcamera-daemon
187    mkdir /data/misc/camera 0770 camera camera
188
189    #Create folder for display calibration data
190    mkdir /data/misc/display 0770 system graphics
191
192    # Create /data/time folder for time-services
193    mkdir /data/time/ 0700 system system
194    mkdir /data/audio/ 0770 media audio
195
196    # Create folder for perf daemon
197    mkdir /data/misc/perfd 0755 root system
198    chmod 2755 /data/misc/perfd
199    mkdir /data/system/perfd 0770 root system
200    rm /data/system/perfd/default_values
201    chmod 2770 /data/system/perfd
202    setprop ro.min_freq_0 384000
203    setprop ro.min_freq_4 384000
204
205    # Create the directories used by CnE subsystem
206    mkdir /data/connectivity 0771 system system
207    chown system system /data/connectivity
208
209    #Create directory from IMS services
210    mkdir /data/shared 0755
211    chown system system /data/shared
212
213    # Mark the copy complete flag to not completed
214    write /data/misc/radio/copy_complete 0
215    chown radio radio /data/misc/radio/copy_complete
216    chmod 0660 /data/misc/radio/copy_complete
217
218    # Configure bluetooth
219    chmod 0660 /proc/bluetooth/sleep/lpm
220    chmod 0660 /proc/bluetooth/sleep/btwrite
221    chmod 0660 /sys/class/rfkill/rfkill0/state
222    chmod 0660 /dev/ttyHS0
223    chown bluetooth bluetooth /proc/bluetooth/sleep/lpm
224    chown bluetooth bluetooth /proc/bluetooth/sleep/btwrite
225    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
226    chown bluetooth bluetooth /dev/ttyHS0
227
228    # Create nfc local data
229    mkdir /data/nfc 0770 nfc nfc
230    mkdir /data/vendor/nfc 0770 nfc nfc
231
232    #modify access for speaker calibdata
233    chown system system /persist/audio/speaker_calibdata.bin
234    chmod 0444 /persist/audio/speaker_calibdata.bin
235
236    #modify access for laser calibration data
237    chmod 0710 /persist/data
238    chmod 0440 /persist/data/st_offset
239    chmod 0440 /persist/data/st_xtalk
240
241    # File flags for prebuilt ril db file
242    write /data/misc/radio/prebuilt_db_support 1
243    chown radio radio /data/misc/radio/prebuilt_db_support
244    chmod 0400 /data/misc/radio/prebuilt_db_support
245    write /data/misc/radio/db_check_done 0
246    chown radio radio /data/misc/radio/db_check_done
247    chmod 0660 /data/misc/radio/db_check_done
248
249    chown system system /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
250    chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/max_freq
251    chown system system /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
252    chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/min_freq
253    chown system system /sys/class/devfreq/qcom,gpubw.70/min_freq
254    chmod 0660 /sys/class/devfreq/qcom,gpubw.70/min_freq
255    chown system system /sys/devices/system/cpu/cpu4/online
256    chmod 0660 /sys/devices/system/cpu/cpu4/online
257    chown system system /sys/devices/system/cpu/cpu5/online
258    chmod 0660 /sys/devices/system/cpu/cpu5/online
259    chown system system /sys/devices/system/cpu/cpu6/online
260    chmod 0660 /sys/devices/system/cpu/cpu6/online
261    chown system system /sys/devices/system/cpu/cpu7/online
262    chmod 0660 /sys/devices/system/cpu/cpu7/online
263on charger
264   #set cpu4,5 online first, or they can't get into low power consumption mode
265   write /sys/devices/system/cpu/cpu4/online 1
266   write /sys/devices/system/cpu/cpu5/online 1
267   #low power governing
268   write /sys/devices/soc.0/qcom,bcl.60/mode disable
269   write /sys/devices/soc.0/qcom,bcl.60/hotplug_mask 0
270   write /sys/devices/soc.0/qcom,bcl.60/hotplug_soc_mask 0
271   write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive
272   write /sys/devices/system/cpu/cpu1/online 0
273   write /sys/devices/system/cpu/cpu2/online 0
274   write /sys/devices/system/cpu/cpu3/online 0
275   write /sys/devices/system/cpu/cpu4/online 0
276   write /sys/devices/system/cpu/cpu5/online 0
277   write /sys/devices/system/cpu/cpu6/online 0
278   write /sys/devices/system/cpu/cpu7/online 0
279
280on property:sys.boot_completed=1
281     #allow CPUs to go in deeper idle state than C0
282     write /sys/module/lpm_levels/parameters/sleep_disabled 0
283     #end boot time fs tune
284     write /sys/block/mmcblk0/queue/scheduler noop
285     write /sys/block/mmcblk0/queue/rq_affinity 0
286     write /sys/block/mmcblk0/queue/read_ahead_kb 128
287     write /sys/block/mmcblk0/queue/nr_requests 128
288     write /sys/block/dm-0/queue/read_ahead_kb 128
289     write /sys/block/dm-1/queue/read_ahead_kb 128
290     write /sys/block/dm-2/queue/read_ahead_kb 128
291     write /sys/block/mmcblk0/queue/iostats 1
292
293# Search the laser device under /dev/input, then create symlink
294service InputEventFind /vendor/bin/InputEventFind
295    class main
296    oneshot
297
298service ssr_setup /system/bin/ssr_setup
299    oneshot
300    disabled
301
302service ss_ramdump /system/bin/subsystem_ramdump
303    class main
304    user system
305    group system
306    disabled
307
308on property:persist.sys.ssr.restart_level=*
309    start ssr_setup
310
311on property:persist.sys.ssr.enable_ramdumps=1
312    write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
313    start ss_ramdump
314
315on property:persist.sys.ssr.enable_ramdumps=0
316    write /sys/module/subsystem_restart/parameters/enable_ramdumps 0
317
318service charger /charger
319    class charger
320    group log
321    seclabel u:r:charger:s0
322    writepid /dev/cpuset/system-background/tasks
323
324service per_mgr /vendor/bin/pm-service
325    class core
326    user root
327    group system net_raw
328    writepid /dev/cpuset/system-background/tasks
329
330service per_proxy /vendor/bin/pm-proxy
331    class core
332    user root
333    group system net_raw
334    writepid /dev/cpuset/system-background/tasks
335    disabled
336
337service rmt_storage /vendor/bin/rmt_storage
338    class core
339    user root
340    group system wakelock
341    writepid /dev/cpuset/system-background/tasks
342
343service qseecomd /vendor/bin/qseecomd
344    class core
345    user root
346    group root
347    writepid /dev/cpuset/system-background/tasks
348
349service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
350    class main
351    user root
352    oneshot
353
354service thermal-engine /vendor/bin/thermal-engine
355    class main
356    user root
357    socket thermal-send-client stream 0660 system system
358    socket thermal-recv-client stream 0660 system system
359    socket thermal-recv-passive-client stream 0660 system system
360    group root radio system
361    writepid /dev/cpuset/system-background/tasks
362
363# QMUX must be in multiple groups to support external process connections
364service qmuxd /vendor/bin/qmuxd
365    class main
366    user radio
367    group radio audio bluetooth wakelock gps
368    writepid /dev/cpuset/system-background/tasks
369
370service perfd /vendor/bin/perfd
371    class main
372    user root
373    group system
374    writepid /dev/cpuset/system-background/tasks
375
376service netmgrd /vendor/bin/netmgrd
377    class main
378    group radio system wakelock
379    writepid /dev/cpuset/system-background/tasks
380
381service qti /vendor/bin/qti
382    class main
383    user radio
384    group radio net_raw usb net_admin
385    writepid /dev/cpuset/system-background/tasks
386
387service time_daemon /vendor/bin/time_daemon
388    class late_start
389    user root
390    group root
391    writepid /dev/cpuset/system-background/tasks
392
393service loc_launcher /vendor/bin/loc_launcher
394    class late_start
395    group gps inet net_raw net_admin wifi
396    writepid /dev/cpuset/system-background/tasks
397
398# bugreport is triggered by holding down volume down, volume up and power
399service bugreport /system/bin/dumpstate -d -p -B -z \
400        -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
401    class main
402    disabled
403    oneshot
404    keycodes 114 115 116
405
406# start camera server as daemon
407service qcamerasvr /vendor/bin/mm-qcamera-daemon
408    class late_start
409    user camera
410    group camera system inet input graphics
411    writepid /dev/cpuset/camera-daemon/tasks
412
413service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
414        -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
415        -I/system/etc/wifi/p2p_supplicant_overlay.conf \
416        -O/data/misc/wifi/sockets \
417        -m/data/misc/wifi/p2p_supplicant.conf \
418        -puse_p2p_group_interface=1p2p_device=1 \
419        -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
420    class main
421    socket wpa_wlan0 dgram 660 wifi wifi
422    disabled
423    oneshot
424
425service imsqmidaemon /system/bin/imsqmidaemon
426    class main
427    user system
428    socket ims_qmid stream 0660 system radio
429    group radio net_raw log diag
430    writepid /dev/cpuset/system-background/tasks
431
432service imsdatadaemon /system/bin/imsdatadaemon
433    class main
434    user system
435    socket ims_datad stream 0660 system radio
436    group system wifi radio inet net_raw log diag net_admin
437    writepid /dev/cpuset/system-background/tasks
438    disabled
439
440on property:sys.ims.QMI_DAEMON_STATUS=1
441    start imsdatadaemon
442
443service imscmservice /system/bin/imscmservice
444    class main
445    user system
446    group radio net_raw diag diag log
447    writepid /dev/cpuset/system-background/tasks
448
449service cnd /vendor/bin/cnd
450    class late_start
451    socket cnd stream 660 root inet
452    group root wakelock
453    writepid /dev/cpuset/system-background/tasks
454
455on property:ro.boot.hardware.revision=ANGLER-V1
456    write /sys/module/bcmdhd/parameters/nvram_path \
457	      /system/etc/wifi/bcmdhd-pme.cal
458
459on property:ro.boot.hardware.revision=ANGLER-V2
460    write /sys/module/bcmdhd/parameters/nvram_path \
461	      /system/etc/wifi/bcmdhd-pme.cal
462
463on property:ro.boot.wifi_cal=2
464	write /sys/module/bcmdhd/parameters/nvram_path \
465		  /system/etc/wifi/bcmdhd-low.cal
466
467on property:ro.boot.wifi_cal=3
468	write /sys/module/bcmdhd/parameters/nvram_path \
469		  /system/etc/wifi/bcmdhd-high.cal
470
471on property:ro.boot.hardware.sku=H1511
472    setprop ro.boot.wificountrycode US
473
474service mcfg-sh /system/bin/init.mcfg.sh
475   class late_start
476   user radio
477   group radio system
478   oneshot
479
480service radio-sh /system/bin/init.radio.sh
481    class main
482    user radio
483    group root radio
484    oneshot
485
486service oem_qmi_server /vendor/bin/oem_qmi_server
487    class main
488    user root
489    group system radio
490
491service msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf
492    socket msm_irqbalance seqpacket 660 root system
493    class core
494    user root
495    group root
496    writepid /dev/cpuset/system-background/tasks
497
498#start atfwd as daemon
499service atfwd /vendor/bin/ATFWD-daemon
500    class late_start
501    user system
502    group system radio
503
504service ppd /system/bin/mm-pp-daemon
505    class late_start
506    user system
507    socket pps stream 0660 system system
508    group system graphics
509
510on property:init.svc.surfaceflinger=stopped
511    stop ppd
512
513service diag_test_server /vendor/bin/diag_test_server
514    class core
515    user root
516    disabled
517
518on property:ro.boot.mode=hw-factory
519    start diag_test_server
520
521service devstart_sh /system/bin/init.qcom.devstart.sh
522    class main
523    user root
524    group root system
525    disabled
526    oneshot
527