android_device_samsung_msm8.../rootdir/etc/init.qcom.rc
2018-07-19 13:48:02 +03:00

598 lines
20 KiB
Text

# Copyright (c) 2009-2012, 2014-2017, The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
import init.qcom.power.rc
import init.qcom.usb.rc
import init.target.rc
import init.samsung.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
chown root system /dev/kmsg
chmod 0620 /dev/kmsg
symlink /data/tombstones /tombstones
# ZRAM setup
write /sys/block/zram0/comp_algorithm lz4
write /proc/sys/vm/page-cluster 0
on init
# Set permissions for persist partition
mkdir /persist 0771 root system
symlink /sdcard /storage/sdcard0
# Create cgroup mount point for memory
mkdir /sys/fs/cgroup/memory/bg 0750 root system
write /sys/fs/cgroup/memory/bg/memory.swappiness 140
write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1
chown root system /sys/fs/cgroup/memory/bg/tasks
chmod 0660 /sys/fs/cgroup/memory/bg/tasks
write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
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.qcom
on late-fs
# boot time fs tune
write /sys/block/sda/queue/iostats 0
write /sys/block/sda/queue/scheduler cfq
write /sys/block/sda/queue/iosched/slice_idle 0
write /sys/block/sda/queue/read_ahead_kb 2048
write /sys/block/sda/queue/nr_requests 256
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
on post-fs-data
mkdir /data/vendor/misc 01771 system system
# Create directory used by display clients
mkdir /data/vendor/display 0770 system graphics
# Create directory used by media clients
mkdir /data/vendor/media 0770 mediacodec media
# Create directories for fingerprint
mkdir /data/misc/stargate 0770 system system
mkdir /data/misc/stargate/bg_estimation 0770 system system
mkdir /data/misc/stargate/calib_test 0770 system system
mkdir /data/misc/stargate/database 0770 system system
# Create directory for tftp
mkdir /data/vendor/tombstones 0771 system system
# Create folder for mm-qcamera-daemon
mkdir /data/misc/camera 0770 camera camera
mkdir /data/vendor/camera 0770 camera camera
mkdir /data/media 0770 media_rw media_rw
chown media_rw media_rw /data/media
mkdir /data/vendor/ramdump 0771 root system
mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth
mkdir /data/vendor/ramdump/bluetooth 0770 bluetooth bluetooth
# 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
# Create netmgr log dir
mkdir /data/vendor/netmgr 0770 radio radio
chmod 0770 /data/vendor/netmgr
# Create ipacm log dir
mkdir /data/vendor/ipa 0770 radio radio
chmod 0770 /data/vendor/ipa
# Create the directories used by CnE subsystem
mkdir /data/connectivity 0771 system system
chown system system /data/connectivity
# Create directory used by audio subsystem
mkdir /data/vendor/misc/audio 0770 audio audio
# Create directory for audio delta files
mkdir /data/vendor/misc/audio/acdbdata 0770 media audio
mkdir /data/vendor/misc/audio/acdbdata/delta 0770 media audio
# Create directory for radio
mkdir /data/vendor/radio 0770 system radio
# 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
# SSC/SLPI sensors
mkdir /persist/sensors
chown root system /persist/sensors
chmod 0775 /persist/sensors
chown root system /persist/sensors/sensors_settings
chmod 0664 /persist/sensors/sensors_settings
chown root system /persist/sensors/sns.reg
chmod 0664 /persist/sensors/sns.reg
chown root system /persist/PRSensorData.txt
chmod 0660 /persist/PRSensorData.txt
chown root system /persist/PSensor3cm_ct.txt
chmod 0660 /persist/PSensor3cm_ct.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 0660 /dev/sensors
# Create /data/time folder for time-services
mkdir /data/time/ 0700 system system
setprop vold.post_fs_data_done 1
# Create PERFD deamon related dirs
mkdir /data/vendor/perfd 0770 root system
chmod 2770 /data/vendor/perfd
rm /data/vendor/perfd/default_values
# NFC local data and nfcee xml storage
mkdir /data/nfc 0770 nfc nfc
mkdir /data/nfc/param 0770 nfc nfc
# Create IOP deamon related dirs
mkdir /data/vendor/iop 0770 root system
# 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
on early-boot
# Set RLIMIT_MEMLOCK to 64MB
setrlimit 8 67108864 67108864
# Allow subsystem (modem etc) debugging
write /sys/kernel/boot_adsp/boot 1
write /sys/kernel/boot_slpi/boot 1
chown root audio /sys/kernel/boot_adsp/boot
# SSR setup
write /sys/bus/msm_subsys/devices/subsys0/restart_level "related"
write /sys/bus/msm_subsys/devices/subsys1/restart_level "related"
write /sys/bus/msm_subsys/devices/subsys2/restart_level "related"
write /sys/bus/msm_subsys/devices/subsys3/restart_level "related"
write /sys/bus/msm_subsys/devices/subsys4/restart_level "related"
write /sys/bus/msm_subsys/devices/subsys5/restart_level "related"
on boot
# Access permission for Bluetooth
chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power
chown bluetooth net_bt /sys/class/rfkill/rfkill0/type
chown bluetooth net_bt /sys/class/rfkill/rfkill0/state
chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo
chown bluetooth net_bt /dev/ttyHS0
chmod 0660 /sys/module/bluetooth_power/parameters/power
chmod 0660 /sys/class/rfkill/rfkill0/device/extldo
chmod 0660 /sys/class/rfkill/rfkill0/state
chmod 0660 /dev/ttyHS0
chown system system /sys/module/msm_core/parameters/polling_interval
chown system system /sys/module/msm_core/parameters/disabled
chown system system /sys/kernel/debug/msm_core/enable
chown system system /sys/kernel/debug/msm_core/ptable
# Access permission for fingerprint
chown system system /sys/devices/soc/soc:fpc_fpc1020/irq
chown system system /sys/devices/soc/soc:fpc_fpc1020/enable_key_events
chown system system /sys/devices/soc/soc:fpc_fpc1020/enable_wakeup
chown system system /sys/devices/soc/soc:fpc_fpc1020/proximity_state
# Access permission for secure touch
chmod 0660 /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch_enable
chmod 0440 /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch
chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch_enable
chown system drmrpc /sys/devices/soc/75ba000.i2c/i2c-12/12-0020/secure_touch
# Access permission for smartPA
chmod 0666 /dev/i2c-3
chmod 0666 /dev/i2c-9
# Create QMUX deamon socket area
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
mkdir /persist/drm 0770 system system
mkdir /persist/bluetooth 0770 bluetooth bluetooth
mkdir /persist/misc 0770 system system
mkdir /persist/alarm 0770 system system
mkdir /persist/time 0770 system system
mkdir /persist/data 0700 system system
mkdir /persist/data/sfs 0700 system system
mkdir /persist/data/tz 0700 system system
mkdir /persist/qc_senseid 0700 system system
mkdir /persist/bms 0700 root system
mkdir /persist/wlan_bt 0700 system system
mkdir /persist/audio 0777 media audio
mkdir /persist/display 0770 system graphics
restorecon_recursive /persist
# Create NETMGR daemon socket area
mkdir /dev/socket/netmgr 0750 radio radio
# LED torch permissions
chmod 0666 /sys/class/leds/led:torch_0/brightness
chmod 0666 /sys/class/leds/led:torch_1/brightness
chmod 0666 /sys/class/leds/led:switch/brightness
# Graphic node permissions
chown system graphics /sys/class/graphics/fb0/idle_time
chown system graphics /sys/class/graphics/fb0/dyn_pu
chown system graphics /sys/class/graphics/fb0/modes
chown system graphics /sys/class/graphics/fb0/mode
chown system graphics /sys/class/graphics/fb0/msm_cmd_autorefresh_en
chmod 0664 /sys/class/graphics/fb0/idle_time
chmod 0664 /sys/class/graphics/fb0/dyn_pu
chmod 0664 /sys/class/graphics/fb0/modes
chmod 0664 /sys/class/graphics/fb0/mode
chmod 0664 /sys/class/graphics/fb0/msm_cmd_autorefresh_en
# 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
# Enable default router information in RA
write /proc/sys/net/ipv6/conf/default/accept_ra_defrtr 1
# To prevent out of order acknowledgements from making
# connection tracking to treat them as not belonging to
# the connection they belong to.
# Otherwise, a weird issue happens in which some long
# connections on high-throughput links get dropped when
# an ack packet comes out of order
write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1
# Allow access for CCID command/response timeout configuration
chown system system /sys/module/ccid_bridge/parameters/bulk_msg_timeout
# Wifi firmware reload path
chown wifi wifi /sys/module/wlan/parameters/fwpath
on property:sys.boot_completed=1
# Enable ZRAM on boot_complete
swapon_all /vendor/etc/fstab.qcom
# end boot time fs tune
write /sys/block/sda/queue/read_ahead_kb 128
write /sys/block/sda/queue/nr_requests 128
write /sys/block/dm-0/queue/read_ahead_kb 128
write /sys/block/dm-1/queue/read_ahead_kb 128
write /sys/block/sda/queue/iostats 1
# CPE fw_name used by sound trigger HAL
chown media audio /sys/kernel/wcd_cpe0/fw_name
on property:persist.env.fastdorm.enabled=true
setprop persist.radio.data_no_toggle 1
service cnd /vendor/bin/cnd
class main
user system
group system wifi inet radio wakelock net_admin
writepid /dev/cpuset/system-background/tasks
service dpmQmiMgr /vendor/bin/dpmQmiMgr
class main
user system
group radio system
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
group system wakelock
shutdown critical
ioprio rt 0
writepid /dev/cpuset/system-background/tasks
service tftp_server /vendor/bin/tftp_server
class core
user root
writepid /dev/cpuset/system-background/tasks
on property:wc_transport.start_hci=true
start start_hci_filter
on property:wc_transport.start_hci=false
stop start_hci_filter
service start_hci_filter /vendor/bin/wcnss_filter
class late_start
user bluetooth
group bluetooth oem_2950
disabled
on property:wc_transport.start_root=true
start hci_filter_root
on property:wc_transport.start_root=false
stop hci_filter_root
service hci_filter_root /vendor/bin/wcnss_filter
class late_start
user bluetooth
group bluetooth oem_2950 system
disabled
service atfwd /vendor/bin/ATFWD-daemon
class late_start
user system
group system radio
writepid /dev/cpuset/system-background/tasks
service netmgrd /vendor/bin/netmgrd
class main
user root
group root wifi wakelock radio inet
writepid /dev/cpuset/system-background/tasks
service ipacm /vendor/bin/ipacm
class main
user radio
group radio inet
writepid /dev/cpuset/system-background/tasks
service qti /vendor/bin/qti
class main
user radio
group radio oem_2950 usb
writepid /dev/cpuset/system-background/tasks
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
writepid /dev/cpuset/system-background/tasks
on property:ro.use_data_netmgrd=false
# netmgr not supported on specific target
stop netmgrd
# Adjust socket buffer to enlarge TCP receive window for high bandwidth
# but only if ro.data.large_tcp_window_size property is set.
on property:ro.data.large_tcp_window_size=true
write /proc/sys/net/ipv4/tcp_adv_win_scale 2
on property:sys.sysctl.tcp_adv_win_scale=*
write /proc/sys/net/ipv4/tcp_adv_win_scale ${sys.sysctl.tcp_adv_win_scale}
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 \
-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 net_admin wifi
on property:sys.shutdown.requested=*
stop cnss-daemon
service loc_launcher /vendor/bin/loc_launcher
#loc_launcher will start as root and set its uid to gps
class late_start
group gps inet diag wifi
writepid /dev/cpuset/system-background/tasks
service qcom-sh /vendor/bin/init.qcom.sh
class late_start
user root
oneshot
service panel-sh /vendor/bin/init.panel.sh
class core
user root
oneshot
on property:ro.data.large_tcp_window_size=true
# Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB)
write /proc/sys/net/ipv4/tcp_adv_win_scale 2
service ril-daemon2 /vendor/bin/hw/rild -c 2
class main
user radio
group radio cache inet misc audio log readproc wakelock oem_2901
capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
service qseecomd /vendor/bin/qseecomd
class core
user root
group root
writepid /dev/cpuset/system-background/tasks
service time_daemon /vendor/bin/time_daemon
class main
user root
group root
writepid /dev/cpuset/system-background/tasks
# 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/system-background/tasks
# Start up peripheral manager
service per_mgr /vendor/bin/pm-service
class core
user system
group system
writepid /dev/cpuset/system-background/tasks
service per_proxy /vendor/bin/pm-proxy
class core
user system
group system
writepid /dev/cpuset/system-background/tasks
disabled
on property:init.svc.per_mgr=running
start per_proxy
on property:sys.shutdown.requested=*
stop per_proxy
service readfem /vendor/bin/readfem
class main
user root
group root oem_2950
oneshot
service readmac /vendor/bin/readmac
class main
user root
group root oem_2950
oneshot
service thermal-engine /vendor/bin/thermal-engine -c ${sys.qcom.thermalcfg:-/vendor/etc/thermal-engine-8996.conf}
class main
user root
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
socket thermal-send-rule stream 0660 system system
group root
writepid /dev/cpuset/system-background/tasks
service adsprpcd /vendor/bin/adsprpcd
class main
user media
group media
service imsqmidaemon /vendor/bin/imsqmidaemon
class main
user system
socket ims_qmid stream 0660 system radio
group radio log diag
writepid /dev/cpuset/system-background/tasks
service imsdatadaemon /vendor/bin/imsdatadaemon
class main
user system
socket ims_datad stream 0660 system radio
group system wifi radio inet log diag
writepid /dev/cpuset/system-background/tasks
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 vendor.imsrcsservice /vendor/bin/imsrcsd
class main
user system
group radio diag inet log
writepid /dev/cpuset/system-background/tasks
disabled
on property:vendor.ims.DATA_DAEMON_STATUS=1
start ims_rtp_daemon
start vendor.imsrcsservice
service ppd /vendor/bin/mm-pp-dpps
class late_start
user system
group system graphics
socket pps stream 0660 system system
disabled
on property:init.svc.surfaceflinger=stopped
stop ppd
on property:init.svc.surfaceflinger=running
start ppd
on property:init.svc.surfaceflinger=restarting
stop hwcomposer-2-1
start hwcomposer-2-1
stop ppd
on property:init.svc.zygote=stopped
stop ppd
on property:init.svc.zygote=running
start ppd
on property:init.svc.zygote=restarting
stop ppd
on property:slpi.restart=1
write /sys/kernel/debug/msm_subsys/slpi restart