Related
Hello!
As some of you know, pvyParts and I have been working on a custom stock-based ROM, T.E.A.M., which was initially released as a themed ROM to offer transparency and replace the Theme Chooser that we haven't been able to port properly, giving endless options on custom backgrounds (since your wallpaper is the system background).
As the ROM evolved and custom kernels became available, I wanted to tweak it using init.d scripts.
As all good developers here do, I searched the Android Software and Hacking General section,
browsed other devices' forums and came up with some tweaks that were really good -on paper.
To my disappointment, most of these did not work.
And I am not saying this because I didn't "feel" a difference
or because I could not spread my X10's smoothness on a cracker.
There is actually a way to test if a script runs with no errors, a.k.a actually works.
Without further adieu, here is how:
1. Place the script you want to test (let's say test.sh)
in /system and give it all permissions,
either with Root Explorer or via adb:
Code:
adb shell chmod 777 /system/test.sh
NOTE: Sometimes scripts don't have an extension (sh).
It's OK, you can still test it with this method.
2. Now install an app like Script Manager and run the script.
Or, do it via adb:
Code:
adb shell sh /system/test.sh
3. Now there are 3 things you might face:
- If you get an error in return, it means the script doesn't work,
so no point in placing it in init.d and running it at every boot, right?
- Some scripts include debug, so you may get a message saying Done, Success, or whatever, which means you are good to go.
- You might not get any output at all, but still that means the script ran fine.
For the latter two cases, you can safely run the script at boot by placing it in init.d folder.
The reason this thread is in development, is because I feel that since the X10 is getting old and many developers have left,
(but luckily new ones still appear, which is plainly AWESOME ), quality of ROMs is very important.
We have fewer choices, so let's make them worthwhile!
Doing it right now.
BTW- I'm first! Again!
Prodigy said:
Doing it right now.
BTW- I'm first! Again!
Click to expand...
Click to collapse
Let us know how it went!
its good to see dev sharing their dev knowledge and skills. this will make more dev for x10. more dev, more improvement we can do on our phone. Thanks My Immortal / iridaki. you're awsome
Thank
cause script stress me well
Now i can see if work or not
X10-tripmiui,iris,00
so if my rom has a init.d folder, does it means it supports or run script (on init.d folder) at boot? is there a way to check if my rom has init.d support??
draiyan said:
so if my rom has a init.d folder, does it means it supports or run script (on init.d folder) at boot? is there a way to check if my rom has init.d support??
Click to expand...
Click to collapse
Yes, support at boot.
To my less knowledge, just look if there is a init. d folder in system/etc/
When you make an own rom check if the kernel you wanna use,has init. d support.
Hope I didn't talk crap and this is right
Sent from my X10i using Tapatalk
but im really confuse here, i found this script,
Code:
/etc/init.d/03sdcardspeedfix
at some line of this script, it reads;
READ_AHEAD_KB="2048"
Click to expand...
Click to collapse
i know some c++ programming, and from what i know the value 2048 is assigned to read_ahead_kb, so i assume its the same in android. BUT, after reboot, i jumped to
Code:
/sys/devices/virtual/bdi/179:0/read_ahead_kb
to found out that its still 128, then i started thinking that the script didnt run, but the dev says the rom is init.d supported.
is there a way to test if init.d is reallty working? like at terminal emulator?
sure man !
you have two way for run tweak
in install-recovery.sh
or ini.d folder
but for be sure
create a file in system/etc
name it "install-recovery.sh"
copy this in and give all permission.
#!/system/bin/sh
#Mount Points
busybox mount -o remount,rw,noatime,nodiratime / -t rootfs
busybox mount -o remount,rw,noatime,nodiratime /sys -t sysfs
busybox mount -o remount,rw,noatime,nodiratime /system
busybox mount -o remount,rw,noatime,nodiratime /data
busybox mount -o remount,rw,noatime,nodiratime /cache
#init.d support
busybox run-parts /system/etc/init.d
run-parts /system/etc/init.d >> /data/local/tmp/runparts.log 2>&1
now put your tweak in ini.d folder and reboot
be carefull !
if you have zipalign tweak
this tweak kill all tweak at boot because it unmount partition
and make it r/o instead of r/w
well,
tweak cannot access system or data like VM or sdcard tweak like read-ahead kb 2048.
now go in data/local/tmp
and check the log
to see if all it ok
but if ini.d does not run,
you could
insert tweak in install-recovery.sh
like this
#!/system/bin/sh
#give system permissions
busybox mount -o remount,rw /system
chmod 777 /system
#init.d support
busybox run-parts /system/etc/init.d
run-parts /system/etc/init.d >> /data/local/tmp/runparts.log 2>&1
#uncap fps
mount -t debugfs debugfs /sys/kernel/debug
echo '0' > /sys/kernel/debug/msm_fb/0/vsync_enable
#th config
echo '0' > /sys/kernel/debug/msm_fb/0/hw_vsync_mode
echo '0' > /sys/kernel/debug/msm_fb/0/sw_refreshing_enable
echo '2' > /sys/kernel/debug/msm_fb/0/ref_cnt
echo '8' > /sys/kernel/debug/msm_fb/0/backbuff
echo '6000' > /sys/kernel/debug/msm_fb/0/refx100
#echo '1' > /sys/power/wake_lock *dangerous
#echo '1' > /sys/kernel/debug/kgsl/cache_enable *dangerous
echo '8192' > /sys/block/mmcblk0/queue/read_ahead_kb
echo '128' > /sys/block/mmcblk0/queue/max_sectors_kb
echo '8192' > /sys/block/mmcblk1/queue/read_ahead_kb
echo '128' > /sys/block/mmcblk1/queue/max_sectors_kb
#rm -f -rf /data/idd
#rm -f -rf /data/semc-checkin
umount /sys/kernel/debug
echo 0 > /sys/kernel/logger/log_main/enable
echo 0 > /sys/kernel/logger/log_event/enable
echo 0 > /sys/kernel/logger/log_radio/enable
echo 1024 > /sys/devices/virtual/bdi/179:0/read_ahead_kb
echo 1024 > /sys/devices/virtual/bdi/default/read_ahead_kb
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
echo 30 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/down_differential
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/powersave_bias
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load
# Delay the Media Scanner to help boot times
pm disable com.android.providers.media/com.android.providers.media.MediaScannerReceiver &
sleep 80 && pm enable com.android.providers.media/com.android.providers.media.MediaScannerReceiver &
#I/O Scheduler Tweaks
mount -o remount,noatime / -t rootfs
mount -o remount,noatime /dev -t devpts
mount -o remount,noatime /proc -t proc
mount -o remount,noatime /sys -t sysfs
mount -o remount,noatime /mnt/asec -t tmpfs
mount -o remount,noatime /system -t yaffs2
mount -o remount,noatime /data -t yaffs2
mount -o remount,noatime /cache -t yaffs2
mount -o remount,noatime /mnt/sdcard -t vfat
mount -o remount,noatime /mnt/secure/asec -t vfat
mount -o remount,noatime /mnt/sdcard/.android_secure -t tmpfs
i=`ls -d /sys/block/mtdblock3/queue/scheduler`;
STL=`ls -d /sys/block/stl*`;
BML=`ls -d /sys/block/bml*`;
MMC=`ls -d /sys/block/mmc*`;
TFSR=`ls -d /sys/block/tfsr*`;
DM=`ls -d /sys/block/dm*`;
MTD=`ls -d /sys/block/mtd*`;
LOOP=`ls -d /sys/block/loop*`;
RAM=`ls -d /sys/block/ram*`;
SYSDEV=`mount | grep '/system' | cut -d '/' -f 4`;
IO_SCHEDULER=`echo "noop" > /sys/block/mtdblock3/queue/scheduler/queue/rotational`;
for i in `busybox ls -1 /sys/block/mtdblock*`; do
echo "deadline" > $i/queue/scheduler;
done;
for k in $(busybox mount | cut -d " " -f3)
do
sync;
busybox mount -o remount,noatime,nodiratime $k;
done;
echo "deadline" > /sys/block/mmcblk0/queue/scheduler
echo "deadline" > /sys/block/dm-0/queue/scheduler
echo "deadline" > /sys/block/dm-1/queue/scheduler
for i in $MMC $MTD $LOOP; do
echo 0 > $i/queue/rotational;
done;
for i in $MMC $MTD; do
echo "deadline" > $i/queue/scheduler;
done;
for i in $MMC; do
echo 4096 > $i/queue/read_ahead_kb;
echo 0 > $i/queue/rotational;
echo 1 > $i/queue/iosched/low_latency;
echo 16 > $i/queue/iosched/quantum;
echo 8192 > $i/queue/nr_requests;
echo 1000000000 > $i/queue/iosched/back_seek_max;
for i in $STL $BML $MMC;
do
echo $IO_SCHEDULER > $i/queue/scheduler;
case $IO_SCHEDULER in
"deadline")
echo 1 > $i/queue/iosched/fifo_batch;;
"cfq")
echo 1 > $i/queue/iosched/back_seek_penalty;
echo 3 > $i/queue/iosched/slice_idle;;
"bfq")
echo 1 > $i/queue/iosched/back_seek_penalty;
echo 3 > $i/queue/iosched/slice_idle;;
"noop")
echo 1 > $i/queue/iosched/back_seek_penalty;
echo 3 > $i/queue/iosched/slice_idle;;
esac;
done;
#Dalvik Cache
if [ ! -d /cache/dalvik-cache ]
then
busybox rm -rf /cache/dalvik-cache /data/dalvik-cache
mkdir /cache/dalvik-cache /data/dalvik-cache
fi
#Dalvik Cache
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
#Remove
busybox rm -rf /data/tombstones/*
#Zipalign
mount -o remount,rw -t yaffs2 `grep /system /proc/mounts | cut -d' ' -f1` /system
cd /system/app
for z in *.apk; do
zipalign -c 4 $z
if [ "$?" -ne "0" ]; then
echo zipalign $z !
zipalign -f 4 $z /tmp/$z
cp /tmp/$z $z
rm /tmp/$z
fi
done
mount -o remount,ro -t yaffs2 `grep /system /proc/mounts | cut -d' ' -f1` /system
mount -o remount,rw -t yaffs2 `grep /system /proc/mounts | cut -d' ' -f1` /data
cd /data/app
for z in *.apk; do
zipalign -c 4 $z
if [ "$?" -ne "0" ]; then
echo zipalign $z !
zipalign -f 4 $z /tmp/$z
cp /tmp/$z $z
rm /tmp/$z
fi
done
mount -o remount,ro -t yaffs2 `grep /system /proc/mounts | cut -d' ' -f1` /data
#Phone Lag Tweaks
MAX_PHONE() {
pidphone=`pidof com.android.phone`;
if [ $pidphone ]; then
echo -17 > /proc/$pidphone/oom_adj;
renice -20 $pidphone;
exit;
else
sleep 5;
MAX_PHONE;
fi;
}
(while [ 1 ]; do
sleep 10;
MAX_PHONE;
done &);
if [ $ENABLE_MAXPHONE -eq 1 ];
then
PROC_ADJUST "com.android.phone" "-20" &
fi;
for j in $DM $MTD $LOOP $RAM; do
echo 0 > $j/queue/rotational;
done;
strace -p $(pidof yourapp) # for all your running applications
ps aux | awk '{print$10,$11}' | sort -n # will list all running softs sorted by used cpu time
#CPUTweak's Variables
last_source="unknown";
charging_source=$(cat /sys/class/power_supply/battery/charging_source);
capacity=$(cat /sys/class/power_supply/battery/capacity);
if [ $ENABLE_SWITCH -eq 1 ];
then
ALLFREQS=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies`;
(while [ 1 ];
do
cat /sys/power/wait_for_fb_wake;
AWAKE_MODE;
cat /sys/power/wait_for_fb_sleep;
SLEEP_MODE;
done &)
fi;
BAT_SLEEP_GOV="powersave"
USB_SLEEP_GOV="powersave"
POW_SLEEP_GOV="powersave"
#CPUTweak's Functions
Battery() {
(while [ 1 ]; do
if [ $AWAKE = "awake" ]; then
echo $BAT_AWAKE_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
echo 100000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
echo 100 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/powersave_bias
AWAKE=
fi;
if [ $SLEEPING = "sleeping" ]; then
echo $BAT_SLEEP_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 80 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/up_threshold
echo 40000 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/sampling_rate
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/powersave_bias
SLEEPING=
fi;
done &)
mount -o remount,ro -t yaffs2 /dev/block/mtdblock3
}
USB() {
(while [ 1 ]; do
if [ $AWAKE = "awake" ]; then
echo $USB_AWAKE_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/powersave_bias
AWAKE=
fi;
if [ $SLEEPING = "sleeping" ]; then
echo $USB_SLEEP_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/up_threshold
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/sampling_rate
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/powersave_bias
SLEEPING=
fi;
done &)
}
Power() {
(while [ 1 ]; do
if [ $AWAKE = "awake" ]; then
echo $POW_AWAKE_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/powersave_bias
AWAKE=
fi;
if [ $SLEEPING = "sleeping" ]; then
echo $POW_SLEEP_GOV > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 576000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 245760 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/up_threshold
echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/sampling_rate
echo 0 > /sys/devices/system/cpu/cpu0/cpufreq/powersave/powersave_bias
SLEEPING=
fi;
done &)
}
#
# Loopy Smoothness Tweak for X10
#
for n in 1 2
do
USER_LAUNCHER="com.sonyericsson.home" # Change this to your launcher app
NUMBER_OF_CHECKS=35 # Total number of rechecks before ending 1st loop
SLEEP_TIME=3 # Number of seconds between rechecking processes
PROCESSES_TOTAL=4 # Must be edited to match the number of processes to be checked
DEBUG_ECHO=0 # Debug on/off
CHECK_COUNT=0 # Don't edit
P_CHECK=0 # Don't edit
CHECK_OK=0 # Unused
PROCESS_1=0; PROCESS_2=0; PROCESS_3=0; PROCESS_4=0; PROCESS_5=0; PROCESS_6=0;
PROCESS_7=0; PROCESS_8=0; PROCESS_9=0; PROCESS_10=0; PROCESS_11=0; PROCESS_12=0;
PROCESS_13=0; PROCESS_14=0; PROCESS_15=0; PROCESS_16=0; PROCESS_17=0; PROCESS_18=0;
PROCESS_19=0; PROCESS_20=0; PROCESS_21=0; PROCESS_22=0; PROCESS_23=0; PROCESS_24=0;
if [ $n -eq "1" ]; then
if [ $DEBUG_ECHO -eq "1" ]; then
echo ""
echo "LST Debug: $(date)"
echo "LST Debug: Initiate"
fi;
# Pause and then loop until kswapd0 is found, which should be instant anyway
sleep 1
SWAP_SLEEP_TIME=3; SWAP_NUMBER_OF_CHECKS=30; SWAP_CHECK_COUNT=0; SWAP_CHECK_COUNT_OK=0; while [ $SWAP_CHECK_COUNT -lt $SWAP_NUMBER_OF_CHECKS ]; do if [ `pidof kswapd0` ]; then renice 19 `pidof kswapd0`; SWAP_CHECK_COUNT=$SWAP_NUMBER_OF_CHECKS; SWAP_CHECK_COUNT_OK=1; else sleep $SWAP_SLEEP_TIME; fi; SWAP_CHECK_COUNT=`expr $SWAP_CHECK_COUNT + 1`; done; if [ $SWAP_CHECK_COUNT_OK -lt 1 ]; then echo "LST Debug: 'kswapd0' expired after `expr $SWAP_CHECK_COUNT \* $SWAP_SLEEP_TIME` seconds"; fi;
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: $(date)";
echo "LST Debug: kswapd0 found";
fi;
fi;
# Check briefly one more time
if [ $n -eq "2" ]; then
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: 2nd loop"
fi;
NUMBER_OF_CHECKS=6 # Editing not recommended
SLEEP_TIME=5 # Editing not recommended
fi;
while [ $CHECK_COUNT -lt $NUMBER_OF_CHECKS ];
do
# Resident system apps
if [ $PROCESS_1 -eq "0" ]; then PNAME="com.android.phone"; NICELEVEL=-20; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_1=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_2 -eq "0" ]; then PNAME="$USER_LAUNCHER"; NICELEVEL=-19; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_2=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_3 -eq "0" ]; then PNAME="com.sonyericsson.conversations"; NICELEVEL=-19; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_3=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
if [ $PROCESS_4 -eq "0" ]; then PNAME="com.sonyericsson.music"; NICELEVEL=-19; if [ `pidof $PNAME` ]; then renice $NICELEVEL `pidof $PNAME`; PROCESS_4=1; P_CHECK=`expr $P_CHECK + 1`; fi; fi;
# If all processes are done, loop can finish early
if [ $P_CHECK -ge $PROCESSES_TOTAL ]; then CHECK_COUNT=$NUMBER_OF_CHECKS; else sleep $SLEEP_TIME; fi;
CHECK_COUNT=`expr $CHECK_COUNT + 1`;
done
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: $(date)"
if [ $PROCESS_1 -eq "0" ]; then echo "LST Debug: PROCESS_1 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_2 -eq "0" ]; then echo "LST Debug: PROCESS_2 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_3 -eq "0" ]; then echo "LST Debug: PROCESS_3 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
if [ $PROCESS_3 -eq "0" ]; then echo "LST Debug: PROCESS_3 expired after `expr $CHECK_COUNT \* $SLEEP_TIME` seconds"; fi;
echo "LST Debug: Checking complete"
fi;
done
if [ $DEBUG_ECHO -eq "1" ]; then
echo "LST Debug: Done"
echo ""
fi;
this is an exemple!
but you could use it !
it improve speed of your phone hahaha !!!
bip
i tried install-recovery but i got no file at local/temp??? there should be a log file in it rigth?
Another tip - add this command to the top of the script:
Code:
set -xv
This will give full command echoing when you run the script so you can see where the error is. The android shell doesn't report lines accurately, I think it's because it doesn't count comments as lines. It will also make easily visible syntax errors that dont error but cause a conditional to report incorrect, e.g. if you accidentally use == instead of = or forget double-quotes when comparing strings.
Hey guys,
This is a development project I'm working on, so please read everything carefully! I would really appreciate if you keep this thread clean, because this thread should be for developers (even if I'm not a dev ). So please don't post the same questions again and again and read the FAQ, too. If you like this or you want to tell me too keep this up, please just hit thanks and don't comment "Thank you"
Unofficial TWRP 2.3.3.0
First of all, what is TWRP?
Team Win Recovery Project 2.3, or twrp2 for short, is a custom recovery built with ease of use and customization in mind. We started from the ground up by taking AOSP recovery and loading it with the standard recovery options, then added a lot of our own features. It’s a fully touch driven user interface – no more volume rocker or power buttons to mash. The GUI is also fully XML driven and completely theme-able. You can change just about every aspect of the look and feel.
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I built a recovery.img for testing on the xperia 2011 mdpi devices. If you want to test if, flash any kernel and after this flash the recovery.img. Flash it with flashtool or with
Code:
fastboot flash boot recovery.img
Once you have done this unplug phone and just start it, it will automatically start in TeamWinRecovery. And THIS is the biggest bug, it's unable to boot the rom (/system). I'm waiting for advice how to fix this
So if you want to try it, what's and what's not working?
Working:
Touch
Flashing Files
ADB Sideload - New!
Backup
Restore
Wiping Cache/Dalvik Cache
File Manager
Times
Settings
Mount USB - Script Rebased! NEW!
Terminal Command
Onscreen Keyboard
Locking Phone in Recovery
Reboot into Recovery
Reboot into Bootloader
Recognized as adb device
Click to expand...
Click to collapse
What's not working:
Booting in the rom
Click to expand...
Click to collapse
If you find any bugs, please tell me that I can update the list
2.3.3.0:
To download the recovery.img for mango please go here
To download the recovery.img for coconut please go here
To download the recovery.img for smultron please go "here
To download the recovery.img for satsuma please go here
For a detailed Changelog see this!
2.2.2.1:
To download the recovery.img for mango please go here
To download the recovery.img for coconut please go here
To download the recovery.img for smultron please gohere
To download the recovery.img for satsuma please gohere
Please read the FAQ in the 2nd post, too!
FAQ
Will you make this for my device, too?
- This for the xperia 2011 mdpi line, I published it for all devices
The rom is not booting after flashing this!
- Please read the OP, it will directly boot in TeamWinRecovery
Thank you!
- I would be happy if you could just hit thanks instead of commenting
On which kernel can I use this?
- On all kernels with all the android versions (gingerbread, ics, jellybean 4.1, jellybean 4.2) it worked :good:
May I integrated this in my kernel?
- Yes you may of course, but it would be great if you could link to this thread and give credits to me. But remember that you can't use this for your kernel atm because it won't boot!
Credits to:
singh_dd93
an0nym0use_
mericon
M66B
boot into recovery automatically
the key mapped the recovery is the cause of automatic login to recovery . You need to figure out which key the recovery is using.
I have ported recovery into another devices(Neo L) faced the same issue I remapped the key and it will work.
Good luck
I think your current keymap is happening to screen so whenever screen get activated(default when boots) it redirect to Recovery)
b00tbu9 said:
the key mapped the recovery is the cause of automatic login to recovery . You need to figure out which key the recovery is using.
I have ported recovery into another devices(Neo L) faced the same issue I remapped the key and it will work.
Good luck
Click to expand...
Click to collapse
So could you explaine this please. It should go to recovery with the volume down key. How/Where should I edit this?
mihahn said:
So could you explaine this please. It should go to recovery with the volume down key. How/Where should I edit this?
Click to expand...
Click to collapse
Edit must be done at RamDisk level. In ramDisk sbin/bootrec file you have to modify for Ramdisk to work
Sample boot-rec file
Code:
#!/sbin/sh
setprop service.adb.root 1
[B]if [ -e /sbin/bootrec-device ][/B]
then
[B] /sbin/bootrec-device[/B]
fi
[B]if [ -s /dev/keycheck -o -e /cache/recovery/boot ][/B]
then
echo 0 > /sys/class/android_usb/android0/enable
echo 0fce > /sys/class/android_usb/android0/idVendor
echo 614f > /sys/class/android_usb/android0/idProduct
echo "mass_storage,adb" > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
rm /cache/recovery/boot
mount -o remount,rw rootfs /
umount -l /system
umount -l /data
umount -l /cache
umount -l /mnt/sdcard
rm -r /sdcard
rm -r /not/sdcard
mkdir /sdcard
mkdir /tmp
rm /etc
mkdir /etc
cp /recovery.fstab /etc/recovery.fstab
mount /dev/block/mmcblk0p1 /sdcard
/sbin/recovery&
fi
/system/bin/chargemon
#continue booting
sample bootrec-device code
Code:
#!/sbin/sh
# fixing CPU clocks to avoid issues in recovery
echo 1024000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 122000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 0 > /sys/class/android_usb/android0/enable
echo 0FCE > /sys/class/android_usb/android0/idVendor
echo 615D > /sys/class/android_usb/android0/idProduct
echo mass_storage,adb > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
# trigger amber LED
echo '255' > /sys/class/leds/blue/brightness
echo '255' > /sys/class/leds/red/brightness
echo '0' > /sys/class/leds/green/brightness
# trigger button-backlight
echo '255' > /sys/class/leds/button-backlight/brightness
cat /dev/input/event1 > /dev/keycheck&
sleep 3
# trigger amber LED
echo '0' > /sys/class/leds/blue/brightness
echo '0' > /sys/class/leds/red/brightness
echo '0' > /sys/class/leds/green/brightness
# trigger button-backlight
[B][U]echo '0' > /sys/class/leds/button-backlight/brightness[/U][/B]
kill -9 $!
this is what worked with me when I integrated CWM in Neo L... just give it a try..
b00tbu9 said:
Edit must be done at RamDisk level. In ramDisk sbin/bootrec file you have to modify for Ramdisk to work
Click to expand...
Click to collapse
Thanks, I tried (as you told me in the PM) the ramdisk of another kernel but couldn't flash it and boot in the rom. I will try it with your files and report. Many thanks
mihahn said:
Thanks, I tried (as you told me in the PM) the ramdisk of another kernel but couldn't flash it and boot in the rom. I will try it with your files and report. Many thanks
Click to expand...
Click to collapse
I was working on ramdisk the whole night so I can help you
search for line like this
Code:
cat /dev/input/event2 > /dev/keycheck&
for volume down key you have to change the event# to event2 as shown
singh_dd93 said:
I was working on ramdisk the whole night so I can help you
search for line like this
Code:
cat /dev/input/event2 > /dev/keycheck&
for volume down key you have to change the event# to event2 as shown
Click to expand...
Click to collapse
I don't know why it's not working!
My bootrec-device (in out/target/product/mango/recovery/root/sbin):
Code:
#!/sbin/sh
# fixing CPU clocks to avoid issues in recovery
echo 1024000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 122000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 0 > /sys/class/android_usb/android0/enable
echo 0FCE > /sys/class/android_usb/android0/idVendor
echo 6166 > /sys/class/android_usb/android0/idProduct
echo mass_storage,adb > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
# trigger amber LED
echo '255' > /sys/class/leds/blue/brightness
echo '255' > /sys/class/leds/red/brightness
echo '0' > /sys/class/leds/green/brightness
# trigger button-backlight
echo '255' > /sys/class/leds/button-backlight/brightness
cat /dev/input/event2 > /dev/keycheck&
sleep 3
# trigger amber LED
echo '0' > /sys/class/leds/blue/brightness
echo '0' > /sys/class/leds/red/brightness
echo '0' > /sys/class/leds/green/brightness
# trigger button-backlight
echo '0' > /sys/class/leds/button-backlight/brightness
kill -9 $!
And my bootrec (in the same directory)
Code:
#!/sbin/sh
setprop service.adb.root 1
if [ -e /sbin/bootrec-device ]
then
/sbin/bootrec-device
fi
if [ -s /dev/keycheck -o -e /cache/recovery/boot ]
then
echo 0 > /sys/class/android_usb/android0/enable
echo 0fce > /sys/class/android_usb/android0/idVendor
echo 614f > /sys/class/android_usb/android0/idProduct
echo "mass_storage,adb" > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
rm /cache/recovery/boot
mount -o remount,rw rootfs /
umount -l /system
umount -l /data
umount -l /cache
umount -l /mnt/sdcard
rm -r /sdcard
rm -r /not/sdcard
mkdir /sdcard
mkdir /tmp
rm /etc
mkdir /etc
cp /recovery.fstab /etc/recovery.fstab
mount /dev/block/mmcblk0p1 /sdcard
/sbin/recovery&
fi
/system/bin/chargemon
#continue booting
So after flashing the recovery.img it just shows the FreeXperia logo and goes into recovery
Remove this from bootrec and add to bootrec-device
Code:
if [ -s /dev/keycheck -o -e /cache/recovery/boot ]
then
echo 0 > /sys/class/android_usb/android0/enable
echo 0fce > /sys/class/android_usb/android0/idVendor
echo 614f > /sys/class/android_usb/android0/idProduct
echo "mass_storage,adb" > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
rm /cache/recovery/boot
mount -o remount,rw rootfs /
umount -l /system
umount -l /data
umount -l /cache
umount -l /mnt/sdcard
rm -r /sdcard
rm -r /not/sdcard
mkdir /sdcard
mkdir /tmp
rm /etc
mkdir /etc
cp /recovery.fstab /etc/recovery.fstab
mount /dev/block/mmcblk0p1 /sdcard
/sbin/recovery&
fi
add these lines at the end after kill -9 line
singh_dd93 said:
Remove this from bootrec and add to bootrec-device
Code:
if [ -s /dev/keycheck -o -e /cache/recovery/boot ]
then
echo 0 > /sys/class/android_usb/android0/enable
echo 0fce > /sys/class/android_usb/android0/idVendor
echo 614f > /sys/class/android_usb/android0/idProduct
echo "mass_storage,adb" > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
rm /cache/recovery/boot
mount -o remount,rw rootfs /
umount -l /system
umount -l /data
umount -l /cache
umount -l /mnt/sdcard
rm -r /sdcard
rm -r /not/sdcard
mkdir /sdcard
mkdir /tmp
rm /etc
mkdir /etc
cp /recovery.fstab /etc/recovery.fstab
mount /dev/block/mmcblk0p1 /sdcard
/sbin/recovery&
fi
add these lines at the end after kill -9 line
Click to expand...
Click to collapse
Thanks, but the problem is when I edit this and compile again without doing
Code:
make clean
it will use the other files again. It won't just pack it, it will create these two files again. And I don't know how to pack the recoveryimage with another tool
Okay I unpacked, changed and repacked the recovery image using this tool, but it still goes straight into recovery when I flash it over cm9 kernel. Btw I didn't pack the cm9 kernel by myself, I took an older one from FXP. If I pack it the boot.img usin
Code:
make -j1 bootimage
the boot.img won't start in any recovery or else
Any other suggestions guys? We are very near! :good:
all the best
I did compile it once but was stuck at same place.. i have to restore grub..upgraded win8 .. will try to help.
mihahn said:
Thanks, but the problem is when I edit this and compile again without doing
Code:
make clean
it will use the other files again. It won't just pack it, it will create these two files again. And I don't know how to pack the recoveryimage with another tool
Click to expand...
Click to collapse
did not understand you
Do you mean that it automatically add those lines in bootrec??
if yes then add this line to bootrec
Code:
cat /dev/input/event2 > /dev/keycheck&
your final bootrec will look like this
Code:
#!/sbin/sh
setprop service.adb.root 1
if [ -e /sbin/bootrec-device ]
then
/sbin/bootrec-device
fi
cat /dev/input/event2 > /dev/keycheck&
if [ -s /dev/keycheck -o -e /cache/recovery/boot ]
then
echo 0 > /sys/class/android_usb/android0/enable
echo 0fce > /sys/class/android_usb/android0/idVendor
echo 614f > /sys/class/android_usb/android0/idProduct
echo "mass_storage,adb" > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
rm /cache/recovery/boot
mount -o remount,rw rootfs /
umount -l /system
umount -l /data
umount -l /cache
umount -l /mnt/sdcard
rm -r /sdcard
rm -r /not/sdcard
mkdir /sdcard
mkdir /tmp
rm /etc
mkdir /etc
cp /recovery.fstab /etc/recovery.fstab
mount /dev/block/mmcblk0p1 /sdcard
/sbin/recovery&
fi
/system/bin/chargemon
#continue booting
Yes the line will automaticly be added to the recovery.img if I build it with
Code:
make -j1 recoveryimage
If I flash this image now over the boot.img from cm9 with
Code:
fastboot flash boot recovery.img
it starts in the recovery automatically.
If I run
Code:
make -j1 bootimage
It builds a boot.img but if I flash it, it does nothing. FXP logo appears and it won't go on
Thanks for the new bootrec script, what about the bootrec-device, can you post this, too?
That's my bootrec-device:
Code:
#!/sbin/sh
# fixing CPU clocks to avoid issues in recovery
echo 1024000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 122000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 0 > /sys/class/android_usb/android0/enable
echo 0FCE > /sys/class/android_usb/android0/idVendor
echo 6166 > /sys/class/android_usb/android0/idProduct
echo mass_storage,adb > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
# trigger amber LED
echo '255' > /sys/class/leds/blue/brightness
echo '255' > /sys/class/leds/red/brightness
echo '0' > /sys/class/leds/green/brightness
# trigger button-backlight
echo '255' > /sys/class/leds/button-backlight/brightness
cat /dev/input/event2 > /dev/keycheck&
sleep 3
# trigger amber LED
echo '0' > /sys/class/leds/blue/brightness
echo '0' > /sys/class/leds/red/brightness
echo '0' > /sys/class/leds/green/brightness
# trigger button-backlight
echo '0' > /sys/class/leds/button-backlight/brightness
kill -9 $!
if [ -s /dev/keycheck -o -e /cache/recovery/boot ]
then
echo 0 > /sys/class/android_usb/android0/enable
echo 0fce > /sys/class/android_usb/android0/idVendor
echo 614f > /sys/class/android_usb/android0/idProduct
echo "mass_storage,adb" > /sys/class/android_usb/android0/functions
echo 1 > /sys/class/android_usb/android0/enable
stop adbd
rm /cache/recovery/boot
mount -o remount,rw rootfs /
umount -l /system
umount -l /data
umount -l /cache
umount -l /mnt/sdcard
rm -r /sdcard
rm -r /not/sdcard
mkdir /sdcard
mkdir /tmp
rm /etc
mkdir /etc
cp /recovery.fstab /etc/recovery.fstab
mount /dev/block/mmcblk0p1 /sdcard
/sbin/recovery&
fi
let it remain same
and try
singh_dd93 said:
let it remain same
and try
Click to expand...
Click to collapse
Here's my ramdisk folder of the recovery.img
With this configuration it's not booting after flashing over cm9 kernel...
Sorry if you sometimes can't understand what I mean, because English is not my native language
I will check when I get back home now. Am out for some work
Sent from my SK17i using xda app-developers app
singh_dd93 said:
I will check when I get back home now. Am out for some work
Sent from my SK17i using xda app-developers app
Click to expand...
Click to collapse
Thanks, you are great! Only 8 thanks for one day
Okay I uploaded the other MDPI devices, but remember, that you can't boot in your rom!
Someone who has a mini, active or lww could report here if he can boot in the recovery
Rebased the whole Recovery on 2.3.3.0
Rom still not booting, hope you can help me. My current ramdisk folder can be found here!
3 questions.
1. Is it possible to remove dual touch?
2. It will help the phone to be faster?
3. If the first two answers is yes then how can i do it?
manthes said:
3 questions.
1. Is it possible to remove dual touch?
2. It will help the phone to be faster?
3. If the first two answers is yes then how can i do it?
Click to expand...
Click to collapse
1-yes
2-yes sure but not that much, maybe fewer than 1%
3- what's your rom+kernel+ touch screen type?
Sent From My BEAST , I mean X8
I don't use it so and 1% for me is fine
MiniCM7-2.2.1
nAa-14
What do you mean with touch screen type?
manthes said:
I don't use it so and 1% for me is fine
MiniCM7-2.2.1
nAa-14
What do you mean with touch screen type?
Click to expand...
Click to collapse
X10m & x8 come with two different touch screens
Syanptics(known as fake dual touch,one of touch points should not move otherwise touch will stop working )
Cypress(real dual touch which acts like dual touch screens but you must press your fingers a little harder)
Sent From My BEAST , I mean X8
---------- Post added at 04:58 PM ---------- Previous post was at 04:44 PM ----------
Your phone, your risk, I'm not responsible for bricks:
http://forum.xda-developers.com/showthread.php?t=1350484
Read the first post, it's written about removing dual touch
It's for x8 but x8 & x10 are much like the same.
nandroid backup is recommended
Repeating again: Your phone, your risk, I'm not responsible for bricks
Sent From My BEAST , I mean X8
Thanks for the answer.
I make a copy-paste insmod /system/lib/modules/synaptics_i2c_rmi4_no_dt.ko at the end of the file but nothing happens
manthes said:
Thanks for the answer.
I make a copy-paste insmod /system/lib/modules/synaptics_i2c_rmi4_no_dt.ko at the end of the file but nothing happens
Click to expand...
Click to collapse
Add that following code to
System/ etc/ hw_config.Sh
(Using text editor)
& you'll be fine
Sent From My BEAST , I mean X8
i have done it but it didn't work.
That's my file. Have i done something wrong?
# Vibrator configuration
dev=/sys/devices/platform/msm_pmic_vibrator
echo 2400 > $dev/voltage_mv
# lm3530 LMU configuration
dev=/sys/devices/platform/i2c-adapter/i2c-0/0-0036
echo linear > $dev/br::mapping # linear exp
echo 32768 > $dev/br::rate::up # 8, 1024, 2048, 4096, 8192, 16384, 32768, 65538
echo 32768 > $dev/br::rate::down # 8, 1024, 2048, 4096, 8192, 16384, 32768, 65538
echo 254 > $dev/br::limit # 0 - 255
echo 22.5 > $dev/br::fsc # 5.0, 8.5, 12.0, 15.5, 19.0, 22.5, 26.0, 29.5
echo 4,16,64,250 > $dev/curve::borders
echo 50,50,50,50,50 > $dev/curve::targets
echo high-z > $dev/als::r1 # high-z, 9360, 5560 .. 677.6 (see chip mnual)
echo high-z > $dev/als::r2 # high-z, 9360, 5560 .. 677.6 (see chip mnual)
echo 128 > $dev/als::avg-t # 32, 63, 128, 256, 512, 1024, 2048, 4096
echo i2c_pwm_als > $dev/mode # i2c, pwm, i2c_pwm, als, pwm_als, i2c_pwm_als, i2_als
# Proximity sensor configuration
dev=/sys/devices/platform/proximity-sensor/semc/proximity-sensor
echo 15 > $dev/led_on_ms # sensor LED on time in ms
echo 35 > $dev/led_off_ms # sensor LED off time in ms
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
echo 30 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/down_differential
echo 500000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
# Flash LED configuration
dev=/sys/devices/platform/msm_pmic_flash_led
echo 80 > $dev/spotlight::current_ma # spotlight current
echo 4700 > $dev/spotlight::boost_mv # spotlight boost voltage
echo 480 > $dev/cmaflash::current_ma # camera flash current
echo 5000 > $dev/cmaflash::boost_mv # camera flash voltage
dev=/sys/devices/platform/msm_pmic_misc_led.0
echo 255 > $dev/max::brightness
echo 3 > $dev/als::cut-off
zone "0"
echo user_als > $dev/control::mode
echo 40 > $dev/max::current_ma
mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
chmod u+s /system/bin/charger
mount -o ro,remount -t yaffs2 /dev/block/mtdblock0 /system
rm -rf /data/local/download/*
insmod /system/lib/modules/synaptics_i2c_rmi4_no_dt.ko
manthes said:
i have done it but it didn't work.
That's my file. Have i done something wrong?
# Vibrator configuration
dev=/sys/devices/platform/msm_pmic_vibrator
echo 2400 > $dev/voltage_mv
# lm3530 LMU configuration
dev=/sys/devices/platform/i2c-adapter/i2c-0/0-0036
echo linear > $dev/br::mapping # linear exp
echo 32768 > $dev/br::rate::up # 8, 1024, 2048, 4096, 8192, 16384, 32768, 65538
echo 32768 > $dev/br::rate::down # 8, 1024, 2048, 4096, 8192, 16384, 32768, 65538
echo 254 > $dev/br::limit # 0 - 255
echo 22.5 > $dev/br::fsc # 5.0, 8.5, 12.0, 15.5, 19.0, 22.5, 26.0, 29.5
echo 4,16,64,250 > $dev/curve::borders
echo 50,50,50,50,50 > $dev/curve::targets
echo high-z > $dev/als::r1 # high-z, 9360, 5560 .. 677.6 (see chip mnual)
echo high-z > $dev/als::r2 # high-z, 9360, 5560 .. 677.6 (see chip mnual)
echo 128 > $dev/als::avg-t # 32, 63, 128, 256, 512, 1024, 2048, 4096
echo i2c_pwm_als > $dev/mode # i2c, pwm, i2c_pwm, als, pwm_als, i2c_pwm_als, i2_als
# Proximity sensor configuration
dev=/sys/devices/platform/proximity-sensor/semc/proximity-sensor
echo 15 > $dev/led_on_ms # sensor LED on time in ms
echo 35 > $dev/led_off_ms # sensor LED off time in ms
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold
echo 30 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/down_differential
echo 500000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
echo 122880 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
# Flash LED configuration
dev=/sys/devices/platform/msm_pmic_flash_led
echo 80 > $dev/spotlight::current_ma # spotlight current
echo 4700 > $dev/spotlight::boost_mv # spotlight boost voltage
echo 480 > $dev/cmaflash::current_ma # camera flash current
echo 5000 > $dev/cmaflash::boost_mv # camera flash voltage
dev=/sys/devices/platform/msm_pmic_misc_led.0
echo 255 > $dev/max::brightness
echo 3 > $dev/als::cut-off
zone "0"
echo user_als > $dev/control::mode
echo 40 > $dev/max::current_ma
mount -o rw,remount -t yaffs2 /dev/block/mtdblock0 /system
chmod u+s /system/bin/charger
mount -o ro,remount -t yaffs2 /dev/block/mtdblock0 /system
rm -rf /data/local/download/*
insmod /system/lib/modules/synaptics_i2c_rmi4_no_dt.ko
Click to expand...
Click to collapse
Maybe your phone have cypress
try this:
Code:
insmod /system/lib/modules/cypress_i2c_rmi4_no_dt.ko
Edit: sorry this module is not included so wait a moment, I'll find another solution
Sent From My BEAST , I mean X8
---------- Post added at 12:38 AM ---------- Previous post was at 12:29 AM ----------
Grab & Upload hw_config.sh from system/etc/
I'll change preference & send it to you
Sent From My BEAST , I mean X8
i see that in my folder modules i dont have any of these files.
the only files are :
modules.deb.bb
sdio.ko
tiap_drv.ko
tiwlan_drv.ko
x10miniprouv.ko
manthes said:
i see that in my folder modules i dont have any of these files.
the only files are :
modules.deb.bb
sdio.ko
tiap_drv.ko
tiwlan_drv.ko
x10miniprouv.ko
Click to expand...
Click to collapse
Sorry again, I need hw_config.sh ,upload that here(system/etc/)
I'll fix it & send it to you
Sent From My BEAST , I mean X8
here it is
For those of you who like to do additional tweaks to your phone, what init.d and build.prop tweaks do you use? I've noticed some of them try to override crpalmer and Zarboz's kernel settings so I removed them. Also, I've read that some of these tweaks don't help at all.
So what tweaks do you recommend, if any, that play well with the DNA and with custom kernels?
Currently I have speedscript in my init.d folder but I noticed no benefit or detriment so I may just remove it. I also reduced the WiFi scan interval in the build.prop. I would like to add more tweaks since I can't leave well enough alone.
I'm looking for speed and battery improvements which can he a fine balancing act. I also want to increase the scroll speed as wel as change the autobrightness settings so it's more biased to lower brightness. I'm not sure if those could be achieved with init.d or build.prop tweaks.
#Render graphics with GPU&CPU
debug.composition.type=cpu
debug.composition.type=gpu
#For Faster Startups Disable Boot Animation
debug.sb.nobootanimation=1<<< faster
[QOUTE]Many build.prop tweaks set this value to 300, but it seems this is a bad idea. As Google points out, Android maxes out at 60fps. The default value is already allow for a possible max_events_per_sec of 90. Even if you allow for 300 max_events_per_sec, you’ll only ever see 60 of these events in any given second. Therefore, any value much higher than 90 is unlikely to have any noticeable impact on your experience in general. Additionally, setting this value too high can starve other UI events that need to get processed, viz. touch inputs. You’re not likely to feel like your device is running very smoothly when it is busy processing thousands of scroll events instead of responding immediately to you clicking to try and open a link or an app. There may be some specific scenarios where increasing this value does appear to improve system feedback, but changing this value for all UI events across the board will likely cause more problems than it will solve.[/QOUTE]
# faster Scrolling
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
# improve voice call clarity
ro.ril.enable.amr.wideband=1
# disable error checking
ro.kernel.android.checkjni=0
ro.kernel.checkjni=0
# faster youtube?
ro.ril.hep=0
# Faster boot
persist.sys.shutdown.mode=hibernate
# does not need to be on if not a dev
persist.android.strictmode=0
# disable USB debugging icon from status bar
persist.adb.notify=0
# Qualcomm display settings
debug.qctwa.statusbar=1
debug.qctwa.preservebuf=1
com.qc.hardware=true
# BATTERY SAVING-----------------
ro.ril.disable.power.collapse=1
ro.mot.eri.losalert.delay=1000 #smooths out network disconnects. breakes tethering in CM7.
ro.config.nocheckin=1 #disable sending usage data to google
# sleep modes
pm.sleep_mode=3<<< thats my personal mode used
#usage:
#pm.sleep_mode=0 -> collapse suspend
#pm.sleep_mode=1 -> collapse (will totally power off the cpu)
#pm.sleep_mode=2 -> sleep (cpu is still on, but put into low power mode (registers are still saved)
#pm.sleep_mode=3 -> slow Clock and Wait for Interrupt (lowered frequency and voltage)
#pm.sleep_mode=4 -> wait for interrupt (no change in cpu clock or voltage)
# locks launcher in memory (not recommended on low RAM devices)
#ro.HOME_APP_ADJ=1
check some of thoses out and maybe that will help in what your looking for
internet speed tweaks
Code:
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;
vm management tweaks
Code:
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
misc kernel tweaks
Code:
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
Code:
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)
removes journalism
Code:
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
Code:
busybox mount -o remount,noatime,noauto_da_alloc,nodiratime,barrier =0,nobh /system
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodir atime,barrier=0,nobh /data
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodir atime,barrier=0,nobh /cache
Flags blocks as non-rotational and increases cache size
Code:
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
microSD card speed tweak
Code:
echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;
Defrags database files
Code:
for i in \
`find /data -iname "*.db"`
do \
sqlite3 $i 'VACUUM;';
done
Auto change governor and I/O Scheduler
a) I/O Scheduler (Best: MTD devices - VR; EMMC devices - SIO) - needs kernel with these
Code:
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
Code:
echo "governor-name-here" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Move dalvik-cache to cache partition to free up data partition space <<< do this only if room is availble
Code:
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
Disable normalize sleeper
Code:
mount -t debugfs none /sys/kernel/debug
echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features
there does those 2 posts help you out orange
---------- Post added at 08:52 AM ---------- Previous post was at 08:51 AM ----------
also some of these are just examples so just modify for your needs cool?
---------- Post added at 08:54 AM ---------- Previous post was at 08:52 AM ----------
autobrightness you need to decompile framework-res.apk
Hello, I decided to publish some guide + scripts I already use for a while, which allows you to use all CPU cores and boost GPU performance.
Battery consumption using this configuration surprisingly does not change much or even did not change at all, with default as well with new config my watch stays alive for ~32h with daily usage.
Some theory:
Sparrow is sold with Qualcomm Snapdragon 400 1.2GHz, which is 4 core CPU. ASUS AW2.0 official kernel though supports only 600MHz and 787MHz, as Asus probably thinks this is good balance between battery life and performance.
GPU is Adreno 302/305, which is capable running up to 450MHz, which is also supported by ASUS AW2.0 kernel.
Where is the catch?
During boot there are all four CPU cores enabled, however there is post-init script, disabling two of those and setting frequency as fixed 738MHz with performance governor (no frequency scaling). GPU is set to fix 200MHz:
/system/bin/init.asus.post_boot.sh
Code:
#!/system/bin/sh
PATH=/system/bin
cd /sys
echo 4 > module/lpm_levels/enable_low_power/l2
echo 1 > module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu0/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/idle_enabled
#Put all other cores offline
echo 0 > devices/system/cpu/cpu2/online
echo 0 > devices/system/cpu/cpu3/online
governor="performance"
scaling_min_freq="787200"
if [[ `grep "oem_perf_change" /proc/cmdline` ]];then
if [[ `grep "oem_perf_on" /proc/cmdline` ]];then
oem_perf_stats="1"
else
oem_perf_stats="0"
fi
echo -n $oem_perf_stats > /factory/oem_perf_stats
fi
echo $governor > devices/system/cpu/cpu0/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu1/cpufreq/scaling_governor
#below ondemand parameters can be tuned
echo 50000 > devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 90 > devices/system/cpu/cpufreq/ondemand/up_threshold
echo 1 > devices/system/cpu/cpufreq/ondemand/io_is_busy
echo 2 > devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential
echo 70 > devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
echo 787200 > devices/system/cpu/cpufreq/ondemand/optimal_freq
echo 300000 > devices/system/cpu/cpufreq/ondemand/sync_freq
echo 80 > devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
echo $scaling_min_freq > devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo 787200 > devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu1/cpufreq/scaling_max_freq
#Below entries are to set the GPU frequency and DCVS governor
echo 200000000 > class/kgsl/kgsl-3d0/devfreq/max_freq
echo 200000000 > class/kgsl/kgsl-3d0/devfreq/min_freq
echo performance > class/kgsl/kgsl-3d0/devfreq/governor
chown -h system devices/system/cpu/cpu[0-1]/cpufreq/scaling_max_freq
chown -h system devices/system/cpu/cpu[0-1]/cpufreq/scaling_min_freq
chown -h root.system devices/system/cpu/cpu[1-3]/online
chmod 664 devices/system/cpu/cpu[1-3]/online
It is indeed required just to alter this script and you can enable all 4 cores with "ondemand" governor, scaling 600-738MHz and GPU scaling 200-450MHz using "msm-adreno-tz" governor:
(and this requires root of course)
Code:
#!/system/bin/sh
PATH=/system/bin
cd /sys
echo 4 > module/lpm_levels/enable_low_power/l2
echo 1 > module/msm_pm/modes/cpu0/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/suspend_enabled
echo 1 > module/msm_pm/modes/cpu0/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu2/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu3/standalone_power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu0/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu1/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu2/power_collapse/idle_enabled
echo 1 > module/msm_pm/modes/cpu3/power_collapse/idle_enabled
governor="ondemand"
scaling_min_freq="600000"
if [[ `grep "oem_perf_change" /proc/cmdline` ]];then
if [[ `grep "oem_perf_on" /proc/cmdline` ]];then
oem_perf_stats="1"
else
oem_perf_stats="0"
fi
echo -n $oem_perf_stats > /factory/oem_perf_stats
fi
echo $governor > devices/system/cpu/cpu0/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu1/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu2/cpufreq/scaling_governor
echo $governor > devices/system/cpu/cpu3/cpufreq/scaling_governor
#below ondemand parameters can be tuned
echo 50000 > devices/system/cpu/cpufreq/ondemand/sampling_rate
echo 90 > devices/system/cpu/cpufreq/ondemand/up_threshold
echo 1 > devices/system/cpu/cpufreq/ondemand/io_is_busy
echo 2 > devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential
echo 70 > devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
echo 10 > devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
echo 787200 > devices/system/cpu/cpufreq/ondemand/optimal_freq
echo 300000 > devices/system/cpu/cpufreq/ondemand/sync_freq
echo 80 > devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
echo $scaling_min_freq > devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu2/cpufreq/scaling_min_freq
echo $scaling_min_freq > devices/system/cpu/cpu3/cpufreq/scaling_min_freq
echo 787200 > devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo 787200 > devices/system/cpu/cpu3/cpufreq/scaling_max_freq
#Below entries are to set the GPU frequency and DCVS governor
echo 450000000 > class/kgsl/kgsl-3d0/devfreq/max_freq
echo 200000000 > class/kgsl/kgsl-3d0/devfreq/min_freq
echo msm-adreno-tz > class/kgsl/kgsl-3d0/devfreq/governor
chown -h system devices/system/cpu/cpu[0-3]/cpufreq/scaling_max_freq
chown -h system devices/system/cpu/cpu[0-3]/cpufreq/scaling_min_freq
chown -h root.system devices/system/cpu/cpu[0-3]/online
chmod 664 devices/system/cpu/cpu[0-3]/online
(both files also attached to this post)
To exchange files in your watch, you can easily use following bash script in linux:
First push desired file into sdcard and go to ADB shell:
Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell
In ADB shell remount system to RW, replace the file and fix privileges, than remount system back to RO:
Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system
Update 2018/09/05:
In case you want to experiment, I'm also sending "full_power" script, setting all cores to max frequency and performance governor. There should be no issues, except probably less battery life. Just test yourself, how battery life is affected if it is affected at all. Just unpack the zip file, rename the sh script from init.asus.post_boot_full_power.sh to init.asus.post_boot.sh. Rest of the procedure is still the same.
Without kernel sources, this is probably the maximum performance you can get from the watch. Obtaining kernel sources we might get up still twice of current maximum, as the HW is there, but locked on kernel level.
I just swapped the files and I'll give this a try over the next few days. It would be awesome to destroy lag without needing a kernel tweak app to make it happen. You are the man!
Update: I followed your directions, then I wiped cache and dalvik in TWRP. I have only used the watch for a few minutes with this tweak and it is noticeably faster/smoother already. Text messages display lightning fast after being received on the phone. I'm currently on WiFi in my office. The times I notice most lag on my watch is when I'm on 4G, have music playing, and get a call. The phone may ring for 5-10 seconds before the watch displays. I'm excited to see how helpful this tweak is under those conditions. I'll know later today and keep you posted.
I have not experienced any Bluetooth lag since enabling this. This is a must have mod. Thanks for this!
Glad to hear that @CVertigo1. This is just simple SW enablement of things already present in kernel, so even no cache cleans are required. You can play with it on the go even without watch restart.
Amazing will be getting some kernel with much more CPU freq. steps, like 300-768 or even to 1.2GHz (yes, our chip is capable doing so, it is just not enabled in kernel). With proper governor battery will be still ok, resting CPU most of the time in low clocks. It is pity we have great HW, but it is taken out from us with stock kernel.
It would be nice if Asus would upload the kernel source for AW2.0.
CVertigo1 said:
It would be nice if Asus would upload the kernel source for AW2.0.
Click to expand...
Click to collapse
Well we do have latest kernel source
https://www.asus.com/us/ZenWatch/ASUS_ZenWatch_2_WI501Q/HelpDesk_Download/
Or directly here:
http://dlcdnet.asus.com/pub/ASUS/Wearable/ASUS_WI501Q/ASUS_WI501Q-5.2003.1603.10-kernel-src.zip
We just need some handy guy able to compile it and add more governors and frequencies. That is something what overlapping my skills.
That is the latest kernel source for 1.5. They have not released their source for 2.0, nor any firmware for 2.0. I have contacted Asus about it multiple times and none of their reps have any idea what I'm talking about.
CVertigo1 said:
That is the latest kernel source for 1.5. They have not released their source for 2.0, nor any firmware for 2.0. I have contacted Asus about it multiple times and none of their reps have any idea what I'm talking about.
Click to expand...
Click to collapse
Ah, I see I thought 2017/05/12 stated as a release day was after AW20 concluding this had to be the new one. Pity.
Maybe they'll release it eventually...at an Asus speed, like next year.
please help me(rom Sparrow_7.1.1_Debloat ROM ):
adb shell
sparrow:/ $ su
Permission denied
htduy11 said:
please help me(rom Sparrow_7.1.1_Debloat ROM ):
adb shell
sparrow:/ $ su
Permission denied
Click to expand...
Click to collapse
Hi there, you are missing super user in your ROM. Did you installed SuperSU and Busybox thru TWRP after flashing the ROM?
Do this in TWRP, not Android.
'the command can be used in adb in windows or are different? watch must be in recovery or bootloader? wrote a step by step for noob guide please
You must boot in the TWRP recovery. You need the ADB drivers installed on your computer and is easier to use your computer for this.
mastermoon said:
'the command can be used in adb in windows or are different? watch must be in recovery or bootloader? wrote a step by step for noob guide please
Click to expand...
Click to collapse
Actually it is quite simple, what you need:
* in case you use Windows, you need drivers for android (not needed with Linux)
* working ADB
* rooted watch
Then just connect normally booted watch and in command line (Windows) or terminal (Linux), execute:
Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell
Second command above will enter adb shell, when you are in, just copy paste and execute following:
Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system
LeeonLee said:
Actually it is quite simple, what you need:
* in case you use Windows, you need drivers for android (not needed with Linux)
* working ADB
* rooted watch
Then just connect normally booted watch and in command line (Windows) or terminal (Linux), execute:
Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell
Second command above will enter adb shell, when you are in, just copy paste and execute following:
Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system
Click to expand...
Click to collapse
yeah worked perfectly... after 9 month the zenwatch is back on my wrist....
---------- Post added at 05:31 PM ---------- Previous post was at 05:29 PM ----------
LeeonLee said:
Actually it is quite simple, what you need:
* in case you use Windows, you need drivers for android (not needed with Linux)
* working ADB
* rooted watch
Then just connect normally booted watch and in command line (Windows) or terminal (Linux), execute:
Code:
adb push init.asus.post_boot.sh /sdcard/
adb shell
Second command above will enter adb shell, when you are in, just copy paste and execute following:
Code:
su
mount -o rw,remount /system
mv /sdcard/init.asus.post_boot.sh /system/bin/
chown root:shell /system/bin/init.asus.post_boot.sh
chmod 755 /system/bin/init.asus.post_boot.sh
mount -o ro,remount /system
Click to expand...
Click to collapse
worked perfectly.... after 9 months zenwatch is back on my wrist
Hey guys,
do i need to do it every time i booted up ?
And can i messure this Overclocking anywhere ?
Greetings
Namelocked said:
Hey guys,
do i need to do it every time i booted up ?
And can i messure this Overclocking anywhere ?
Greetings
Click to expand...
Click to collapse
Hi, this is permanent solution. To revert you need to replace the file with original one.
I am also not aware of any reliable Wear benchmark, but you can see HW info using e.g. AIDA64 for Wear.
LeeonLee said:
Hi, this is permanent solution. To revert you need to replace the file with original one.
I am also not aware of any reliable Wear benchmark, but you can see HW info using e.g. AIDA64 for Wear.
Click to expand...
Click to collapse
I dont even find the AIDA64 for my smartwatch :/ ?
how can i check core, cpu speed etc... aida64 isn't compatible .. tnx..