on init
    # mount debugfs
    mount debugfs /sys/kernel/debug /sys/kernel/debug

# power management
# Enable off mode by default
    #write /sys/kernel/debug/pm_debug/enable_off_mode 1

# Enable Smart Reflex in debugfs
    write /sys/kernel/debug/pm_debug/smartreflex/sr_core/autocomp 1
    write /sys/kernel/debug/pm_debug/smartreflex/sr_iva/autocomp 1
    write /sys/kernel/debug/pm_debug/smartreflex/sr_mpu/autocomp 1

on boot
    # create dhcpcd dir
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chmod 0770 /data/misc/dhcp

    # switch CPUfreq from performance to hotplug
    #write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor hotplug
    #write /sys/devices/system/cpu/cpufreq/hotplug/down_threshold 30

    #Give system ownership and permission to boost clock for specified timeout
    #Note boost_timeout cannot be changed from application because of dynamic sysfs creation. It will have default value of 3 sec.
    chown system system /sys/devices/system/cpu/cpu0/cpufreq/boost_cpufreq
    chmod 0664  /sys/devices/system/cpu/cpu0/cpufreq/boost_cpufreq

    # Boost the CPU for 60 sec for boot optimization
    #write /sys/devices/system/cpu/cpufreq/hotplug/boost_timeout 60000000
    #write /sys/devices/system/cpu/cpu0/cpufreq/boost_cpufreq 1

    # change permissions for alsa nodes
    chmod 0777  /dev/snd/pcmC0D0c
    chmod 0777 /dev/snd/pcmC0D0p
    chmod 0777  /dev/snd/controlC0
    chmod 0777  /dev/snd/timer

    #change permissions for alsa nodes for audio modem
    chmod 0777 /dev/snd/pcmC0D5c
    chmod 0777 /dev/snd/pcmC0D5p

    #change permissions for alsa nodes for HDMI
    chmod 777  /dev/snd/pcmC0D7p

    # change permissions for Overlay
    chown system system /dev/video1
    chown system system /dev/video2
    chown system system /dev/video3
    # change permissions for overlay managers and display devices
    chown system system /sys/devices/platform/omapdss/display0/enabled
    chown system system /sys/devices/platform/omapdss/display1/enabled
    chown system system /sys/devices/platform/omapdss/display2/enabled
    chown system system /sys/devices/platform/omapdss/display3/enabled
    chown system system /sys/devices/platform/omapdss/display0/name
    chown system system /sys/devices/platform/omapdss/display1/name
    chown system system /sys/devices/platform/omapdss/display2/name
    chown system system /sys/devices/platform/omapdss/display3/name
    chown system system /sys/devices/platform/omapdss/overlay0/manager
    chown system system /sys/devices/platform/omapdss/overlay1/manager
    chown system system /sys/devices/platform/omapdss/overlay2/manager
    chown system system /sys/devices/platform/omapdss/overlay3/manager
    chown system system /sys/devices/platform/omapdss/overlay0/zorder
    chown system system /sys/devices/platform/omapdss/overlay1/zorder
    chown system system /sys/devices/platform/omapdss/overlay2/zorder
    chown system system /sys/devices/platform/omapdss/overlay3/zorder
    # change permissions for manager tranparency parameters
    chown system system /sys/devices/platform/omapdss/manager0/name
    chown system system /sys/devices/platform/omapdss/manager0/display
    chown system system /sys/devices/platform/omapdss/manager1/name
    chown system system /sys/devices/platform/omapdss/manager1/display
    chown system system /sys/devices/platform/omapdss/manager2/name
    chown system system /sys/devices/platform/omapdss/manager2/display
    chown system system /sys/devices/platform/omapdss/overlay0/enabled
    chown system system /sys/devices/platform/omapdss/overlay1/enabled
    chown system system /sys/devices/platform/omapdss/overlay2/enabled
    chown system system /sys/devices/platform/omapdss/overlay3/enabled
    # change permissions for display timings to get the resolutions
    chown system system /sys/devices/platform/omapdss/display0/timings
    chown system system /sys/devices/platform/omapdss/display1/timings
    chown system system /sys/devices/platform/omapdss/display2/timings
    chown system system /sys/devices/platform/omapdss/display3/timings
    chown system system /sys/devices/platform/omapdss/display2/code
     # change permissions for Tiler driver
    chown media media /dev/tiler
    chmod 0660 /dev/tiler
    chmod 0660 /dev/dmm
    # Sensors
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0068/range
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0068/datarate
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0068/powermode
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-001e/mode
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-001e/range
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-001e/rate
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0019/range
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0019/mode
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0018/range
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0018/mode
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0018/rate
    chown system system /sys/devices/platform/nmk-i2c.2/i2c-2/2-0018/sleep_wake

    # Revert the boost_timeout to the default value of 3 sec. Note this won't affect the prev boost
    # request for boot time reduction
    # write /sys/devices/system/cpu/cpufreq/hotplug/boost_timeout 3000000

    # Enable hotplug detection for HDMI
    # write /sys/devices/platform/omapdss/display2/hpd_enabled 1

    chown system system /sys/class/graphics/fb0/overlays
    chown system system /sys/class/graphics/fb0/fit_to_screen
    chown system system /sys/class/graphics/fb1/overlays

    insmod /system/modules/mac80211.ko
    insmod /system/modules/cw1200_core.ko
    setprop wifi.interface wlan0

service hciattach /system/bin/hciattach -a 23 -n -s 115200 /dev/ttyAMA0 cg2900 115200 flow
    class main
    user root

service wpa_supplicant /system/bin/wpa_supplicant -iwlan0 -dd -Dwext
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service dhcpcd_wlan0 /system/bin/dhcpcd -dABKL
    disabled
    oneshot

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

service faketsd /system/bin/faketsd
    user bluetooth
    group bluetooth
    oneshot

#userspace service for GPS
service lbsd /system/bin/lbsd
    class main
    user root
    group radio
