device/asus/flo: initial commit
Change-Id: I5946aea9cce97624c4a2a56ce8da858851f509e8
Signed-off-by: Iliyan Malchev <malchev@google.com>
diff --git a/init.flo.rc b/init.flo.rc
new file mode 100644
index 0000000..6e034a8
--- /dev/null
+++ b/init.flo.rc
@@ -0,0 +1,470 @@
+#
+# 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
+ 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
+
+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 bluetooth
+ 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
+
+ #BT DUN port-bridge
+ chmod 0660 /dev/smd7
+ chown bluetooth bluetooth /dev/smd7
+
+ 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
+
+ #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
+
+ 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
+
+ write /dev/wcnss_wlan 1
+ write /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr 1
+
+ # Create directory used by audio subsystem
+ mkdir /data/misc/audio 0770 audio audio
+
+ # Workaround for conn_init not copying the updated firmware
+ rm /data/misc/wifi/WCNSS_qcom_cfg.ini
+ rm /data/misc/wifi/WCNSS_qcom_wlan_nv.bin
+
+ # 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
+
+ #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
+
+ # LED On/Off synchronization
+ chown system system /sys/class/leds/red/device/lock
+
+ # 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/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
+
+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 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
+ disabled
+ oneshot
+
+on property:bluetooth.hciattach=true
+ start hciattach
+
+on property:bluetooth.hciattach=false
+ setprop bluetooth.status off
+
+# Remount persist as rw if needed
+on property:ro.debuggable=1
+ mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist rw remount nosuid nodev barrier=1 data=ordered nodelalloc
+ chown system system /persist
+ chmod 0771 /persist
+
+# create filesystems if necessary
+service setup_fs /system/bin/setup_fs \
+ /dev/block/platform/msm_sdcc.1/by-name/userdata \
+ /dev/block/platform/msm_sdcc.1/by-name/cache
+ class core
+ user root
+ group root
+ oneshot
+
+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
+ 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:persist.radio.kickstart=on
+ start 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 \
+ -e/data/misc/wifi/entropy.bin
+ # 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 -N \
+ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
+ -e/data/misc/wifi/entropy.bin -puse_p2p_group_interface=1
+# 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_bnep0 /system/bin/dhcpcd -BKLG
+ 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 /charger
+ class charger
+
+# virtual sdcard daemon running as media_rw (1023)
+service sdcard /system/bin/sdcard /data/media /mnt/shell/emulated 1023 1023
+ 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
+ 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 conn_init /system/bin/logwrapper /system/bin/conn_init
+ 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
+ oneshot
+
+# bugreport is triggered by holding down volume down, volume up and power
+service bugreport /system/bin/bugmailer.sh -v
+ 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
+ chown system system /dev/block/mmcblk0p18
+ chmod 0660 /dev/block/mmcblk0p18
+ chown system system /dev/block/mmcblk0p19
+ chmod 0660 /dev/block/mmcblk0p19
+ start kickstart
+ setprop persist.sys.usb.config diag,mdm,adb
+
+on property:ro.boot.baseband=apq
+ setprop ro.radio.noril yes
+ stop ril-daemon
+ setprop persist.sys.usb.config diag,adb