#
# Copyright (C) 2016 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.hardware}.usb.rc

on charger
    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
    wait /dev/block/platform/soc/${ro.boot.bootdevice}
    # Enable UFS powersaving
    write /sys/devices/soc/${ro.boot.bootdevice}/clkscale_enable 1
    write /sys/devices/soc/${ro.boot.bootdevice}/clkgate_enable 1
    write /sys/devices/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1
    write /sys/class/typec/port0/port_type sink
    write /sys/module/lpm_levels/parameters/sleep_disabled N

service charger /charger
    class charger
    seclabel u:r:charger:s0

on early-init
    mount debugfs debugfs /sys/kernel/debug
    chmod 0755 /sys/kernel/debug
    # Loading kernel modules in background
    start insmod_sh

on init
    # Disable UFS powersaving
    write /sys/devices/soc/${ro.boot.bootdevice}/clkscale_enable 0
    write /sys/devices/soc/${ro.boot.bootdevice}/clkgate_enable 0
    write /sys/devices/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 0
    write /sys/module/lpm_levels/parameters/sleep_disabled Y

    # QSEE rpmb listener need symlink for bootdevice
    wait /dev/block/platform/soc/${ro.boot.bootdevice}
    symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice

    # start qseecomd early as we mount system/ vendor/ early
    # vold needs keymaster that needs qseecomd
    start qseecomd

    # Support legacy paths
    symlink /sdcard /mnt/sdcard
    symlink /sdcard /storage/sdcard0

    # disable thermal hotplug for thermal
    write /sys/module/msm_thermal/core_control/enabled 0

    # 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
    # configure governor settings for little cluster
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "schedutil"
    write /sys/devices/system/cpu/cpufreq/policy0/schedutil/up_rate_limit_us 500
    write /sys/devices/system/cpu/cpufreq/policy0/schedutil/down_rate_limit_us 20000

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

    # set default schedTune value for foreground/top-app
    write /dev/stune/foreground/schedtune.prefer_idle 1
    write /dev/stune/top-app/schedtune.boost 10
    write /dev/stune/top-app/schedtune.prefer_idle 1

    # Setup cpusets used by the VR services.
    mkdir /dev/cpuset/kernel 0750 root system
    write /dev/cpuset/kernel/cpus 0
    write /dev/cpuset/kernel/mems 0
    chown system system /dev/cpuset/kernel/tasks
    chmod 0660 /dev/cpuset/kernel/tasks

    mkdir /dev/cpuset/system 0750 root system
    write /dev/cpuset/system/cpus 0
    write /dev/cpuset/system/mems 0
    chown system system /dev/cpuset/system/tasks
    chmod 0660 /dev/cpuset/system/tasks

    mkdir /dev/cpuset/system/performance 0750 root system
    write /dev/cpuset/system/performance/cpus 0
    write /dev/cpuset/system/performance/mems 0
    chown system system /dev/cpuset/system/performance/tasks
    chmod 0660 /dev/cpuset/system/performance/tasks

    mkdir /dev/cpuset/system/background 0750 root system
    write /dev/cpuset/system/background/cpus 0
    write /dev/cpuset/system/background/mems 0
    chown system system /dev/cpuset/system/background/tasks
    chmod 0660 /dev/cpuset/system/background/tasks

    mkdir /dev/cpuset/application 0750 root system
    write /dev/cpuset/application/cpus 0
    write /dev/cpuset/application/mems 0
    chown system system /dev/cpuset/application/tasks
    chmod 0660 /dev/cpuset/application/tasks

    mkdir /dev/cpuset/application/performance 0750 root system
    write /dev/cpuset/application/performance/cpus 0
    write /dev/cpuset/application/performance/mems 0
    chown system system /dev/cpuset/application/performance/tasks
    chmod 0660 /dev/cpuset/application/performance/tasks

    mkdir /dev/cpuset/application/background 0750 root system
    write /dev/cpuset/application/background/cpus 0
    write /dev/cpuset/application/background/mems 0
    chown system system /dev/cpuset/application/background/tasks
    chmod 0660 /dev/cpuset/application/background/tasks

    # Create UDS structure for base VR services.
    mkdir /dev/socket/pdx 0775 system system
    mkdir /dev/socket/pdx/system 0775 system system
    mkdir /dev/socket/pdx/system/buffer_hub 0775 system system
    mkdir /dev/socket/pdx/system/performance 0775 system system
    mkdir /dev/socket/pdx/system/vr 0775 system system
    mkdir /dev/socket/pdx/system/vr/display 0775 system system
    mkdir /dev/socket/pdx/system/vr/pose 0775 system system
    mkdir /dev/socket/pdx/system/vr/sensors 0775 system system

    # Disable retention
    write /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled N
    write /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled N
    write /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled N
    write /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled N
    write /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled N
    write /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled N
    write /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled N
    write /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled N
    write /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled N
    write /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled N
    write /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled N
    write /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled N

    # b/37682684 Enable suspend clock reporting
    write /sys/kernel/debug/clk/debug_suspend 1

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

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

    mkdir /persist/data 0700 system system
    mkdir /persist/display 0770 system graphics
    mkdir /persist/rfs 0770 root system
    mkdir /persist/hlos_rfs 0770 root system
    mkdir /persist/elabel 0700 system system
    chmod 0770 /persist/rfs
    chmod 0770 /persist/rfs/shared
    chmod 0770 /persist/rfs/msm
    chmod 0770 /persist/rfs/msm/adsp
    chown system system /persist/rfs/msm/adsp
    chmod 0770 /persist/rfs/msm/mpss
    chown system system /persist/rfs/msm/mpss
    mkdir /persist/rfs/msm/slpi 0770 system system
    chmod 0770 /persist/rfs/mdm
    chmod 0770 /persist/rfs/mdm/adsp
    chown system system /persist/rfs/mdm/adsp
    chmod 0770 /persist/rfs/mdm/mpss
    chown system system /persist/rfs/mdm/mpss
    mkdir /persist/rfs/mdm/slpi 0770 system system
    chmod 0770 /persist/rfs/mdm/sparrow
    chown system system /persist/rfs/mdm/sparrow
    mkdir /persist/rfs/mdm/tn 0770 system system
    chmod 0770 /persist/rfs/apq
    chmod 0770 /persist/rfs/apq/gnss
    chmod 0770 /persist/hlos_rfs
    restorecon_recursive /persist

    # Start HW service manager early
    start hwservicemanager

on late-fs
    # Start devices by sysfs trigger
    start devstart_sh
    # Start services for bootanim
    start surfaceflinger
    start bootanim
    start vendor.hwcomposer-2-1
    start vendor.configstore-hal
    start vendor.gralloc-2-0

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

    # Required for time_daemon
    mkdir /persist/time 0770 system system

    # Start time daemon early so that the system time can be set early
    start time_daemon

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

    chmod 0664 /sys/devices/virtual/graphics/fb0/idle_time
    chown system graphics /sys/devices/virtual/graphics/fb0/idle_time
    write /sys/devices/virtual/graphics/fb0/idle_time 100

    # Wait qseecomd started
    wait_for_prop sys.listeners.registered true

on property:sys.user.0.ce_available=true
    mkdir /data/misc_ce/0/ramoops
    start ramoops_sh

on property:sys.ramoops.decrypted=true
    mount pstore pstore /sys/fs/pstore
    chown system log /sys/fs/pstore/console-ramoops
    chmod 0440 /sys/fs/pstore/console-ramoops
    chown system log /sys/fs/pstore/console-ramoops-0
    chmod 0440 /sys/fs/pstore/console-ramoops-0
    chown system log /sys/fs/pstore/pmsg-ramoops-0
    chmod 0440 /sys/fs/pstore/pmsg-ramoops-0

on property:sys.listeners.registered=true
    # load IPA FWs
    start ipastart_sh

on post-fs-data
    # We can start netd here before in is launched in common init.rc on zygote-start
    start netd

    # b/38048356 Setup debug folders for camera
    mkdir /data/vendor/camera 0770 camera camera

    # b/38496103 Setup debug folders for display
    mkdir /data/vendor/display 0770 system graphics

    # keep that at the end of on post-fs-data
    # Set indication (checked by vold) that we have finished this action
    setprop vold.post_fs_data_done 1

    # Wait until the system time is set
    wait_for_prop sys.time.set true

# zygote need to be started after otapreopt which will be done on post-fs-data
on zygote-start
    # zygote is started in common init.rc
    # and now we can continue to initialize /data/
    mkdir /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/misc/qvop 0660 system system
    mkdir /data/misc/hbtp 0750 system system
    mkdir /data/misc/seemp 0700 system system

    # Create directory for TZ Apps
    mkdir /data/misc/qsee 0770 system system

    mkdir /data/media 0770 media_rw media_rw
    chown media_rw media_rw /data/media

    mkdir /data/vendor/ipa 0770 radio radio
    chown radio radio /data/vendor/ipa

    # Create the directories used by the Wireless subsystem
    mkdir /data/misc/wifi 0770 wifi wifi
    mkdir /data/misc/wifi/sockets 0770 wifi wifi
    mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp

    # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections
    # We chown/chmod /persist again so because mount is run as root + defaults
    chown root system /persist
    chmod 0771 /persist
    chown system system /persist/WCNSS_qcom_wlan_nv.bin

    # Create directory for hostapd
    mkdir /data/hostapd 0770 system wifi

    # Trigger WLAN driver load
    write /sys/kernel/boot_wlan/boot_wlan 1

    #create port-bridge log dir
    mkdir /data/misc/port_bridge 0770 radio radio
    chmod 0770 /data/misc/port_bridge

    #create netmgr log dir
    mkdir /data/vendor/netmgr 0771 radio radio
    chmod 0771 /data/vendor/netmgr

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

    # Create the directories used by DPM subsystem
    mkdir /data/dpm 0771 system system
    chown system system /data/dpm

    mkdir /data/dpm/nsrm 0771 system system
    chown system system /data/dpm/nsrm

    # Create directory used by audio subsystem
    mkdir /data/misc/audio 0770 audio audio

    # Create directory for audio delta files
    mkdir /data/misc/audio/acdbdata 0770 media audio
    mkdir /data/misc/audio/acdbdata/delta 0770 media audio

    # Create directory used by the DASH client
    mkdir /data/misc/dash 0770 media audio

    # Create directory for radio
    mkdir /data/vendor/radio 0771 system radio

    # Create directory used by display clients
    mkdir /data/misc/display 0770 system graphics

    # Create perfd related dirs
    mkdir /data/system/perfd 0770 root system
    chmod 2770 /data/system/perfd

    # Setup sensors-related directories and permissions
    mkdir /persist/sensors 0775
    chown root system /persist/sensors
    write /persist/sensors/sensors_settings 1
    chown root system /persist/sensors/sensors_settings
    chmod 664 /persist/sensors/sensors_settings
    chown root system /persist/sensors/sns.reg
    chmod 664 /persist/sensors/sns.reg

    mkdir /data/vendor/sensors 0770
    chown system system /data/vendor/sensors

    # These files might have been created by root from a prior build - make sure
    # they are accessible to the sensors daemon
    chown system system /data/vendor/sensors/cal.bin
    chown system system /data/vendor/sensors/cal.txt

    # /dev/sensors only supports an ioctl to get the current SLPI timestamp;
    # allow the sensors daemon to perform this as non-root
    chown root system /dev/sensors
    chmod 660 /dev/sensors

    # 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

    # NFC local data and nfcee xml storage
    mkdir /data/nfc 0770 nfc nfc
    mkdir /data/nfc/param 0770 nfc nfc
    mkdir /data/vendor/nfc 0770 nfc nfc

    # b/62837579 elabel directory
    mkdir /data/misc/elabel 0700 system system


on early-boot
    # wait for devices
    wait_for_prop sys.qcom.devup 1
    # wait for insmod_sh to finish all modules
    wait_for_prop sys.all.modules.ready 1
    # Update dm-verity state and set partition.*.verified properties
    verity_update_state

    # Permission for laser sensor driver
    chown camera camera /sys/class/wahoo_laser/laser/enable_ps_sensor

    # 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

    # Permission for LED driver
    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
    chown system system /sys/class/leds/green/rgb_start
    chown system system /sys/class/leds/blue/rgb_start
    chown system system /sys/class/graphics/fb0/msm_fb_persist_mode

on boot
    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_bluetooth 0770 bluetooth bluetooth
    chmod 2770 /dev/socket/qmux_bluetooth
    mkdir /dev/socket/qmux_gps 0770 gps gps
    chmod 2770 /dev/socket/qmux_gps

    # Create NETMGR daemon socket area
    mkdir /dev/socket/netmgr 0750 radio radio

    setprop wifi.interface wlan0

    # Define TCP buffer sizes for various networks
    # ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax,
    setprop net.tcp.buffersize.wifi    524288,2097152,4194304,262144,524288,1048576

    # 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

    # Update DVR cpusets to boot-time values.
    write /dev/cpuset/kernel/cpus 0-7
    write /dev/cpuset/system/cpus 0-7
    write /dev/cpuset/system/performance/cpus 0-7
    write /dev/cpuset/system/background/cpus 0-7
    write /dev/cpuset/system/cpus 0-7
    write /dev/cpuset/application/cpus 0-7
    write /dev/cpuset/application/performance/cpus 0-7
    write /dev/cpuset/application/background/cpus 0-7
    write /dev/cpuset/application/cpus 0-7

    # Bluetooth
    chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
    chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
    chmod 0660 /sys/class/rfkill/rfkill0/state
    chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo
    chmod 0660 /sys/class/rfkill/rfkill0/device/extldo

    # Wifi firmware reload path
    chown wifi wifi /sys/module/wlan/parameters/fwpath

    # Allow system to write to cycle_count_id to iterate and get stats
    chown system system /sys/class/power_supply/bms/cycle_count_id
    chmod 0666 /sys/class/power_supply/bms/cycle_count_id

    # default country code
    setprop ro.boot.wificountrycode 00

    # Encrypted ramoops
    umount /sys/fs/pstore
    chmod 770 /dev/access-ramoops
    chown system system /dev/access-ramoops
    chmod 770 /dev/access-metadata
    chown system system /dev/access-metadata

    # Make the ftm4 command node writeable from dumpstate
    chown system system /sys/devices/virtual/input/ftm4_touch/cmd

    # ftm4 VR mode
    chown system system /sys/devices/virtual/input/ftm4_touch/vrmode

service init-elabel-sh /system/bin/init.elabel.sh
    class late_start
    user system
    group system
    oneshot

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

service folio_daemon /system/bin/folio_daemon
    class late_start
    user system
    group system

service perfd /vendor/bin/perfd
   class main
   user root
   group root readproc system
   socket perfd seqpacket 0666 root system
   disabled

service thermal-engine /vendor/bin/thermal-engine -c ${sys.qcom.thermalcfg:-/vendor/etc/thermal-engine.conf}
   class main
   user root
   group root system
   socket thermal-send-client stream 0666 system system
   socket thermal-recv-client stream 0660 system system
   socket thermal-recv-passive-client stream 0666 system system

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

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

service ssr_setup /vendor/bin/ssr_setup
    oneshot
    disabled

service ssr_diag /vendor/bin/ssr_diag
    class late_start
    user system
    group system
    disabled

service per_mgr /vendor/bin/pm-service
    class core
    user system
    group system
    ioprio rt 4
    shutdown critical

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

on property:sys.post_boot.parsed=1
    start perfd

on property:sys.boot_completed=1
    # Enable power setting and set sys.post_boot.parsed to 1
    # to start perfd
    start power_sh

    # Enable UFS powersaving
    write /sys/devices/soc/${ro.boot.bootdevice}/clkscale_enable 1
    write /sys/devices/soc/${ro.boot.bootdevice}/clkgate_enable 1
    write /sys/devices/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1
    write /sys/module/lpm_levels/parameters/sleep_disabled N

    # Enable ZRAM on boot_complete
    swapon_all /vendor/etc/fstab.${ro.hardware}

    # Setup final cpuset
    write /dev/cpuset/top-app/cpus 0-7
    write /dev/cpuset/foreground/boost/cpus 0-3,6-7
    write /dev/cpuset/foreground/cpus 0-3,6-7
    write /dev/cpuset/background/cpus 0-1
    write /dev/cpuset/system-background/cpus 0-3

    # Update DVR cpusets to runtime values.
    write /dev/cpuset/kernel/cpus 2,3
    write /dev/cpuset/system/performance/cpus 6-7
    write /dev/cpuset/system/background/cpus 0-1
    write /dev/cpuset/system/cpus 0-1,6-7
    write /dev/cpuset/application/performance/cpus 4-5
    write /dev/cpuset/application/background/cpus 0-1
    write /dev/cpuset/application/cpus 0-1,4-5

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

on shutdown
    stop per_proxy
    # Disable subsystem restart
    write /sys/module/subsystem_restart/parameters/disable_restart_work 0x9889deed

service qseecomd /vendor/bin/qseecomd
   class core
   user root
   group root
   shutdown critical

service time_daemon /vendor/bin/time_daemon
   class core
   user root
   group root

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

on property:persist.sys.ssr.enable_ramdumps=1
    write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
    mkdir /data/vendor/ssrdump 761 root system
    mkdir /data/vendor/ramdump 771 root system
    mkdir /data/vendor/ramdump/bluetooth 771 root system
    start ss_ramdump

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

service sensors /vendor/bin/sensors.qcom
    class core
    user system
    group system
    # Grants the ability for this daemon to bind IPC router ports so it can
    # register QMI services
    capabilities NET_BIND_SERVICE

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

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

service rmt_storage /vendor/bin/rmt_storage
    class core
    user root
    ioprio rt 0
    shutdown critical

service tftp_server /vendor/bin/tftp_server
   class core
   user root
   group root system

service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
    -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
    -I/vendor/etc/wifi/p2p_supplicant_overlay.conf -N \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
    -I/vendor/etc/wifi/wpa_supplicant_overlay.conf \
    -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 -dd \
    -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    #   we will start as root and wpa_supplicant will switch to user wifi
    #   after setting up the capabilities required for WEXT
    #   user wifi
    #   group wifi inet keystore
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

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

service imsqmidaemon /vendor/bin/imsqmidaemon
   class main
   user system
   socket ims_qmid stream 0660 system radio
   group radio log diag

service imsdatadaemon /vendor/bin/imsdatadaemon
   class main
   user system
   socket ims_datad stream 0660 system radio
   group system wifi radio inet log
   disabled

on property:vendor.ims.QMI_DAEMON_STATUS=1
   start imsdatadaemon

service ims_rtp_daemon /vendor/bin/ims_rtp_daemon
   class main
   user system
   group radio diag inet log
   disabled

service imsrcsservice /vendor/bin/imsrcsd
   class hal
   user system
   group radio diag inet log
   disabled

on property:vendor.ims.DATA_DAEMON_STATUS=1
   start ims_rtp_daemon
   start imsrcsservice

service qmuxd /vendor/bin/qmuxd
   class main
   user root
   group radio audio bluetooth gps nfc qcom_diag

#TODO evaluate group system once b/62571088 is resolved
service cnd /vendor/bin/cnd
   class main
   user system
   group inet system wifi radio wakelock

service netmgrd /vendor/bin/netmgrd
    class main
    user root
    group root wifi wakelock radio inet

service port-bridge /vendor/bin/port-bridge
    class main
    user radio
    group radio system inet
    oneshot

service ipacm /vendor/bin/ipacm
    class main
    user radio
    group radio inet

service qti /vendor/bin/qti
    class main
    user radio
    group radio net_raw diag usb net_admin

on property:wc_transport.start_hci=true
    start hci_filter

on property:wc_transport.start_hci=false
    stop hci_filter

service hci_filter /vendor/bin/wcnss_filter
    class late_start
    user bluetooth
    group bluetooth diag system wakelock
    disabled

service loc_launcher /vendor/bin/loc_launcher
    class late_start
    group gps inet diag wifi

service pd_mapper /vendor/bin/pd-mapper
     class core

service atfwd /vendor/bin/ATFWD-daemon
    class late_start
    user system
    group system radio
    disabled

on property:persist.radio.atfwd.start=true
    start atfwd

on property:persist.radio.atfwd.start=false
    stop atfwd

# 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

service chre /vendor/bin/chre
    class late_start
    user system
    group system
    socket chre seqpacket 0660 root system
    shutdown critical

service power_sh /vendor/bin/init.power.sh
    class main
    user root
    group root system
    disabled
    oneshot

service devstart_sh /vendor/bin/init.qcom.devstart.sh
    class main
    user root
    group root system
    disabled
    oneshot

service ipastart_sh /vendor/bin/init.qcom.ipastart.sh
    class main
    user system
    group net_admin
    disabled
    oneshot

service insmod_sh /vendor/bin/init.insmod.sh
    class main
    user root
    group root system
    disabled
    oneshot

service ramoops_sh /system/bin/init.ramoops.sh
    class main
    user root
    group root system
    disabled
    oneshot

