# # Copyright 2013 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.hammerhead.usb.rc import init.hammerhead_svelte.rc import init.hammerhead.diag.rc import init.hammerhead_fp.rc on early-init mount debugfs debugfs /sys/kernel/debug chown system system /sys/kernel/debug/kgsl/proc on init # Set permissions for persist partition mkdir /persist 0771 system system mkdir /firmware 0771 system system # Support legacy paths symlink /sdcard /mnt/sdcard symlink /sdcard /storage/sdcard0 on fs mount_all ./fstab.hammerhead restorecon_recursive /persist on early-boot # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 on boot # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP write /sys/module/wakelock/parameters/debug_mask 7 # bluetooth chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/type chown bluetooth net_bt_stack /sys/class/rfkill/rfkill0/state chmod 0660 /sys/class/rfkill/rfkill0/state # bluetooth LPM chown bluetooth net_bt_stack /proc/bluetooth/sleep/lpm chown bluetooth net_bt_stack /proc/bluetooth/sleep/btwrite #bluetooth UART dev chown bluetooth net_bt_stack /sys/devices/platform/msm_serial_hs.0/clock chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock #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 # Camera Recording mkdir /dev/video symlink /dev/video32 /dev/video/venus_dec symlink /dev/video33 /dev/video/venus_enc # Allow QMUX daemon to assign port open wait time chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait #For bridgemgr daemon to inform the USB driver of the correct transport chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport # 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 2097152 write /proc/sys/net/core/wmem_max 2097152 # create symlink for fb1 as HDMI symlink /dev/graphics/fb1 /dev/graphics/hdmi # setup permissions for fb1 related nodes chown system graphics /sys/class/graphics/fb1/hpd chown system graphics /sys/class/graphics/fb1/vendor_name chown system graphics /sys/class/graphics/fb1/product_description chmod 0664 /sys/devices/virtual/graphics/fb1/hpd chmod 0664 /sys/devices/virtual/graphics/fb1/vendor_name chmod 0664 /sys/devices/virtual/graphics/fb1/product_description # To allow interfaces to get v6 address when tethering is enabled write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2 # Subsytem Restart #adsp write /sys/bus/msm_subsys/devices/subsys0/restart_level "related" #modem write /sys/bus/msm_subsys/devices/subsys1/restart_level "related" #venus write /sys/bus/msm_subsys/devices/subsys2/restart_level "related" # leds chown system system /sys/class/leds/red/on_off_ms chown system system /sys/class/leds/green/on_off_ms chown system system /sys/class/leds/blue/on_off_ms chown system system /sys/class/leds/red/rgb_start chmod 664 /sys/class/leds/lcd-backlight/brightness on post-fs-data write /sys/kernel/boot_adsp/boot 1 # Subsytem Ramdump collection mkdir /data/tombstones/ramdump 0777 system system write /sys/module/subsystem_restart/parameters/enable_ramdumps 1 # NFC: create data/nfc for nv storage mkdir /data/nfc 0770 nfc nfc mkdir /data/nfc/param 0770 nfc nfc # wifi chown wifi system /persist/wifi # bluetooth mkdir /data/misc/bluetooth 0770 bluetooth bluetooth # Create directory used by audio subsystem mkdir /data/misc/audio 0770 audio audio # Create directory used by sensor subsystem mkdir /data/system 0755 system system mkdir /data/system/sensors chmod 755 /data/system/sensors # AKM setting data mkdir /data/misc/sensors chmod 775 /data/misc/sensors # Sensor mkdir /persist/sensors chmod 775 /persist/sensors write /persist/sensors/sensors_settings 1 chmod 660 /persist/sensors/sensors_settings # communicate with mpdecision and thermald mkdir /dev/socket/mpdecision 2770 root system # save rtc time offsets mkdir /data/system/time 0700 system system # Ecc_Handler qcril.db mkdir /data/misc/radio 0770 radio radio symlink /system/etc/qcril.db /data/misc/radio/qcril.db setprop vold.post_fs_data_done 1 # Set the CPU Freq Sampling rates write /sys/module/msm_thermal/core_control/enabled 0 write /sys/devices/system/cpu/cpu1/online 1 write /sys/devices/system/cpu/cpu2/online 1 write /sys/devices/system/cpu/cpu3/online 1 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand" write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand" write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "ondemand" write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "ondemand" write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90 write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000 write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1 write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4 write /sys/devices/system/cpu/cpufreq/ondemand/down_differential 10 write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core 70 write /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core 3 write /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq 960000 write /sys/devices/system/cpu/cpufreq/ondemand/sync_freq 960000 write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load 80 restorecon_recursive /sys/devices/system/cpu/cpufreq/ondemand write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 300000 write /sys/module/msm_thermal/core_control/enabled 1 chown root.system /sys/devices/system/cpu/mfreq chmod 220 /sys/devices/system/cpu/mfreq chown root.system /sys/devices/system/cpu/cpu1/online chown root.system /sys/devices/system/cpu/cpu2/online chown root.system /sys/devices/system/cpu/cpu3/online chmod 664 /sys/devices/system/cpu/cpu1/online chmod 664 /sys/devices/system/cpu/cpu2/online chmod 664 /sys/devices/system/cpu/cpu3/online write /dev/cpuctl/apps/cpu.notify_on_migrate 1 on charger # Booting modem wait /dev/block/platform/msm_sdcc.1/by-name/modem mount vfat /dev/block/platform/msm_sdcc.1/by-name/modem /firmware ro shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait /dev/block/platform/msm_sdcc.1/by-name/system mount ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system ro barrier=1 start rmt_storage start irsc_util # Enable Power modes and set the CPU Freq Sampling rates write /sys/module/lpm_resources/enable_low_power/l2 2 write /sys/module/lpm_resources/enable_low_power/pxo 1 write /sys/module/lpm_resources/enable_low_power/vdd_dig 1 write /sys/module/lpm_resources/enable_low_power/vdd_mem 1 write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1 write /sys/module/msm_thermal/core_control/enabled 0 write /sys/devices/system/cpu/cpu1/online 1 write /sys/devices/system/cpu/cpu2/online 1 write /sys/devices/system/cpu/cpu3/online 1 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave" write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "powersave" write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "powersave" write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "powersave" write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 300000 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 300000 write /sys/module/msm_thermal/core_control/enabled 1 write /sys/devices/system/cpu/cpu1/online 0 write /sys/devices/system/cpu/cpu2/online 0 write /sys/devices/system/cpu/cpu3/online 0 start mpdecision on property:init.svc.wpa_supplicant=stopped stop dhcpcd on property:sys.boot_completed=1 # Enable Power modes write /sys/module/lpm_resources/enable_low_power/l2 2 write /sys/module/lpm_resources/enable_low_power/pxo 1 write /sys/module/lpm_resources/enable_low_power/vdd_dig 1 write /sys/module/lpm_resources/enable_low_power/vdd_mem 1 write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/suspend_enabled 1 write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu2/standalone_power_collapse/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu3/standalone_power_collapse/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu0/retention/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu1/retention/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu2/retention/idle_enabled 1 write /sys/module/pm_8x60/modes/cpu3/retention/idle_enabled 1 start mpdecision # enable slimport detection write /sys/module/slimport/parameters/enable_irq 1 # enable logging of wake up reasons to kernel logs write /sys/module/msm_show_resume_irq/parameters/debug_mask 1 on property:ro.debuggable=1 start ssr_ramdump service rmt_storage /system/bin/rmt_storage class core user root group system service bridgemgrd /system/bin/bridgemgrd class main user radio group radio # QMUX must be in multiple groups to support external process connections service qmuxd /system/bin/qmuxd class main user radio group radio audio bluetooth gps service netmgrd /system/bin/netmgrd class main group radio # QCOM sensor service sensors /system/bin/sensors.qcom class main user root group root service irsc_util /system/bin/irsc_util "/etc/sec_config" class main user root oneshot service p2p_supplicant /system/bin/wpa_supplicant \ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -I/system/etc/wifi/wpa_supplicant_overlay.conf -N \ -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ -I/system/etc/wifi/p2p_supplicant_overlay.conf \ -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 wpa_supplicant /system/bin/wpa_supplicant \ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -I/system/etc/wifi/wpa_supplicant_overlay.conf \ -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 dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL class late_start disabled oneshot service dhcpcd_p2p /system/bin/dhcpcd -aABKL class late_start disabled oneshot service iprenew_wlan0 /system/bin/dhcpcd -n class late_start disabled oneshot service iprenew_p2p /system/bin/dhcpcd -n class late_start disabled oneshot service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL class late_start disabled oneshot service iprenew_eth0 /system/bin/dhcpcd -n class late_start disabled oneshot service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG disabled oneshot service iprenew_bt-pan /system/bin/dhcpcd -n disabled oneshot service qseecomd /system/bin/qseecomd class core user root group root service charger /sbin/healthd -c class charger critical seclabel u:r:healthd:s0 service qcamerasvr /system/bin/mm-qcamera-daemon class late_start user camera group camera system inet input service bdAddrLoader /system/bin/bdAddrLoader -f /persist/bluetooth/.bdaddr -h -x class main user bluetooth group system bluetooth oneshot # bugreport is triggered by holding down volume down, volume up and power service bugreport /system/bin/dumpstate -d -p -B \ -o /data/data/com.android.shell/files/bugreports/bugreport class main disabled oneshot keycodes 114 115 116 service mpdecision /system/bin/mpdecision --no_sleep --avg_comp class main user root group root system disabled service ssr_ramdump /system/bin/subsystem_ramdump -m -t emmc class main user root group root disabled service thermal-engine /system/bin/thermal-engine-hh class main user root group radio system service vss_init /vendor/bin/vss_init class late_start user root group root disabled service time_daemon /system/bin/time_daemon class late_start user root group root