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