| # |
| # 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 |
| |
| 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 |
| 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 |
| |
| |
| # 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 |
| |
| # 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 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 665 /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 0770 system system |
| chmod 2770 /dev/socket/mpdecision |
| |
| # 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/logwrapper /system/bin/irsc_util "/etc/sec_config" |
| class main |
| user root |
| oneshot |
| |
| service rmt_storage /system/bin/rmt_storage |
| class main |
| user root |
| |
| 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 |
| 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 |
| 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 |
| disabled |
| |
| |
| service sensors /system/bin/sensors.qcom |
| class late_start |
| user root |
| group root |
| |
| service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \ |
| -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ |
| -I/system/etc/wifi/wpa_supplicant_overlay.conf \ |
| -O/data/misc/wifi/sockets \ |
| -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/logwrapper /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 \ |
| -O/data/misc/wifi/sockets -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_p2p /system/bin/dhcpcd -aABKL |
| class main |
| disabled |
| oneshot |
| |
| service iprenew_wlan0 /system/bin/dhcpcd -n |
| class main |
| disabled |
| oneshot |
| |
| service iprenew_p2p /system/bin/dhcpcd -n |
| class main |
| disabled |
| oneshot |
| |
| service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL |
| 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 |
| |
| service mpdecision /system/bin/mpdecision --no_sleep --avg_comp |
| class main |
| |
| service ppd /system/bin/mm-pp-daemon |
| class late_start |
| disabled |
| user system |
| socket pps stream 0660 system system graphics |
| group system graphics |
| |
| 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 main |
| user system |
| group system wifi |
| 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/logwrapper /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 |
| |
| on property:init.svc.surfaceflinger=running |
| start ppd |
| |
| on property:init.svc.surfaceflinger=stopped |
| stop ppd |