# Copyright (c) 2009-2012, 2014-2020, 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 /vendor/etc/init/hw/init.qcom.usb.rc import /vendor/etc/init/hw/init.target.rc on early-init # Change ownership of sysfs power control node chown system graphics /sys/class/drm/card0/device/power/control # Disable UFS clock scaling write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 0 # Disable UFS auto_hibern8 write /sys/bus/platform/devices/1d84000.ufshc/auto_hibern8 0 # Disable UFS clock gating write /sys/bus/platform/devices/1d84000.ufshc/clkgate_enable 0 on early-boot write /sys/class/drm/card0-DSI-1/status "detect" write /sys/module/drm/parameters/vblankoffdelay -1 chown system graphics /sys/devices/virtual/hdcp/msm_hdcp/min_level_change chmod 0660 /sys/devices/virtual/hdcp/msm_hdcp/min_level_change # 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" write /sys/bus/msm_subsys/devices/subsys6/restart_level "related" write /sys/bus/msm_subsys/devices/subsys7/restart_level "related" write /sys/bus/msm_subsys/devices/subsys8/restart_level "related" chown system system /mnt/vendor/persist/data/pfm/licenses chmod 0775 /mnt/vendor/persist/data/pfm/licenses on boot chown bluetooth net_bt /sys/class/rfkill/rfkill0/type chown bluetooth net_bt /sys/class/rfkill/rfkill0/state chmod 0660 /sys/class/rfkill/rfkill0/type chmod 0660 /sys/class/rfkill/rfkill0/state chown bluetooth net_bt /dev/ttyHS0 chmod 0660 /dev/ttyHS0 chown system system /sys/kernel/boot_slpi/ssr # 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 mkdir /mnt/vendor/persist/time 0770 system system mkdir /mnt/vendor/persist/secnvm 0770 system system mkdir /mnt/vendor/persist/iar_db 0770 system system mkdir /mnt/vendor/spunvm 0770 system system # 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 chown system system /sys/class/backlight/panel0-backlight/brightness chown system system /sys/class/backlight/panel0-backlight/max_brightness chown system system /sys/class/backlight/panel1-backlight/brightness chown system system /sys/class/backlight/panel1-backlight/max_brightness # Create directory used for display mkdir /mnt/vendor/persist/display 0770 system graphics # Create vpp directory mkdir /mnt/vendor/persist/vpp 0770 media media copy /vendor/etc/tunings.txt /mnt/vendor/persist/vpp/tunings.txt # Create hvdcp_opti directory mkdir /mnt/vendor/persist/hvdcp_opti 0770 root system # Create persist for camera calibration data mkdir /mnt/vendor/persist/camera 0755 system cameraserver # limit discard size to 128MB in order to avoid long IO latency write /sys/block/sda/queue/discard_max_bytes 134217728 # Enable qcrild and data services enable vendor.qcrild enable vendor.qcrild2 enable vendor.dataqti enable vendor.dataadpl # 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 /data/vendor/tzstorage directory for SFS listener mkdir /data/vendor/tzstorage 0770 system system # Create directory for apps access via QTEEConnector mkdir /data/vendor/qtee 0770 system system # Create folder for camera mkdir /data/vendor/camera 0770 camera camera # Create directory for tftp mkdir /data/vendor/tombstones 0771 system system mkdir /data/vendor/tombstones/rfs 0771 system system # Create directory for bluetooth mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth # Create the directories used by the Wireless subsystem mkdir /data/vendor/wifi 0770 wifi wifi mkdir /data/vendor/wifi/sockets 0770 wifi wifi mkdir /data/vendor/wifi/hostapd 0770 wifi wifi mkdir /data/vendor/wifi/hostapd/ctrl 0770 wifi wifi mkdir /data/vendor/wifi/wpa_supplicant 0770 wifi wifi mkdir /data/vendor/wifi/wpa 0770 wifi wifi mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi mkdir /data/vendor/mac_addr 0770 system wifi # Create the directories used by CnE subsystem mkdir /data/vendor/connectivity 0771 radio radio chown radio radio /data/vendor/connectivity # Create directory used by audio subsystem mkdir /data/vendor/audio 0771 audio audio # Create directory for audio delta files mkdir /data/vendor/audio/acdbdata 0770 media audio mkdir /data/vendor/audio/acdbdata/delta 0770 media audio # Create directory for radio mkdir /data/vendor/radio 0770 system radio rm /data/vendor/radio/shmbus # Create directory for modem_config mkdir /data/vendor/modem_config 0570 radio root # 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 # Create /data/time folder for time-services mkdir /data/vendor/time/ 0700 system system # Create PERFD deamon related dirs mkdir /data/vendor/perfd 0770 root system chmod 2770 /data/vendor/perfd rm /data/vendor/perfd/default_values mkdir /data/vendor/secure_element 0777 system 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 copy /vendor/radio/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db copy /vendor/etc/qcril_database/qcrilNr.db /data/vendor/radio/qcrilNr_prebuilt.db chown radio radio /data/vendor/radio/qcrilNr_prebuilt.db chmod 0660 /data/vendor/radio/qcrilNr_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 # Create vpp directory mkdir /data/vendor/vpp 0770 media media setprop vold.post_fs_data_done 1 service qcomsysd /system/vendor/bin/qcom-system-daemon class main user root group root diag oem_2901 disabled on property:persist.vendor.qcomsysd.enabled=1 enable qcomsysd on property:persist.vendor.qcomsysd.enabled=0 stop qcomsysd on property:sys.boot_completed=1 # Enable UFS clock scaling back write /sys/bus/platform/devices/1d84000.ufshc/clkscale_enable 1 # Enable UFS auto_hibern8 back write /sys/bus/platform/devices/1d84000.ufshc/auto_hibern8 5000 # Enable UFS clock gating back write /sys/bus/platform/devices/1d84000.ufshc/clkgate_enable 1 # WDSP FW boot sysfs node used by STHAL chown media audio /sys/kernel/wdsp0/boot chown media audio /sys/kernel/wcd_cpe0/fw_name # Reinit lmkd to reconfigure lmkd properties setprop lmkd.reinit 1 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 cnss-daemon /system/vendor/bin/cnss-daemon -n -l class late_start user system group system inet net_admin wifi capabilities NET_ADMIN on property:sys.shutdown.requested=* write /sys/kernel/shutdown_wlan/shutdown 1 stop cnss-daemon service ssgqmigd /vendor/bin/ssgqmigd class late_start user radio group radio gps system socket ssgqmig seqpacket 0660 radio inet service mlid /vendor/bin/mlid class late_start user gps group gps socket mlid stream 0666 gps gps service loc_launcher /system/vendor/bin/loc_launcher class late_start user gps group gps service qcom-sh /vendor/bin/init.qcom.sh class late_start user root group root system radio oneshot on property:ro.vendor.ril.mbn_copy_completed=1 write /data/vendor/radio/copy_complete 1 service vendor.atfwd /vendor/bin/ATFWD-daemon class late_start user system group system radio service charger /system/bin/charger class charger user system group system graphics input capabilities SYS_BOOT seclabel u:r:charger:s0 service vendor.power_off_alarm /vendor/bin/power_off_alarm class core group system disabled oneshot service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service override class hal user audioserver # media gid needed for /dev/fm (radio) and for /data/misc/media (tee) group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct oem_2901 wakelock capabilities BLOCK_SUSPEND ioprio rt 4 writepid /dev/cpuset/foreground/tasks /dev/stune/foreground/tasks socket audio_hw_socket seqpacket 0666 system system onrestart restart audioserver