android_device_lenovo_msm89.../rootdir/init.qcom.rc
2018-06-29 00:01:58 +08:00

435 lines
14 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.device.rc
on early-init
mount debugfs debugfs /sys/kernel/debug
chmod 0755 /sys/kernel/debug
chown root system /dev/kmsg
chmod 0620 /dev/kmsg
on init
# Set permissions for persist partition
mkdir /persist 0771 root system
# Support legacy path
symlink /sdcard /storage/sdcard0
write /sys/module/qpnp_rtc/parameters/poweron_alarm 1
on post-fs
chmod 0755 /sys/kernel/debug/tracing
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
# Graphics
chown system graphics /sys/class/graphics/fb0/idle_time
chmod 0664 /sys/class/graphics/fb0/idle_time
chown system graphics /sys/class/graphics/fb0/dynamic_fps
chmod 0664 /sys/class/graphics/fb0/dynamic_fps
chown system graphics /sys/class/graphics/fb0/dyn_pu
chmod 0664 /sys/class/graphics/fb0/dyn_pu
chown system graphics /sys/class/graphics/fb0/modes
chmod 0664 /sys/class/graphics/fb0/modes
chown system graphics /sys/class/graphics/fb0/mode
chmod 0664 /sys/class/graphics/fb0/mode
chown system graphics /sys/class/graphics/fb0/msm_cmd_autorefresh_en
chmod 0664 /sys/class/graphics/fb0/msm_cmd_autorefresh_en
on boot
chown system system /sys/module/radio_iris_transport/parameters/fmsmd_set
chmod 0660 /sys/module/radio_iris_transport/parameters/fmsmd_set
# 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/display 0770 system graphics
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
# Create NETMGR daemon socket area
mkdir /dev/socket/netmgr 0750 radio radio
# Prevent permission denied error for telephony
chmod 0644 /proc/cmdline
# enable camera read sensors data
setprop persist.camera.gyro.disable 0
# Remove SUID bit for iproute2 ip tool
chmod 0755 /system/bin/ip
setprop net.tcp.2g_init_rwnd 10
# 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
# 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 to dload sysfs node
chown root system /sys/kernel/dload/emmc_dload
chmod 0660 /sys/kernel/dload/emmc_dload
# Goodix Fingerprint
chown system system /dev/goodix_fp
chmod 0644 /dev/goodix_fp
setprop persist.sys.fp.vendor none
start gx_fpd
# IR blaster
chown root system /sys/class/leds/infrared/transmit
chown root system /sys/class/leds/infrared/brightness
# Notification LEDs
chown root system /sys/class/leds/red/blink
chown root system /sys/class/leds/green/blink
chown root system /sys/class/leds/blue/blink
# Wifi firmware reload path
chown wifi wifi /sys/module/wlan/parameters/fwpath
# msm specific files that need to be created on /data
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 TZ Apps
mkdir /data/misc/qsee 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/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/vendor/wifi 0770 wifi wifi
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 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/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
# 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 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
# Create directory from IMS services
mkdir /data/shared 0755
chown system system /data/shared
# Create /data/time folder for time-services
mkdir /data/time/ 0700 system system
mkdir /data/vendor/audio/ 0770 media audio
# Create a folder for audio delta files
mkdir /data/vendor/audio/acdbdata 0770 media audio
mkdir /data/vendor/audio/acdbdata/delta 0770 media audio
setprop vold.post_fs_data_done 1
# Create a folder for SRS to be able to create a usercfg file
mkdir /data/data/media 0770 media media
# Create FM dir for patchdownloader
mkdir /data/misc/fm 0770 system system
chmod 0770 /data/misc/fm
# Create PERFD deamon related dirs
mkdir /data/vendor/perfd 0770 root system
chmod 2770 /data/vendor/perfd
rm /data/vendor/perfd/default_values
# 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
# copy prebuilt qcril.db files always
copy /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril_prebuilt.db
chown radio radio /data/vendor/radio/qcril_prebuilt.db
chmod 0660 /data/vendor/radio/qcril_prebuilt.db
# 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
# set aggressive read ahead for dm-0 and dm-1 during boot up
write /sys/block/dm-0/queue/read_ahead_kb 2048
write /sys/block/dm-1/queue/read_ahead_kb 2048
# Sensors
chmod 0775 /persist/sensors
chmod 0664 /persist/sensors/sensors_settings
chown system root /persist/sensors/sensors_settings
mkdir /data/misc/sensors
chmod 0775 /data/misc/sensors
on property:sys.boot_completed=1
write /dev/kmsg "Boot completed "
# Reset read ahead for dm-0 and dm-1 to 512kb
write /sys/block/dm-0/queue/read_ahead_kb 512
write /sys/block/dm-1/queue/read_ahead_kb 512
# WDSP FW boot sysfs node used by STHAL
chown media audio /sys/kernel/wdsp0/boot
# CPE fw_name used by sound trigger HAL
chown media audio /sys/kernel/wcd_cpe0/fw_name
on property:vold.decrypt=trigger_restart_framework
start wcnss-service
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 main
user root
writepid /dev/cpuset/system-background/tasks
service hciattach /vendor/bin/hci_qcomm_init -e
class late_start
user bluetooth
group bluetooth net_bt_admin oem_2950 diag radio
disabled
oneshot
on property:bluetooth.hciattach=true
start hciattach
setprop bluetooth.status on
on property:bluetooth.hciattach=false
setprop bluetooth.status off
# FM
on property:hw.fm.init=0
write /sys/module/radio_iris_transport/parameters/fmsmd_set 0
on property:hw.fm.init=1
write /sys/module/radio_iris_transport/parameters/fmsmd_set 1
service netmgrd /vendor/bin/netmgrd
class main
user root
group root wifi wakelock radio inet
writepid /dev/cpuset/system-background/tasks
service qti /vendor/bin/qti
class main
user radio
group radio oem_2901 usb
writepid /dev/cpuset/system-background/tasks
service sensors /vendor/bin/sensors.qcom
class core
user root
group root
writepid /dev/cpuset/system-background/tasks
# 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 -dd \
-e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
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 /system/bin/sh /init.qcom.sh
class late_start
user root
oneshot
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 charger /charger
class charger
group system graphics
seclabel u:r:healthd:s0
service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf
class late_start
user root
group root
writepid /dev/cpuset/system-background/tasks
service gx_fpd /vendor/bin/gx_fpd
class core
user root
group system system
disabled
on property:persist.sys.fp.vendor=switchf
stop gx_fpd
setprop persist.sys.fp.vendor searchf
start fingerprintd
setprop ro.boot.fpsensor fpc
on property:persist.sys.fp.vendor=goodix
setprop ro.boot.fpsensor gdx
on property:persist.sys.fp.onstart=1
start fingerprintd
on property:ro.boot.fpsensor=gdx
setprop ro.hardware.fingerprint goodix
service time_daemon /vendor/bin/time_daemon
class main
user root
group root