on init
    export TERMINFO /system/etc/terminfo

    symlink /dev/msm_camera/control0 /dev/msm_camera/control1
    symlink /dev/msm_camera/frame0 /dev/msm_camera/frame1
    symlink /dev/msm_camera/config0 /dev/msm_camera/config1

    write /proc/sys/kernel/sched_min_granularity_ns 100000

on fs
    mount yaffs2 mtd@system /system remount
    mount rootfs rootfs / rw remount
    mkdir /sd-ext 0771 system system

    # DRMv1 rights storage
    symlink /data/local /data/drm
    mkdir /data/local/rights 0777 shell shell
    chown shell shell /data/drm
    write /data/drm/rights/mid.txt 0
    chmod 0777 /data/drm/rights/mid.txt

on boot
    mount debugfs /sys/kernel/debug /sys/kernel/debug

    mkdir /data/misc/wifi 0770 wifi wifi
    mkdir /data/misc/wifi/sockets 0770 wifi wifi
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp

    # 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

    # bluetooth MAC address programming
    chown bluetooth bluetooth /sys/module/board_htcleo/parameters/bdaddr
    setprop ro.bt.bdaddr_path /sys/module/board_htcleo/parameters/bdaddr

    # bluetooth car dock pin
    chown system system /sys/class/switch/dock/bt_pin

    chown radio radio /sys/module/pm/parameters/idle_sleep_mode

    # Set error receiver
    setprop ro.error.receiver.htc.apps com.android.updater
 
    # ruu  
    write /data/misc/screen_lock_status  0
    chown system system /data/misc/screen_lock_status
    chmod 644 /data/misc/screen_lock_status

    # Write value must be consistent with the above properties.
    # Note that the driver only supports 6 slots, so we have HOME_APP at the
    # same memory level as services.
    write /sys/module/lowmemorykiller/parameters/adj 0,1,2,7,14,15

    # Permissions for liblights
    chown system system /sys/class/leds/green/brightness
    chown system system /sys/class/leds/green/blink
    chown system system /sys/class/leds/amber/brightness
    chown system system /sys/class/leds/amber/blink
    chown system system /sys/class/leds/red/brightness
    chown system system /sys/class/leds/red/blink
    chown system system /sys/class/leds/blue/brightness
    chown system system /sys/class/leds/blue/blink
    chown system system /sys/class/leds/jogball-backlight/brightness
    chown system system /sys/class/leds/jogball-backlight/color
    chown system system /sys/class/leds/jogball-backlight/period
    chown system system /sys/class/leds/button-backlight/brightness
    chown system system /sys/class/leds/lcd-backlight/brightness

    # Permissions for camera
    chown radio system /sys/camera_led_status/led_ril_status
    chown system system /sys/camera_led_status/led_wimax_status
    chown system system /sys/camera_led_status/led_hotspot_status
    chown media system /sys/android_camera/cam_mode

    # enable the GPS
    setprop ro.ril.def.agps.mode 2

    # performance tweaks for flash
    write /sys/block/mtdblock3/bdi/read_ahead_kb 2048
    write /sys/block/mtdblock4/bdi/read_ahead_kb 2048
    write /sys/block/mtdblock5/bdi/read_ahead_kb 2048
    # increase read throughput from sd card
    write /sys/block/mmcblk0/bdi/read_ahead_kb 204

    # for wireless modem
    chown system system /sys/module/serial/parameters/modem_enabled
    chown system system /dev/ttyHSUSB0
    chown system system /dev/smd9
    chown media media /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    # Power Management
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 245000
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 998400
    write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ondemand
    write /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate 40000
    chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

    # Wakelock debug
    write /sys/module/wakelock/parameters/debug_mask 7

    # Fast dormancy settings
    setprop ro.ril.fast.dormancy.rule 1
    setprop ro.ril.fd.scron.timeout 4
    setprop ro.ril.fd.scroff.timeout 3

    # GPRS class
    #setprop ro.ril.gprsclass 10

    chown root radio /proc/cmdline
    chown system system /dev/ttyHS0
    chown system system /dev/smd0
    chown system system /dev/smd1
    chown system system /dev/smd27

    chmod 0666 /dev/rfkill
    chmod 0666 /dev/q6venc
    chmod 0666 /dev/ttyHS0
    chmod 0666 /dev/ttyHS1
    chmod 666 /proc/cmdline
 
    chmod 666 /dev/input/event0
    chmod 666 /dev/input/event1
    chmod 666 /dev/input/event2
    chmod 666 /dev/input/event3
    chmod 666 /dev/input/event4
    chmod 666 /dev/input/event5
    chmod 666 /dev/input/event6

    chmod 666 /dev/uinput
    chmod 666 /dev/msm_aac_in
    chmod 666 /dev/msm_audio_ctl
    chmod 666 /dev/msm_audio_route
    chmod 666 /dev/msm_mp3
    chmod 666 /dev/msm_qcelp_in
    chmod 666 /dev/msm_snd
    chmod 666 /dev/msm_audpre

    chmod 666 /dev/msm_pcm_in
    chmod 666 /dev/msm_pcm_out
    chmod 666 /dev/msm_pcm_ctl
    chmod 666 /dev/msm_hw3dm
    chmod 666 /dev/msm_hw3dc

    chmod 666 /dev/qmi0
    chmod 666 /dev/qmi1
    chmod 666 /dev/qmi2

    chmod 666 /etc/bluez/audio.conf
    chmod 666 /etc/bluez/hcid.conf
    chmod 666 /etc/bluez/input.conf

    chmod 0777 /dev/kgsl
    chmod 0777 /dev/smd0
    chmod 0777 /dev/smd1
    chmod 0777 /dev/smd27
    chmod 0777 /dev/vfe
    chmod 0777 /dev/camera
    chmod 0777 /dev/msm_camera
    chmod 0777 /dev/vogue_gps
    chmod 0777 /dev/akm8973_aot
    chmod 0777 /dev/akm8973_daemon
    chmod 0777 /dev/compass
    chmod 0777 /dev/lightsensor
    chmod 0777 /dev/bma150
    chmod 0777 /dev/cm3602
    chmod 0777 /dev/htc-acoustic

    # flashlight
    chown system camera /sys/class/leds/flashlight/brightness
    chmod 0666          /sys/class/leds/flashlight/brightness
    chmod 0666          /sys/class/leds/flashlight/max_brightness
    chown system camera /sys/devices/platform/flashlight.0/leds/flashlight/brightness
    chmod 0660          /sys/devices/platform/flashlight.0/leds/flashlight/brightness


    #720p cam support
    symlink /dev/msm_camera/control0 /dev/msm_camera/control1
    symlink /dev/msm_camera/frame0   /dev/msm_camera/frame1
    symlink /dev/msm_camera/config0  /dev/msm_camera/config1

    chmod 666 /sys/class/i2c-adapter/i2c-0/0-0018/enable
    chmod 666 /sys/class/i2c-adapter/i2c-0/0-0019/enable
    chmod 666 /sys/class/i2c-adapter/i2c-0/0-0018/rate  
    chmod 666 /sys/class/i2c-adapter/i2c-0/0-0019/rate  
    chmod 666 /sys/class/i2c-adapter/i2c-0/0-0018/scale
    chmod 666 /sys/class/i2c-adapter/i2c-0/0-0019/scale

    # Power Management
    # write /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate 40000

    # Overwrite framework low memory killer minfree setting
    write /sys/module/lowmemorykiller/parameters/minfree 3584,4096,6144,7168,7680,8192

    # Enable low memory killer to check file pages
    write /sys/module/lowmemorykiller/parameters/minfile 0,0,0,5120,5632,6144
    write /sys/module/lowmemorykiller/parameters/check_filepages 

    # PPP stuff
    chown radio radio /dev/smd1
    chown root radio /system/etc/ppp
    chown root root /system/bin/pppd;
    chmod 755 /system/etc/ppp/*
    chmod 4755 /system/bin/pppd
  
    if [ -f /system/ppp ]
    then
      # PPP enabled, doing PPP specific stuff

      # Create link for resolv.conf (generated by pppd)
      symlink /etc/ppp/resolv.conf /etc/resolv.conf

      # Tweak kernel low memory handling
      write /proc/sys/vm/lowmem_reserve_ratio 8 8
      write /proc/sys/vm/min_free_kbytes 8192
    fi
 
service hciattach /system/bin/brcm_patchram_plus --enable_hci --enable_lpm \
     --baudrate 3000000 --patchram /etc/firmware/bcm4329.hcd /dev/ttyHS0
    user bluetooth                
    group bluetooth net_bt_admin
    disabled

#service btld /system/bin/logwrapper /system/bin/btld -lpm 1 -hb 3000000
#    user root
#    group bluetooth net_bt_admin
#    disabled
#    oneshot
 
# compass/accelerometer daemon
service akmd /system/bin/akmd
    user compass
    group compass misc input
 
service wpa_supplicant /system/bin/wpa_supplicant \
    -Dwext -ieth0 -c/data/misc/wifi/wpa_supplicant.conf
    #user wifi
    #group wifi inet
    socket wpa_eth0 dgram 660 wifi wifi
    disabled
    oneshot
           
service dhcpcd_eth0 /system/bin/dhcpcd -ABKL
    disabled
    oneshot

service iprenew_eth0 /system/bin/dhcpcd -n
    disabled
    oneshot
 
# for USB internet sharing
service udhcpd /system/bin/udhcpd
    disabled
    oneshot
 
# Execute files in /etc/init.d before booting
service sysinit /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d
    disabled
    oneshot
