# 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 /vendor/etc/init/hw/init.qcom.power.rc import /vendor/etc/init/hw/init.qcom.usb.rc import /vendor/etc/init/hw/init.target.rc import /vendor/etc/init/hw/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 # 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" 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 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 group root system 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 oem_2901 wifi writepid /dev/cpuset/system-background/tasks service qcom-sh /vendor/bin/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 setprop ro.boot.fpsensor fpc start fps_hal on property:persist.sys.fp.vendor=goodix setprop persist.sys.fp.onstart 1 setprop ro.boot.fpsensor gdx setprop ro.hardware.fingerprint goodix start fps_hal service time_daemon /vendor/bin/time_daemon class main user root group root