[Xperia Arc Android Development] gauravj:
* Your warranty is now void..
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, you getting dumped or you getting fired because your phone
* bootloops and alarm does not go off. Please do some research if you have any
* YOU are choosing to make these modifications.

Requirements :-

- Android 4.0+

- Custom kernel (with init.d support)

- Root and Busybox installed

- 3MB of free space in "/system".

Feature :-

- Full memory management.

- kernel tweaks and improvements for better performance and battery life.

- Entropy generator engine used to reduce lags.

- Zipalign apps in "/system" and apps in "/data" every 48 hours which result in less RAM usage.

- Sqlite optimizations and faster database access.

- CPU governors tweaks and improvements for better performance and battery life.

- Increased SD Card read-ahead cache to 2048 KB .

- Ad blocking.

- Default.prop tweaks and improvements.

- Cleans log files and tombstones at every boot.

- Many other tweaks for better performance and battery life!

Steps :-

- go to system/etc/init.d/delete all files in it

- Download the zip

- Flash zip via recovery

- Feel the difference (1st boot may take time)

Some part of my Default .prop

#enable harware egl profile

debug.egl.profiler=1

#16BIT transparency , Smother Scrolling

persist.sys.use_16bpp_alpha=1

#debug.composition.type=gpu

debug.composition.type=c2d

debug.performance.tuning=1

debug.enabletr=true

debug.qctwa.preservebuf=1

dev.pm.dyn_samplingrate=1

video.accelerate.hw=1

ro.vold.umsdirtyratio=20

debug.overlayui.enable=1

debug.egl.hw=1

ro.fb.mode=1

hw3d.force=1

persist.sys.composition.type=c2d

persist.sys.ui.hw=1

ro.sf.compbypass.enable=0

#Enable tile rendering

debug.enabletr=true

persist.sys.composition.type=gpu

#3d performance

persist.android.strictmode=0

ro.min_pointer_dur=1

ro.secure=0

#Media quality

ro.media.enc.jpeg.quality=100

ro.media.dec.jpeg.memcap=8000000

ro.media.enc.hprof.vid.bps=8000000

ro.media.dec.aud.wma.enabled=1

ro.media.dec.vid.wmv.enabled=1

ro.media.cam.preview.fps=0

ro.media.codec_priority_for_thumb=so

#Speed liquid

persist.service.lgospd.enable=0

persist.service.pcsync.enable=0

# For sensor sleep control

ro.ril.sensor.sleep.control=1

#loggers

ro.config.htc.nocheckin=1

ro.config.nocheckin=1

profiler.force_disable_ulog=1

profiler.force_disable_err_rpt=1

#Scrolling

windowsmgr.max_events_per_sec=90

ro.max.fling_velocity=12000

ro.min.fling_velocity=8000

#battery saver

ro.ril.disable.power.collapse=1

pm.sleep_mode=1

usb_wakeup=enable

proximity_incall=enable

power_supply.wakeup=enable

ro.config.hw_power_saving=1

ro.config.hw_fast_dormancy=1

ro.config.hw_quickpoweron=true

persist.sys.use_dithering=0

#improve battery under no signal -- need test

ro.mot.eri.losalert.delay=1000

#net speedtweaks

net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960

net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960

net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960

net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960

net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960

net.tcp.buffersize.hspda=4096,87380,256960,4096,16 384,256960

net.tcp.buffersize.hspa=4096,87380,256960,4096,163 84,256960

#streaming faster

media.stagefright.enable-player=true

media.stagefright.enable-meta=true

media.stagefright.enable-scan=true

media.stagefright.enable-http=true

media.stagefright.enable-aac=true

media.stagefright.enable-qcp=true

media.stagefright.enable-record=true

Some part of INIT.D :-

# Disable Logger

busybox rm /dev/log/main

# Busybox Remounting

busybox mount -o remount,noatime,barrier=0,nobh /system

busybox mount -o remount,noatime,barrier=0,nobh /data

busybox mount -o remount,noatime,barrier=0,nobh /cache

echo "Mounted Busybox"

# clearing junk files

busybox find /data/data -type d -iname "*cache*" -exec busybox rm -f {}/* ';' -exec echo "Cleared {}" ';'

rm -f /data/local/*.apk

rm -f /data/local/tmp/*.apk

rm -f /data/*.log

rm -f /data/log/*.log

rm -f /cache/*.*

rm -f /cache/recovery/*.*

rm -f /data/system/dropbox/*.txt

rm -f /data/backup/pending/*.tmp

rm -f /data/tombstones/*.*

echo "Junk cleared"

# Defrag Database Files

for i in \

`find /data -iname "*.db"`

do \

sqlite3 $i 'VACUUM;';

# Move Dalvik-Cache To Cache Partition

CACHESIZE=$(df -k /cache | tail -n1 | tr -s ' ' | cut -d ' ' -f2)

if [ $CACHESIZE -gt 4000 ]

then

echo "Large cache detected, moving dalvik-cache to /cache"

if [ ! -d /cache/dalvik-cache ]

then

busybox rm -rf /cache/dalvik-cache /data/dalvik-cache

mkdir /cache/dalvik-cache /data/dalvik-cache

fi

busybox chown 1000:1000 /cache/dalvik-cache

busybox chmod 0771 /cache/dalvik-cache

busybox mount -o bind /cache/dalvik-cache /data/dalvik-cache

busybox chown 1000:1000 /data/dalvik-cache

busybox chmod 0771 /data/dalvik-cache

else

echo "Small cache detected, dalvik-cache will remain on /data"

fi

echo "Moved Dalvik-Cache To Cache Partition"

# Mod: Battery

setprop wifi.supplicant_scan_interval=180

setprop pm.sleep_mode=1

setprop ro.ril.disable.power.collapse=1

# Mod: Performance

setprop ro.kernel.android.checkjni=0

setprop persist.sys.purgeable_assets=1

setprop debug.sf.hw=1

setprop ro.telephony.call_ring.delay=0

setprop ro.foreground_app_mem=1280

setprop ro.visible_app_mem=2560

setprop ro.perceptible_app_mem=3840

setprop ro.heavy_weight_app_mem=6400

setprop ro.secondary_server_mem=7680

setprop ro.backup_app_mem=8960

setprop ro.home_app_mem=2048

setprop ro.hidden_app_mem=12800

setprop ro.content_provider_mem=15360

setprop ro.empty_app_mem=20480

setprop ro.foreground_app_adj=0

setprop ro.visible_app_adj=1

setprop ro.perceptible_app_adj=2

setprop ro.heavy_weight_app_adj=4

setprop ro.secondary_server_adj=5

setprop ro.backup_app_adj=6

setprop ro.home_app_adj=1

setprop ro.hidden_app_min_adj=7

setprop ro.empty_app_adj=15

# Mod: Graphics

setprop debug.performance.tuning=1

setprop video.accelerate.hw=1

setprop ro.media.dec.jpeg.memcap=8000000

setprop ro.media.enc.hprof.vid.bps=8000000

setprop persist.sys.use_dithering 1

# Touch Screen Sensitivity

echo 7035 > /sys/class/touch/switch/set_touchscreen;

echo 8002 > /sys/class/touch/switch/set_touchscreen;

echo 11000 > /sys/class/touch/switch/set_touchscreen;

echo 13060 > /sys/class/touch/switch/set_touchscreen;

echo 14005 > /sys/class/touch/switch/set_touchscreen;

# Renice Apps

renice -20 `pidof com.android.phone`

renice -19 `pidof com.android.inputmethod.latin`

renice -19 `pidof com.swype.android.inputmethod`

renice -17 `pidof com.android.systemui`

renice -9 `pidof com.android.settings`

renice -9 `pidof com.android.vending`

renice -6 `pidof com.sec.android.app.camera`

renice -6 `pidof com.sec.android.app.fm`

renice -6 `pidof com.google.android.apps.maps`

renice -4 `pidof com.google.android.apps.googlevoice`

renice -3 `pidof android.process.media`

# SqLite Optimize

for i in \

`busybox find /data -iname "*.db"`;

do \

/system/xbin/sqlite3 $i 'VACUUM;';

/system/xbin/sqlite3 $i 'REINDEX;';

done;

if [ -d "/dbdata" ]; then

for i in \

`busybox find /dbdata -iname "*.db"`;

do \

/system/xbin/sqlite3 $i 'VACUUM;';

/system/xbin/sqlite3 $i 'REINDEX;';

done;

fi;

if [ -d "/datadata" ]; then

for i in \

`busybox find /datadata -iname "*.db"`;

do \

/system/xbin/sqlite3 $i 'VACUUM;';

/system/xbin/sqlite3 $i 'REINDEX;';

done;

fi;

for i in \

`busybox find /sdcard -iname "*.db"`;

do \

/system/xbin/sqlite3 $i 'VACUUM;';

/system/xbin/sqlite3 $i 'REINDEX;';

done;

echo "SqLite Database Optimized"

echo "System Optimized And Boosted at $( date +"%m-%d-%Y %H:%M:%S" )"

function mountrw {

mount|grep "/system "|grep rw >/dev/null

[ $? -eq 1 ] && mount -o remount,rw $(mount|grep "/system "|awk '{ print $1 }') /system

}

function mountro {

mount|grep "/system "|grep ro >/dev/null

[ $? -eq 1 ] && mount -o remount,ro $(mount|grep "/system "|awk '{ print $1 }') /system

}

echo " Starting package optimization"

echo "Starting ZipAlign $( date +"%m-%d-%Y %H:%M:%S" )"

zipalign -c 4 $apk;

ZIPCHECK=$?;

if [ $ZIPCHECK -eq 1 ]; then

mountrw;

echo ZipAligning $(basename $apk)

zipalign -f 4 $apk /cache/$(basename $apk);

if [ -e /cache/$(basename $apk) ]; then

cp -f -p /cache/$(basename $apk) $apk

rm /cache/$(basename $apk);

else

echo ZipAligning $(basename $apk) Failed DC;

fi;

else

echo Velocity ZipAlign already completed on $apk

fi;

done;

for apk in /data/app/*.apk ; do

zipalign -c 4 $apk;

ZIPCHECK=$?;

if [ $ZIPCHECK -eq 1 ]; then

echo ZipAligning $(basename $apk)

zipalign -f 4 $apk /cache/$(basename $apk);

if [ -e /cache/$(basename $apk) ]; then

cp -f -p /cache/$(basename $apk) $apk

rm /cache/$(basename $apk);

else

echo ZipAligning $(basename $apk) Failed DC

fi;

else

echo Velocity ZipAlign already completed on $apk

fi;

done;

mountro;

echo "ZipAlign finished at $( date +"%m-%d-%Y %H:%M:%S" )"