# # Copyright 2012 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.flo.usb.rc import init.flo.diag.rc on early-init mount debugfs debugfs /sys/kernel/debug chown system system /sys/kernel/debug/kgsl/proc symlink /data/tombstones /tombstones on init # See storage config details at http://source.android.com/tech/storage/ mkdir /mnt/shell/emulated 0700 shell shell mkdir /storage/emulated 0555 root root export EXTERNAL_STORAGE /storage/emulated/legacy export EMULATED_STORAGE_SOURCE /mnt/shell/emulated export EMULATED_STORAGE_TARGET /storage/emulated # Support legacy paths symlink /storage/emulated/legacy /sdcard symlink /storage/emulated/legacy /mnt/sdcard symlink /storage/emulated/legacy /storage/sdcard0 symlink /mnt/shell/emulated/0 /storage/emulated/legacy on init # Set permissions for persist partition mkdir /persist 0771 system system mkdir /firmware 0771 system system on fs mount_all ./fstab.flo restorecon_recursive /persist setprop ro.crypto.fuse_sdcard true write /sys/kernel/boot_adsp/boot 1 on early-boot # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 on boot #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 net_bt_stack chmod 2770 /dev/socket/qmux_bluetooth mkdir /dev/socket/qmux_gps 0770 gps gps chmod 2770 /dev/socket/qmux_gps # Allow QMUX daemon to assign port open wait time chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait #Remove SUID bit for iproute2 ip tool chmod 0755 /system/bin/ip #port-bridge chmod 0660 /dev/smd0 chown system system /dev/smd0 chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state # create symlink for fb1 as HDMI symlink /dev/graphics/fb1 /dev/graphics/hdmi # Remove write permissions to video related nodes chmod 0664 /sys/devices/virtual/graphics/fb1/hpd chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d # Change owner and group for media server and surface flinger chown system system /sys/devices/virtual/graphics/fb1/format_3d chown system system /sys/devices/virtual/graphics/fb1/hpd #For bridgemgr daemon to inform the USB driver of the correct transport chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport chmod 660 /dev/rtc0 chown system system /dev/rtc0 chown root system /proc/net/ip_conntrack # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP write /sys/module/wakelock/parameters/debug_mask 7 write /proc/sys/vm/swappiness 0 #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 write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2 write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2 #Enable logging of the wake up reasons in the kernel log write /sys/module/msm_show_resume_irq/parameters/debug_mask 1 # NFC: create data/nfc for nv storage mkdir /data/nfc 770 nfc nfc mkdir /data/nfc/param 770 nfc nfc # 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 1220608 write /proc/sys/net/core/wmem_max 1220608 # msm specific files that need to be created on /data on post-fs-data mkdir /data/media 0770 media_rw media_rw chown system system /dev/wcnss_wlan write /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr 1 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 /tombstones/mdm 0771 system system # to observe dnsmasq.leases file for dhcp information of soft ap. chown dhcp system /data/misc/dhcp # Create directory used by audio subsystem mkdir /data/misc/audio 0770 audio audio # 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 system system /persist chmod 0664 /sys/devices/platform/msm_sdcc.1/polling chmod 0664 /sys/devices/platform/msm_sdcc.2/polling chmod 0664 /sys/devices/platform/msm_sdcc.3/polling chmod 0664 /sys/devices/platform/msm_sdcc.4/polling # Chown polling nodes as needed from UI running on system server chown system system /sys/devices/platform/msm_sdcc.1/polling chown system system /sys/devices/platform/msm_sdcc.2/polling chown system system /sys/devices/platform/msm_sdcc.3/polling chown system system /sys/devices/platform/msm_sdcc.4/polling #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant mkdir /data/system 0775 system system #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant #Create directory used by sensor subsystem(dsps) mkdir /data/system/sensors chmod 775 /data/system/sensors write /data/system/sensors/settings 1 chmod 660 /data/system/sensors/settings # AKM setting data mkdir /data/misc/sensors chmod 775 /data/misc/sensors mkdir /persist/sensors chmod 775 /persist/sensors # Modify from 777 (for camera calibration) to 775 chmod 775 /persist/camera_calibration # Modify from 777 (for lightsensor) to 775 chmod 775 /persist/lightsensor # Modify from 777 (for lightsensor calibration data) to 664 chmod 664 /persist/lightsensor/AL3010_Config.ini chmod 664 /persist/ssn chmod 664 /persist/60isn #Provide the access to hostapd.conf only to root and group chmod 0660 /data/hostapd/hostapd.conf # Enable the setgid bit on the directory mkdir /data/audio 0770 media audio chmod 2770 /data/audio # kickstart mkdir /data/qcks 0770 system system chown system /dev/block/platform/msm_sdcc.1/by-name setprop vold.post_fs_data_done 1 rm /data/local/tmp/adreno_config.txt # White LED chown system system /sys/class/leds/white/device/lock chown system system /sys/class/leds/white/brightness chown system system /sys/class/leds/white/device/grpfreq chown system system /sys/class/leds/white/device/grppwm chown system system /sys/class/leds/white/device/blink # communicate with mpdecision and thermald mkdir /dev/socket/mpdecision 2770 root system # adjust vibrator amplitude write /sys/class/timed_output/vibrator/amp 70 # Enable Power modes and set the CPU Freq Sampling rates write /sys/module/rpm_resources/enable_low_power/L2_cache 1 write /sys/module/rpm_resources/enable_low_power/pxo 1 write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 write /sys/module/rpm_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/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 60 write /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core 3 write /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq 918000 write /sys/devices/system/cpu/cpufreq/ondemand/sync_freq 1026000 write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load 80 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000 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 /dev/cpuctl/apps/cpu.notify_on_migrate 1 on charger # Enable Power modes and set the CPU Freq Sampling rates write /sys/module/rpm_resources/enable_low_power/L2_cache 1 write /sys/module/rpm_resources/enable_low_power/pxo 1 write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 write /sys/module/rpm_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/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/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/cpu0/cpufreq/scaling_min_freq 384000 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000 on property:init.svc.wpa_supplicant=stopped stop dhcpcd service irsc_util /system/bin/irsc_util "/etc/sec_config" class main user root oneshot service rmt_storage /system/bin/rmt_storage class main user root group system service hciattach /system/bin/sh /system/etc/init.flo.bt.sh class late_start user bluetooth group qcom_oncrpc bluetooth net_bt_admin system net_bt_stack seclabel u:r:bluetooth_loader:s0 disabled oneshot on property:bluetooth.hciattach=true start hciattach on property:bluetooth.hciattach=false setprop bluetooth.status off service bridgemgrd /system/bin/bridgemgrd class main user radio group radio service qcom-c_main-sh /system/bin/sh /init.qcom.class_main.sh class main user root oneshot # 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 net_bt_stack disabled service ks_checker /system/bin/sh /system/etc/kickstart_checker.sh class core seclabel u:r:kickstart:s0 oneshot service kickstart /system/bin/qcks -i /firmware/image/ -r /data/tombstones/mdm/ class core user system group system disabled oneshot service asus-dbug-d /data/data/com.asus.debugger/files/asus-debugger-d class late_start disabled on property:gsm.radio.kickstart=on start kickstart on property:gsm.radio.kickstart=off stop kickstart on property:ril.asus_debugger_running=1 start asus-dbug-d service netmgrd /system/bin/netmgrd class main group radio disabled service sensors /system/bin/sensors.qcom class late_start user root group root 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 p2p_supplicant /system/bin/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 \ -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 dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL class main disabled oneshot service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL class main disabled oneshot service dhcpcd_p2p /system/bin/dhcpcd -aABKL class main disabled oneshot service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL class main disabled oneshot service iprenew_wlan0 /system/bin/dhcpcd -n class main disabled oneshot service iprenew_eth0 /system/bin/dhcpcd -n class main disabled oneshot service iprenew_p2p /system/bin/dhcpcd -n class main disabled oneshot service iprenew_bt-pan /system/bin/dhcpcd -n class main disabled oneshot on property:ro.data.large_tcp_window_size=true # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) write /proc/sys/net/ipv4/tcp_adv_win_scale 1 service charger /sbin/healthd -c class charger critical seclabel u:r:healthd:s0 # virtual sdcard daemon running as media_rw (1023) service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated class late_start service thermald /system/bin/thermald class main group radio system service mpdecision /system/bin/mpdecision --no_sleep --avg_comp class main user root group root system service qcamerasvr /system/bin/mm-qcamera-daemon class late_start user camera group camera system inet input service wcnss_init /system/bin/sh /system/etc/init.flo.wifi.sh class late_start user system group system wifi seclabel u:r:conn_init:s0 oneshot service bdAddrLoader /system/bin/bdAddrLoader -f /persist/bluetooth/.bdaddr -h -x class main user bluetooth group system bluetooth net_bt_stack 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 qseecomd /system/bin/qseecomd class late_start user system group system service diag_mdlog /system/bin/diag_mdlog -s 100 class late_start disabled # on property:gsm.sim.state=READY # start diag_mdlog on property:ro.boot.baseband=mdm start qmuxd start netmgrd on property:ro.boot.baseband=apq setprop ro.radio.noril yes stop ril-daemon