blob: 7339b042965cd10c7289f1dcff9512b67bb3cd14 [file] [log] [blame]
#
# 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
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
# Loading kernel modules in background
start insmod_sh
# 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
wait /dev/block/platform/soc/${ro.boot.bootdevice}
symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice
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
# qseecomd needs /dev/block/bootdevice
# vold needs keymaster that needs qseecomd
start qseecomd
on late-fs
# Start devices by sysfs trigger
start devstart_sh
# Start services for bootanim
start surfaceflinger
start bootanim
start hwcomposer-2-1
start configstore-hal-1-0
start 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