1 # 2 # Copyright 2012 The Android Open Source Project 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 # 16 17 import init.flo.usb.rc 18 19 on early-init 20 mount debugfs debugfs /sys/kernel/debug 21 chown system system /sys/kernel/debug/kgsl/proc 22 symlink /data/tombstones /tombstones 23 24 on init 25 # See storage config details at http://source.android.com/tech/storage/ 26 mkdir /mnt/shell/emulated 0700 shell shell 27 mkdir /storage/emulated 0555 root root 28 mkdir /storage/emulated/legacy 0555 root root 29 30 export EXTERNAL_STORAGE /storage/emulated/legacy 31 export EMULATED_STORAGE_SOURCE /mnt/shell/emulated 32 export EMULATED_STORAGE_TARGET /storage/emulated 33 34 # Support legacy paths 35 symlink /storage/emulated/legacy /sdcard 36 symlink /storage/emulated/legacy /mnt/sdcard 37 symlink /storage/emulated/legacy /storage/sdcard0 38 39 on init 40 # Set permissions for persist partition 41 mkdir /persist 0771 system system 42 mkdir /firmware 0771 system system 43 44 on fs 45 mount_all ./fstab.flo 46 setprop ro.crypto.fuse_sdcard true 47 write /sys/kernel/boot_adsp/boot 1 48 49 on early-boot 50 # set RLIMIT_MEMLOCK to 64MB 51 setrlimit 8 67108864 67108864 52 53 on boot 54 #Create QMUX deamon socket area 55 mkdir /dev/socket/qmux_radio 0770 radio radio 56 chmod 2770 /dev/socket/qmux_radio 57 mkdir /dev/socket/qmux_audio 0770 media audio 58 chmod 2770 /dev/socket/qmux_audio 59 mkdir /dev/socket/qmux_bluetooth 0770 bluetooth net_bt_stack 60 chmod 2770 /dev/socket/qmux_bluetooth 61 mkdir /dev/socket/qmux_gps 0770 gps gps 62 chmod 2770 /dev/socket/qmux_gps 63 64 # Allow QMUX daemon to assign port open wait time 65 chown radio radio /sys/devices/virtual/hsicctl/hsicctl0/modem_wait 66 67 #Remove SUID bit for iproute2 ip tool 68 chmod 0755 /system/bin/ip 69 70 #port-bridge 71 chmod 0660 /dev/smd0 72 chown system system /dev/smd0 73 74 chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state 75 76 # create symlink for fb1 as HDMI 77 symlink /dev/graphics/fb1 /dev/graphics/hdmi 78 79 # Remove write permissions to video related nodes 80 chmod 0664 /sys/devices/virtual/graphics/fb1/hpd 81 chmod 0664 /sys/devices/virtual/graphics/fb1/video_mode 82 chmod 0664 /sys/devices/virtual/graphics/fb1/format_3d 83 84 # Change owner and group for media server and surface flinger 85 chown system system /sys/devices/virtual/graphics/fb1/format_3d 86 chown system system /sys/devices/virtual/graphics/fb1/hpd 87 88 #For bridgemgr daemon to inform the USB driver of the correct transport 89 chown radio radio /sys/class/android_usb/f_rmnet_smd_sdio/transport 90 91 chmod 660 /dev/rtc0 92 chown system system /dev/rtc0 93 94 chown root system /proc/net/ip_conntrack 95 96 # Enable DEBUG_SUSPEND, DEBUG_EXIT_SUSPEND, and DEBUG_WAKEUP 97 write /sys/module/wakelock/parameters/debug_mask 7 98 99 write /proc/sys/vm/swappiness 0 100 101 #To allow interfaces to get v6 address when tethering is enabled 102 write /proc/sys/net/ipv6/conf/rmnet0/accept_ra 2 103 write /proc/sys/net/ipv6/conf/rmnet1/accept_ra 2 104 write /proc/sys/net/ipv6/conf/rmnet2/accept_ra 2 105 write /proc/sys/net/ipv6/conf/rmnet3/accept_ra 2 106 write /proc/sys/net/ipv6/conf/rmnet4/accept_ra 2 107 write /proc/sys/net/ipv6/conf/rmnet5/accept_ra 2 108 write /proc/sys/net/ipv6/conf/rmnet6/accept_ra 2 109 write /proc/sys/net/ipv6/conf/rmnet7/accept_ra 2 110 write /proc/sys/net/ipv6/conf/rmnet_sdio0/accept_ra 2 111 write /proc/sys/net/ipv6/conf/rmnet_sdio1/accept_ra 2 112 write /proc/sys/net/ipv6/conf/rmnet_sdio2/accept_ra 2 113 write /proc/sys/net/ipv6/conf/rmnet_sdio3/accept_ra 2 114 write /proc/sys/net/ipv6/conf/rmnet_sdio4/accept_ra 2 115 write /proc/sys/net/ipv6/conf/rmnet_sdio5/accept_ra 2 116 write /proc/sys/net/ipv6/conf/rmnet_sdio6/accept_ra 2 117 write /proc/sys/net/ipv6/conf/rmnet_sdio7/accept_ra 2 118 119 120 # NFC: create data/nfc for nv storage 121 mkdir /data/nfc 770 nfc nfc 122 mkdir /data/nfc/param 770 nfc nfc 123 124 # Assign TCP buffer thresholds to be ceiling value of technology maximums 125 # Increased technology maximums should be reflected here. 126 write /proc/sys/net/core/rmem_max 1220608 127 write /proc/sys/net/core/wmem_max 1220608 128 129 #Modify windows size to meet ATT requirement 130 setprop net.tcp.buffersize.hspa 4094,87380,704512,4096,16384,262144 131 setprop net.tcp.buffersize.lte 524288,1048576,2560000,262144,524288,1048576 132 133 # msm specific files that need to be created on /data 134 on post-fs-data 135 mkdir /data/media 0770 media_rw media_rw 136 137 # Create the directories used by the Wireless subsystem 138 mkdir /data/misc/wifi 0770 wifi wifi 139 mkdir /data/misc/wifi/sockets 0770 wifi wifi 140 mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi 141 mkdir /data/misc/dhcp 0770 dhcp dhcp 142 143 chown system system /dev/wcnss_wlan 144 write /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr 1 145 146 mkdir /data/tombstones 0771 system system 147 mkdir /tombstones/modem 0771 system system 148 mkdir /tombstones/lpass 0771 system system 149 mkdir /tombstones/wcnss 0771 system system 150 mkdir /tombstones/dsps 0771 system system 151 mkdir /tombstones/mdm 0771 system system 152 153 # to observe dnsmasq.leases file for dhcp information of soft ap. 154 chown dhcp system /data/misc/dhcp 155 156 # Create directory used by audio subsystem 157 mkdir /data/misc/audio 0770 audio audio 158 159 # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections 160 # We chown/chmod /persist again so because mount is run as root + defaults 161 chown system system /persist 162 chmod 0664 /sys/devices/platform/msm_sdcc.1/polling 163 chmod 0664 /sys/devices/platform/msm_sdcc.2/polling 164 chmod 0664 /sys/devices/platform/msm_sdcc.3/polling 165 chmod 0664 /sys/devices/platform/msm_sdcc.4/polling 166 167 # Chown polling nodes as needed from UI running on system server 168 chown system system /sys/devices/platform/msm_sdcc.1/polling 169 chown system system /sys/devices/platform/msm_sdcc.2/polling 170 chown system system /sys/devices/platform/msm_sdcc.3/polling 171 chown system system /sys/devices/platform/msm_sdcc.4/polling 172 173 #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant 174 mkdir /data/system 0775 system system 175 #symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant 176 177 #Create directory used by sensor subsystem(dsps) 178 mkdir /data/system/sensors 179 chmod 665 /data/system/sensors 180 write /data/system/sensors/settings 1 181 chmod 660 /data/system/sensors/settings 182 183 # AKM setting data 184 mkdir /data/misc/sensors 185 chmod 775 /data/misc/sensors 186 187 mkdir /persist/sensors 188 chmod 775 /persist/sensors 189 190 # Modify from 777 (for camera calibration) to 775 191 chmod 775 /persist/camera_calibration 192 193 chmod 664 /persist/ssn 194 chmod 664 /persist/60isn 195 196 #Provide the access to hostapd.conf only to root and group 197 chmod 0660 /data/hostapd/hostapd.conf 198 199 # Enable the setgid bit on the directory 200 mkdir /data/audio 0770 media audio 201 chmod 2770 /data/audio 202 203 # kickstart 204 mkdir /data/qcks 0770 system system 205 chown system /dev/block/platform/msm_sdcc.1/by-name 206 207 setprop vold.post_fs_data_done 1 208 209 rm /data/local/tmp/adreno_config.txt 210 211 # White LED 212 chown system system /sys/class/leds/white/device/lock 213 chown system system /sys/class/leds/white/brightness 214 chown system system /sys/class/leds/white/device/grpfreq 215 chown system system /sys/class/leds/white/device/grppwm 216 chown system system /sys/class/leds/white/device/blink 217 218 # communicate with mpdecision and thermald 219 mkdir /dev/socket/mpdecision 0770 system system 220 chmod 2770 /dev/socket/mpdecision 221 222 # adjust vibrator amplitude 223 write /sys/class/timed_output/vibrator/amp 70 224 225 # Enable Power modes and set the CPU Freq Sampling rates 226 write /sys/module/rpm_resources/enable_low_power/L2_cache 1 227 write /sys/module/rpm_resources/enable_low_power/pxo 1 228 write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 229 write /sys/module/rpm_resources/enable_low_power/vdd_mem 1 230 write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 231 write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 232 write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 233 write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 234 write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1 235 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "ondemand" 236 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "ondemand" 237 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "ondemand" 238 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "ondemand" 239 write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90 240 write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000 241 write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1 242 write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4 243 write /sys/devices/system/cpu/cpufreq/ondemand/down_differential 10 244 write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core 60 245 write /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core 3 246 write /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq 918000 247 write /sys/devices/system/cpu/cpufreq/ondemand/sync_freq 1026000 248 write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load 80 249 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000 250 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000 251 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000 252 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000 253 write /sys/devices/system/cpu/cpu1/online 1 254 write /sys/devices/system/cpu/cpu2/online 1 255 write /sys/devices/system/cpu/cpu3/online 1 256 write /dev/cpuctl/apps/cpu.notify_on_migrate 1 257 258 on charger 259 # Enable Power modes and set the CPU Freq Sampling rates 260 write /sys/module/rpm_resources/enable_low_power/L2_cache 1 261 write /sys/module/rpm_resources/enable_low_power/pxo 1 262 write /sys/module/rpm_resources/enable_low_power/vdd_dig 1 263 write /sys/module/rpm_resources/enable_low_power/vdd_mem 1 264 write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1 265 write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1 266 write /sys/module/pm_8x60/modes/cpu2/power_collapse/suspend_enabled 1 267 write /sys/module/pm_8x60/modes/cpu3/power_collapse/suspend_enabled 1 268 write /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled 1 269 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "powersave" 270 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor "powersave" 271 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor "powersave" 272 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor "powersave" 273 write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90 274 write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000 275 write /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy 1 276 write /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor 4 277 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 384000 278 write /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 384000 279 write /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 384000 280 write /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 384000 281 282 on property:init.svc.wpa_supplicant=stopped 283 stop dhcpcd 284 285 service irsc_util /system/bin/logwrapper /system/bin/irsc_util "/etc/sec_config" 286 class main 287 user root 288 oneshot 289 290 service rmt_storage /system/bin/rmt_storage 291 class main 292 user root 293 294 service hciattach /system/bin/sh /system/etc/init.flo.bt.sh 295 class late_start 296 user bluetooth 297 group qcom_oncrpc bluetooth net_bt_admin system net_bt_stack 298 disabled 299 oneshot 300 301 on property:bluetooth.hciattach=true 302 start hciattach 303 304 on property:bluetooth.hciattach=false 305 setprop bluetooth.status off 306 307 service bridgemgrd /system/bin/bridgemgrd 308 class main 309 user radio 310 group radio 311 312 # QMUX must be in multiple groups to support external process connections 313 service qmuxd /system/bin/qmuxd 314 class main 315 user radio 316 group radio audio bluetooth gps net_bt_stack 317 318 service ks_checker /system/bin/sh /system/etc/kickstart_checker.sh 319 class core 320 oneshot 321 322 service kickstart /system/bin/qcks -i /firmware/image/ -r /data/tombstones/mdm/ 323 class core 324 user system 325 group system 326 disabled 327 oneshot 328 329 service asus-dbug-d /data/data/com.asus.debugger/files/asus-debugger-d 330 class late_start 331 disabled 332 333 on property:gsm.radio.kickstart=on 334 start kickstart 335 setprop gsm.radio.kickstart running 336 337 on property:gsm.radio.kickstart=off 338 stop kickstart 339 340 on property:ril.asus_debugger_running=1 341 start asus-dbug-d 342 343 service netmgrd /system/bin/netmgrd 344 class main 345 346 service sensors /system/bin/sensors.qcom 347 class late_start 348 user root 349 group root 350 351 service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \ 352 -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ 353 -I/system/etc/wifi/wpa_supplicant_overlay.conf \ 354 -O/data/misc/wifi/sockets \ 355 -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 356 # we will start as root and wpa_supplicant will switch to user wifi 357 # after setting up the capabilities required for WEXT 358 # user wifi 359 # group wifi inet keystore 360 class main 361 socket wpa_wlan0 dgram 660 wifi wifi 362 disabled 363 oneshot 364 365 service p2p_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \ 366 -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ 367 -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ 368 -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ 369 -I/system/etc/wifi/wpa_supplicant_overlay.conf \ 370 -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \ 371 -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 372 # we will start as root and wpa_supplicant will switch to user wifi 373 # after setting up the capabilities required for WEXT 374 # user wifi 375 # group wifi inet keystore 376 class main 377 socket wpa_wlan0 dgram 660 wifi wifi 378 disabled 379 oneshot 380 381 service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL 382 class main 383 disabled 384 oneshot 385 386 service dhcpcd_p2p /system/bin/dhcpcd -aABKL 387 class main 388 disabled 389 oneshot 390 391 service iprenew_wlan0 /system/bin/dhcpcd -n 392 class main 393 disabled 394 oneshot 395 396 service iprenew_p2p /system/bin/dhcpcd -n 397 class main 398 disabled 399 oneshot 400 401 service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL 402 class main 403 disabled 404 oneshot 405 406 service iprenew_bt-pan /system/bin/dhcpcd -n 407 class main 408 disabled 409 oneshot 410 411 on property:ro.data.large_tcp_window_size=true 412 # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) 413 write /proc/sys/net/ipv4/tcp_adv_win_scale 1 414 415 service charger /charger 416 class charger 417 418 # virtual sdcard daemon running as media_rw (1023) 419 service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated 420 class late_start 421 422 # Binding fuse mount point to /storage/emulated/legacy 423 on property:init.svc.sdcard=running 424 wait /mnt/shell/emulated/0 425 mount none /mnt/shell/emulated/0 /storage/emulated/legacy bind 426 427 service thermald /system/bin/thermald 428 class main 429 430 service mpdecision /system/bin/mpdecision --no_sleep --avg_comp 431 class main 432 433 service ppd /system/bin/mm-pp-daemon 434 class late_start 435 disabled 436 user system 437 socket pps stream 0660 system system graphics 438 group system graphics 439 440 service qcamerasvr /system/bin/mm-qcamera-daemon 441 class late_start 442 user camera 443 group camera system inet input 444 445 service wcnss_init /system/bin/sh /system/etc/init.flo.wifi.sh 446 class main 447 user system 448 group system wifi 449 oneshot 450 451 service bdAddrLoader /system/bin/bdAddrLoader -f /persist/bluetooth/.bdaddr -h -x 452 class main 453 user bluetooth 454 group system bluetooth net_bt_stack 455 oneshot 456 457 # bugreport is triggered by holding down volume down, volume up and power 458 service bugreport /system/bin/dumpstate -d -p -B \ 459 -o /data/data/com.android.shell/files/bugreports/bugreport 460 class main 461 disabled 462 oneshot 463 keycodes 114 115 116 464 465 service qseecomd /system/bin/qseecomd 466 class late_start 467 user system 468 group system 469 470 service diag_mdlog /system/bin/logwrapper /system/bin/diag_mdlog -s 100 471 class late_start 472 disabled 473 474 on property:init.svc.surfaceflinger=running 475 start ppd 476 477 on property:init.svc.surfaceflinger=stopped 478 stop ppd 479