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

    #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

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

