# # 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 init.${ro.hardware}.usb.rc import init.${ro.hardware}.diag.rc on early-init mount debugfs debugfs /sys/kernel/debug chmod 0755 /sys/kernel/debug on init # Support legacy paths symlink /sdcard /mnt/sdcard symlink /sdcard /storage/sdcard0 on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice mount_all fstab.${ro.hardware} swapon_all fstab.${ro.hardware} # Keeping following partitions outside fstab file. As user may not have # these partition flashed on the device. Failure to mount any partition in fstab file # results in failure to launch late-start class. wait /dev/block/bootdevice/by-name/cache mount ext4 /dev/block/bootdevice/by-name/cache /cache nosuid nodev noatime barrier=1 wait /dev/block/bootdevice/by-name/persist mount ext4 /dev/block/bootdevice/by-name/persist /persist nosuid nodev noatime barrier=1 restorecon_recursive /persist mkdir /persist/data 0700 system system on post-fs # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 # Since bootloader does not have a UI turn screen ON write /sys/class/leds/lcd-backlight/brightness 255 # Enable audio and video device for bootanim write /sys/kernel/boot_adsp/boot 1 write /sys/kernel/boot_slpi/boot 1 start qseecomd chmod 0664 /sys/devices/virtual/graphics/fb0/idle_time chown system graphics /sys/devices/virtual/graphics/fb0/idle_time on property:sys.listeners.registered=true # load IPA FWs write /dev/ipa 1 on post-fs-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 #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/misc/ipa 0700 net_admin net_admin # 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/misc/netmgr 0770 radio radio chmod 0770 /data/misc/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 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 chmod 775 /persist/sensors chmod 664 /persist/sensors/sensors_settings chown system root /persist/sensors/sensors_settings mkdir /data/misc/sensors chmod 775 /data/misc/sensors # Mark the copy complete flag to not completed write /data/misc/radio/copy_complete 0 chown radio radio /data/misc/radio/copy_complete chmod 0660 /data/misc/radio/copy_complete # File flags for prebuilt ril db file write /data/misc/radio/prebuilt_db_support 1 chown radio radio /data/misc/radio/prebuilt_db_support chmod 0400 /data/misc/radio/prebuilt_db_support write /data/misc/radio/db_check_done 0 chown radio radio /data/misc/radio/db_check_done chmod 0660 /data/misc/radio/db_check_done # Create directories for Location services mkdir /data/misc/location 0770 gps gps mkdir /data/misc/location/mq 0770 gps gps mkdir /data/misc/location/xtwifi 0770 gps gps mkdir /data/misc/location/gpsone_d 0770 system gps mkdir /data/misc/location/quipc 0770 gps system mkdir /data/misc/location/gsiff 0770 gps gps # Set indication (checked by vold) that we have finished this action setprop vold.post_fs_data_done 1 on early-boot exec - root root system -- /system/bin/init.power.sh # update cpusets now that processors are up # initialize for Silver Only first and then Silver + Gold # Silver Only configuration cannot work with 0-7 write /dev/cpuset/top-app/cpus 0-3 write /dev/cpuset/foreground/cpus 0-3 write /dev/cpuset/foreground/boost/cpus 0-3 write /dev/cpuset/background/cpus 0-3 write /dev/cpuset/system-background/cpus 0-3 write /dev/cpuset/top-app/cpus 0-7 write /dev/cpuset/foreground/cpus 0-7 write /dev/cpuset/foreground/boost/cpus 0-7 write /dev/cpuset/background/cpus 0-7 write /dev/cpuset/system-background/cpus 0-7 on boot # Install touch modules insmod /vendor/lib/modules/synaptics_dsx_core_htc.ko insmod /vendor/lib/modules/synaptics_dsx_fw_update_htc.ko insmod /vendor/lib/modules/synaptics_dsx_rmi_dev_htc.ko 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 # 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 # Required for time_daemon mkdir /persist/time 0770 system system mkdir /data/time/ 0700 system system # Permission for laser sensor driver chown camera camera /sys/class/htc_laser/laser/enable_ps_sensor service init-radio-sh /system/bin/init.radio.sh class late_start user radio group root radio oneshot service perfd /vendor/bin/perfd class main user root group root readproc socket perfd seqpacket 0666 root system service thermal-engine /vendor/bin/thermal-engine 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 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 service per_proxy /vendor/bin/pm-proxy class core user system group system disabled on property:init.svc.per_mgr=running start per_proxy on property:sys.shutdown.requested=* stop per_proxy service qseecomd /vendor/bin/qseecomd class core user root group root service time_daemon /vendor/bin/time_daemon class late_start 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/ramdump 761 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 root group root service adsprpcd /vendor/bin/adsprpcd class main user media group media service irsc_util /vendor/bin/irsc_util "/etc/sec_config" class core user root oneshot service rmt_storage /vendor/bin/rmt_storage class core user root service tftp_server /vendor/bin/tftp_server class core user root service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -I/system/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_diag /vendor/bin/cnss_diag -q -f class main user root group root oneshot service cnss-daemon /vendor/bin/cnss-daemon -n -l class late_start user system group system inet net_admin wifi 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 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 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 # 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