[SHELL] Proper init.d and shared standard - Android Software/Hacking General [Developers Only]

Most people in here knows what init.d is, and almost all their devices (If not all) has init.d implemented, a widely used feature that a lot of people (Users and Devs) finds essential for any ROM. There is however one major issue with init.d implementations on Android, that is, we do not have any standards for how it should work.
The two most used methods are
Starting a service at boot which executes 'run-parts' on the init.d folder
Doing a direct execution of 'run-parts' at boot on the init.d folder
In the init.rc code they don't look much different from one another. Both will make sure that run-parts is executed from the onboot section, but they could not be further apart from the way they do it.
Executing run-parts from a service will transfer the whole execution to a new process, meanwhile init continues with the rest of the boot process. This means that all of the scripts are executed while the phone continues to start it's services and prepare everything. Depending on the scripts in init.d and the speed of the device, it might even start completely into the UI before init.d has finished all of it's scripts.
Executing run-parts directly from init.rc however, will execute the init.d scripts in the same process. This means that init cannot continue with anything until all of the init.d scripts has finished. This is the way that init.d should work, and here is why.
Some times you will get or make a script where it is essential that it get to finish before anything else is executed or started. One example could be sd-ext which job is to move content between partitions. This is not a job that works well while a device is booting, as a lot of the data being parsed around is actually being used by the system during boot.
Also should you have a script that needs to be executed while the device is booting, then it is quite simple to accomplish this by adding a function to the script and start that into another process from within the script. However this does not work the other way around. So you can use the second init.d implementation for both purposes.
But it gets even worse. This article explains how to add init.d to ROM's without altering the ramdisk. The problem is that this introduces a third way of how init.d might operate, as this will not execute init.d neither before or during boot, but after. Looking at the default implementation of install-recovery.sh, this file is not executed until after the UI has been started, meaning when the device is fully booted.
We need a standard here people. Something that will ensure anyone building init.d scripts of how and when the scripts will be executed. Otherwise we are limited to small operations where init.d's implementation has no factor, in which case we might as well just stop implementing it in the first place.
Last I want to make a notice to anyone that thinks it is wise to place Sleep commands in init.d scripts.
Code:
#!/system/bin/sh
# Wait until we see some android processes to consider boot is more or less complete
while ! pgrep com.android ; do
sleep 1
done
# ... The rest of the code
This is an example I have made. First consider all of the scripts in init.d that is set to be executed after this one. Now consider adding this script to ROM's with the second init.d implementation (Hint, the device will never boot).
The better way to do something like this, is like fallowing
Code:
#!/system/bin/sh
)
# Wait until we see some android processes to consider boot is more or less complete
while ! pgrep system_server; do
sleep 1
done
# ... The rest of the code
) &
if pgrep logwrapper; then
killall logwrapper
fi
First of all this will allow the rest of the init.d scripts to be executed right away. Secondly it will allow anyone with the second init.d implementation to boot in the first place.
Note the "killall logwrapper". Almost every init.d implementation adds logwrapper to execute run-parts, "/system/bin/logwrapper /system/bin/run-parts /system/etc/init.d". However, logwrapper will not continue until all of the scripts sub-processes has finished. So we will have to force our way out. The script will continue normally below the kill code and the rest of init.d will as well.

Nice info man.
I've been avoiding bootloops or no boot with the bulletproof apps script by doing $0 & exit 0.
If it read any android process, it would then be able to sleep safely.
Obviously, this is a more eloquent method
Thanks

Thank you for this info. Very helpful
Sent from my SPH-L710 using TapaTalk 4 BETA
Want to speed up your device? Click here

great post, much needed discussion given the variety of ROM implementations out there. i for one have had to learn about and experiment the hard way across several methods due to locked bootloader and use of virtual ROM slots for my device (damn you to hell Motorola).
that being said, what are your thoughts on proper init.d implementation if a boot hijack is in use (2nd init i believe it's
called?)
Sent from my DROID BIONIC using Tapatalk 2

How about using pgrep system_server than pgrep com.android?

LENAROX said:
How about using pgrep system_server than pgrep com.android?
Click to expand...
Click to collapse
That's funny. I though the same thing
Sent from my SPH-L710 using Tapatalk 2

LENAROX said:
How about using pgrep system_server than pgrep com.android?
Click to expand...
Click to collapse
Have no idea. I got this from one of the scripts I wrote about. Guess it depends on what they were trying to catch. But then again, why not com.android over system_server? I don't see a performance issue and both would tell that the system has been started. If anything, com.android only takes up 11 characters while system_server takes 13

dk_zero-cool said:
Have no idea. I got this from one of the scripts I wrote about. Guess it depends on what they were trying to catch. But then again, why not com.android over system_server? I don't see a performance issue and both would tell that the system has been started. If anything, com.android only takes up 11 characters while system_server takes 13
Click to expand...
Click to collapse
characters dont matter much.(couple of ticks on cpu wont matter much either)
You should do system_server or zygote instead of com.android for accuracy.
Just maybe if there wont be any process name that starts with com.android, It might not work.
And did you know?
- system_server calls dalvik vm function. -> Start of the android os.
-zygote launches system_server and its stayed on ram as a forked process.

LENAROX said:
characters dont matter much.(couple of ticks on cpu wont matter much either)
Click to expand...
Click to collapse
LOL, I know. Just the only difference I could find. Like I said, I did not make it, so I don't know why it was used. If you check my scripts like Mounts2SD, you will see that I use system_server as well
LENAROX said:
And did you know?
Click to expand...
Click to collapse
I also build ROM's, so yes I did

dk_zero-cool said:
LOL, I know. Just the only difference I could find. Like I said, I did not make it, so I don't know why it was used. If you check my scripts like Mounts2SD, you will see that I use system_server as well
I also build ROM's, so yes I did
Click to expand...
Click to collapse
I knew you would already know that. Just checking

LENAROX said:
I knew you would already know that. Just checking
Click to expand...
Click to collapse
Well I live to please, so I have changed the OP example to use "system_server" rather than "com.android"

dk_zero-cool said:
Well I live to please, so I have changed the OP example to use "system_server" rather than "com.android"
Click to expand...
Click to collapse
I've always looked for "android"
Why?
Because the later a script runs, the less chance of a bootloop.
And depending on what the script is doing, later rather than earlier may be preferred anyway.

zeppelinrox said:
I've always looked for "android"
Why?
Because the later a script runs, the less chance of a bootloop.
And depending on what the script is doing, later rather than earlier may be preferred anyway.
Click to expand...
Click to collapse
And I see no problem with it. com.android.systemui will always be available on an Android device. And when this is started, the device is more or less fully booted. system_server get's started at the end of onBoot, which means right when the device starts to boot. So yes, the question would properly be whether or not a script should execute at the beginning or at the end of the boot cycle.

Exactly.
I'd rather the device be pretty much fully booted so that the kernel is less likely to trump settings that I apply.
Of course, if its a mount script or something like that, the earlier, the better so you wouldn't want to grep android in that instance.

I don't know but the "while ! grep system_server and while ! grep com.android" both cause sh stall issues on some devices. I found placing a simple "busybox sleep 45" fixes the sh stall and gives Roms time to boot before running some init.d parts. No bootloops have been reported
Sent from my SPH-L710 using Tapatalk 2

Exit_Only said:
I don't know but the "while ! grep system_server and while ! grep com.android" both cause sh stall issues on some devices. I found placing a simple "busybox sleep 45" fixes the sh stall and gives Roms time to boot before running some init.d parts. No bootloops have been reported
Sent from my SPH-L710 using Tapatalk 2
Click to expand...
Click to collapse
not grep.... pgrep
however, not all busybox builds have pgrep.... which can be another problem.
To avoid that, I use ps and grep like so...
Code:
while [ ! "`ps | grep [a]ndroid`" ]; do sleep 10; done;
I put the square brackets in [a]ndroid so that grep won't find a match for itself (ie. ps | grep android can result in a "grep android" showing up as a running process) and result in a false positive.
Oh yeah... I do sleep 10 instead of sleep 1 which avoids needlessly usage of battery/cpu cycles (which is fine if you rather run stuff late)

Exit_Only said:
I don't know but the "while ! grep system_server and while ! grep com.android" both cause sh stall issues on some devices. I found placing a simple "busybox sleep 45" fixes the sh stall and gives Roms time to boot before running some init.d parts. No bootloops have been reported
Sent from my SPH-L710 using Tapatalk 2
Click to expand...
Click to collapse
'grep' is used to search for matches in a file. The syntax here is "grep %match %file". If you do "grep %match", grep starts a never ending process. On a service implemented init.d ROM, the device will boot because init.d is running it it's own nested process. However, init.d will never finish. On a direct executed init.d implemented ROM, the device will never boot, because init.d is executed from the same process as init is running in.
So when making a script, it is important to use a lot of debug logging when making them, to make sure that they behave as they should. For an example if you make a script which uses sqlite3 (Properly other binaries as well), it is good to notice that on direct executed init.d ROM's, it will not work, because the 'exec' function does not parse the PATH variable from init.rc, which means that BOOTCLASSPATH is missing. This describes where sqlite3 can locate it's binaries. And most /system/bin/sysinit files only provide the PATH variable.

dk_zero-cool said:
'grep' is used to search for matches in a file. The syntax here is "grep %match %file". If you do "grep %match", grep starts a never ending process. On a service implemented init.d ROM, the device will boot because init.d is running it it's own nested process. However, init.d will never finish. On a direct executed init.d implemented ROM, the device will never boot, because init.d is executed from the same process as init is running in.
So when making a script, it is important to use a lot of debug logging when making them, to make sure that they behave as they should. For an example if you make a script which uses sqlite3 (Properly other binaries as well), it is good to notice that on direct executed init.d ROM's, it will not work, because the 'exec' function does not parse the PATH variable from init.rc, which means that BOOTCLASSPATH is missing. This describes where sqlite3 can locate it's binaries. And most /system/bin/sysinit files only provide the PATH variable.
Click to expand...
Click to collapse
I know that it was a typo on my end.
Sent from my SPH-L710 using Tapatalk 2

Related

Speed up phone ring times! Make htc music run FAST! -Possible BFS Conflict

First I need to give credit to Devsk and everyone else who helped figure out the concept behind this thread http://forum.xda-developers.com/showthread.php?t=548502&page=14
I knew the idea of renicing the processes would work but I couldn't figure out a way to make it happen all of the time. Processes do not even startup necessarily when the phone starts up and if they do, they will close for no appearant reason and then restart. So I wrote a script that updates every three minutes. And it can help in other ways besides phone ring times. I've included the music player and htc music player which makes them run really smoothly and switch tracks instantly. On JacHeroSki 1.8 I include the touch flo process and smoothed out that a lot. It's up to you on what else this script can do. If you have suggestions let me know and I will add them for other people to use.
If you don't want to install this, it is built into xROM and JacHeroSki. It made a huge improvement on both of those ROMs. I was waiting for those releases to come out before I posted this. I know someone else wrote apk that does something similar but I think this is more configurable for the time being and I wrote it before the apk was written. So I wanted to shart it anyway. You can change the priority for any process that you want using this script. I strongly suggest that you don't set anything at -20 or 20 and that you keep the settings that I have there. You can severely screw up your ROM if you do the wrong things here and you might have to wipe and reinstall. I am not responsible if you brick or damage your phone in any way. Although there is no reason this script should do any permanent damage to any phone. Just be careful.
There are 2 ways to implement this script. One is to download Autostart from the market. It is the method suggested in the thread listed above. The other way is to add a line in one of your startup scripts that calls this script. To use with the Autostart application you must rename the file to autostart.sh and then copy it to the /data/opt/ directory. To do that, you can use the following instructions. Copy the file to the root of your sdcard and then type the following in terminal.
Code:
su
cp /sdcard/autstart.sh /data/opt/autostart.sh
chmod 755 /data/opt/autostart.sh
You must fix the permissions every time you copy the file to the phone if you are making changes to it. The app will look for it there by default and run it at every startup. If you want to know how to implement it in the startup script let me know. It is different for different ROMs.
Once the script is started it will update the priorities every 3 minutes. You may still see some delay the first time that a process is loaded but it won't take more than 3 minutes for it to be updated. Due to some problems with the script having problems after running for a long time, I made it restart itself every hour. So far it has worked great and has not put any extra drain on the battery. The update interval is short but it takes less than a second to execute. It even helps with .mp3 files because the mediaserver process has a higher priority too.
There are two tools that will help you know how this is working. One is to use the following command to view the log file I created for this. It will clear the file and start over everytime the script starts so that it doesn't grow out of control. It will show you when the priorities were updated last and when the script was restarted. The command to use for this is:
Code:
cat /sdcard/autostart.txt
The other tool was written by Devsk. This is an awesome script that was very helpful in my quest to figure this out. Please thank Devsk for writing it. http://forum.xda-developers.com/showthread.php?p=4365912&highlight=printPriority#post4365912
I found a possible conflict with this method and BFS on xROM. If you are using a ROM with BFS and have problems with this, please remove it and let me know.
Great work, works fine (when started manualy)
atm. i'm useing 4.1.6 from cyanogen, but the /data/opt/ folder doesn't exist...
i created the folder manually, but it doesn't get started automaticaly...
I think it's because of the changes in Donut... any ideas how to fix?
Kubax
Awesome work Mike. I didn't think it was currently possible to schedule something through linux commands on the android.
Just curious, did you figure out a way to use Cron or android alarmmanager through script?
Thanks Mike! I'm on xRom 1.5r3 and this does seem to resolve the annoying lag I've had before when switching tracks.
it says autostart.txt does not exist do I need to create it?
Kubax83 said:
Great work, works fine (when started manualy)
atm. i'm useing 4.1.6 from cyanogen, but the /data/opt/ folder doesn't exist...
i created the folder manually, but it doesn't get started automaticaly...
I think it's because of the changes in Donut... any ideas how to fix?
Kubax
Click to expand...
Click to collapse
Make sure that you run the chmod command. It can't start automatically if you don't. Other than that, make sure the file has the correct name. I added the .txt to post it here so I hope that doesn't screw people up. If none of that works, try adding this line to your a2sd file in Cyanogen (as far as I know he still has that in 4.1.6)
/system/bin/sh /data/opt/autostart.sh
That will tell the ROM to start it automatically. On xROM I named it setPriority.sh because it made more sense. The autostart is only required for people who want to use that app.
PlatinumMOTO said:
it says autostart.txt does not exist do I need to create it?
Click to expand...
Click to collapse
It probably hasn't run if you are getting that message. Try running it manually
sh /data/opt/autostart.sh
and see if that works. If it doesn't give you any errors try running the cat command again. If the script runs but isn't autostarting, look at my other post and try that stuff. If that doesn't fix it, let me knw.
miketaylor00 said:
It probably hasn't run if you are getting that message. Try running it manually
sh /data/opt/autostart.sh
and see if that works. If it doesn't give you any errors try running the cat command again. If the script runs but isn't autostarting, look at my other post and try that stuff. If that doesn't fix it, let me knw.
Click to expand...
Click to collapse
shouldn't it be sh /system/bin/autostart.sh
or
sh /system/bin/setPriority.sh
Thats how I had it configured in the Hero Roms.
ccyrowski said:
shouldn't it be sh /system/bin/autostart.sh
or
sh /system/bin/setPriority.sh
Thats how I had it configured in the Hero Roms.
Click to expand...
Click to collapse
For the autostart app to use it, it has to be in the /data/opt/ directory. It makes more sense to be in /system/bin/ directory though.
What kind of ring times are you guys getting with this?
im currently on 4.0.4 with xinvert theme. Running dangerspl and latest radio and My phones screen and ringtone comes on after one ring.
Added it to my a2sd file, but that turns my phone into a booting loop...
i've got some linux experience, so i think the rights to the file, and the name are ok, since i can run it manualy from shell.
here are the last 5 lines of my a2sd...
Code:
setprop cm.a2sd.active 0;
fi;
sync;
setprop cm.filesystem.ready 1;
/system/bin/sh /data/opt/autostart.sh
I wonder why all this loggin to sd and this recursive launching of script is needed?
Couldn't some simpler script like this do it?
Code:
#!/system/bin/sh
#
echo "Renice Daemon launched: `date`"
# Set the priority every 3 minutes
while [ 1 ]
do
busybox renice 5 `pidof com.google.process.gapps`
busybox renice -18 `pidof com.android.phone`
busybox renice -18 `pidof android.process.media`
busybox renice -18 `pidof mediaserver`
busybox renice -16 `pidof com.android.launcher`
busybox renice -15 `pidof com.htc.music`
busybox renice -15 `pidof com.android.music`
sleep 180
done;
I tested it by launching it from my userinit.sh file with:
Code:
renice_daemon &
and it seems to work.
farmatito said:
I wonder why all this loggin to sd and this recursive launching of script is needed?
Couldn't some simpler script like this do it?
Code:
#!/system/bin/sh
#
echo "Renice Daemon launched: `date`"
# Set the priority every 3 minutes
while [ 1 ]
do
busybox renice 5 `pidof com.google.process.gapps`
busybox renice -18 `pidof com.android.phone`
busybox renice -18 `pidof android.process.media`
busybox renice -18 `pidof mediaserver`
busybox renice -16 `pidof com.android.launcher`
busybox renice -15 `pidof com.htc.music`
busybox renice -15 `pidof com.android.music`
sleep 180
done;
I tested it by launching it from my userinit.sh file with:
Code:
renice_daemon &
and it seems to work.
Click to expand...
Click to collapse
The logging isn't needed, it just made it easier to see if it was running so I left it in.
I think your method probably makes more sense. I found that the script would sometimes die or stop updating all of the processes if it ran for a few hours. So I had it restart itself and that issue went away. Will that be a problem with your method?
Kubax83 said:
Added it to my a2sd file, but that turns my phone into a booting loop...
i've got some linux experience, so i think the rights to the file, and the name are ok, since i can run it manualy from shell.
here are the last 5 lines of my a2sd...
Code:
setprop cm.a2sd.active 0;
fi;
sync;
setprop cm.filesystem.ready 1;
/system/bin/sh /data/opt/autostart.sh
Click to expand...
Click to collapse
I'm not sure why you would get into a boot loop. That is strange. The last 5 lines of your a2sd look the same as mine. When you run it manuall, does it output to the log file?
-- Nevermind --
I just saw your post over the xROM thread.
That gave me the answer about my network connection problems.
Thanks.
blueheeler said:
I installed xROM this morning (r3), and it's been hit or miss every time that I reboot, I may or may not get "network connection". That started with the initial setup wizard and has gone on throughout the day.
I thought removing all the widgets would do it, but that hasn't been a solution and I had to switch back to Cyan's until this gets worked out.
Could this have anything to do with problem, and would there be a possible fix?
I'd like to try this on my installation of Cyan, but I'd like to see if I would need to make an modications should I run into the no network problem on other roms.
Click to expand...
Click to collapse
I think those are 2 different issues but they are both being addressed on xROM. It seems that this script will cause conflicts with BFS and shouldn't be run on any ROM that uses BFS, xROM or Cyan.
The radio issues are probably being caused by the new donut radio that was added to xROM. JAC is going to get this resoved as well. Look for an update later today.
ive been trying to get this to work on my jachero1.7r2 almost all day , since i loved how it work on jachero 1.8 but unfortionally there were some problems with that rom that brought me back to 1.7r2.
i follow the directions, but theres not folder in data/opt...i also notice the file was place in the "bin" folder in 1.8...should i try that ?
any help will be greatly appriciated...thxs in advance
Exilim809 said:
ive been trying to get this to work on my jachero1.7r2 almost all day , since i loved how it work on jachero 1.8 but unfortionally there were some problems with that rom that brought me back to 1.7r2.
i follow the directions, but theres not folder in data/opt...i also notice the file was place in the "bin" folder in 1.8...should i try that ?
any help will be greatly appriciated...thxs in advance
Click to expand...
Click to collapse
Ahhh, a perfect example for using this script. It will work great with 1.7r2. I'll attach an updated a2sd file for you and the same script that is used in 1.8. You will need to drop them both in the /system/bin/ folder and then run these commands from terminal
su
rwsystem
chmod 755 /system/bin/a2sd
chmod 755 /system/bin/setPriority.sh
Let me know if you need more info.
Edit: fixed the command from as2d to a2sd.
i copied both files using Root Explorer , and check they were both there....
but eveything time i get to the comands :
chmod 755 /system/bin/as2d
i get " unable to /system/bin/as2s: no such file or directory"
but it works with :chmod 755 /system/bin/setPriority.sh
is there anything im missing ?
Exilim809 said:
i copied both files using Root Explorer , and check they were both there....
but eveything time i get to the comands :
chmod 755 /system/bin/as2d
i get " unable to /system/bin/as2s: no such file or directory"
but it works with :chmod 755 /system/bin/setPriority.sh
is there anything im missing ?
Click to expand...
Click to collapse
oh crap, typo. it should be a2sd.

[DEV] Script for tweaks (version 1.02) 18-12-2010

Here is a script i've made (had nothing to do, so...).
Phone must be rooted and have busybox installed.
What first menu looks like:
1 - enable/disable hardware acceleration
2 - enable/disable jit
3 - enable/disable stagefright player
4 - change heapsize
s - show status
r - revert to original configuration
q - quit (don't forget to reboot your phone!)
==================
enter your option:
Click to expand...
Click to collapse
Download:
http://www.4shared.com/file/gApTB6EG/tweaks.html
md5 b0865d9de67a82215913512cb644211d
Just copy the file to your sdcard. Then in a terminal emulator run:
su
cat /sdcard/tweaks > /data/tweaks
rm /sdcard/tweaks
cd /data/
./tweaks
If it doesn't run, type first:
chmod 755 /data/tweaks
Additional notes:
Script does not work if run from sdcard, must be in /data/ or /system/ (this one goes to allsalvati for testing)
---
If anything is wrong i will fix it, but only if you give me feedback
If you know any good tweaks, say it and i'll add them.
---
Changelog:
version 1.02:
backup/restore added
version 1.01d:
working again. sorry for the mess...
version 1.01c:
nothing new. just rearranging code
version 1.01b:
messages were not staying in output. fixed
version 1.01a:
small fix. v1.01 was not working
version 1.01:
added status menu
ruigui said:
Here is a script i've made (had nothing to do, so...). Phone must have busybox.
Download:
http://www.4shared.com/file/gApTB6EG/tweaks.html
md5 ea568c399c67ecd87db0dd790cdf0e93
Just copy the file to your sdcard. Then in a terminal emulator run:
cd /sdcard/
./tweaks
If it doesn't run, type first:
chmod 777 /sdcard/tweaks
Please give me some feedback. I don't own the phone so i can't test.
Click to expand...
Click to collapse
what the script does?
So script should be able to do:
enable/disable hw acceleration
enable/disable jit
enable/disable stagefright player
change heapsize
Yes. For now it's what it does.
The ideia is to be able to enable/disable a certain tweak, without reflashing zips, and rewriting files in phone.
But i need some feedback to know if it is working. I can't test it.
It will only change values in /data/local.prop, nothing else.
It seems that it is well written, so I will try that and let you know what's happened.
Thanks for testing. I'm still waiting to have some money so i can buy this phone...
Meanwhile, i'm "playing" with ROMs and files. I'm not good at scripting, but i'm trying to learn while doing something useful.
How much did you increase the heap size?
domenic_s said:
How much did you increase the heap size?
Click to expand...
Click to collapse
I didn't increase it. Script shows this message:
"default=24, recommended=32"
"enter new heapsize value (1-64): "
You can enter any value between 1 and 64.
If you enter any other value, or a string, character, symbol... script will show this message:
"wrong value"
"please input a value between 1 and 64"
For those who don't feel like editing this themselves this is great. Thanks for releasing it for people to try out more tweaks on stock ROMs.
i'm trying to run this script and gives me the following message: ./tweaks: permission denied
Before anything i typed su, then chmod 777 and it gave me error.
It should work be working...
Anyone else confirms this issue? Is this script running or not?
If it is working and there are more tweaks, i can easilly add them to the script.
If this is an isolated case, i really can't help. I don't own an android phone (yet), so i can't test....
allsalvati do you have busybox installed?
No, i don't.
Sent from my LG-P500h using XDA App
That may be your issue.
You must mount /system/ as read-write, then copy busybox binary to /system/xbin/, then run these commands in terminal emulator:
su
cd /system/xbin
/system/bin/chmod 755 busybox
./busybox --install -s /system/xbin
After that you can mount /system/ as read only again, and reboot your phone.
I don't know if there is another way to install it that is easier.
I downladed busybox installer from market and the app says that was installed. The. /tweaks gives me the same message.
How do i test if busybox was installed right?
Sent from my LG-P500h using XDA App
I found this:
That is a problem, you cannot chmod a script to executable on the SD card. (well some things can, but 99% no) the system is designed to prevent u executing scripts from an SD card
cp it to /system/xbin or /system/bin.
Or if u hate to see it in system', use /data/
THEN chmod it. should be fine to run
Click to expand...
Click to collapse
Try to copy the file to /data/ (so you don't mess with /system/), and then try to run it with:
cd /data/
chmod 777 tweaks
./tweaks
It should not need to be run as root
Moved to /data and worked.
I changed heap size to 32 and disabled hardware accelaration just to test.
With hw acc - 981 on Quadrant
Without - 820
So i think this is working.
Perhaps you should print the values so the user can see what is enabled or not before apply.
Thanks for your help
Sent from my LG-P500h using XDA App
Can you test something for me?
Make sure you have hardware acceleration disabled, and reboot you phone.
Then open terminal and run:
getprop | grep hw (see what it outputs)
then run the script, enable hardware acceleration on it, but DON'T reboot your phone yet.
Then exit script, and run again:
getprop | grep hw
Has the value changed, or is it the same?
I need to know if the system assumes immediately any changes (although they may not be functional until reboot).
This is needed to work on your request.
allsalvati said:
Perhaps you should print the values so the user can see what is enabled or not before apply.
Click to expand...
Click to collapse
I'll work on that and post an update after someone tries what i asked above.
Thanks for testing
EDIT: to test benchmarks, enable/disable jit. It gives greater differences in values
I tried what you say and both outputs are the same:
$getprop | grep hw
[debug.sf.hw]: [0]
[hw.keyboards.65537.devname]: [7k_handset]
[hw.keyboards.65540.devname]: [thunder_keypad]
[hw.keyboards.65541.devname]: [touch_mcs6000]
[hw.keyboards.65542.devname]: [atcmd_virtual_kbd]
Edit: Tested disabling JIT and it worked. Linpack Before 7.35 - After 4.3
So i can't rely on getprop to check current values...
If anything is changed, getprop won't give the right output till reboot.
Damn... Script was almost updated. Now i must find a new way and redo this section.
Thanks for testing again
EDIT:
New version for download at first post. status menu added.
I think it's all ok.
It seems work fine on my phone. But I can't see the status. When I choose to see current status or status after reboot, the screen of my emulator returns too fast to the selection menu (show curent status or after reboot) and I can't see anything !

[MOD/APP] ScriptFusion (Complete Modification)

This is another of the projects I have done that was restricted to the Thunderbolt forum, but is actually compatible with quite a few devices, if not all. Some features only work for the Thunderbolt, but the script and application verify compatibility themselves.
I do not place any restriction on use of the script, components, or functions. All I ask is that the script is not used in the development of similar applications. Whether or not I am credited is at the discretion of the developer and their personal moral obligations. While this project does not include any GPL code, the theory is still relevant:
The GPL imparts great freedom for GPL end users. It ensures innovation is never stifled and no project is dependent upon any single developer.
Click to expand...
Click to collapse
Full Explanation / FAQs
Original Thunderbolt Thread
ScriptFusion AutoBot
Available on Twisted Sandbox and Android Market
This application will install the script, and if purchased from market, or unlocked with the Twisted Sanbox Shovel, it will also provide an online database of tweaks and scripts that can be run, or linked together and run, from directly inside the application.
DOWNLOADS:
AUTOUPDATE - Once the full package is installed, it will update itself (if needed) whenever it is launched. The only time the script alone needs to be reinstalled is when a new ROM is installed.
Busybox Binaries
http://twisted.dyndns.tv/BusyboxBin/
Right click / long click - Save as / save link
Script ONLY
Live script install
http://db.tt/u2gCqNO
Open terminal
Code:
su
bash /sdcard/location of script/speedtweak.sh fusion
This is the live equivalent of flashing ScriptFusion in recovery and would be considered a full install.
Once fully installed
Open terminal
Code:
su
speedtweak.sh
Live script removal
Open terminal
Code:
su
speedtweak.sh guilty
This is the live equivalent of flashing Guilty Verdict in recovery and would be considered a full removal.
Sent from my ADR6400L using Tapatalk
Just a quick breakdown for anyone asking "What about 98kickasskernel? Or "what about juwe RAM optimization?" "Don't they do the same thing?" In theory, sure... For RAM and sysctl values. Ever wonder why there are two versions of the 98kernel script to prevent bootloops? That is one key difference. This system doesn't just throw values at your device, or follow an "if you bootloop" methodology. Sure some things may cause loops because there is no reliable check (See odex/dalvikvm), but nothing is just hard-coded.
Another big difference is that those scripts cannot change screen density, tweak the CPU, change the scheduler, profile frequencies, and fix broken WiFi all in one run.
Complete means complete, simple as that. Customization means user determined customization, not what one developer recommends. Recommendations will help through the process, but they remain exactly that. There are no rules. Have some fun...
Sent from my ADR6400L using Tapatalk
Hi. Thanks for sharing.
I first read, re-read the OP and decided to download and try the trial app from the market: https://market.android.com/details?id=com.twisted.zero&feature=search_result. But the app just crashes every time when i try to launch(it gives the error: Data and sdcard required!). I am on custom ROM Froyo 2.2.2 with apps on ext2 using data2sd(both apps were on phone memory).
Then i re-re-read the OP and decided to try the script way first via Script Manager and then(if not lucky) via terminal. I had no luck with Script Manager(runing root mode). The script dont install and gives the errors:
wget: bad address '64.121.156.138:8080'
wget: can't connect to remote host (64.121.156.138:8080)
Unnable to chmod /system/xbin/wget: No such file
Invalid binaries. Please retry.
Edit: Checking the filesystem i see that at least one thing the script/app have done. Has deleted all my previous scripts on /system/etc/init.d and now there are 3 new files: 00twist_override, 01vdd_levels and 02sched_choice. Same files are now on /etc/init.d.
Same error with terminal emulator. Maybe i am very dumb and i miss something. What i am doing wrong?
Thanks in advance!
f1ng3r said:
Hi. Thanks for sharing.
I first read, re-read the OP and decided to download and try the trial app from the market: https://market.android.com/details?id=com.twisted.zero&feature=search_result. But the app just crashes every time when i try to launch(it gives the error: Data and sdcard required!). I am on custom ROM Froyo 2.2.2 with apps on ext2 using data2sd(both apps were on phone memory).
Then i re-re-read the OP and decided to try the script way first via Script Manager and then(if not lucky) via terminal. I had no luck with Script Manager(runing root mode). The script dont install and gives the errors:
wget: bad address '64.121.156.138:8080'
wget: can't connect to remote host (64.121.156.138:8080)
Unnable to chmod /system/xbin/wget: No such file
Invalid binaries. Please retry.
Edit: Checking the filesystem i see that at least one thing the script/app have done. Has deleted all my previous scripts on /system/etc/init.d and now there are 3 new files: 00twist_override, 01vdd_levels and 02sched_choice. Same files are now on /etc/init.d.
Same error with terminal emulator. Maybe i am very dumb and i miss something. What i am doing wrong?
Thanks in advance!
Click to expand...
Click to collapse
Your previous scripts are safe. They will be in data/data/scriptfusion if install didn't complete (in which case you may want to move them so a new install doesn't overwrite them) or in SDcard/ScriptFusion/backup
Alright, so a couple things happened all at once that caused your error, but to keep it simple... My server takes on the traffic of a corporate sized one packed into two computers. Occasionally I have to reboot. Your download happened during the 15 minutes or so it went down. Give it another try and let me know if it doesn't fix itself.
Sent from my ADR6400L using Tapatalk
twistedumbrella said:
Your previous scripts are safe. They will be in data/data/scriptfusion if install didn't complete (in which case you may want to move them so a new install doesn't overwrite them) or in SDcard/ScriptFusion/backup
Alright, so a couple things happened all at once that caused your error, but to keep it simple... My server takes on the traffic of a corporate sized one packed into two computers. Occasionally I have to reboot. Your download happened during the 15 minutes or so it went down. Give it another try and let me know if it doesn't fix itself.
Sent from my ADR6400L using Tapatalk
Click to expand...
Click to collapse
I keep getting this error
$ export PATH=/data/local/bin:$PATH
$su
# bash /sdcard/speedtweak.sh fusion
unknown option -- cBusyBox v1.16.2androidfull (2010-08-01 14:57:25 EDT) multi-call binary.
Usage: stat [OPTIONS] FILE...
Display file (default) or filesystem status
Options:
-f Display filesystem status
-L Follow links
-t Display info in terse form
unknown option -- cBusyBox v1.16.2androidfull (2010-08-01 14:57:25 EDT) multi-call binary.
Usage: stat [OPTIONS] FILE...
Display file (default) or filesystem status
Options:
-f Display filesystem status
_ _ ...
___ \\-//` o,*,(o o)
(o o) (o o) 8(o o)(_)Ooo
ooO--(_)--Ooo-ooO--(_)--Ooo-ooO-(_)---Ooo
____ __ __ ___ ____ _____ _ _
( ___)( )( )/ __)(_ _)( _ )( \( )
)__) )(__)( \__ \ _)(_ )(_)( ) (
(__) (______)(___/(____)(_____)(_)\_)
Android user detected! Inverting reality...
cp: can't stat '/system/customize/speedtweak.sh': No such file or directory
/sdcard/speedtweak.sh: line 332: wget: command not found
chmod: speedtweak.sh: No such file or directory
unknown option -- cBusyBox v1.16.2androidfull (2010-08-01 14:57:25 EDT) multi-call binary.
AutoUpdate Complete. Restarting...
Restart by pressing <Up>, <Enter>
sh: Can't open /system/customize/speedtweak.sh
#
Sent from my GT540 using XDA Premium App
eoghan2t7 said:
I keep getting this error
$ export PATH=/data/local/bin:$PATH
$su
# bash /sdcard/speedtweak.sh fusion
unknown option -- cBusyBox v1.16.2androidfull (2010-08-01 14:57:25 EDT) multi-call binary.
Usage: stat [OPTIONS] FILE...
Display file (default) or filesystem status
Options:
-f Display filesystem status
-L Follow links
-t Display info in terse form
unknown option -- cBusyBox v1.16.2androidfull (2010-08-01 14:57:25 EDT) multi-call binary.
Usage: stat [OPTIONS] FILE...
Display file (default) or filesystem status
Options:
-f Display filesystem status
_ _ ...
___ \\-//` o,*,(o o)
(o o) (o o) 8(o o)(_)Ooo
ooO--(_)--Ooo-ooO--(_)--Ooo-ooO-(_)---Ooo
____ __ __ ___ ____ _____ _ _
( ___)( )( )/ __)(_ _)( _ )( \( )
)__) )(__)( \__ \ _)(_ )(_)( ) (
(__) (______)(___/(____)(_____)(_)\_)
Android user detected! Inverting reality...
cp: can't stat '/system/customize/speedtweak.sh': No such file or directory
/sdcard/speedtweak.sh: line 332: wget: command not found
chmod: speedtweak.sh: No such file or directory
unknown option -- cBusyBox v1.16.2androidfull (2010-08-01 14:57:25 EDT) multi-call binary.
AutoUpdate Complete. Restarting...
Restart by pressing <Up>, <Enter>
sh: Can't open /system/customize/speedtweak.sh
#
Sent from my GT540 using XDA Premium App
Click to expand...
Click to collapse
Seems wget may have corrupted. All issue reports relate to bad download ( which once it is installed don't happen) time to look into it...
Sent from my ADR6400L using Tapatalk
twistedumbrella said:
Seems wget may have corrupted. All issue reports relate to bad download ( which once it is installed don't happen) time to look into it...
Sent from my ADR6400L using Tapatalk
Click to expand...
Click to collapse
Stupid mistake. Switched the server port on the server, but never updated the new value to the script. Download updated. Install should now update wget and proceed normally. Sorry.
Sent from my ADR6400L using Tapatalk
twistedumbrella said:
Stupid mistake. Switched the server port on the server, but never updated the new value to the script. Download updated. Install should now update wget and proceed normally. Sorry.
Sent from my ADR6400L using Tapatalk
Click to expand...
Click to collapse
Im still getting invaild binarys error.
Sent from my GT540 using XDA Premium App
eoghan2t7 said:
Im still getting invaild binarys error.
Sent from my GT540 using XDA Premium App
Click to expand...
Click to collapse
Alright, let me look into something that might avoid having to update busybox
Sent from my ADR6400L using Tapatalk
Alright, with all the recent edits, it should work to get a system with busybox 1.6.1 and up updated and running. A lot of other scripts stay at 1.6.2, but this uses 1.9 much like newer ROMs. I plan to drop back busybox, see if all the commands work, and make that part optional, but a lot of ROMs use truncated versions, so I am still working out a failsafe.
Sent from my ADR6400L using Tapatalk
Can I have a few people do the following command and post the output? Getting a baseline for a new verify
busybox | busybox head -n 1 | busybox awk '{ print $2 }'
Sent from my ADR6400L using Tapatalk
Removed the necessity of having certain versions of busybox, but with that it is fair warning that ROMs with truncated versions will not work.
Changed up the tweak menu option to be a little easier understood. While the +/- were fully explained, on smaller text sizes they were impossible to differentiate.
Sent from my ADR6400L using Tapatalk
Removed. All good now.
I got it up and running. I have a few questions. I purchased the autobot off one of the links you provided. I got working. I made a slight yet big mistake. I was looking through the speedtweak menu and somehow changed the voltages on something by mistake. I couldn't read what was on the bottom of the terminal emulator and screwed something up good. After that, the phone was really crawling and scriptfusion wouldnt open up. I just restored my old backup and then reinstalled my new rom. I got scriptfusion back on my phone but is there supposed to be an app that takes you directly into scriptfusion? I know I can get there from the terminal emulator but i was able to click on an app before to get in. Now if I click on it, it just force closes. Second question is, if I am going to be playing around with a kernel, is it best to just back it up first before I modify? I'm on gingeritis 3D that has Ziggy's latest baked in. It would be nice if I screwed something up that I could just reflash the kernel but he doesn't have the kernel by itself floating around. It seems like the backup and restore worked. I backed it up, played around a bit and tested my results then I restored and it seemed to take the kernel back to its normal state. Is this the way I should do it? Also, can you backup more than one file at a time?
I also don't know what happened to my min/max frequencies. I now only have :
1) 192000
2) 245760
3) 368640
4) 768000
5) 806400
6) 883200
7) 960000
8) 1036800
This is all I have available. I had more before I had to reflash my rom. I'm sure its my fault. How can I get the other options back? I also have enabled swap and I can see if on there but it is not being used.
ercDROID said:
I got it up and running. I have a few questions. I purchased the autobot off one of the links you provided. I got working. I made a slight yet big mistake. I was looking through the speedtweak menu and somehow changed the voltages on something by mistake. I couldn't read what was on the bottom of the terminal emulator and screwed something up good. After that, the phone was really crawling and scriptfusion wouldnt open up. I just restored my old backup and then reinstalled my new rom. I got scriptfusion back on my phone but is there supposed to be an app that takes you directly into scriptfusion? I know I can get there from the terminal emulator but i was able to click on an app before to get in. Now if I click on it, it just force closes. Second question is, if I am going to be playing around with a kernel, is it best to just back it up first before I modify? I'm on gingeritis 3D that has Ziggy's latest baked in. It would be nice if I screwed something up that I could just reflash the kernel but he doesn't have the kernel by itself floating around. It seems like the backup and restore worked. I backed it up, played around a bit and tested my results then I restored and it seemed to take the kernel back to its normal state. Is this the way I should do it? Also, can you backup more than one file at a time?
I also don't know what happened to my min/max frequencies. I now only have :
1) 192000
2) 245760
3) 368640
4) 768000
5) 806400
6) 883200
7) 960000
8) 1036800
This is all I have available. I had more before I had to reflash my rom. I'm sure its my fault. How can I get the other options back? I also have enabled swap and I can see if on there but it is not being used.
Click to expand...
Click to collapse
From everything you said, it sounds like the restore may have given you a different kernel. The kernel frequencies are read right from system. The force close should fix itself by clearing data for the app and letting it reinstall the script. You don't necessarily need to back up anything if you are near a computer because the kernel itself is never actually edited. Restore is as easy as using adb to remove /system/init.e/00twist_override Editing on the go, a recent backup of system only will revert any changes. If you enabled swap and your getting zeros either you need to reboot or the system hasn't needed the space yet.
Sent from my ADR6400L using Tapatalk
Wow that's one intense script.
It's a huge compliment you gave me when you said I motivated you in some way.
Thanks man... I'm practically speechless
zeppelinrox said:
Wow that's one intense script.
It's a huge compliment you gave me when you said I motivated you in some way.
Thanks man... I'm practically speechless
Click to expand...
Click to collapse
Thanks. It was very true. Reading over your work made me realize I was focusing too much on single items and not the whole process.
Sent from my ADR6400L using Tapatalk
Well... looks like you did it in spades
Lots of ideas floating around. New concepts for better cooperation between the app and the script. Better methods for quick scripts. New menus and graphic interface plans. It's slowly building up.
Sent from my ADR6400L using Tapatalk

[MOD] One stop for tweaks and other useful cool stuff

ok, from my android tweaking and playing around with all kinds of settings and other things i know it can be somewhat hard to find everything you might need to make the most of your android device so i will put links to them here along with providing support and my own little discoveries here...if anyone knows anything else that is cool or useful just post it and i'll update this post (btw these are tested on droid 1 only but many may apply to most android devices)
*Anyone who knows of any other tweaks/mods/scripts/useful terminal commands please feel free to post and i'll add it here (after testing it if possible)*
***disclaimer- I am not responsible for any damage you may do to your device, please make sure to have a backup before doing any of these tweaks***
first off how about a simple rooting/returning to stock guide?
quick root guide
1)download these files
http://www.motorola.com/staticfiles/Support/Experiences/Global_Drivers/MotoHelper_2.0.40_Driver_4.9.0.exe
http://wonderly.com/bb/DROID/OEM/rsdlite_5.0.msi
http://wonderly.com/bb/DROID/OEM/VZW_A855_QSC6085BP_RZRECOVERY_UPDATE.sbf
http://wonderly.com/bb/DROID/OEM/update.zip
2)install the first 2 links in order
3)connect your phone via usb to your computer and copy the update.zip you downloaded to your sdcard
4)reboot your phone and hold power + vloume up + the camera button until you see the screen that says bootloader battery ok
5)open rsd lite and see if it recognizes your phone (basically any entry in the model column) and slide your phone keyboard open
6) click the ... near the start button and navigate and select the VZW_A855_QSC6085BP_RZRECOVERY_UPDATE.sbf file
7)click start and WATCH FOR "Phone[0000]: Phone is being rebooted" On your phone the screen will change to "SW Update Complete" and your phone will reboot within a second or two. You want to be already holding the x button on your keyboard to boot into recovery mode when the phone actually reboots so the stock OS doesnt erase the new recovery you just flashed
8) using the volume keys to move through the menu, the camera button to select and the power button to go back, go to install and select the update.zip you put on your sdcard earlier and select install update.zip
9) then select "reboot into android" and enjoy the benefits of being rooted
return to stock
1)download these files
http://www.motorola.com/staticfiles...al_Drivers/MotoHelper_2.0.40_Driver_4.9.0.exe
http://wonderly.com/bb/DROID/OEM/rsdlite_5.0.msi
http://wonderly.com/bb/DROID/OEM/VZW_A855_FRG22D_QSC6085BP_C_01.43.01P_SW_UPDATE.sbf
2)install the first 2 files
3)reboot your phone and hold power + vloume up + the camera button until you see the screen that says bootloader battery ok
4)connect your phone via usb to your computer and reboot your phone and hold power + vloume up + the camera button until you see the screen that says bootloader battery ok
5)open rsd lite and see if it recognizes your phone (basically any entry in the model column)
here are are some useful build.prop tweaks I've encountered along the way, just put the line into the build.prop or modify it if its already in there, save, wipe dalvik cache and reboot
6) click the ... near the start button and navigate and select the VZW_A855_FRG22D_QSC6085BP_C_01.43.01P_SW_UPDATE.sb f you downloaded earlier
7)click start and let it run and reboot automatically (it should work even if rsd lite says the result was fail)
8) you are now on stock unrooted froyo
FRG22D
(optional) 9) go to settings > about phone> check for updates and allow system updates to download and install (allows for a super clean setup if you are planning to re-root)
for possibly better scrolling speed, can be set to any number from 35-300:
# This defines the max event window manager can
# handle in 1 s. We may adjust this # for performance
# reason later
windowsmgr.max_events_per_sec=
change lcd density (already in build.prop), which is like changing the resolution on a windows computer can be anywhere from 140 to 260 (under 200 not recommended because everything may be too small for the phone to be usable:
ro.sf.lcd_density=
dalvik cache virtual memory size (already in build.prop)...can also help performance. set anywhere from 24m to 64m based on how complex your setup is. i.e. tons of apps, in depth theme, memory intensive apps, etc.
dalvik.vm.heapsize=
incoming ringer delay (already in build.prop) sets how soon the phone starts ringing when a call comes in. set between 0 and 2000
ro.telephony.call_ring.delay=
proximity delay. sets how long before screen turns off during call. set between 0 and 600
# Proximit sensor screen off delay
mot.proximity.delay=
tcp stack- optimizes data performance
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
enable hardware acceleration
# Render UI through GPU instead of CPU
# Comment out if this causes laggy UI (it should speed up UI)
debug.sf.hw=1
sleep mode for battery savings. 0 means power collapse suspend, 1 is power collapse (usually the best choice), 2 is apps go to sleep, 3 is show clock and wait, 4 is wait for interrupt...not sure which each one does or is good for, just know about this little tweak lol
# Battery Savings (Sleep Mode)
pm.sleep_mode=
more battery savings
# When moving through zones or losing signal, having a delay
# smooths out constant disconnects and reconnects, which in turn
# saves a ton of battery life!
ro.mot.eri.losalert.delay=1000
disable sending usage data
ro.config.nocheckin=1
wifi scan interval (already in build.prop) can save battery as well. set from 15 to 999
# Time between scans in seconds. Keep it high to minimize battery drain.
# This only affects the case in which there are remembered access points,
# but none are in range.
wifi.supplicant_scan_interval=
ok, now for some useful links (all credit goes to the creators of these cool tweaks/apps/programs
v6 supercharger by zepplinrox - http://forum.xda-developers.com/showpost.php?p=18703418&postcount=5021
Deodex/odex tweak by Nibras, Reeza & Danzano (thanks to BrUhNiGGs for finding this) - http://www.droidforums.net/forum/steel-droid/200388-ram-tweak-free-up-more-ram-make-apps-load-faster.html
setcpu for free (legitimately legal lol) - http://forum.xda-developers.com/showthread.php?t=505419
wifi tethering app Downloads - http://code.google.com/p/android-wifi-tether/downloads/list
wired tethering app Downloads - http://code.google.com/p/android-wired-tether/downloads/list
easy install of adb http://www.droidforums.net/forum/chevyno1/162984-your-1-adb-source-7-29-11-a.html
Guide to building a rom from source (credit to chevycam and SnkBitten) - http://www.droidforums.net/forum/steel-droid/196475-guide-how-build-your-own-rom-cm7-source.html
Ok, here's a new section with just general tips, tricks and scripts
Useful terminal emulator scripts run as superuser (su)
*Using the debugging logging to report issues
Code:
logcat > /mnt/sdcard/logcat.txt
wait 4-5 seconds then hold volume up and press f on the keyboard to stop it
if logcat is disabled then do this instead
Code:
dmesg > /mnt/sdcard/dmesg.txt
wait 4-5 seconds then hold volume up and press f on the keyboard to stop it
*Find top CPU/memory using apps. value after -m is how many apps to show, value after -n is how many times to update (be sure to set this value or it will run endlessly until terminal is closed)
Code:
top -m 10 -n 1
*Find md5sum for downloaded files (checks to ensure proper downloads especially for roms, just compare your result to whatever value the rom developer provides and they should match)
Code:
md5sum /mnt/sdcard/(file path on sdcard)
For example
Code:
md5sum /mnt/sdcard/download/SD_9.0.0.zip
*Use swap partition without swapper2.
Add this script to the end of any file in the /etc/init.d folder. If you don't have one just run it in terminal emulator each reboot and run it in terminal first since sometimes its mmcblk0p2 instead of mmcblk0p3 depending on where you have the swap partition (or use the app script manager to make it run at boot. Script manager doesn't run continuously like swapper2)
Code:
swapon /dev/block/mmcblk0p3
And to turn swap off
Code:
swapoff /dev/block/mmcblk0p3
*Setting swappiness
Add or edit this line in the file etc/sysctl.config using whatever value you want, just keep the spaces (open in text editor)
vm.swappiness = 30
Or add this to the end of a script in init.d or run in terminal emulator
Code:
sysctl -w vm.swappiness=30
*Loading a module for apps2sdext (link2sd style apps2sd)
Run this in terminal emulator with superuser permission, substituting ext3 for whatever extension you want loaded (keep the .ko though)
Code:
insmod /system/lib/modules/ext3.ko
or the simple way
Code:
modprobe ext3
*Listing loaded modules
Run this in terminal emulator with superuser permissions
Code:
lsmod
*Forcing a hot reboot to clear caches
Run this in terminal emulator with superuser permissions
Code:
pkill zygote
*terminal tips-
Find list of many possible scripts to run
Code:
busybox
List sysctl commands
Code:
sysct -h
List first or last 10 lines of another scripts output (note | is not lower case L, its a separate character)
First 10-
Code:
(script) | head
Last 10
Code:
(script) | tail
Example (list first 10 sysctl values)
Code:
sysctl -a | head
Finding lines with certain letters/word in another scripts output
Code:
(script) | grep (letters/word)
Example (show only sysctl lines with vm in them) (note | is not lower case L, its a separate character)
Code:
sysctl -a | grep vm
Don't worry more to come soon
Ok, those are the well tested tweaks, now for a few experimental ones. Please make sure to have a backup ready to restore since these ARE experimental and may cause your rom not to load
improve peformance?
Add this to the build.prop
#disable the zygote loader
ro.wmt.blcr.enable=0
Fix app issues? (change it to 0 to improve performance)
Add this to build.prop
ro.kernel.android.checkjni=1
Change the I/O scheduler (effects how your phone reads and writes data)(first line tells you whats available and what you currently have in [ ], then put whichever one you want in the "" after echo, and the last line will confirm the change)
Code:
cat /sys/block/*/queue/scheduler
for i in /sys/block/*/queue/scheduler
do
echo "deadline" > $i
done
cat /sys/block/*/queue/scheduler
Increse overall touch resposivness?
Add these to build.prop
debug.performance.tuning=1
video.accelerate.hw=1
ro.min_pointer_dur=8
Raise Photo and video quality?
Add these to build.prop
ro.media.enc.jpeg.quality=100
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
change sdcard buffer speed
run in terminal emulator as superuser (su) or put #!/system/bin/sh as first line and put in /system/etc/init.d (you can change the value in the "echo 512 > /sys/devices/virtual/bdi/179:0/read_ahead_kb" line to suit your needs- common values are 256, 512, 1024, 2048, 3072, 4096, 5120, 6144)
Code:
for i in /sys/devices/virtual/bdi/*
do
echo 2 > $i/read_ahead_kb
done
echo 2048 > /sys/devices/virtual/bdi/179:0/read_ahead_kb
echo 2 > /sys/devices/virtual/bdi/default/read_ahead_kb
or you can try just simply using the simple version
Code:
echo 2048 > /sys/devices/virtual/bdi/179:0/read_ahead_kb
Disable boot animation
add to build.prop (use caution after wiping dalvik, it will appear to hang at the M but its usually still booting up all the way)
dev.sfbootcomplete=0
Use dalvik JIT compiler
add to build.prop (Just In Time compiler is much faster)
dalvik.vm.execution-mode=int:jit
Improve performance?
change in build.prop
ro.setupwizard.mode=DISABLED
Rom dependent tweaks (will only work if these features are included in your rom and most are included in settings anyway, most of the time they are but if not sure then ask the dev) add these to build.prop, 1 is on 0 is off
help to free up unused ram-
persist.sys.purgeable_assets=
stop usb debugging on notification-
persist.adb.notify=
Force capacitive buttons to stay on while screen is on?-
ro.mot.buttonlight.timeout=
Improve screen quality at the cost of performance-
persist.sys.use.dithering=
*reserved*
**reserved**
and one more just in case
***reserved***
btw, i hope i posted this right, I'm still new here to xda forums, i hope i posted in the right section too...if not then someone can go ahead move it (if possible)
Nice collection!
Say, do you have anything specific to CDMA bandwidth?
I know my 3G TurboCharger has a positive effect somehow even though most of the entries are GSM related but hey... every bit helps
zeppelinrox said:
Nice collection!
Say, do you have anything specific to CDMA bandwidth?
I know my 3G TurboCharger has a positive effect somehow even though most of the entries are GSM related but hey... every bit helps
Click to expand...
Click to collapse
not sure if any of these would apply to data at all but i know kfazz posted them as the only ril settings for the droid, maybe this could further improve speed on all devices if anything applies to mobile data
Moto ril sholes accepted properties found via strings
persist.ril.mux.timeout.enbld
persist.ril.enableradio.powerup
persist.ril.uart.flowctrl
persist.ril.mux.noofchannels
persist.ril.mux.ttydevice
persist.ril.mux.retries
persist.ril.mux.sleep
persist.ril.mux.logmask
persist.ril.rssi.enable.param6
persist.ril.modem.ttydevice
persist.ril.pppd.start.fail.max
ro.ril.ecclist
ro.ril.barcode
ro.build.id
/data/data/com.motorola.motoapr.service/paniclogging
/data/misc/ril/ril_apr.log
Click to expand...
Click to collapse
Ok I guess those are boolean values soget either = 0 or =1 values then?
Well that's weird.. I didn't know there are ro.cdma values...
http://pastebin.com/LWWcSMTD
zeppelinrox said:
Ok I guess those are boolean values soget either = 0 or =1 values then?
Well that's weird.. I didn't know there are ro.cdma values...
http://pastebin.com/LWWcSMTD
Click to expand...
Click to collapse
i searched for ro.cdma and found some others too
ril.cdma.ppp.up=3
ro.radio.use-ppp=yes
net.cdma.ppp-exit=0
cool... maybe you can test them see if you notice a difference?
zeppelinrox said:
cool... maybe you can test them see if you notice a difference?
Click to expand...
Click to collapse
I'll try it out but it I'll try it on something where the radio fully works lol, is still being fixed on the ics build but obviously I have to go back to gingerbread to make and receive calls, if it does anything on GB, then I'll test on ics, who knows it might fix the radio issues somehow
A friend of mine just asked me to root his old droid for him to use merely as a multimedia (music & video) and google docs device. Strictly Wifi, no service plan.
i plan on rooting, wiping, and running SteelDroid on it for him:
http://forum.xda-developers.com/showthread.php?t=1098483
I came across these tweaks and they look AWESOME. I just have a few questions about some of them in particular.
metalspring said:
for possibly better scrolling speed, can be set to any number from 35-300:
# This defines the max event window manager can
# handle in 1 s. We may adjust this # for performance
# reason later
windowsmgr.max_events_per_sec=
Click to expand...
Click to collapse
Is this in the build.prop or elsewhere?
metalspring said:
tcp stack- optimizes data performance
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
Click to expand...
Click to collapse
where do i find and change these? build.prop or elsewhere?
metalspring said:
enable hardware acceleration
# Render UI through GPU instead of CPU
# Comment out if this causes laggy UI (it should speed up UI)
debug.sf.hw=1
disable sending usage data
ro.config.nocheckin=1
Click to expand...
Click to collapse
in build.prop?
metalspring said:
Useful terminal emulator scripts run as superuser (su)
*Use swap partition without swapper2.
Add this script to the end of any file in the /etc/init.d folder. If you don't have one just run it in terminal emulator each reboot (or use the app script manager to make it run at boot. Script manager doesn't run continuously like swapper2)
swapon /dev/block/mmcblk0p3
And to turn swap off
swapoff /dev/block/mmcblk0p3
*Setting swappiness
Add or edit this line in the file etc/sysctl.config using whatever value you want, just keep the spaces (open in text editor)
vm.swappiness = 30
Or add this to the end of a script in init.d or run in terminal emulator
sysctl -w vm.swappiness=30
*Loading a module for apps2sdext (link2sd style apps2sd)
Run this in terminal emulator with superuser permission, substituting ext3 for whatever extension you want loaded (keep the .ko though)
insmod /system/lib/modules/ext3.ko
Click to expand...
Click to collapse
Can i make 2 scripts in script manager that can do this? or are there any available? I know on such a low ram & low internal storage device, swap and apps2sdext would be INCREDIBLY useful.. any tips on making this permanent? If i can make a script in SM i know i can set it start at boot. But i wouldn't need to do that for a2sdext right? once that's set, it's set and needs no changes right?
Also, would you suggest a custom rom like steeldroid or would i be better off stripping out the crapware from the stock ota rom (froyo) and just flashing a better compatible kernel and using some tweaks & scripts to speed things up a bit and optimize them for his purposes.
Let me know what you think?
thanks!
Originally Posted by metalspring
for possibly better scrolling speed, can be set to any number from 35-300:
# This defines the max event window manager can
# handle in 1 s. We may adjust this # for performance
# reason later
windowsmgr.max_events_per_sec=
Click to expand...
Click to collapse
Is this in the build.prop or elsewhere?
Originally Posted by metalspring
tcp stack- optimizes data performance
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
Click to expand...
Click to collapse
where do i find and change these? build.prop or elsewhere?
Originally Posted by metalspring
enable hardware acceleration
# Render UI through GPU instead of CPU
# Comment out if this causes laggy UI (it should speed up UI)
debug.sf.hw=1
disable sending usage data
ro.config.nocheckin=1
Click to expand...
Click to collapse
in build.prop?
Originally Posted by metalspring
Useful terminal emulator scripts run as superuser (su)
*Use swap partition without swapper2.
Add this script to the end of any file in the /etc/init.d folder. If you don't have one just run it in terminal emulator each reboot (or use the app script manager to make it run at boot. Script manager doesn't run continuously like swapper2)
swapon /dev/block/mmcblk0p3
And to turn swap off
swapoff /dev/block/mmcblk0p3
*Setting swappiness
Add or edit this line in the file etc/sysctl.config using whatever value you want, just keep the spaces (open in text editor)
vm.swappiness = 30
Or add this to the end of a script in init.d or run in terminal emulator
sysctl -w vm.swappiness=30
*Loading a module for apps2sdext (link2sd style apps2sd)
Run this in terminal emulator with superuser permission, substituting ext3 for whatever extension you want loaded (keep the .ko though)
insmod /system/lib/modules/ext3.ko
Click to expand...
Click to collapse
Can i make 2 scripts in script manager that can do this? or are there any available? I know on such a low ram & low internal storage device, swap and apps2sdext would be INCREDIBLY useful.. any tips on making this permanent? If i can make a script in SM i know i can set it start at boot. But i wouldn't need to do that for a2sdext right? once that's set, it's set and needs no changes right?
Also, would you suggest a custom rom like steeldroid or would i be better off stripping out the crapware from the stock ota rom (froyo) and just flashing a better compatible kernel and using some tweaks & scripts to speed things up a bit and optimize them for his purposes.
Let me know what you think?
thanks!
Click to expand...
Click to collapse
to the first 4 yes, just add them to the build.prop and for the last ones you can either use script manager to make a new script in the folder /system/etc/init.d
if you dont have an init.d folder then you have to have script manager to run them at boot (i'd suggest having the scripts in /data) and for apps2sdext, i'd suggest using the app link2sd, its basically the only way to control moving apps to the sdcard ext
also the biggest help for low ram devices is v6 supercharger and all the other zeppelinrox scripts
http://forum.xda-developers.com/showpost.php?p=18703418&postcount=5021
and i'd highly highly suggest steeldroid 10, its what i currently run and most of the tweaks i have in this thread are already included in it
and btw if you didnt know, in order to use swap and link2sd you have to format your sdcard and repartition it, the easiest way is installing rom manager, flashing clockwork recovery and there should be an option to partition your sdcard in rom manager (it will erase everything on your sdcard so back everything up)
also i'm going to update this thread with more stuff i've found
updated and cleaned up op
awesome! thanks! yea i know about partitioning the sdcard. I use both swap and a2ext on my htc g2, but they are part of the kernel on the ROM i run, i've never used any other software to initiate them.
Thanks for the tips!
Also, how can ANYONE flash roms from XDA and NOT know about the AMAZING supercharger v6 script!
first of all I want to thank the OP! being how this is not my phone but my brothers. he wants me to root it and install a rom. this thread made everything a whole lot simple.
now to bug you guys.. where can I find a suitable system recovery apk for this phone? I have one installed but it never boots into recovery. also I haz steel droid 10 running.
Sent from my DROID X2 using XDA App
motrinHD said:
first of all I want to thank the OP! being how this is not my phone but my brothers. he wants me to root it and install a rom. this thread made everything a whole lot simple.
now to bug you guys.. where can I find a suitable system recovery apk for this phone? I have one installed but it never boots into recovery. also I haz steel droid 10 running.
Sent from my DROID X2 using XDA App
Click to expand...
Click to collapse
if you're talking about a droid 1 then the instructions to root should install a custom recovery
If you're talking about a droid x2 as your signature suggests then I'd say try looking on droidforums.net... They are more dedicated to the droid series of android phones and I know any Motorola phone other than the droid 1 is more complicated because of a locked bootloader
You can try downloading rom manager to flash a recovery for either phone I believe
Also if you are already rooted and think you have a working recovery then try installing android terminal emulator from the market and typing in
su
reboot recovery
metalspring said:
if you're talking about a droid 1 then the instructions to root should install a custom recovery
If you're talking about a droid x2 as your signature suggests then I'd say try looking on droidforums.net... They are more dedicated to the droid series of android phones and I know any Motorola phone other than the droid 1 is more complicated because of a locked bootloader
You can try downloading rom manager to flash a recovery for either phone I believe
Also if you are already rooted and think you have a working recovery then try installing android terminal emulator from the market and typing in
su
reboot recovery
Click to expand...
Click to collapse
I am talking about the droid 1. tho I spf'd to 2.2 I then went with the one click root method. and it placed a system recovery apk on my sd but I find that it does not work. I'm going to try that emulator thing you suggested
Sent from my DROID X2 using XDA App
metalspring said:
to the first 4 yes, just add them to the build.prop and for the last ones you can either use script manager to make a new script in the folder /system/etc/init.d
if you dont have an init.d folder then you have to have script manager to run them at boot (i'd suggest having the scripts in /data) and for apps2sdext, i'd suggest using the app link2sd, its basically the only way to control moving apps to the sdcard ext
also the biggest help for low ram devices is v6 supercharger and all the other zeppelinrox scripts
http://forum.xda-developers.com/showpost.php?p=18703418&postcount=5021
and i'd highly highly suggest steeldroid 10, its what i currently run and most of the tweaks i have in this thread are already included in it
and btw if you didnt know, in order to use swap and link2sd you have to format your sdcard and repartition it, the easiest way is installing rom manager, flashing clockwork recovery and there should be an option to partition your sdcard in rom manager (it will erase everything on your sdcard so back everything up)
also i'm going to update this thread with more stuff i've found
Click to expand...
Click to collapse
MS,
I have learned alot from your posts. Thanks for the time spent sharing them. A few questions.
You mention and I have noticed many of the tweaks are already incorporated into Steel Droid X. (I am currently running the rc1 version with the last Deprimed Kernel.) Am am liking it ALOT!!.
Is there anyway you could somehow put a denotion on the tweaks that are already included in SDX? I think it would be helpful, as I certainly would find it so.
How much of a effect did you find running v6 supercharger had given the other changes already in SDX? Any conflicts or issues running it with this ROM?
I am planning on partitioning my SD card as I would like to try the benefits of a swap partition. Upon checking my usage I am considering a 128mb. Seems like a safe size all around. Believe you have posted this somewhere as well? Card is a 32g class 4. I have never messed with running a swap. Currently, I have a standard single FAT32 format part. I have a number of programs already set as loaded on the SD card so I will have to move those back.
I believe SDX has apps2sdext already, correct?
From your post I take I still need links2sd to have the apps to go to that swap partition?
Is there a good link to info on the hows, workings, etc on the swap partition, apps works? I can search for one, only if you happen to have a link handy.
Thanks for all your help.
BE

[MOD](UPDATED) For those with battery issues

please dont forget to thank
loSconosciuto
ilcorsaronero
PureMotive
credits to loSconosciuto for modifying this mod to our galaxy sl and most especially to ilcorsaronero for the modification and for making the universal cwm flashable zip for our device
ilcorsaronero said:
Since noone was updating it, I provide a working flashable zip basing on this mod. There were more than one problem in the zip, but now I fixed them. Please report:
* if you notice a battery performance improvement
* how much is this improvement
* which MOD are you on
* which KERNEL are you on. This mod works only on init.d featured mod/kernels.
thanks.
Flash this through CWM recovery!
Click to expand...
Click to collapse
link to cwm flashable zip file
http://forum.xda-developers.com/showpost.php?p=25536103&postcount=27
original thread of this mod
credits to PureMotive
PureMotive said:
Okay guys, I just thought I'd give you my mod for achieving good-great battery life. This is the mod I use in Anthem™ which has given me 50+ hours on a single charge. Feel free to include it in your own ROM or whatever. Giving credit would be nice
First: Here is a flashable .zip of the mod that may or may not work with your ROM. I'd still advise doing it manually.
Sysctl.conf​
Step 1
Open up your ROM.zip (or whatever it's called) in 7zip (Windows) or Betterzip (OSX) and locate
sysctl.conf in /system/etc
If it's not in this directory, create it.
Step 2
In your sysctl.conf file, paste the following code and save it.
Code:
#sysctl.conf file
fs.nr_open=1053696;
fs.inotify.max_queued_events=32000;
fs.inotify.max_user_instances=256;
fs.inotify.max_user_watches=10240;
fs.lease-break-time=10;
fs.file-max=165164;
kernel.threads-max=525810;
kernel.random.write_wakeup_threshold=256;
kernel.random.read_wakeup_threshold=128;
kernel.panic=5;
kernel.sched_compat_yield=1;
kernel.panic=0;
kernel.panic_on_oops=1;
kernel.msgmni=2048;
kernel.msgmax=64000;
kernel.shmmni=4096;
kernel.shmall=2097152;
kernel.shmmax=268435456;
kernel.sem='500 512000 64 2048';
kernel.sched_features=24189;
kernel.hung_task_timeout_secs=30;
kernel.sched_latency_ns=18000000;
kernel.sched_min_granularity_ns=1500000;
kernel.sched_wakeup_granularity_ns=3000000;
kernel.sched_shares_ratelimit=256000;
kernel.sched_child_runs_first=0;
fs.lease-break-time=10;
fs.file-max=65536;
net.core.wmem_max=524288;
net.core.rmem_max=524288;
net.core.rmem_default=262144;
net.core.wmem_default=262144;
net.core.optmem_max=20480;
net.unix.max_dgram_qlen=50;
net.ipv4.tcp_keepalive_time=900;
net.ipv4.tcp_keepalive_probes=5;
net.ipv4.tcp_keepalive_intvl=156;
net.ipv4.tcp_timestamps=0;
net.ipv4.tcp_sack=1;
net.ipv4.tcp_fack=1;
net.ipv4.tcp_window_scaling=1;
net.ipv4.tcp_tw_recycle=1;
net.ipv4.tcp_tw_reuse=1;
net.ipv4.tcp_congestion_control=cubic;
net.ipv4.tcp_syncookies=1;
net.ipv4.conf.all.rp_filter=1;
net.ipv4.conf.default.rp_filter=1;
net.ipv4.tcp_synack_retries=2;
net.ipv4.tcp_syn_retries=2;
net.ipv4.tcp_max_syn_backlog=1024;
net.ipv4.tcp_max_tw_buckets=16384;
net.ipv4.icmp_echo_ignore_all=1;
net.ipv4.icmp_ignore_bogus_error_responses=1;
net.ipv4.tcp_no_metrics_save=1;
net.ipv4.tcp_fin_timeout=15;
net.ipv4.tcp_keepalive_intvl=30;
net.ipv4.tcp_keepalive_probes=5;
net.ipv4.tcp_keepalive_time=1800;
net.ipv4.ip_forward=0;
net.ipv4.conf.default.accept_source_route=0 ;
net.ipv4.conf.all.accept_source_route=0;
net.ipv4.conf.all.accept_redirects=0;
net.ipv4.conf.default.accept_redirects=0;
net.ipv4.conf.all.secure_redirects=0;
net.ipv4.conf.default.secure_redirects=0;
net.ipv4.udp_rmem_min=6144;
net.ipv4.udp_wmem_min=6144;
net.ipv4.tcp_rfc1337=1;
net.ipv4.ip_no_pmtu_disc=0;
net.ipv4.tcp_ecn=0;
net.ipv4.route.flush=1;
net.ipv4.tcp_rmem='6144 87380 524288';
net.ipv4.tcp_wmem='6144 87380 524288';
net.ipv6.conf.default.use_tempaddr=2;
net.ipv6.conf.all.use_tempaddr=2;
net.ipv6.conf.all.temp_prefered_lft=3600;
net.ipv6.conf.default.temp_prefered_lft=3600;
vm.dirty_ratio=90;
vm.dirty_background_ratio=80;
vm.oom_kill_allocating_task=1;
vm.overcommit_memory=1;
vm.page-cluster=3;
vm.drop_caches=3;
vm.min_free_kbytes=4096;
vm.panic_on_oom=0;
vm.dirty_expire_centisecs=1000;
vm.dirty_writeback_centisecs=2000;
vm.oom_kill_allocating_task=0;
vm.vfs_cache_pressure=10;
vm.min_free_order_shift=4;
vm.laptop_mode=0;
vm.block_dump=0;
Step 3
Now we need to enable it. So, navigate to /system/etc/init.d and create a file with the following code:
Code:
#!/system/bin/sh
# grep sysctl /etc/init.d/*
# Load /sys/etc/sysctl.conf
sysctl -p
sysctl -p is what initializes the code.
Just FYI: You don't actually need these lines:
Code:
# grep sysctl /etc/init.d/*
Code:
# Load /sys/etc/sysctl.conf
So this would have just sufficed.
Code:
#!/system/bin/sh
sysctl -p
If the above code does not work for any reason, try this:
Code:
#!/system/bin/sh
sysctl -p /system/etc/
Name your file something like this 10sysctl
Save your file.
NOTE: Your ROM must support init.d. You can do this by using dsixda's android kitchen
Step 4
Save your ROM and install it via recovery
OR
you could just push the files into your current ROM and try them out.
----------- For knowledge -----------​
Credits to imoseyon for portions of the info​
Ok, so what exactly is sysctl.conf?
The sysctl.conf is a configuration file for "sysctl" which is an interface for dynamically changing kernel parameters in the Linux OS. The configuration file contains the following elements, vm.min_free_kbytes, vm.dirty_ratio, vm.dirty_backgroud_ratio, vm.vfs_cache_pressure, vm.oom_kill_allocating_task. There are many other elements within the file, but we will be primarily focusing on these specifically (the vm prefix stands for virtual memory). The sysctl.conf file should be located in /etc (/system/etc) by default. To enable it you need your ROM to execute "sysctl -p" somewhere during the boot process (or shortly afterward). We will also be discussing how to enable it if it is not already done so. You can also run sysctl -p manually to enable it any time after the OS is started.
Now, let’s get down to what sysctl.conf does and how it works.
min free kbytes (vm.min_free_kbytes)
This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved free pages based proportionally on its size. Default is 2048kb.
dirty ratio (vm.dirty_ratio) and dirty background ratio (vm.dirty_background_ratio)
This controls how often the kernel writes data to "disk" (in our case the internal microSD system card, not the removable microSD card). When your apps write data to disk, Linux actually doesn't write the data out to the disk right away, it actually writes the stuff to system memory and the kernel handles when and how the data is actually going to be flushed to the disk. These values represent a percentage, the higher the percentage, the longer it waits to flush, the lower the percentage, the more often flushes will occur. Now remember, we are dealing with solid state storage, not the traditional disk platter and spindle. So we are actually able to delay flushes a little longer with solid state versus a traditional hard drive disk.
VFS Cache Pressure
Now here is where it gets interesting! File system cache (dentry/inode) is really more important than the block cache above in dirty ratio and dirty background ratio, so we really want the kernel to use up much more of the RAM for file system cache, this will increas the performance of the system without sacrificing performance at the application level. The default value is 100, as a percentage, and what you want to do is lower the value to tell the kernel to favor the file system cache and not drop them aggressively.
oom allocating task (vm.oom_kill_allocating_task)(enable or disable, generally in Linux this value is either a "1" or a "0," representing as on or off.)
This enables or disables killing the OOM-triggering task in out-of-memory (oom) situations. If this is set to zero, or disabled, the OOM killer will scan through the entire task list and select a task based on heuristics to kill. This normally selects a rogue memory-hogging task that frees up a large amount of memory when killed. If this is set to non-zero, or enabled, the OOM killer simply kills the task that triggered the out-of-memory condition. This avoids the expensive task list scan, which can take mass amounts of time and "hang" or freeze the system.
block_dump (vm.block_dump)
This enables block I/O debugging when set to a nonzero value. If you want to find out which process caused the disk to spin up (see /proc/sys/vm/laptop_mode), you can gather information by setting the flag.
When this flag is set, Linux reports all disk read and write operations that take place, and all block dirtyings done to files. This makes it possible to debug why a disk needs to spin up, and to increase battery life even more. The output of block_dump is written to the kernel output, and it can be retrieved using "dmesg". When you use block_dump and your kernel logging level also includes kernel debugging messages, you probably want to turn off klogd, otherwise the output of block_dump will be logged, causing disk activity that is not normally there.
overcommit_memory (vm.overcommit_memory)
This controls overcommit of system memory, possibly allowing processes to allocate (but not use) more memory than is actually available.
0 - Heuristic overcommit handling. Obvious overcommits of address space are refused. Used for a typical system. It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage. root is allowed to allocate slighly more memory in this mode. This is the default.
1 - Always overcommit. Appropriate for some scientific applications.
2 - Don't overcommit. The total address space commit for the system is not permitted to exceed swap plus a configurable percentage (default is 50) of physical RAM. Depending on the percentage you use, in most situations this means a process will not be killed while attempting to use already-allocated memory but will receive errors on memory allocation as appropriate.
page-cluster (vm.page-cluster)
This controls the number of pages which are written to swap in a single attempt. The swap I/O size.
It is a logarithmic value - setting it to zero means "1 page", setting it to 1 means "2 pages", setting it to 2 means "4 pages", etc.
The default value is three (eight pages at a time). There may be some small benefits in tuning this to a different value if your workload is swap-intensive.
panic_on_oom (vm.panic_on_oom)
This enables or disables panic on out-of-memory feature. If this is set to 1, the kernel panics when out-of-memory happens. If this is set to 0, the kernel will kill some rogue process, by calling oom_kill().
Usually, oom_killer can kill rogue processes and system will survive. If you want to panic the system rather than killing rogue processes, set this to 1.
The default value is 0.
Panic is a system error that is detected by the kernel.
dirty_expire_centisecs (vm.dirty_expire_centisecs)
How old "dirty" data should be before the kernel considers it old enough to be written to disk. It is expressed in 100ths of a second.
dirty_writeback_centisecs (vm.dirty_writeback_centisecs)
This is the interval of when the writeback daemons periodically wake up and write "old" data out to disk. It is expressed in 100ths of a second.
Click to expand...
Click to collapse
source:
http://forum.xda-developers.com/showthread.php?t=1621808
i use juice defender...with okayish usage, i got 3 days and 1 hour(1 time thing).....with my normal usage i get 24+ hours......
would have given this a try had there been just a .zip file
it comes with a zip file but flash at your own risk
Code:
http://www.androidfilehost.com/main/Incredible_Developers/PureMotive/Mods/Universal/Sysctl-conf.zip
i just saw this thread and see it really interesting as we all love longer battery life
it was classified as universal but i have not flashed file yet and am hoping first feedbacks about this from developers in our phone model
noypi_ako said:
it comes with a zip file but flash at your own risk
Code:
http://www.androidfilehost.com/main/Incredible_Developers/PureMotive/Mods/Universal/Sysctl-conf.zip
i just saw this thread and see it really interesting as we all love longer battery life
it was classified as universal but i have not flashed file yet and am hoping first feedbacks about this from developers in our phone model
Click to expand...
Click to collapse
I cannot flash it (status 0) in my MIUI 10.5...
tomjoad2 said:
I cannot flash it (status 0) in my MIUI 10.5...
Click to expand...
Click to collapse
Replace the meta-inf folder with the one in your rom zip file
Cheers
Sent from my GT-i9003 powered by Stable and Smooth CleanKpu rom
I had problems installing the zip on UC kernel stock rom. Nonetheless the kind of hack proposed in this mod should work here as well. It makes sense. Is anyone able to fix it?
it was mentioned by the developer that the best to do it is manually
and that custom rom developers can implement it on their roms
Those having status 0 error: replace the meta-inf folder in the flashable zip with the one in your rom
Cheers
Sent from my GT-i9003 powered by Stable and Smooth CleanKpu rom
bscraze said:
Those having status 0 error: replace the meta-inf folder in the flashable zip with the one in your rom
Cheers
Sent from my GT-i9003 powered by Stable and Smooth CleanKpu rom
Click to expand...
Click to collapse
thanks...done, but now I get error (status 7)
tryng to do it manually
i think it would be best if we hear feedbacks first from our kernel/rom developers of i9003
Even though sysctl.conf accepts ";", it breaks the conf file and sysctl can't parse it.
Use this instead:
http://pastebin.com/raw.php?i=3tDgbmG3
EDIT:
This file is simply the one in the OP without ";".
FYI some of its values overwrite the values used by kernel developers.
EDIT 2:
And without single quotes.
loSconosciuto said:
Even though sysctl.conf accepts ";", it breaks the conf file and sysctl can't parse it.
Use this instead:
http://pastebin.com/raw.php?i=3tDgbmG3
Click to expand...
Click to collapse
Done manually... but when I try to review with sysctl -a| grep vm cannot see any changes
tomjoad2 said:
Done manually... but when I try to review with sysctl -a| grep vm cannot see any changes
Click to expand...
Click to collapse
Sorry, I didn't notice the single quotes in sysctl.conf
File updated (same link).
loSconosciuto said:
Sorry, I didn't notice the single quotes in sysctl.conf
File updated (same link).
Click to expand...
Click to collapse
Still nothing...maybe sysctl -p cannot activate the script...
tomjoad2 said:
Still nothing...maybe sysctl -p cannot activate the script...
Click to expand...
Click to collapse
deeper part of the first post
developer said if this dont work
Code:
#!/system/bin/sh
sysctl -p
then try this
Code:
#!/system/bin/sh
sysctl -p /system/etc/
tomjoad2 said:
Still nothing...maybe sysctl -p cannot activate the script...
Click to expand...
Click to collapse
It should work. Maybe you don't have /etc, but only /system/etc (/etc is just a symlink)
If you run
Code:
sysctl -p
you should get as output the content of sysctl.conf
If you get
Code:
sysctl: /etc/sysctl.conf: No such file or directory
Try with
Code:
sysctl -p /PATH/TO/THE/FILE/sysctl.conf
Where /PATH/TO/THE/FILE/ is, of course, the path to sysctl.conf,
noypi_ako said:
deeper part of the first post
developer said if this dont work
Code:
#!/system/bin/sh
sysctl -p
then try this
Code:
#!/system/bin/sh
sysctl -p /system/etc/
Click to expand...
Click to collapse
This is what I get
and when a write sysctl -p then ---> sysctl: short write
tomjoad2 said:
This is what I get
and when a write sysctl -p then ---> sysctl: short write
Click to expand...
Click to collapse
i believe loSconosciuto is highly qualified for this one
many thanks to him for looking into this mod
Code:
ls -l /proc/sys/net/ipv4/route/flush
--w------- 1 root root 0 Apr 28 14:26 /proc/sys/net/ipv4/route/flush
That means no one can read the content of this file, even 'root'. That's why you get
Code:
sysctl: error reading key 'net.ipv6.route.flush': Permission denied
sysctl: error reading key 'net.ipv4.route.flush': Permission denied
sysctl tries to read it, but it can't.
tomjoad2 said:
This is what I get
and when a write sysctl -p then ---> sysctl: short write
Click to expand...
Click to collapse
Are you sure your sysctl.conf is correct? Did you remove all the ";" and "'"?
loSconosciuto said:
Code:
ls -l /proc/sys/net/ipv4/route/flush
--w------- 1 root root 0 Apr 28 14:26 /proc/sys/net/ipv4/route/flush
That means no one can read the content of this file, even 'root'. That's why you get
Code:
sysctl: error reading key 'net.ipv6.route.flush': Permission denied
sysctl: error reading key 'net.ipv4.route.flush': Permission denied
sysctl tries to read it, but it can't.
Are you sure your sysctl.conf is correct? Did you remove all the ";" and "'"?
Click to expand...
Click to collapse
would it work if we chmod 644 those file?

Categories

Resources