#
# 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

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

    write /sys/block/mmcblk0/queue/rq_affinity 0
    write /sys/block/mmcblk0/queue/scheduler noop

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
    exec - root root system -- /system/bin/init.angler.qseecomd.sh

on post-fs-data
    write /sys/kernel/boot_adsp/boot 1

    # 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 net_bt_stack /proc/bluetooth/sleep/lpm
    chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite
    chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state
    chown bluetooth net_bt_stack /dev/ttyHS0

    # Create nfc local data
    mkdir /data/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

    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

# 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 /sbin/healthd -c
    class charger
    group log
    seclabel u:r:healthd: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

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 fingerprintd /system/bin/fingerprintd
    class late_start
    user system
    group input
    writepid /dev/cpuset/system-background/tasks

service p2p_supplicant /system/bin/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 wpa_supplicant /system/bin/wpa_supplicant \
        -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
        -I/system/etc/wifi/wpa_supplicant_overlay.conf \
        -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 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

