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