on init 

    # change order or library location search
    export LD_LIBRARY_PATH /system/lib
    export DSP_PATH /system/lib/dsp

    # mount point of sdcard
    export EXTERNAL_STORAGE /mnt/sdcard
    mkdir /mnt/sdcard  0700 root root
    symlink /mnt/sdcard /sdcard

    #Adb at boot
    write /dev/usb_device_mode charge_adb
    write /tmp/usbd_current_state usb_mode_charge_adb
    chmod 0666 /tmp/usbd_current_state
    start adbd

on fs

# Mount mmc partitions
    mkdir /pds 0775 system system

    mount ext3 /dev/block/mmcblk1p21 /system
    mount ext4 /dev/block/mmcblk1p24 /cache wait noatime nodiratime nodev nobh data=writeback noauto_da_alloc barrier=0
    mount ext4 /dev/block/mmcblk1p25 /data wait noatime nodiratime nodev nobh data=writeback noauto_da_alloc barrier=0
    exec /system/bootmenu/script/pdsbackup.sh

    symlink /dev/block/mmcblk1p21 /dev/block/system
    symlink /dev/block/mmcblk1p24 /dev/block/cache
    symlink /dev/block/mmcblk1p25 /dev/block/userdata


    mount ext3 /dev/block/mmcblk1p21 /system ro remount

on post-fs

    # Load kernel modules
    insmod /system/lib/modules/netmux.ko
    insmod /system/lib/modules/netmux_linkdriver.ko
    insmod /system/lib/modules/modem_pm_driver.ko
    insmod /system/lib/modules/nls_utf8.ko
    insmod /system/lib/modules/cifs.ko

# Load wifi drivers (all except wl12xx_sdio)
    insmod /system/lib/modules/compat.ko
    insmod /system/lib/modules/cfg80211.ko
    insmod /system/lib/modules/mac80211.ko
    insmod /system/lib/modules/wl12xx.ko

# Backward compatibility
    symlink /dev /dev/netmux
    symlink /dev/ttyGS0 /dev/acm0
    symlink /dev/hp3a-omap /dev/hp3A-omap

    mount rootfs rootfs / rw remount

# Overclock after 2ndboot.
    exec /system/bootmenu/script/overclock.sh

# Busybox
    mkdir /data/local/tmp 0777 system shell
    export HISTFILE /data/local/tmp/.ash_history
    export HISTFILESIZE 1000
    export ENV /system/etc/profile

# Mount tmp, we dont have swap, use ramfs which can grow if required
    mkdir /tmp
    mount ramfs ramfs /tmp size=512k relatime
    chmod 0777 /tmp
    chown system shell /tmp

# Configure kernel options
    # Enable automatic power control for EHCI USB IPC
    write /sys/devices/platform/ehci-omap.0/usb1/power/level auto
    write /sys/devices/platform/ehci-omap.0/usb1/power/autosuspend 0
    write /sys/devices/platform/ehci-omap.0/usb1/1-3/power/level auto
    write /sys/devices/platform/ehci-omap.0/usb1/1-3/power/autosuspend 0
    # Disable a system-wide task dump on OOM in default
    write /proc/sys/vm/oom_dump_tasks 0
    write /proc/sys/fs/suid_dumpable 2
    # Power Management
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 300000
    write /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold 86
    write /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate 46875
    write /sys/power/sr_vdd1_autocomp 1
    write /sys/power/sr_vdd2_autocomp 1
# Change ownership for vibrators
    chown system system /sys/class/timed_output/vibrator/enable
    chown system system /sys/class/timed_output/vibrator/sweep
    chmod 0660 /sys/class/timed_output/vibrator/enable
    chmod 0660 /sys/class/timed_output/vibrator/sweep
# bluetooth power up/down interface (wl127x Bluetooth and hci0)
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/type
    chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
    chmod 0660 /sys/class/rfkill/rfkill0/state

# Tweaks
    # DSS - disable tearing elimination
    write /sys/devices/omapdss/display0/tear_elim 0  

on post-fs-data

    mount rootfs rootfs / ro remount

# Create basic filesystem structure
    mkdir /data/bp_nvm
    mkdir /data/gki 0770 radio radio
    mkdir /data/location 0771 radio radio
    mkdir /data/opprof 0770 radio shell
    mkdir /data/tpapi 0770 system system
    mkdir /data/tpapi/etc 0770 system system
    mkdir /data/tpapi/etc/tpa 0770 system system
    mkdir /data/tpapi/etc/tpa/persistent 0770 system system
    mkdir /data/tmp 0770 root system
    mkdir /data/tmp/battd 0770 root system
    mkdir /data/misc/wifi/sockets 0770 wifi wifi
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    mkdir /tmp/commdrv 0770 radio radio
    mkdir /data/local/hwui.deny

    chown radio radio /data/bp_nvm
    chown radio radio /pds/bp_nvm
    chown system shell /pds/public
    chown root system /data/tmp/battd
    chown system nobody /data/local/hwui.deny

    # Allow system to have access to /dev/tun directory
    mkdir /dev/tun 0770 system vpn
    chown system vpn /dev/tun
    chmod 0770 /dev/tun

    chmod 0775 /pds/public
    chmod 0770 /data/bp_nvm
    chmod 0770 /pds/bp_nvm
    chmod 0770 /pds/security
    chmod 0770 /data/tmp/battd
    chmod 0775 /data/local/hwui.deny

on property:persist.service.adb.enable=0
    stop adbd

on property:persist.service.adb.enable=1
    start adbd

    setprop vold.post_fs_data_done 1

on boot

    # Change the ownership of led files.
    chown system system /sys/class/leds/lcd-backlight/als
    chown system system /sys/class/leds/lcd-backlight/pwm_mode
    chown system system /sys/class/leds/lcd-backlight/brightness
    chown system system /sys/class/leds/button-backlight/brightness
    chown system system /sys/class/leds/red/blink
    chown system system /sys/class/leds/red/brightness
    chown system system /sys/class/leds/green/brightness
    chown system system /sys/class/leds/blue/brightness
    chown system system /sys/class/leds/usb/brightness
    chown system system /sys/class/leds/torch-flash/camera_strobe
    chown media system /sys/class/leds/torch-flash/flash_light
    chown media system /sys/class/leds/spotlight/brightness
    chown media system /sys/class/leds/af-led/brightness
    chmod 0660 /sys/class/leds/lcd-backlight/brightness
    chmod 0660 /sys/class/leds/button-backlight/brightness
    chmod 0660 /sys/class/leds/red/blink
    chmod 0660 /sys/class/leds/red/brightness
    chmod 0660 /sys/class/leds/green/brightness
    chmod 0660 /sys/class/leds/blue/brightness
    chmod 0660 /sys/class/leds/usb/brightness
    chmod 0666 /sys/class/leds/torch-flash/camera_strobe
    chmod 0666 /sys/class/leds/torch-flash/flash_light
    chmod 0666 /sys/class/leds/spotlight/brightness

    chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate
    chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
    chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
    chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
    chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
    chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
    chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
    chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
    chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
    chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
    chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
    chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost
    chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
    chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
    chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost

    # Charge only mode services.
    exec /system/bin/mot_boot_mode
    class_start charger

on charger
on property:sys.chargeonly.mode=1
    class_reset main
    class_reset late_start
    start charge
    start battd

service usbd /system/bin/usbd
    class main
    user root
    socket usbd stream 666 root system

service bp-ptc /system/bin/bp_ptc
    class main
    user root
    group root

service charge /system/bin/charge_only_mode
    group root
    oneshot
    disabled

service nvm-daemon /system/bin/nvm_daemon
    class main
    user root
    group radio

service start_commdrv /system/bin/sh /system/etc/motorola/comm_drv/commdrv_fs.sh
    class main
    oneshot
    user radio
    group radio system cache

service gkisystem /system/bin/gkisystem
    class main
    socket location_shim stream 660 radio system
    socket gpshal_socket stream 660 radio system
    socket opprofdaemon stream 660 radio system
    group radio system
    onrestart exec /system/bin/gki_pd_notifier

service battd /system/bin/battd
    class charger
    socket battdsock stream 660 root system
    user root
    group system 9001
    oneshot

service ssmgrd /system/bin/ssmgrd
    class main
    group radio input system
    oneshot

# Bluetooth services.
service hciattach /system/bin/hciattach -n -t 10 /dev/ttyS1 texasalt 3000000 flow
    class main
    user bluetooth
    group bluetooth net_bt_admin
    disabled

# Phone modem error handling
service panic_daemon /system/bin/panic_daemon
    class main
    user radio
    group radio system graphics sdcard_rw
    socket panic_daemon stream 660 radio radio
    onrestart exec /system/bin/handle_bp_panic.sh

service secclkd /system/bin/secclkd
    class main
    user system
    group system radio
    oneshot

# Ecompass daemon
service akmd2 /system/bin/akmd2
    class main
    user compass
    group compass misc input

# Wifi calibrate
service wifi_calibrator /system/bin/sh /system/bin/wifical.sh
    class main
    group wifi
    oneshot

# Wifi services
service dnsmasq /system/bin/dnsmasq -C/data/misc/wifi/dns.conf -k
    class main
    group wifi
    disabled
    oneshot

service p2p_supplicant /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -N \
    -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -puse_p2p_group_interface=1
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot
service wpa_supplicant /system/bin/wpa_supplicant \
    -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -e/data/misc/wifi/entropy.bin
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
    class main
    disabled
    oneshot
service iprenew_wlan0 /system/bin/dhcpcd -n
    class main
    disabled
    oneshot
service dhcpcd_p2p /system/bin/dhcpcd -aABKL
    class main
    disabled
    oneshot
service iprenew_p2p /system/bin/dhcpcd -n
    class main
    disabled
    oneshot
service dhcpcd_bnep0 /system/bin/dhcpcd -ABKL
    class main
    disabled
    oneshot
service hostapd_bin /system/bin/hostapd -d /data/misc/wifi/hostapd.conf
    socket wpa_wlan0 dgram 660 wifi wifi
    class main
    disabled
    oneshot

service pvrsrvctl /system/bin/pvrsrvctl --start --no-module
    class core
    user root
    group root
    oneshot

service baseimage /system/bin/dspexec -T /system/lib/dsp/baseimage.dof
    class main
    user media
    group media graphics
    oneshot

service locDrv /system/bin/brcm_guci_drv -config /system/etc/gpsconfig.xml
    class main
    user radio
    group radio inet sdcard_rw

service fmradio /system/bin/fmradioserver
    class main
    disabled
    user system
    group bluetooth net_bt_admin net_raw net_admin misc

