#
# Copyright (C) 2018 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 /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.usb.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.diag.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.logging.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.mpssrfs.rc
import /vendor/etc/init/hw/init.${ro.boot.hardware.platform}.power.rc

service vendor.charger /system/bin/charger
    class charger
    seclabel u:r:charger:s0
    user system
    group system wakelock input
    capabilities SYS_BOOT
    file /dev/kmsg w
    file /sys/fs/pstore/console-ramoops-0 r
    file /sys/fs/pstore/console-ramoops r
    file /proc/last_kmsg r

on early-init
    mount debugfs debugfs /sys/kernel/debug
    chmod 0755 /sys/kernel/debug
    mount_all /vendor/etc/fstab.persist --early

    # configure governor settings
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor schedutil
    write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/up_rate_limit_us 500
    write /sys/devices/system/cpu/cpu0/cpufreq/schedutil/down_rate_limit_us 20000

    # configure governor settings for big cluster
    write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor schedutil
    write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/up_rate_limit_us 500
    write /sys/devices/system/cpu/cpu6/cpufreq/schedutil/down_rate_limit_us 20000

    # configure governor settings for big big CPU
    write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor schedutil
    write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/up_rate_limit_us 500
    write /sys/devices/system/cpu/cpu7/cpufreq/schedutil/down_rate_limit_us 20000

# Disable VDSO on JAWS boards.
on early-init && property:ro.revision="DEV1.0"
    write /sys/module/vdso/parameters/enable_32 0

# Skip init trigger for charger mode
on early-init && property:ro.boot.mode=charger
    setprop vendor.skip.init 1
    # Loading kernel modules in background
    start charger_insmod_sh

on init && property:vendor.skip.init=0
    # Boot time cpuset and stune
    write /dev/cpuset/top-app/cpus 0-7
    write /dev/cpuset/foreground/cpus 0-7
    write /dev/cpuset/background/cpus 0-5
    write /dev/cpuset/system-background/cpus 0-5
    write /dev/cpuset/restricted/cpus 2-5
    write /dev/stune/foreground/schedtune.prefer_idle 1
    write /dev/stune/foreground/schedtune.prefer_high_cap 1
    write /dev/stune/foreground/schedtune.boost 100
    write /dev/stune/schedtune.prefer_idle 1
    write /dev/stune/schedtune.prefer_high_cap 1
    write /dev/stune/schedtune.boost 100
    write /dev/stune/top-app/schedtune.prefer_idle 1
    write /dev/stune/top-app/schedtune.prefer_high_cap 1
    write /dev/stune/top-app/schedtune.boost 100

    # Boot time fs tuning
    write /sys/block/sda/queue/iostats 0
    write /sys/block/sda/queue/scheduler cfq
    write /sys/block/sda/queue/iosched/group_idle 0
    write /sys/block/sda/queue/iosched/slice_idle 0
    write /sys/block/sda/queue/nr_requests 256

    # Disable powersaving
    write /sys/module/lpm_levels/parameters/sleep_disabled 1

    wait /dev/block/platform/${ro.boot.boot_devices}
    symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice

    # to access UFS/eMMC sysfs directly
    symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice

    # Disable UFS powersaving
    write /dev/sys/block/bootdevice/clkgate_enable 0

    # start qseecomd early as we mount system/ vendor/ early
    # vold needs keymaster that needs qseecomd
    start vendor.qseecomd
    start keymaster-4-0

    start vendor.citadeld
    start vendor.keymaster-4-1-citadel

    # Loading kernel modules in background
    start insmod_sh

    # bring back all cores
    write /sys/devices/system/cpu/cpu0/online 1
    write /sys/devices/system/cpu/cpu1/online 1
    write /sys/devices/system/cpu/cpu2/online 1
    write /sys/devices/system/cpu/cpu3/online 1
    write /sys/devices/system/cpu/cpu4/online 1
    write /sys/devices/system/cpu/cpu5/online 1
    write /sys/devices/system/cpu/cpu6/online 1
    write /sys/devices/system/cpu/cpu7/online 1

    # ZRAM setup
    write /sys/block/zram0/comp_algorithm lz4
    write /proc/sys/vm/page-cluster 0

    # Some user code relies on ro.boot.hardware.revision
    setprop ro.boot.hardware.revision ${ro.revision}

    mkdir /dev/cpuset/camera-daemon-dedicated
    write /dev/cpuset/camera-daemon-dedicated/cpus 0-7
    write /dev/cpuset/camera-daemon-dedicated/mems 0
    chown system system /dev/cpuset/camera-daemon-dedicated
    chown system system /dev/cpuset/camera-daemon-dedicated/tasks
    chmod 0664 /dev/cpuset/camera-daemon-dedicated/tasks

    # set default schedTune value for camera-daemon
    write /dev/stune/camera-daemon/schedtune.prefer_idle 1
    write /dev/stune/camera-daemon/schedtune.boost 0

    # Allow PAI targeting per hardware SKU
    setprop ro.oem.key1 ${ro.boot.hardware.sku}

    # Property used by vintf for sku specific manifests
    # Property used by NFC for sku specific configurations
    setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku}

    # report max frequency to unity tasks.
    write /proc/sys/kernel/sched_lib_name "UnityMain,libunity.so"
    write /proc/sys/kernel/sched_lib_mask_force 255

    # NFC streset tool name
    setprop persist.vendor.nfc.streset /vendor/lib64/libstreset20.so
    setprop persist.vendor.se.streset /vendor/lib64/libstreset20.so
    setprop persist.vendor.se.stpreprocess /vendor/lib64/libstpreprocess20.so

on late-init
    chown system system /sys/devices/virtual/thermal/tz-by-name/cellular-emergency/trip_point_0_temp
    chown system system /sys/devices/virtual/thermal/tz-by-name/cellular-emergency/trip_point_0_hyst
    chown system system /sys/devices/virtual/thermal/tz-by-name/soc/mode

on fs
    mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --early

    mkdir /mnt/vendor/persist/audio 0770 media audio
    mkdir /mnt/vendor/persist/data 0700 system system
    mkdir /mnt/vendor/persist/display 0770 system graphics
    mkdir /mnt/vendor/persist/haptics 0770 system system
    mkdir /mnt/vendor/persist/rfs 0770 root system
    mkdir /mnt/vendor/persist/hlos_rfs 0770 root system
    mkdir /mnt/vendor/persist/oslo 0770 system system
    mkdir /mnt/vendor/persist/touch 0770 system system
    chmod 0770 /mnt/vendor/persist/rfs
    chmod 0770 /mnt/vendor/persist/rfs/shared
    chmod 0770 /mnt/vendor/persist/rfs/msm
    chmod 0770 /mnt/vendor/persist/rfs/msm/adsp
    chmod 0770 /mnt/vendor/persist/rfs/msm/mpss
    chmod 0770 /mnt/vendor/persist/rfs/msm/slpi
    chmod 0770 /mnt/vendor/persist/rfs/mdm
    chmod 0770 /mnt/vendor/persist/rfs/mdm/adsp
    chmod 0770 /mnt/vendor/persist/rfs/mdm/mpss
    chmod 0770 /mnt/vendor/persist/rfs/mdm/slpi
    chmod 0770 /mnt/vendor/persist/rfs/mdm/tn
    chmod 0770 /mnt/vendor/persist/rfs/apq
    chmod 0770 /mnt/vendor/persist/rfs/apq/gnss
    chmod 0770 /mnt/vendor/persist/hlos_rfs

    # for cycle count backup
    mkdir /mnt/vendor/persist/battery 0700 system system

    # Set up sensors-related directories and permissions
    chmod 775 /mnt/vendor/persist/sensors
    chmod 664 /mnt/vendor/persist/sensors/sensors_settings
    chmod 775 /mnt/vendor/persist/sensors/registry
    chmod 775 /mnt/vendor/persist/sensors/registry/registry
    chmod 775 /mnt/vendor/persist/sensors/registry/factory_data
    chmod 664 /mnt/vendor/persist/sensors/registry/factory_data/sns_fac_registry
    chmod 664 /mnt/vendor/persist/sensors/registry/registry/sensors_registry

    restorecon_recursive /mnt/vendor/persist

    # Set up camera-related directories and permissions
    # Add restorecon_recursive command to make sure the restorecon label is persist_camera_file.
    restorecon_recursive /mnt/vendor/persist/camera

on post-fs
    # set RLIMIT_MEMLOCK to 64MB
    setrlimit 8 67108864 67108864

    # Wait qseecomd started
    wait_for_prop vendor.sys.listeners.registered true

    # load IPA FWs
    # This must be started when vendor.sys.listeners.registered is true
    write /dev/ipa 1

on late-fs
    # Start services for bootanim
    #start color_init
    #wait_for_prop vendor.display.native_display_primaries_ready 1
    #setprop ro.surface_flinger.display_primary_red ${vendor.display.primary_red}
    #setprop ro.surface_flinger.display_primary_green ${vendor.display.primary_green}
    #setprop ro.surface_flinger.display_primary_blue ${vendor.display.primary_blue}
    #setprop ro.surface_flinger.display_primary_white ${vendor.display.primary_white}
    # Permission for hwcomposer
    chown system system /sys/devices/platform/soc/soc:qcom,dsi-display-primary/gamma
    start surfaceflinger
    start bootanim
    start vendor.qti.hardware.display.composer
    start vendor.qti.hardware.display.allocator

    # Wait for keymaster HALs (TEE and StrongBox)
    exec_start wait_for_strongbox


    # Mount RW partitions which need run fsck
    mount_all /vendor/etc/fstab.${ro.boot.hardware.platform} --late

    # Required for time_daemon
    mkdir /mnt/vendor/persist/time 0770 system system
    chown system system /mnt/vendor/persist/time/ats_1
    chown system system /mnt/vendor/persist/time/ats_2
    chown system system /mnt/vendor/persist/time/ats_3
    chown system system /mnt/vendor/persist/time/ats_4
    chown system system /mnt/vendor/persist/time/ats_5
    chown system system /mnt/vendor/persist/time/ats_6
    chown system system /mnt/vendor/persist/time/ats_7
    chown system system /mnt/vendor/persist/time/ats_8
    chown system system /mnt/vendor/persist/time/ats_9
    chown system system /mnt/vendor/persist/time/ats_10
    chown system system /mnt/vendor/persist/time/ats_11
    chown system system /mnt/vendor/persist/time/ats_12
    chown system system /mnt/vendor/persist/time/ats_13
    chown system system /mnt/vendor/persist/time/ats_14
    chown system system /mnt/vendor/persist/time/ats_15
    chown system system /mnt/vendor/persist/time/ats_16

    # Init sensor specific services
    start init-sensors-sh

    # Start the twoshay touch service
    start twoshay

    # turn off vblank irq immediately after turning off
    write /sys/module/drm/parameters/vblankoffdelay -1

    # Write build info to kdebuginfo.
    write /sys/module/kdebuginfo/parameters/build_info "${ro.product.name}-${ro.build.type} ${ro.build.version.incremental}"

on post-fs-data
    mkdir /vendor/data/tombstones 0771 system system
    mkdir /tombstones/modem 0771 system system
    mkdir /tombstones/lpass 0771 system system
    mkdir /tombstones/wcnss 0771 system system
    mkdir /tombstones/dsps 0771 system system
    mkdir /data/vendor/hbtp 0750 system system
    mkdir /data/vendor/tloc 0700 system drmrpc
    mkdir /data/vendor/nnhal 0700 system system
    mkdir /data/vendor/time 0770 system system
    mkdir /data/vendor/modem_fdr 0700 root system
    mkdir /data/vendor/display 0770 system graphics
    mkdir /data/vendor/camera 0770 system system
    mkdir /data/vendor/rebootescrow 0770 hsm hsm
    start vendor.rebootescrow-citadel

on zygote-start
    # zygote is started in common init.rc
    # and now we can continue initialize /data/
    mkdir /data/vendor/ipa 0770 radio radio
    chown radio radio /data/vendor/ipa

    # Create the directories used by the Wireless subsystem
    mkdir /data/vendor/wifi 0771 wifi wifi
    mkdir /data/vendor/wifi/wpa 0770 wifi wifi
    mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi

    # Create the directories used by CnE subsystem
    mkdir /data/vendor/connectivity 0771 radio radio
    chown radio radio /data/vendor/connectivity

    # Create directory for radio
    mkdir /data/vendor/radio 0773 system radio
    mkdir /data/vendor/modem_stat 0771 system radio
    write /data/vendor/modem_stat/debug.txt ""
    chown system radio /data/vendor/modem_stat/debug.txt
    chmod 0664 /data/vendor/modem_stat/debug.txt

    # Mark the copy complete flag to not completed
    write /data/vendor/radio/copy_complete 0
    chown radio radio /data/vendor/radio/copy_complete
    chmod 0660 /data/vendor/radio/copy_complete

    # File flags for prebuilt ril db file
    write /data/vendor/radio/prebuilt_db_support 1
    chown radio radio /data/vendor/radio/prebuilt_db_support
    chmod 0400 /data/vendor/radio/prebuilt_db_support
    write /data/vendor/radio/db_check_done 0
    chown radio radio /data/vendor/radio/db_check_done
    chmod 0660 /data/vendor/radio/db_check_done

    # Create directories for Location services
    mkdir /data/vendor/location 0770 gps gps
    mkdir /data/vendor/location/mq 0770 gps gps
    mkdir /data/vendor/location/xtwifi 0770 gps gps
    mkdir /dev/socket/location 0770 gps gps
    mkdir /dev/socket/location/mq 0770 gps gps
    mkdir /dev/socket/location/xtra 0770 gps gps

    #Create directories for wifihal services
    mkdir /dev/socket/wifihal 0770 wifi wifi
    chmod 2770 /dev/socket/wifihal

on early-boot
    # Change owner for sensors-related directories
    chown root system /mnt/vendor/persist/sensors/registry
    chown root system /mnt/vendor/persist/sensors/registry/registry
    chown system root /mnt/vendor/persist/sensors/sensors_settings
    chown root root /mnt/vendor/persist/sensors/registry/registry/sensors_settings

    # Set up sensors-related data directories and permissions
    mkdir /data/vendor/sensors 0770
    chown system system /data/vendor/sensors
    mkdir /data/vendor/sensors/log 0770
    chown system system /data/vendor/sensors/log

    # Change owner for sensors factory calibrated registries directory
    chown system system /mnt/vendor/persist/sensors/registry/factory_data
    chown system system /mnt/vendor/persist/sensors/registry/factory_data/sns_fac_registry
    restorecon_recursive /mnt/vendor/persist/sensors/registry/factory_data

    # Restore SeLinux Context for preventing temp.json with
    # incorrect security context
    restorecon /mnt/vendor/persist/sensors/registry/temp.json

    chmod 770 /mnt/vendor/persist/audio
    chmod 660 /mnt/vendor/persist/audio/audio.cal
    chown media audio /mnt/vendor/persist/audio
    chown audioserver audio /mnt/vendor/persist/audio/audio.cal

    # Set up haptics-related directories and permissions
    chmod 770 /mnt/vendor/persist/haptics
    chmod 440 /mnt/vendor/persist/haptics/drv2624.cal
    chown system system /mnt/vendor/persist/haptics
    chown system system /mnt/vendor/persist/haptics/drv2624.cal

    # Set up oslo-related directories and permissions
    chmod 770 /mnt/vendor/persist/oslo
    chmod 660 /mnt/vendor/persist/oslo/oslo.cal
    chown system system /mnt/vendor/persist/oslo
    chown system system /mnt/vendor/persist/oslo/oslo.cal

    # Set up touch directories and permissions
    chmod 770 /mnt/vendor/persist/touch
    chown system system /mnt/vendor/persist/touch

    # Permission for lights driver
    chown system system /sys/class/backlight/panel0-backlight/brightness
    chown system system /sys/class/backlight/panel0-backlight/vr_mode
    chown system system /sys/class/backlight/panel0-backlight/hbm_mode
    chown system system /sys/class/backlight/panel0-backlight/als_table
    chown system system /sys/devices/platform/soc/soc:qcom,dsi-display-primary/te2_table

    # Wait for insmod_sh to finish all modules
    wait_for_prop vendor.all.modules.ready 1

    # Wait for insmod_sh to finish all boot devices
    wait_for_prop vendor.all.devices.ready 1

    # Permission for Vibrator
    chown system system /sys/class/leds/vibrator/device/mode
    chown system system /sys/class/leds/vibrator/device/od_clamp
    chown system system /sys/class/leds/vibrator/device/rtp_input
    chown system system /sys/class/leds/vibrator/device/scale
    chown system system /sys/class/leds/vibrator/device/set_sequencer
    chown system system /sys/class/leds/vibrator/device/autocal_result
    chown system system /sys/class/leds/vibrator/device/ctrl_loop
    chown system system /sys/class/leds/vibrator/device/ol_lra_period
    chown system system /sys/class/leds/vibrator/device/autocal
    chown system system /sys/class/leds/vibrator/device/lp_trigger_effect
    chown system system /sys/class/leds/vibrator/device/lra_wave_shape
    write /sys/class/leds/vibrator/trigger transient

    # Permission for rainbow sensor
    chown system system /sys/devices/platform/soc/994000.i2c/i2c-3/3-0020/rainbow_enable
    chmod 0660 /sys/devices/platform/soc/994000.i2c/i2c-3/3-0020/rainbow_enable
    chown system system /sys/devices/platform/soc/994000.i2c/i2c-3/3-0020/rainbow_read_byte
    chmod 0660 /sys/devices/platform/soc/994000.i2c/i2c-3/3-0020/rainbow_read_byte
    chown system system /sys/devices/platform/soc/994000.i2c/i2c-3/3-0020/rainbow_write_byte
    chmod 0660 /sys/devices/platform/soc/994000.i2c/i2c-3/3-0020/rainbow_write_byte
    chown system system /dev/vd6281
    chmod 0660 /dev/vd6281
    chown system system /mnt/vendor/persist/camera/rals_fac_test
    chmod 0660 /mnt/vendor/persist/camera/rals_fac_test

    # FG cycle count read from dumpstate + backup restore from health HAL (and pixelstats)
    chown system system /sys/class/power_supply/maxfg/cycle_counts_bins

    # Battery Defender
    chown system system /sys/devices/platform/soc/soc:google,charger/charge_stop_level
    chown system system /sys/devices/platform/soc/soc:google,charger/charge_start_level
    chown system system /sys/devices/platform/soc/soc:google,charger/bd_clear
    chown system system /sys/devices/platform/soc/soc:google,battery/power_supply/battery/bd_clear

    # Charge stats (write 0)
    chown system system /sys/class/power_supply/battery/charge_stats

    # Permission for battery eeprom
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-0050/1-00500/nvmem
    chmod 0640 /sys/devices/platform/soc/98c000.i2c/i2c-1/1-0050/1-00500/nvmem
    chown system system /dev/battery_history
    chmod 0644 /dev/battery_history

    # Permission for Pixelstats
    chown system system /sys/class/misc/msm_cirrus_playback/resistance_left_right
    chown system system /dev/sys/block/bootdevice/slowio_read_cnt
    chown system system /dev/sys/block/bootdevice/slowio_write_cnt
    chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt
    chown system system /dev/sys/block/bootdevice/slowio_sync_cnt

    # Permission for Health Storage HAL
    chown system system /dev/sys/block/bootdevice/manual_gc

    # Permissions for reading display native color gamut
    chown system graphics /mnt/vendor/persist/display/native_gamut.csv

on boot
    # This location is used by QCRIL to host UNIX domain
    # socket files used for internal IPC within QCRIL
    # modules
    mkdir /dev/socket/qmux_radio 0770 radio radio
    chmod 2770 /dev/socket/qmux_radio

    setprop wifi.interface wlan0
    setprop wifi.aware.interface wifi-aware0

    chown system system /sys/kernel/hbtp/display_pwr

    start init-modem-sh

    start rfs_access

    # default country code
    setprop ro.boot.wificountrycode 00

    # WLAN debug access
    chown system system /d/icnss/stats

service init-radio-sh /vendor/bin/init.radio.sh
    class late_start
    user radio
    group root radio
    oneshot

service init-modem-sh /vendor/bin/init.modem.sh
    class core
    user radio
    group root radio
    oneshot

on property:init.svc.vendor.charger=running
    stop vendor.qseecomd
    stop keymaster-4-0

    setprop sys.usb.configfs 1
    setprop vendor.setup.power 1

    # keep one little and one big without big+
    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/cpu7/online 0

on property:sys.boot_completed=1
    setprop vendor.setup.power 1

    # Permission for Pixelstats
    chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode
    chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments

    # Runtime fs tuning
    write /sys/block/sda/queue/nr_requests 128
    write /sys/block/sda/queue/iostats 1

    # Back to default VM settings
    write /proc/sys/vm/dirty_expire_centisecs 3000
    write /proc/sys/vm/dirty_background_ratio 10

    # Enable ZRAM on boot_complete
    swapon_all /vendor/etc/fstab.${ro.boot.hardware.platform}
    write /proc/sys/vm/swappiness 100

    # Setup runtime cpusets
    write /dev/cpuset/top-app/cpus 0-7
    write /dev/cpuset/foreground/cpus 0-5,7
    write /dev/cpuset/background/cpus 4-5
    write /dev/cpuset/system-background/cpus 2-5
    write /dev/cpuset/restricted/cpus 2-5

    # Setup runtime schedTune
    write /dev/stune/foreground/schedtune.prefer_idle 1
    write /dev/stune/foreground/schedtune.prefer_high_cap 0
    write /dev/stune/foreground/schedtune.boost 0
    write /dev/stune/schedtune.prefer_idle 0
    write /dev/stune/schedtune.prefer_high_cap 0
    write /dev/stune/schedtune.boost 0
    write /dev/stune/top-app/schedtune.prefer_idle 1
    write /dev/stune/top-app/schedtune.prefer_high_cap 0
    write /dev/stune/top-app/schedtune.boost 10

    # HardwareInfo needs to be able to read display info
    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display-primary/panel_info/panel0/serial_number
    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display-primary/panel_info/panel0/panel_vendor_name
    chmod 444 /sys/devices/platform/soc/soc:qcom,dsi-display-primary/panel_info/panel0/panel_extinfo

    # Maxim FG dump for dumpstate
    chown system system /sys/kernel/debug/regmap/1-0036/registers
    chown system system /sys/kernel/debug/regmap/1-000b/registers
    chown system system /sys/kernel/debug/google_battery/cycle_count_bins
    chown system system /sys/kernel/debug/google_battery/ssoc_gdf
    chown system system /sys/kernel/debug/google_battery/ssoc_rls
    chown system system /sys/kernel/debug/google_battery/ssoc_uic
    chown system system /sys/kernel/debug/google_battery/ssoc_uicurve
    chown system system /sys/kernel/debug/google_charger/pps_op_ua
    chown system system /sys/kernel/debug/google_charger/pps_out_uv

    # Permission for wireless charging
    chown system system /sys/class/power_supply/wireless/capacity
    chmod 0660 /sys/class/power_supply/wireless/capacity
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/rtx
    chmod 0660 /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/rtx

    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/rxdata
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/txdata
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/rxlen
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/txlen
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/ccreset
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/status
    chown system system /sys/devices/platform/soc/98c000.i2c/i2c-1/1-003b/version

    # Permission for bootloader logs
    chown root log /proc/bldrlog
    chmod 0444 /proc/bldrlog

on property:persist.vendor.hvdcp_opti.start=1
    chown root system /sys/class/power_supply/bms/soh
    chown root system /sys/class/power_supply/bms/esr_actual
    chown root system /sys/class/power_supply/bms/esr_nominal

service vendor.per_mgr /vendor/bin/pm-service
    user system
    group system
    ioprio rt 4

service per_proxy /vendor/bin/pm-proxy
    class core
    user system
    group system
    disabled

on property:init.svc.vendor.per_mgr=running
    start per_proxy

# Start per_mgr daemon to boot modem as esim reset is done or not needed
on property:persist.vendor.modem.esim.reset=done
    start vendor.per_mgr

on property:persist.vendor.modem.esim.reset=noneed
    start vendor.per_mgr

# Force to start per_mgr daemon as boot completed
on property:sys.boot_completed=1
    start vendor.per_mgr

on property:sys.shutdown.requested=*
    stop per_proxy

service vendor.qseecomd /vendor/bin/qseecomd
    class core
    user root
    group root

service init-sensors-sh /vendor/bin/init.sensors.sh
    class main
    user root
    group root system
    disabled
    oneshot

service vendor.adsprpcd /vendor/bin/adsprpcd
   class main
   user system
   group media

service vendor.adsprpcd_audiopd /vendor/bin/adsprpcd audiopd
   class main
   user media
   group media

service vendor.cdsprpcd /vendor/bin/cdsprpcd
   class main
   user system
   group system

service wait_for_strongbox /vendor/bin/hw/wait_for_strongbox
    user root
    group root system
    priority -20
    ioprio rt 0

service vendor.qrtr-ns /vendor/bin/qrtr-ns -f
   class core
   user vendor_qrtr
   group vendor_qrtr
   capabilities NET_BIND_SERVICE

service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config"
   class core
   user root
   oneshot

service modem_svc /vendor/bin/modem_svc -q
   class core
   user root
   group system
   capabilities NET_BIND_SERVICE

service vendor.ss_ramdump /vendor/bin/subsystem_ramdump
    class main
    user root
    group system
    disabled

service vendor.ssr_setup /vendor/bin/ssr_setup
    oneshot
    disabled

on property:persist.vendor.sys.ssr.restart_level=*
    start vendor.ssr_setup

on post-fs-data && property:persist.vendor.sys.ssr.enable_ramdumps=1 && property:vendor.skip.init=0
    write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
    mkdir /data/vendor/wifidump 771 root system
    mkdir /data/vendor/ramdump 771 root system
    mkdir /data/vendor/ssrdump 771 root system
    mkdir /data/vendor/ssrdump/coredump 771 root system
    mkdir /data/vendor/ssrlog  775 root system
    start vendor.ss_ramdump

on property:persist.vendor.sys.ssr.enable_ramdumps=0
    write /sys/module/subsystem_restart/parameters/enable_ramdumps 0

on property:init.svc.vendor.qti.hardware.display.composer=stopped
    stop ppd

on property:init.svc.vendor.qti.hardware.display.composer=running
    start ppd

# Start daemon after boot completed
on property:sys.boot_completed=1
    start vendor.ssgtzd

# Used 'disabled' flag, so daemon won't be started until explicit start
service vendor.ssgtzd /vendor/bin/ssgtzd
    class late_start
    user system
    group system
    disabled
    socket ssgtzd stream 0660 system inet

# charger driver exposes now finer grain control, map demo mode to those properties
# NOTE: demo mode can only be exit wiping data (which reset the persist properties)
on property:sys.retaildemo.enabled=1
    setprop persist.vendor.charge.stop.level 35
    setprop persist.vendor.charge.start.level 30

# Test Harness Mode default battery profile. Restricted but not too restricted.
on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=0
    setprop persist.vendor.charge.stop.level 70
    setprop persist.vendor.charge.start.level 35
    setprop vendor.battery.defender.disable 1

# Extremely restricted battery profile.
on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=1
    setprop persist.vendor.charge.stop.level 50
    setprop persist.vendor.charge.start.level 35
    setprop vendor.battery.defender.disable 1

# Normal behavior (as if the device was a regular device)
on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=2
    setprop persist.vendor.charge.stop.level 100
    setprop persist.vendor.charge.start.level 0

# Unrestricted, allows charging to 100%
on  property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=3
    setprop persist.vendor.charge.stop.level 100
    setprop persist.vendor.charge.start.level 0
    setprop vendor.battery.defender.disable 1

service insmod_sh /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.${ro.hardware}.cfg
    class main
    user root
    group root system
    disabled
    oneshot

service charger_insmod_sh /vendor/bin/init.insmod.sh /vendor/etc/init.insmod.charger.cfg
    class main
    user root
    group root system
    disabled
    oneshot

service vendor.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
    task_profiles ServiceCapacityLow

service pd_mapper /vendor/bin/pd-mapper
     class core
     user system
     group system
     capabilities NET_BIND_SERVICE

service cnss-daemon /vendor/bin/cnss-daemon -n -l
   class late_start
   user system
   group system inet wifi

service loc_launcher /vendor/bin/loc_launcher
    class late_start
    user gps
    group gps

# Allow access to touch
on property:vendor.all.modules.ready=1
    chown system input /dev/touch_offload
    chmod 660 /dev/touch_offload

# Conditionally enable the twoshay touch service
on property:persist.vendor.enable_twoshay=1
    enable twoshay

# bugreport is triggered by holding down volume down, volume up and power
service bugreport /system/bin/dumpstate -d -p -z
    class main
    disabled
    oneshot
    keycodes 114 115 116

# DSDS feature
# Set to Dual-sim mode based on CDT setting
on property:ro.boot.hardware.dsds=1
    setprop persist.radio.multisim.config dsds

# Restart 1st qcrild after SIM config changed
on property:vendor.radio.sim_num.switch=1to2 && property:persist.radio.multisim.config=dsds
    restart vendor.qcrild

on property:vendor.radio.sim_num.switch=2to1 && property:persist.radio.multisim.config=
    restart vendor.qcrild

# Enable 2nd qcrild when the property set to dsds
on property:persist.radio.multisim.config=dsds
    start vendor.qcrild2

# Stop 2nd qcrild when the property set to empty string
on property:persist.radio.multisim.config=
    stop vendor.qcrild2

# For Japan radio builds, always enforce camera shutter sound
# Since this property is read by the audio server in system service,
# it should be written by the system init.
on property:ro.boot.hardware.radio.subtype=1
    setprop audio.camerasound.force true
# BUG FIX: b/163674593
on property:ro.boot.hardware.sku=G5NZ6
    setprop audio.camerasound.force true

on property:persist.sys.device_provisioned=1
    setprop dalvik.vm.dex2oat-cpu-set 0,1,2,3,4,5,7
    setprop dalvik.vm.dex2oat-threads 6
