[Sony Xperia P, U, Sola, Go] optik19918:
I've been collecting some tweaks and scripts and seems to me it's now time to share it. While some values in terms of optimization might be different from device to device, I've found these pretty consistent throughout many.

I didn't tested all of them, and i don't assume any risk!!! Use them at you own risk!!!

Some useful tips on how to use them at the end of the post

This thread will be updated when new/better things come out

Superuser, Busybox install/update

1. Easily install Busybox (YOU NEED ROOT FIRST)

https://play.google.com/store/apps/details?id=com.jrummy.busybox.installer&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5qcnVtbXkuYnVzeWJveC5pbnN0YWxsZXIiXQ..

2. UPDATE SuperUser (root app)

http://goo.im/superuser/

Build.prop

(edit your /system/build.prop with a file manager with root access)

Careful for already existing settings. In this case, just change the values.

1. Force launcher into memory

ro.HOME_APP_ADJ=1

2. Raise JPG quality to 100%

ro.media.enc.jpeg.quality=100

3. VM Heapsize; higher the RAM, higher the hp can be

dalvik.vm.heapsize=96m

4. Render UI with GPU

debug.sf.hw=1

5. Decrease dialing out delay

ro.telephony.call_ring.delay=0

6. Helps scrolling responsiveness

windowsmgr.max_events_per_sec=150

7. Save battery

wifi.supplicant_scan_interval=180
pm.sleep_mode=1
ro.ril.disable.power.collapse=0

8. Disable debugging notify icon on statusbar

persist.adb.notify=0

9. Increase overall touch responsiveness

debug.performance.tuning=1
video.accelerate.hw=1

10. Raise photo and video recording quality

ro.media.dec.jpeg.memcap=12000000
ro.media.enc.hprof.vid.bps=12000000

11. Signal (3G) tweaks

ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5

12. Net speed tweaks

net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

13. Disable blackscreen issue after a call

ro.lge.proximity.delay=25
mot.proximity.delay=25

14. Fix some application issues

ro.kernel.android.checkjni=0

15. Phone will not wake up from hitting the volume rocker

ro.config.hwfeature_wakeupkey=0

16. Force button lights on when screen is on

ro.mot.buttonlight.timeout=0

17. Disable boot animation for faster boot

debug.sf.nobootanimation=1

18. Miscellaneous flags

ro.config.hw_menu_unlockscreen=false
persist.sys.use_dithering=0
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=y
ro.mot.eri.losalert.delay=1000

19. Specifics to some LG devices

persist.service.pcsync.enable=0
persist.service.lgospd.enable=0
user.feature.flex=true
user.feature.lgdrm=false
user.feature.lgresource=false
user.feature.lgpoweroff=false
user.feature.ls_event=false
user.feature.ls_normal=false
user.feature.sui=false

Init.d

(needs ROM with init.d access and busybox, open empty file, insert header #!/system/bin/sh and put these there, save in /system/etc/init.d and name it something like 77tweaks)

1. strict minfree handler tweak

echo "2048,3072,6144,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree

2. internet speed tweaks

echo "0" > /proc/sys/net/ipv4/tcp_timestamps;
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse;
echo "1" > /proc/sys/net/ipv4/tcp_sack;
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle;
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling;
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes;
echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl;
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout;
echo "404480" > /proc/sys/net/core/wmem_max;
echo "404480" > /proc/sys/net/core/rmem_max;
echo "256960" > /proc/sys/net/core/rmem_default;
echo "256960" > /proc/sys/net/core/wmem_default;
echo "4096,16384,404480" > /proc/sys/net/ipv4/tcp_wmem;
echo "4096,87380,404480" > /proc/sys/net/ipv4/tcp_rmem;

3. vm management tweaks

echo "4096" > /proc/sys/vm/min_free_kbytes
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "0" > /proc/sys/vm/panic_on_oom;
echo "0" > /proc/sys/vm/laptop_mode;
echo "0" > /proc/sys/vm/swappiness
echo "50" > /proc/sys/vm/vfs_cache_pressure
echo "90" > /proc/sys/vm/dirty_ratio
echo "70" > /proc/sys/vm/dirty_background_ratio

4. misc kernel tweaks

echo "8" > /proc/sys/vm/page-cluster;
echo "64000" > /proc/sys/kernel/msgmni;
echo "64000" > /proc/sys/kernel/msgmax;
echo "10" > /proc/sys/fs/lease-break-time;
echo "500,512000,64,2048" > /proc/sys/kernel/sem;

5. battery tweaks

echo "500" > /proc/sys/vm/dirty_expire_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs

6. EXT4 tweaks (greatly increase I/O)

(needs /system, /cache, /data partitions formatted to EXT4)

a) removes journalism

tune2fs -o journal_data_writeback /block/path/to/system
tune2fs -O ^has_journal /block/path/to/system
tune2fs -o journal_data_writeback /block/path/to/cache
tune2fs -O ^has_journal /block/path/to/cache
tune2fs -o journal_data_writeback /block/path/to/data
tune2fs -O ^has_journal /block/path/to/data

b) perfect mount options

busybox mount -o remount,noatime,noauto_da_alloc,nodiratime,barrier=0,nobh /system
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /data
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /cache

7. Flags blocks as non-rotational and increases cache size

LOOP=`ls -d /sys/block/loop*`;
RAM=`ls -d /sys/block/ram*`;
MMC=`ls -d /sys/block/mmc*`;
for j in $LOOP $RAM
do
echo "0" > $j/queue/rotational;
echo "2048" > $j/queue/read_ahead_kb;
done

8. microSD card speed tweak

echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;

9. Defrags database files

for i in \
`find /data -iname "*.db"`
do \
sqlite3 $i 'VACUUM;';
done

9. Remove logger

rm /dev/log/main

10. Ondemand governor tweaks

SAMPLING_RATE=$(busybox expr `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency` \* 750 / 1000)
echo 95 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo $SAMPLING_RATE > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate

11. Auto change governor and I/O Scheduler

a) I/O Scheduler (Best: MTD devices - VR; EMMC devices - SIO) - needs kernel with these

echo "vr" > /sys/block/mmcblk0/queue/scheduler
or
echo "sio" > /sys/block/mmcblk0/queue/scheduler

b) Governor (Best: Minmax > SavagedZen > Smoothass > Smartass > Interactive) - needs kernel with these

echo "governor-name-here" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

12. Auto-zipalign on boot

(needs zipalign bin)

[url]http://xdaforums.com/showthread.php?t=860586[/url]

13. Loopy Smoothness tweak

[url]http://xdaforums.com/showthread.php?t=1137554[/url]
[url]http://xdaforums.com/showthread.php?t=1205744[/url]

14. Move dalvik-cache to cache partition (if it's big enough) to free up data partition space

CACHESIZE=$(df -k /cache | tail -n1 | tr -s ' ' | cut -d ' ' -f2)
if [ $CACHESIZE -gt 80000 ]
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

# bind mount dalvik-cache so we can still boot without the sdcard
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

15. Disable normalize sleeper

mount -t debugfs none /sys/kernel/debug
echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features

16. OOM groupings and priorities tweaks - SuperCharger

[url]http://xdaforums.com/showthread.php?t=991276[/url]

GPS.conf

(create or edit your /system/etc/gps.conf with a file manager with root access)

For improving GPS lock time and signal.

a) European NTP server (replace for america or asia in your case)

NTP_SERVER=europe.pool.ntp.org
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin

b) SE supl for A-GPS (better than Nokia's or Google's)

SUPL_HOST=supl.sonyericsson.com
SUPL_PORT=7275

Other tweaks or guidelines

1. Patch your hosts file for blocking Ads

(please think before doing this; many developers are supported through this way)

You can use AdFree application for this or changing manually your hosts file.

Here are some databases:
http://www.mvps.org/winhelp2002/hosts.txt
http://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts

2. Use CyanogenMOD's APN list file - it's one of the most complete.

It's located in /system/etc/apns-conf.xml

3. Use UOT kitchen for basic theming on your device.

http://uot.dakra.lt/

4. Use Google's dns servers

Create an empty file, name it resolv.conf and put there these 2 lines:
nameserver 8.8.8.8
nameserver 8.8.4.4

Save to /system/etc/.

5. Update Superuser and su binary to latest version (3.0 beta)

http://goo-inside.me/superuser/

6. Disable sync feature in sqlite

(author: ownhere - needs a source for your device so you can compile the /system/lib/libsqlite.so)

Patch file here: http://xdaforums.com/showthread.php?t=903507

7. Do not use task killers.

sysctl_tweaks and sysctl.conf tweaks

added by krabappel2548 Thank him

To make them work:

1. make a new file in /system/etc/init.d, name it sysctl_tweaks

2. make a new file in /system/etc, name it sysctl.conf

3. Paste the right code in the right file ;)

1. sysctl_tweaks

#!/system/bin/sh
# grep sysctl /etc/init.d/*
/etc/init.d/02vm:# Load /sys/etc/sysctl.conf
/etc/init.d/02vm:sysctl -p

2. sysctl.conf

#sysctl.conf file

############################
# Battery life tweaks #
############################
sysctl -w vm.dirty_writeback_centisecs=3000;
sysctl -w vm.dirty_expire_centisecs=500;

############################
# kernel tweaks #
############################

sysctl -w kernel.sched_features=15834233;
sysctl -w kernel.msgmni=1024;
sysctl -w kernel.msgmax=64000;
sysctl -w kernel.shmmax=268435456;
sysctl -w kernel.shmall=2097152;
sysctl -w kernel.sem="500 512000 100 2048";
sysctl -w kernel.hung_task_timeout_secs=0;
sysctl -w kernel.sched_latency_ns=18000000;
sysctl -w kernel.sched_compat_yield=1;
sysctl -w kernel.sched_shares_ratelimit=256000;
sysctl -w kernel.sched_child_runs_first=0;
sysctl -w kernel.threads-max=10000;
sysctl -w kernel.panic=30;
sysctl -w kernel.panic_on_oops=1;
sysctl -w kernel.sched_features=24189;
sysctl -w kernel.sched_min_granularity_ns=1500000;
sysctl -w kernel.sched_wakeup_granularity_ns=3000000;

############################
# CPU tweaks #
############################

# Queue size modifications
sysctl -w net.core.optmem_max=20480;
sysctl -w net.unix.max_dgram_qlen=50;

# Net Core Settings
# Location: /proc/sys/net/core
sysctl -w net.core.wmem_max=524288;
sysctl -w net.core.rmem_max=524288;
sysctl -w net.core.rmem_default=256960;
sysctl -w net.core.wmem_default=256960;

############################
# VM & Filesystem tweaks #
############################
sysctl -w fs.lease-break-time=10;
sysctl -w fs.file-max=65536;
sysctl -w vm.overcommit_memory=1;
sysctl -w vm.min_free_order_shift=4;
sysctl -w vm.block_dump=0;
sysctl -w vm.oom_dump_tasks=1;
sysctl -w vm.page-cluster=3;

############################
# Net Speed tweaks #
############################

# UnderUtilized Networking Tweaks below as recommended by avgjoemomma (from XDA)
sysctl -w net.ipv4.tcp_congestion_control=cubic;

# Hardening the TCP/IP stack to SYN attacks
sysctl -w net.ipv4.tcp_syncookies=1;
sysctl -w net.ipv4.conf.all.rp_filter=1;
sysctl -w net.ipv4.conf.default.rp_filter=1;
sysctl -w net.ipv4.tcp_synack_retries=2;
sysctl -w net.ipv4.tcp_syn_retries=2;
sysctl -w net.ipv4.tcp_max_syn_backlog=1024;
sysctl -w net.ipv4.tcp_max_tw_buckets=16384;
sysctl -w net.ipv4.icmp_echo_ignore_all=1;
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1;
sysctl -w net.ipv4.tcp_no_metrics_save=1;
sysctl -w net.ipv4.tcp_fin_timeout=15;
sysctl -w net.ipv4.tcp_keepalive_time=1800;
sysctl -w net.ipv4.ip_forward=0;
sysctl -w net.ipv4.tcp_moderate_rcvbuf=1;
sysctl -w net.ipv4.route.flush=1;
sysctl -w net.ipv4.udp_rmem_min=6144;
sysctl -w net.ipv4.udp_wmem_min=6144;
sysctl -w net.ipv4.tcp_rfc1337=1;
sysctl -w net.ipv4.ip_no_pmtu_disc=0;
sysctl -w net.ipv4.tcp_ecn=0;
sysctl -w net.ipv4.tcp_sack=1;
sysctl -w net.ipv4.tcp_fack=1;

# Don't accept source routing
sysctl -w net.ipv4.conf.default.accept_source_route=0 ;
sysctl -w net.ipv4.conf.all.accept_source_route=0;

# Don't accept redirects
sysctl -w net.ipv4.conf.all.accept_redirects=0;
sysctl -w net.ipv4.conf.default.accept_redirects=0;
sysctl -w net.ipv4.conf.all.secure_redirects=0;
sysctl -w net.ipv4.conf.default.secure_redirects=0;

This is another init.d tweak ;) It's a battery calibration script

3. This is my battery calibration tweak

#!/system/bin/sh
# ========================================
# init.d script for KA Xperia SSpeed
# made by krabappel2548
# ========================================

SLEEP=120

if [ -e /data/.battery-calibrated ] ; then
exit 0
fi

(
while : ; do
LEVEL=$(cat /sys/class/power_supply/battery/capacity)
CUR=$(cat /sys/class/power_supply/battery/batt_current)
if [ "$LEVEL" == "100" ] && [ "$CUR" == "0" ] ; then
log -p i -t battery-calibration "*** LEVEL: $LEVEL CUR: $CUR***: calibrating..."
rm -f /data/system/batterystats.bin
touch /data/.battery-calibrated
exit 0
fi
# log -p i -t battery-calibration "*** LEVEL: $LEVEL CUR: $CUR ***: sleeping for $SLEEP s..."
sleep $SLEEP
done
) &

#Disable normalize sleeper
mount -t debugfs none /sys/kernel/debug
echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features

#battery tweaks (sleepers)
mount -t debugfs none /sys/kernel/debug
echo NO_NEW_FAIR_SLEEPERS > /sys/kernel/debug/sched_features;
echo NO_NORMALIZED_SLEEPERS > /sys/kernel/debug/sched_features;
umount /sys/kernel/debug

Tips Combined twaks and apps

Still testing better values to add!

1. incredibile fast browsing in zoomed pages with no shutters!

♦ VM Heapsize; higher the RAM, higher the hp can be

dalvik.vm.heapsize=96m

♦ Helps scrolling responsiveness

windowsmgr.max_events_per_sec=250

♦ Opera Mobile Browser

2. Faster internet speed

♦ Signal (3G) tweaks

ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5

♦ Net speed tweaks

net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

Alright, I think this is it for now.

If you have any other tweaks or better values, you can PM me and I'll include them

thanks to

kenzo

krabappel2548