on early-fs
    mkdir /system
    mkdir /data 0771 system system
    mkdir /cache 0770 system cache

    # Enable LVM

    # We need to set LVM_SYSTEM_DIR for lvm to work and it does not work
    # with embedded export command until too late, so we exploit
    # the fact that there is /bin/sh on the 13th partition that we can use.
    mount ext3 /dev/block/mmcblk0p13 /mnt wait noatime barrier=1

    # Unfortunately it's dynamically linked so we need to create this
    # /lib symlink first and kill it later when no longer needed.
    symlink /mnt/lib /lib

    # Also stupid lvm binary expects block devices to live in /dev,
    # not /dev/block
    symlink /dev/block/mmcblk0p14 /dev/mmcblk0p14
    exec /mnt/bin/sh -c "LVM_SYSTEM_DIR=/mnt/etc/lvm /mnt/usr/sbin/lvm.static vgchange -ay"

    # regular mounts
    mount ext4 /dev/store/cm-system /system wait ro barrier=1
    mount ext4 /dev/store/cm-data /data wait noatime nosuid nodev barrier=1 noauto_da_alloc
    mount ext4 /dev/store/cm-cache /cache wait noatime nosuid nodev barrier=1

    # remove all the lvm stuff as well as the moboot nextboot instruction
    exec /system/xbin/rm -rf /dev/mmcblk0p14 /lib /mnt/moboot.next /var
    umount /mnt

on init
    # for Invense MPU3050
    chmod 0664 /dev/mpu
    chmod 0664 /dev/mpuirq
    chmod 0664 /dev/timerirq
    chown system system /dev/mpu
    chown system system /dev/mpuirq
    chown system system /dev/timerirq

    chown system system /dev/compasssensor
    chmod 0666 /dev/compasssensor
    chown system system /dev/lightsensor
    chmod 0666 /dev/lightsensor
    chown system system /dev/gsensor
    chmod 0666 /dev/gsensor
    chown system system /dev/magsensor
    chmod 0666 /dev/magsensor
    chown system system /dev/gyrosensor
    chmod 0666 /dev/gyrosensor
    chown system system /dev/psensor
    chmod 0666 /dev/psensor
    chmod 0666 /sys/bus/platform/devices/max8903-charger/CEN_N_pin/value
    chmod 0666 /sys/bus/platform/devices/max8903-charger/DCM_pin/value
    chmod 0666 /sys/bus/platform/devices/max8903-charger/USUS_pin/value
    chmod 0666 /sys/bus/platform/devices/max8903-charger/IUSB_pin/value
    chmod 0666 /sys/bus/platform/devices/max8903-charger/CHG_D_ISET1_GPIO/value
    chmod 0666 /sys/bus/platform/devices/max8903-charger/CHG_D_ISET2_GPIO/value
    chmod 0664 /sys/class/leds/button-backlight/brightness
    chmod 0664 /sys/class/leds/core_navi_left/brightness
    chmod 0664 /sys/class/leds/core_navi_right/brightness
    chown system system /sys/class/leds/core_navi_left/brightness
    chown system system /sys/class/leds/core_navi_right/brightness

    #  for emmc  (shared with webos at /dev/share/media)

    export PHONE_STORAGE /mnt/emmc
    mkdir /mnt/emmc 0000 system system
    symlink /mnt/emmc /emmc

    #  for mounting USB storage

    mkdir /mnt/usbdisk 0000 system system

    # For TS control
    chown system system /sys/devices/platform/cy8ctma395/vdd
    chown system system /sys/devices/platform/cy8ctma395/xres
    chown system system /sys/user_hw/pins/ctp/wake/level
    chown system system /dev/i2c-5

	# increase per-process file limit to prevent warning
	setrlimit 7 10000 10000

on boot
    mkdir /data/misc/wifi 0770 system wifi
    mkdir /data/misc/wifi/sockets 0770 system wifi
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp
    mount debugfs /sys/kernel/debug /sys/kernel/debug

    #  permissions for kgsl
    chmod 0666 /dev/kgsl-2d0
    chmod 0666 /dev/kgsl-2d1
    chmod 0666 /dev/kgsl-3d0
    chown system graphics /dev/kgsl-2d0
    chown system graphics /dev/kgsl-2d1
    chown system graphics /dev/kgsl-3d0

    # bluetooth power up/down interface
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
    chmod 0660                /sys/class/rfkill/rfkill0/state

    # fmtx
    chown bluetooth bluetooth /sys/class/rfkill/rfkill1/type
    chown bluetooth bluetooth /sys/class/rfkill/rfkill1/state
    chmod 0660                /sys/class/rfkill/rfkill1/state

    chown bluetooth bluetooth /dev/rfkill
    chmod 0660                /dev/rfkill

    chown bluetooth bluetooth /sys/user_hw/pins/bt/reset/level
    chown bluetooth bluetooth /sys/user_hw/pins/bt/host_wake/level

    # bluetooth MAC address programming
    chown bluetooth bluetooth /sys/module/hp_bdaddress/parameters/bdaddress
    setprop ro.bt.bdaddr_path /sys/module/hp_bdaddress/parameters/bdaddress

    chown audio audio /dev/input/event5
    chmod 0660 /dev/input/event5
    
    # Increase readahead buffers on MMC devices
    write /sys/block/mmcblk0/bdi/read_ahead_kb 1024

    # Enable low memory killer to check file pages
    write /sys/module/lowmemorykiller/parameters/minfree 8192,10240,12288,14336,16384,20480
    write /sys/devices/system/cpu/cpufreq/ondemand/up_threshold 90
    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 50000

    # allow libaudio to change idle collapse on open/close
    #chown audio audio /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled
    #chmod 0660 /sys/module/pm_8x60/modes/cpu0/power_collapse/idle_enabled
    #chown audio audio /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled
    #chmod 0660 /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/idle_enabled
    #chown audio audio /sys/module/pm_8x60/modes/cpu1/power_collapse/idle_enabled
    #chmod 0660 /sys/module/pm_8x60/modes/cpu1/power_collapse/idle_enabled
    #chown audio audio /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled
    #chmod 0660 /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled

    # Enable power collapse where always safe
    write /sys/module/pm_8x60/modes/cpu0/power_collapse/suspend_enabled 1
    write /sys/module/pm_8x60/modes/cpu0/standalone_power_collapse/suspend_enabled 1
    #write /sys/module/pm_8x60/modes/cpu1/power_collapse/idle_enabled 1
    write /sys/module/pm_8x60/modes/cpu1/power_collapse/suspend_enabled 1
    #write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/idle_enabled 1
    write /sys/module/pm_8x60/modes/cpu1/standalone_power_collapse/suspend_enabled 1
    write /sys/module/rpm_resources/enable_low_power/vdd_dig 2
    write /sys/module/rpm_resources/enable_low_power/vdd_mem 2
    write /sys/module/rpm_resources/enable_low_power/L2_cache 1
    write /sys/module/rpm_resources/enable_low_power/pxo 1

    # wifi modules
    insmod /system/lib/modules/librasdioif.ko

    # modules
    insmod /system/lib/modules/nls_utf8.ko
    insmod /system/lib/modules/cifs.ko
    insmod /system/lib/modules/ntfs.ko
    insmod /system/lib/modules/tun.ko

service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
    -Dwext -iwlan0 -W -c/data/misc/wifi/wpa_supplicant.conf
    group wifi inet net_raw
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL wlan0
    disabled
    oneshot

service iprenew_wlan0 /system/bin/dhcpcd -n
    disabled
    oneshot

# from tenderloin

# bugreport is triggered by the KEY_BACK and KEY_MENU keycodes
service bugreport /system/bin/dumpstate -d -v -o /sdcard/bugreports/bugreport
    disabled
    oneshot
    keycodes 158 139

service hciattach /system/bin/sh /system/etc/init.qcom.bt.sh
    user bluetooth
    group qcom_oncrpc bluetooth net_bt_admin system
    disabled
    oneshot

service tsdriver /system/bin/ts_srv
    critical

service dcvs0 /system/bin/dcvs --cpu=0 --slacktime=64
    user root
    disabled

service dcvs1 /system/bin/dcvs --cpu=1 --slacktime=64
    user root
    disabled

service mpdecision /system/bin/mpdecision --no_sleep --avg_comp
    user root
    disabled

service thermald /system/bin/thermald
    user root
    disabled

on property:init.svc.bootanim=stopped
    start thermald
    start mpdecision