| # |
| # Copyright 2015 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. |
| # |
| |
| import init.angler.usb.rc |
| import init.angler.diag.rc |
| import init.angler.sensorhub.rc |
| |
| on early-init |
| mount debugfs debugfs /sys/kernel/debug |
| chown system system /sys/kernel/debug/kgsl/proc |
| |
| on init |
| # Load persistent dm-verity state |
| verity_load_state |
| |
| # Set permissions for persist partition |
| mkdir /persist 0771 system system |
| mkdir /firmware 0771 system system |
| |
| symlink /sdcard /storage/sdcard0 |
| |
| # Setup zram options |
| write /sys/block/zram0/comp_algorithm lz4 |
| write /sys/block/zram0/max_comp_streams 4 |
| |
| write /proc/sys/vm/page-cluster 0 |
| |
| on fs |
| mount_all ./fstab.angler |
| swapon_all ./fstab.angler |
| |
| restorecon_recursive /persist |
| mkdir /persist/data/sfs 0700 system system |
| mkdir /persist/data/tz 0700 system system |
| |
| # Enable rmnet data and aggregation |
| setprop persist.rmnet.mux enabled |
| setprop persist.rmnet.data.enable true |
| setprop persist.data.wda.enable true |
| setprop persist.data.df.agg.dl_pkt 10 |
| setprop persist.data.df.agg.dl_size 4096 |
| |
| on early-boot |
| # set RLIMIT_MEMLOCK to 64MB |
| setrlimit 8 67108864 67108864 |
| |
| # Update dm-verity state and set partition.*.verified properties |
| verity_update_state |
| |
| # Busy loop to wait for devices booted by devstart_sh just in case device not ready |
| exec - root root system -- /system/bin/init.qcom.devwait.sh |
| |
| on boot |
| # execute script to set initial CPU settings |
| # don't run as a service to avoid race conditions |
| exec - root system -- /system/bin/init.angler.power.sh |
| |
| # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP |
| write /sys/module/wakelock/parameters/debug_mask 7 |
| |
| # add a cpuset for the camera daemon |
| # we want all the little cores for camera |
| mkdir /dev/cpuset/camera-daemon |
| write /dev/cpuset/camera-daemon/cpus 0 |
| write /dev/cpuset/camera-daemon/mems 0 |
| chown system system /dev/cpuset/camera-daemon |
| chown system system /dev/cpuset/camera-daemon/tasks |
| chmod 0664 /dev/cpuset/camera-daemon/tasks |
| |
| # update foreground cpuset now that processors are up |
| # reserve CPU 3 for the top app and camera daemon |
| write /dev/cpuset/foreground/cpus 0-2,4-7 |
| write /dev/cpuset/foreground/boost/cpus 4-7 |
| write /dev/cpuset/background/cpus 0 |
| write /dev/cpuset/system-background/cpus 0-2 |
| write /dev/cpuset/top-app/cpus 0-7 |
| write /dev/cpuset/camera-daemon/cpus 0-3 |
| |
| # setup permissions for fb0 related nodes |
| chown radio radio /sys/class/graphics/fb0/dynamic_dsitiming |
| |
| # create symlink for fb1 as HDMI |
| symlink /dev/graphics/fb1 /dev/graphics/hdmi |
| |
| # setup permissions for fb1 related nodes |
| chown system graphics /sys/class/graphics/fb1/hpd |
| chown system graphics /sys/class/graphics/fb1/vendor_name |
| chown system graphics /sys/class/graphics/fb1/product_description |
| chmod 0664 /sys/devices/virtual/graphics/fb1/hpd |
| chmod 0664 /sys/devices/virtual/graphics/fb1/vendor_name |
| chmod 0664 /sys/devices/virtual/graphics/fb1/product_description |
| |
| #Create QMUX deamon socket |
| mkdir /dev/socket/qmux_radio 0770 radio radio |
| chmod 2770 /dev/socket/qmux_radio |
| mkdir /dev/socket/qmux_audio 0770 media audio |
| chmod 2770 /dev/socket/qmux_audio |
| mkdir /dev/socket/qmux_gps 0770 gps gps |
| chmod 2770 /dev/socket/qmux_gps |
| |
| setprop wifi.interface wlan0 |
| |
| #wifi sar |
| chown radio radio /sys/module/wifi_sar/parameters/wifi_tx_power_limit |
| |
| #compass compensation |
| chown root system /sys/class/power_supply/battery/compass_compensation |
| |
| write /sys/bus/platform/drivers/xhci_msm_hsic/unbind msm_hsic_host |
| write /sys/module/rmnet_usb/parameters/mux_enabled 1 |
| write /sys/module/rmnet_usb/parameters/no_fwd_rmnet_links 8 |
| write /sys/module/rmnet_usb/parameters/no_rmnet_insts_per_dev 17 |
| write /sys/module/rmnet_usb/parameters/rmnet_data_init 1 |
| chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait |
| |
| # Assign TCP buffer thresholds to be ceiling value of technology maximums |
| # Increased technology maximums should be reflected here. |
| write /proc/sys/net/core/rmem_max 8388608 |
| write /proc/sys/net/core/wmem_max 8388608 |
| |
| # Leds |
| chown system system /sys/class/leds/red/on_off_ms |
| chown system system /sys/class/leds/green/on_off_ms |
| chown system system /sys/class/leds/blue/on_off_ms |
| chown system system /sys/class/leds/red/rgb_start |
| |
| # GPU Tuning |
| chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight |
| chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight |
| chown root system /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency |
| chmod 0660 /sys/class/kgsl/kgsl-3d0/dispatch/inflight_low_latency |
| |
| # Wifi firmware reload path |
| chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path |
| |
| # Wifi firmware reload path |
| chown wifi wifi /sys/module/bcmdhd/parameters/firmware_path |
| |
| on property:init.svc.per_mgr=running |
| start per_proxy |
| |
| on property:sys.shutdown.requested=* |
| stop per_proxy |
| |
| on post-fs |
| symlink /dev/block/platform/soc.0/f9824900.sdhci /dev/block/bootdevice |
| |
| start qseecomd |
| # Busy loop to wait for qseecomd started |
| exec - root root system -- /system/bin/init.angler.qseecomd.sh |
| # Start devices by sysfs trigger |
| start devstart_sh |
| |
| on post-fs-data |
| # boot time fs tune |
| write /sys/block/mmcblk0/queue/iostats 0 |
| write /sys/block/mmcblk0/queue/scheduler cfq |
| write /sys/block/mmcblk0/queue/iosched/slice_idle 0 |
| write /sys/block/mmcblk0/queue/read_ahead_kb 2048 |
| write /sys/block/mmcblk0/queue/nr_requests 256 |
| write /sys/block/dm-0/queue/read_ahead_kb 2048 |
| write /sys/block/dm-1/queue/read_ahead_kb 2048 |
| write /sys/block/dm-2/queue/read_ahead_kb 2048 |
| |
| # Ecc_Handler qcril.db |
| mkdir /data/misc/radio 0770 system radio |
| |
| setprop vold.post_fs_data_done 1 |
| |
| mkdir /data/misc/qsee 0770 system system |
| mkdir /data/fpc 0700 system system |
| |
| #Create folder for mm-qcamera-daemon |
| mkdir /data/misc/camera 0770 camera camera |
| |
| #Create folder for display calibration data |
| mkdir /data/misc/display 0770 system graphics |
| |
| # Create /data/time folder for time-services |
| mkdir /data/time/ 0700 system system |
| mkdir /data/audio/ 0770 media audio |
| |
| # Create folder for perf daemon |
| mkdir /data/misc/perfd 0755 root system |
| chmod 2755 /data/misc/perfd |
| mkdir /data/system/perfd 0770 root system |
| rm /data/system/perfd/default_values |
| chmod 2770 /data/system/perfd |
| setprop ro.min_freq_0 384000 |
| setprop ro.min_freq_4 384000 |
| |
| # Create the directories used by CnE subsystem |
| mkdir /data/connectivity 0771 system system |
| chown system system /data/connectivity |
| |
| #Create directory from IMS services |
| mkdir /data/shared 0755 |
| chown system system /data/shared |
| |
| # Mark the copy complete flag to not completed |
| write /data/misc/radio/copy_complete 0 |
| chown radio radio /data/misc/radio/copy_complete |
| chmod 0660 /data/misc/radio/copy_complete |
| |
| # Configure bluetooth |
| chmod 0660 /proc/bluetooth/sleep/lpm |
| chmod 0660 /proc/bluetooth/sleep/btwrite |
| chmod 0660 /sys/class/rfkill/rfkill0/state |
| chmod 0660 /dev/ttyHS0 |
| chown bluetooth bluetooth /proc/bluetooth/sleep/lpm |
| chown bluetooth bluetooth /proc/bluetooth/sleep/btwrite |
| chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state |
| chown bluetooth bluetooth /dev/ttyHS0 |
| |
| # Create nfc local data |
| mkdir /data/nfc 0770 nfc nfc |
| mkdir /data/vendor/nfc 0770 nfc nfc |
| |
| #modify access for speaker calibdata |
| chown system system /persist/audio/speaker_calibdata.bin |
| chmod 0444 /persist/audio/speaker_calibdata.bin |
| |
| #modify access for laser calibration data |
| chmod 0710 /persist/data |
| chmod 0440 /persist/data/st_offset |
| chmod 0440 /persist/data/st_xtalk |
| |
| # File flags for prebuilt ril db file |
| write /data/misc/radio/prebuilt_db_support 1 |
| chown radio radio /data/misc/radio/prebuilt_db_support |
| chmod 0400 /data/misc/radio/prebuilt_db_support |
| write /data/misc/radio/db_check_done 0 |
| chown radio radio /data/misc/radio/db_check_done |
| chmod 0660 /data/misc/radio/db_check_done |
| |
| chown system system /sys/class/kgsl/kgsl-3d0/devfreq/max_freq |
| chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/max_freq |
| chown system system /sys/class/kgsl/kgsl-3d0/devfreq/min_freq |
| chmod 0660 /sys/class/kgsl/kgsl-3d0/devfreq/min_freq |
| chown system system /sys/class/devfreq/qcom,gpubw.70/min_freq |
| chmod 0660 /sys/class/devfreq/qcom,gpubw.70/min_freq |
| chown system system /sys/devices/system/cpu/cpu4/online |
| chmod 0660 /sys/devices/system/cpu/cpu4/online |
| chown system system /sys/devices/system/cpu/cpu5/online |
| chmod 0660 /sys/devices/system/cpu/cpu5/online |
| chown system system /sys/devices/system/cpu/cpu6/online |
| chmod 0660 /sys/devices/system/cpu/cpu6/online |
| chown system system /sys/devices/system/cpu/cpu7/online |
| chmod 0660 /sys/devices/system/cpu/cpu7/online |
| on charger |
| #set cpu4,5 online first, or they can't get into low power consumption mode |
| write /sys/devices/system/cpu/cpu4/online 1 |
| write /sys/devices/system/cpu/cpu5/online 1 |
| #low power governing |
| write /sys/devices/soc.0/qcom,bcl.60/mode disable |
| write /sys/devices/soc.0/qcom,bcl.60/hotplug_mask 0 |
| write /sys/devices/soc.0/qcom,bcl.60/hotplug_soc_mask 0 |
| write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive |
| write /sys/devices/system/cpu/cpu1/online 0 |
| write /sys/devices/system/cpu/cpu2/online 0 |
| write /sys/devices/system/cpu/cpu3/online 0 |
| write /sys/devices/system/cpu/cpu4/online 0 |
| write /sys/devices/system/cpu/cpu5/online 0 |
| write /sys/devices/system/cpu/cpu6/online 0 |
| write /sys/devices/system/cpu/cpu7/online 0 |
| |
| on property:sys.boot_completed=1 |
| #allow CPUs to go in deeper idle state than C0 |
| write /sys/module/lpm_levels/parameters/sleep_disabled 0 |
| #end boot time fs tune |
| write /sys/block/mmcblk0/queue/scheduler noop |
| write /sys/block/mmcblk0/queue/rq_affinity 0 |
| write /sys/block/mmcblk0/queue/read_ahead_kb 128 |
| write /sys/block/mmcblk0/queue/nr_requests 128 |
| write /sys/block/dm-0/queue/read_ahead_kb 128 |
| write /sys/block/dm-1/queue/read_ahead_kb 128 |
| write /sys/block/dm-2/queue/read_ahead_kb 128 |
| write /sys/block/mmcblk0/queue/iostats 1 |
| |
| # Search the laser device under /dev/input, then create symlink |
| service InputEventFind /vendor/bin/InputEventFind |
| class main |
| oneshot |
| |
| service ssr_setup /system/bin/ssr_setup |
| oneshot |
| disabled |
| |
| service ss_ramdump /system/bin/subsystem_ramdump |
| class main |
| user system |
| group system |
| disabled |
| |
| on property:persist.sys.ssr.restart_level=* |
| start ssr_setup |
| |
| on property:persist.sys.ssr.enable_ramdumps=1 |
| write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 |
| start ss_ramdump |
| |
| on property:persist.sys.ssr.enable_ramdumps=0 |
| write /sys/module/subsystem_restart/parameters/enable_ramdumps 0 |
| |
| service charger /charger |
| class charger |
| group log |
| seclabel u:r:charger:s0 |
| writepid /dev/cpuset/system-background/tasks |
| |
| service per_mgr /vendor/bin/pm-service |
| class core |
| user root |
| group system net_raw |
| writepid /dev/cpuset/system-background/tasks |
| |
| service per_proxy /vendor/bin/pm-proxy |
| class core |
| user root |
| group system net_raw |
| writepid /dev/cpuset/system-background/tasks |
| disabled |
| |
| service rmt_storage /vendor/bin/rmt_storage |
| class core |
| user root |
| group system wakelock |
| writepid /dev/cpuset/system-background/tasks |
| shutdown critical |
| |
| service qseecomd /vendor/bin/qseecomd |
| class core |
| user root |
| group root |
| writepid /dev/cpuset/system-background/tasks |
| |
| service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config" |
| class main |
| user root |
| oneshot |
| |
| service thermal-engine /vendor/bin/thermal-engine |
| class main |
| user root |
| socket thermal-send-client stream 0660 system system |
| socket thermal-recv-client stream 0660 system system |
| socket thermal-recv-passive-client stream 0660 system system |
| group root radio system |
| writepid /dev/cpuset/system-background/tasks |
| |
| # QMUX must be in multiple groups to support external process connections |
| service qmuxd /vendor/bin/qmuxd |
| class main |
| user radio |
| group radio audio bluetooth wakelock gps |
| writepid /dev/cpuset/system-background/tasks |
| |
| service perfd /vendor/bin/perfd |
| class main |
| user root |
| group system |
| writepid /dev/cpuset/system-background/tasks |
| |
| service netmgrd /vendor/bin/netmgrd |
| class main |
| group radio system wakelock |
| writepid /dev/cpuset/system-background/tasks |
| |
| service qti /vendor/bin/qti |
| class main |
| user radio |
| group radio net_raw usb net_admin |
| writepid /dev/cpuset/system-background/tasks |
| |
| service time_daemon /vendor/bin/time_daemon |
| class late_start |
| user root |
| group root |
| writepid /dev/cpuset/system-background/tasks |
| |
| service loc_launcher /vendor/bin/loc_launcher |
| class late_start |
| group gps inet net_raw net_admin wifi |
| writepid /dev/cpuset/system-background/tasks |
| |
| # bugreport is triggered by holding down volume down, volume up and power |
| service bugreport /system/bin/dumpstate -d -p -B -z \ |
| -o /data/user_de/0/com.android.shell/files/bugreports/bugreport |
| class main |
| disabled |
| oneshot |
| keycodes 114 115 116 |
| |
| # start camera server as daemon |
| service qcamerasvr /vendor/bin/mm-qcamera-daemon |
| class late_start |
| user camera |
| group camera system inet input graphics |
| writepid /dev/cpuset/camera-daemon/tasks |
| |
| service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ |
| -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ |
| -I/system/etc/wifi/p2p_supplicant_overlay.conf \ |
| -O/data/misc/wifi/sockets \ |
| -m/data/misc/wifi/p2p_supplicant.conf \ |
| -puse_p2p_group_interface=1p2p_device=1 \ |
| -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 |
| class main |
| socket wpa_wlan0 dgram 660 wifi wifi |
| disabled |
| oneshot |
| |
| service imsqmidaemon /system/bin/imsqmidaemon |
| class main |
| user system |
| socket ims_qmid stream 0660 system radio |
| group radio net_raw log diag |
| writepid /dev/cpuset/system-background/tasks |
| |
| service imsdatadaemon /system/bin/imsdatadaemon |
| class main |
| user system |
| socket ims_datad stream 0660 system radio |
| group system wifi radio inet net_raw log diag net_admin |
| writepid /dev/cpuset/system-background/tasks |
| disabled |
| |
| on property:sys.ims.QMI_DAEMON_STATUS=1 |
| start imsdatadaemon |
| |
| service imscmservice /system/bin/imscmservice |
| class main |
| user system |
| group radio net_raw diag diag log |
| writepid /dev/cpuset/system-background/tasks |
| |
| service cnd /vendor/bin/cnd |
| class late_start |
| socket cnd stream 660 root inet |
| group root wakelock |
| writepid /dev/cpuset/system-background/tasks |
| |
| on property:ro.boot.hardware.revision=ANGLER-V1 |
| write /sys/module/bcmdhd/parameters/nvram_path \ |
| /system/etc/wifi/bcmdhd-pme.cal |
| |
| on property:ro.boot.hardware.revision=ANGLER-V2 |
| write /sys/module/bcmdhd/parameters/nvram_path \ |
| /system/etc/wifi/bcmdhd-pme.cal |
| |
| on property:ro.boot.wifi_cal=2 |
| write /sys/module/bcmdhd/parameters/nvram_path \ |
| /system/etc/wifi/bcmdhd-low.cal |
| |
| on property:ro.boot.wifi_cal=3 |
| write /sys/module/bcmdhd/parameters/nvram_path \ |
| /system/etc/wifi/bcmdhd-high.cal |
| |
| on property:ro.boot.hardware.sku=H1511 |
| setprop ro.boot.wificountrycode US |
| |
| service mcfg-sh /system/bin/init.mcfg.sh |
| class late_start |
| user radio |
| group radio system |
| oneshot |
| |
| service radio-sh /system/bin/init.radio.sh |
| class main |
| user radio |
| group root radio |
| oneshot |
| |
| service oem_qmi_server /vendor/bin/oem_qmi_server |
| class main |
| user root |
| group system radio |
| |
| service msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf |
| socket msm_irqbalance seqpacket 660 root system |
| class core |
| user root |
| group root |
| writepid /dev/cpuset/system-background/tasks |
| |
| #start atfwd as daemon |
| service atfwd /vendor/bin/ATFWD-daemon |
| class late_start |
| user system |
| group system radio |
| |
| service ppd /system/bin/mm-pp-daemon |
| class late_start |
| user system |
| socket pps stream 0660 system system |
| group system graphics |
| |
| on property:init.svc.surfaceflinger=stopped |
| stop ppd |
| |
| service diag_test_server /vendor/bin/diag_test_server |
| class core |
| user root |
| disabled |
| |
| on property:ro.boot.mode=hw-factory |
| start diag_test_server |
| |
| service devstart_sh /system/bin/init.qcom.devstart.sh |
| class main |
| user root |
| group root system |
| disabled |
| oneshot |