[dev][sqlite3] 21/Jan, how to disable sync in sqlite3 without pragma - Desire Android Development

WARN:The following steps only for developers. The following changes may cause instability or even cause the phone can not be used.
Android phones as the underlying database using sqlite3. sqlite3 writes efficiency is very low, because the sync feature turned on by default, and fsync() must be performed after each insertion, the resulting system efficiency is low, and the disk life is reduced.
I try to disable sync feature by default in exchange for greater IO performance and reduce disk consumption. While doing so may result in data integrity problems, but I still like to use it because most of the sqlite insert action can be completed within a few seconds, not too much to consider issues such as sudden power-down.
After modified, the time of insert 2000 records to sqlite3 db, from 1m11s reduce to 2s.
Attachment is my sqlite3 patch, it is for CM or AOSP.
For SenseROM, I can not simply replace libsqlite.so from AOSP, so I do hexedit with it.Do follow modify for SenseROM libsqlite.so:
replace
c6 f7 66 fd 03 20 78 72
with
c6 f7 66 fd 01 20 78 72
replace
cc f8 0c 00 03 20 a3 68
with
cc f8 0c 00 01 20 a3 68
replace
5f fa 81 fc 83 f0 01 06
with
5f fa 81 fc 01 23 00 26
EDIT(2011/01/07 23:40):
replace
5f fa 81 fc 83 f0 01 06
with
5f fa 81 fc 01 26 00 bf
replace
23 72 00 23 66 72 02 26
with
26 72 00 23 63 72 02 26
EDIT(2011/01/10 16:45):
HD WWE RUU 1.72.405.3 patched libsqlite.so:http://www.multiupload.com/N9FLJYAC77, not test!
EDIT(2011/01/10 22:24):
HD WWE RUU 1.72.405.3 patched version v2 as attachement
patch file upgrade to V2
EDIT(2011/01/21 10:59):
add auto repaire script for mms/sms db corrupt. If you met data loss with my sqlitemod, then place this script to /system/etc/init.d/, and chmod 755 to it.
this script will be check your mms/sms db at boot time, and auto fix it if found table loss.:View attachment 03repairesmsdb.txt

Patched libsqlite.so for SenseROM.
I got libsqlite.so from Pays 1.1+Z HD rom.

Sounds intressting. I like the idea of modding sqlite more than loop.
Loopfile is double flush (flush loop + flush file) and direct loop mount causes random reboots.
Ill test it it when i have time.
EDIT: you don't mind if i'll use it for my rom (as optional addon)
EDIT2: By the way, ... did you try 1.72 base of HD rom. Its really fast and sqlite3 is also newer version?

but won't cause this (micro)-lags like any other kind of disk-buffering?
The 2000 insert statements will go in 2s because they are still in RAM.
After a while of doing nothing and / or suddenly needing more RAM, the changes will (finally) be written to disk, causing the system to be unresponsive for the duration of the write.
If I receive or send a new sms / text for example, there are a few records inserted. With sync on, it might take a fraction longer, but the changes are there and the user 'understands' it. There is some activity.
Without sync-ing, all those little changes add up until suddenly they need to be really written and the system lags for a full second or so because it needs to write them all at once.
And what are the moments when there are a lot of database writes during normal use anyway?
Another example: I'm restoring my sms messages with SMS Backup & Restore. I've got a lot of messages, so it takes a while. This is normal. Now, with syncing (default) it takes a while, but when the app says it's done... it's really done. Switching back to your homescreen and launching another app will go smoothly.
With syncing off, the restore operation will complete sooner, but the moment you start another app (or even go back to your homescreen) more RAM is needed and the changes will be written to disk, causing a simple tap to launch an app to feel laggy or sluggish because the latest changes from the restore operation are written to disk (which the user understands to be done already).
Buffering like this helps a lot if something needs to be written while concurrently something else is constantly reading. The write-changes are kept in memory so the disk I/O is completely free for the reading operations. When they are done, the write-changes can actually be commited to disk, and won't interfere with the read operations. On a multi-tasking desktop computer, this is normal.
But when will something like that be needed / happening on a smartphone?
Thinking about the user experience, when a special process is running (restoring backups, installing an app, etc..) the user expects / understands that it takes a moment. The user surely does not want that operation to complete quickly, only to have a lagging keyboard 5 secs afterwards, right?
Thinking about 2000+ inserts is nice, but I really don't see when a situation like that occurs on an Android phone, and I much rather have operations be really done than interfering later on.

I think you are wrong.
With Android applications, the database operation is non-persistent, normal step in app is:
1.open db
2.do read/write
3.close db
with step3, the data in cache will be flush to disk. so user will not notice any sudden lag, always smooth.
With SYNC-ON, the db operation like this:
1.open db
2.1. write a record/do a transcation
2.2. fsync()
2.3. write a record/do a transcation
2.4. fsync()
.....
3.close db/fsync()
with SYNC-OFF, operation like this:
1.open db
2.1 write a record/do a transcation
2.2 write a record/do a transcation
....
3. close db/fsync()
So, no-sync can significantly save IO time.
dipje said:
but won't cause this (micro)-lags like any other kind of disk-buffering?
The 2000 insert statements will go in 2s because they are still in RAM.
After a while of doing nothing and / or suddenly needing more RAM, the changes will (finally) be written to disk, causing the system to be unresponsive for the duration of the write.
If I receive or send a new sms / text for example, there are a few records inserted. With sync on, it might take a fraction longer, but the changes are there and the user 'understands' it. There is some activity.
Without sync-ing, all those little changes add up until suddenly they need to be really written and the system lags for a full second or so because it needs to write them all at once.
And what are the moments when there are a lot of database writes during normal use anyway?
Another example: I'm restoring my sms messages with SMS Backup & Restore. I've got a lot of messages, so it takes a while. This is normal. Now, with syncing (default) it takes a while, but when the app says it's done... it's really done. Switching back to your homescreen and launching another app will go smoothly.
With syncing off, the restore operation will complete sooner, but the moment you start another app (or even go back to your homescreen) more RAM is needed and the changes will be written to disk, causing a simple tap to launch an app to feel laggy or sluggish because the latest changes from the restore operation are written to disk (which the user understands to be done already).
Buffering like this helps a lot if something needs to be written while concurrently something else is constantly reading. The write-changes are kept in memory so the disk I/O is completely free for the reading operations. When they are done, the write-changes can actually be commited to disk, and won't interfere with the read operations. On a multi-tasking desktop computer, this is normal.
But when will something like that be needed / happening on a smartphone?
Thinking about the user experience, when a special process is running (restoring backups, installing an app, etc..) the user expects / understands that it takes a moment. The user surely does not want that operation to complete quickly, only to have a lagging keyboard 5 secs afterwards, right?
Thinking about 2000+ inserts is nice, but I really don't see when a situation like that occurs on an Android phone, and I much rather have operations be really done than interfering later on.
Click to expand...
Click to collapse

melethron said:
Sounds intressting. I like the idea of modding sqlite more than loop.
Loopfile is double flush (flush loop + flush file) and direct loop mount causes random reboots.
Ill test it it when i have time.
EDIT: you don't mind if i'll use it for my rom (as optional addon)
EDIT2: By the way, ... did you try 1.72 base of HD rom. Its really fast and sqlite3 is also newer version?
Click to expand...
Click to collapse
my sqlite3 mod is against loop.
The main purpose of loopfile/loopdevice is speedup fsync() in sqlite3, But the normal file operations have been affected. So I directly modify sqlite3. The benefit is MTD db access can be speedup, too.
Anyone can use my MOD.
I use 1.32.832.6(HK RUU), because I don't like WWERUU include too many language, this will lead apk too large.
Offical new version sqlite3 must be disabled nosync for stability.

ownhere said:
my sqlite3 mod is against loop.
The main purpose of loopfile/loopdevice is speedup fsync() in sqlite3, But the normal file operations have been affected. So I directly modify sqlite3. The benefit is MTD db access can be speedup, too.
Anyone can use my MOD.
I use 1.32.832.6(HK RUU), because I don't like WWERUU include too many language, this will lead apk too large.
Offical new version sqlite3 must be disabled nosync for stability.
Click to expand...
Click to collapse
I dont have a problem with large apks. I deodexed my rom and complete system will fit in mtd4+5 then. Apart from that: the 1.72 base is REALLY MUCH faster. As soon as HK RUU 1.72 is available i recommend you use that one. You'll love it.
About the fsync if db is closed. When will it be closed then? After the app is closed?

melethron said:
I dont have a problem with large apks. I deodexed my rom and complete system will fit in mtd4+5 then.
About the fsync if db is closed. When will it be closed then? After the app is closed?
Click to expand...
Click to collapse
Most apps close db after db operation. I try reboot 10+ times in 30 mins, no FC or data loss.

Ok. Still a bit risky but its really good to have this optional. Great work .
Sent from my HTC Desire using XDA App

great work!
patch for miui, flash from recovery.
the binary is slightly different,so I made this patch.

_bryan_ said:
great work!
patch for miui, flash from recovery.
the binary is slightly different,so I made this patch.
you can also extract libsqlite.so from the zip and replace it with rootexplorer.
Click to expand...
Click to collapse
Not sure if replacing it "on the fly" is a good idea. Might cause issues if sqlite is runnin while it is replaced.

melethron said:
Not sure if replacing it "on the fly" is a good idea. Might cause issues if sqlite is runnin while it is replaced.
Click to expand...
Click to collapse
yes,you are right.

so we need to put it in rom before flashing, right??
i will try on oxygen 1.4 and will post benchmark

madman_cro said:
so we need to put it in rom before flashing, right??
i will try on oxygen 1.4 and will post benchmark
Click to expand...
Click to collapse
tried it. dont see any lags, and to be honest dont see any improvments. will test some more

madman_cro said:
tried it. dont see any lags, and to be honest dont see any improvments. will test some more
Click to expand...
Click to collapse
Do you even use data2sd. In most cases there aren't lags if /data/data is on nand but there is if it is on sd-ext.

melethron said:
Do you even use data2sd. In most cases there aren't lags if /data/data is on nand but there is if it is on sd-ext.
Click to expand...
Click to collapse
no i dont use it . i only use a2sd

madman_cro said:
no i dont use it . i only use a2sd
Click to expand...
Click to collapse
Don't think you'll notice the difference then.

madman_cro said:
so we need to put it in rom before flashing, right??
i will try on oxygen 1.4 and will post benchmark
Click to expand...
Click to collapse
I'd say you can inject it in recovery mode. No need for flashing

Answer to this here (the discussion there went off topic).
Loop is not intended to mount a "real" filesystem. It is made to mount stuff like *.iso or *.img. Loop is only a "workaround" to skip fsync. Loop is simply abused to achieve a fsync skip. Skipping it directly in sqlite has following improvements over loop:
1. Less RAM: needed because there is no "loop" cache needed then.
2. Less I/O: Only one flush because there is no need to "double flush"
3. Less cputime/battery: Also because no double flush.
4. Less time to set it up: No setup needed for a loopfile.
5. More safety: Faster flush and the partition can be journaled without speed decrease (ext3/4 instead of fat)
About 5: You may still loose data on a powerloss because it is not yet synced but you wont have corrupted data because half written data will be fixed on a ordered journal.

ownhere said:
replace
c6 f7 66 fd 03 20 78 72
with
c6 f7 66 fd 01 20 78 72
replace
cc f8 0c 00 03 20 a3 68
with
cc f8 0c 00 01 20 a3 68
replace
5f fa 81 fc 83 f0 01 06
with
5f fa 81 fc 01 23 00 26
EDIT(2011/01/07 23:40):
replace
5f fa 81 fc 83 f0 01 06
with
5f fa 81 fc 01 26 00 bf
replace
23 72 00 23 66 72 02 26
with
26 72 00 23 63 72 02 26
Click to expand...
Click to collapse
are these values the same in sqlite hd 1.72....
i can not find them...after c6 f7 66 it say can not find...if i open it in a hex editor
edit: or anyone can give me a patched version for 1.72..?
thx for answers...with kind regards...Alex

Related

Discussion on User.conf/tweaking AOSP ROMs

I shared my user.conf a while back with the guys on the xROM thread. I got really positive feedback from them so I decided to share it in a few other threads. JAC is included a lot of my ideas in xROM 1.4 and is going to include more in 1.5 It has grown and become more popular so I decided to start a thread at the request of a few people who use my config.
I didn't think it deserved the space until now to make a thread so I never started one. I'm not trying to make this thread all about me. I've said more than once, I would love for someone to come up with a config that is better than mine because I will be the first one to use it. I just don't want to keep derailing other conversations in other threads anymore. And while I appreciate all of the emails that I get, I think a separate thread will be an easier place to discuss this and help people out.
So I will start by posting giving a general outline of how I came up with my settings. If you want to give me feedback, I appreciate it. Even if you have emailed me in the past or posted something on one of the threads I would appreciate a post in this thread. If only the people who have problems post here I won't know how many people it is helping or not.
That is only part of the thread though. If you have a configuration that you have seriously tested and you want other people to try it, post your method and how to set it up and let's see what we can come up with. Please don't just post random configs hoping someone else will test them for you. I don't want the thread to turn into a confusing mess that doesn't help anyone. My goal is to have this thread spawn some new ideas that will make everyone's phone faster. If you've done your homework and you think you have something good, let's share it. I never thought that my config would be used by so many people. I was just trying to make my phone faster. Maybe you can do better.
Testing Method:
I generally use two apps to benchmark the performance of my phone. They are Benchmark Pi and Benchmark. Both are available on the market. I use Benchmark Pi for a rough comparison because it is faster and focuses mostly on how fast the CPU is running. When I get down to fine tuning I use Benchmark. It takes longer to run but it measure graphics, CPU, memory, and filesystem performance. For Benchmark Pi I usually will run it 10 times and use the average response. With Benchmark I set it to run each bench 5 times each and it automatically averages the values. Then I export that to a csv file and compare them that way.
I think I am a pretty heavy user of my phone so I took what I normally use and added a little bit to it. Here is what I used:
- All testing was done on xROM
- Over 120 apps installed
- 5 home screens
- 18 widgest and 8 shortcuts to apps (I can post specifics if anyone cares)
- I run the phone until it is definitely swapping. I play music, open large web pages, run CPU intesive apps, etc.
- ask me if you want more details
I use Advanced Task Manager, which I highly recommend, to keep an eye on what is running and kill any apps that are not being used by me or my desktop. I try to simulate heavy usage of my phone with only the things running that should be. I also use cat /proc/swaps, free, and sh /system/bin/swap -s (sh /system/sd/userinit.sh -s for othe ROMs).
I started out comparing Compcache and Linux Swap since those are the biggest choices. Compcache came out slightly better with the recommended configs that I could find at the time. Then I benchmarked and tested each of the Compcache settings. I found huge improvements made from tuning Compcache, especially adding backing swap. I know it got a bad rap in earlier builds because, well, it probably wasn't very good. But 0.6 is good and it has a bright future. Read this article http://lwn.net/Articles/334649/
Then I tuned swapiness, CPU, and tried on VM. It was mostly just painstaking, tedious testing of one setting to the next. I can honestly say that I have tuned every setting in the User.conf. If I change any of them the benchmarks go down. So when people tell me they tweaked this or that I don't want to say anything because I have probably tested that exact scenario and I got worse performance. But maybe it is working for them, I haven't seen any benchmark numbers. I tried on the VM but nothing seemed to help very much and I didn't want to cause problems so I stuck with the default settings there. Maybe someone can come up with better settings for the VM if that is their area of expertise.
Results:
I'm not going to post some grand report like I would at work. I'm not getting paid for this. Plus not very many people would look at it and I don't know how much it would mean in the long run.
The easiest comparision I can make is using Benchmark Pi. The average of all of the users who have ever tested using that app is around 15 seconds to calculate pi. Stock G1's will calcluate it in about 16 or 17 seconds depending on how loaded they are. xROM stock was getting a result of about 13.5 seconds with just scaling the CPU up to 528 MHz. After tweaking all of the other settings I got down to sub 12 seconds. My best time is about 11.6 seconds. I saw someone with 11.5 who used xROM 1.4. When I loaded CM 4.0.4 last night I was getting just under 13 seconds with my best times. Still a very good time considering everything that I have running.
I did a lot of other testing with Benchmark to monitor the filesystem and memory. I monitored /proc/swaps to see how much memory Compcache was using and how much was being swapped.
I learned a lot about the phone doing all of this. For instance, when you set the CPU max threshold really low, it is going to keep bumping up the CPU really fast until you get to the max. So you have a pretty good delay until you get to the max CPU frequency because the fequency keeps changing and pauses when that happnes. But then it is good until it drops again. If you make it too high, it will overwork the processor and you will see delays again. The key is to find the best setting that allows the processor to be exercised but not overworked. I don't have the time to write down everything I learned from it and you probably don't want to read it. But if you ask a specific question I will be happy to answer it.
I'd like to thank Huanyu for his thread (http://forum.xda-developers.com/showthread.php?t=542899). I wouldn't have been able to tune any of this without it and for JAC and Manup for helping me so much with xROM.
I hope this thread is helpful. Let me know what you think of my work and post your ideas too.
I have links to installing my User.conf in my signature. This post is long enough without putting that in here too. And this is more about discussion than pushing my settins on people. I don't know if mhy config will work at all with Hero. I haven't done much testing on it. I plan to do the same project for Hero when I have time. JAC has volunteered to help me out with that. If anyone wants to try it, go for it. But I don't want to confuse this thread too much by discussing Hero and the AOSP ROMs. Maybe I will start another thread for just Hero.
I look forward to seeing where this thread goes.
Ok, I decided to add more now that I have some extra time. I'm working to get backing swap working with a swap file instead of using a swap partition. A lot of people don't have or want a third partition on their phone and backing swap helps out a lot. Compcache 0.6 supports this but it wouldn't work on the G1 (or any ARM processor). I opened an issue with the compcache development team. They gave me a fix which allowed me to enable it but it ended up trashing my ext3 partition. I had to wipe my phone because the data became so corrupted. The issue is still open and the compcache developer is working on resolving it. When it is resovled, I will post an updated user.conf file that uses swap file instead of swap partition.
Many thanks for your test.
Just one question, why you don't turn the linux swap on in Cyanogen's ROM?
I found you turn on the compcache and backingswap in user.conf.
Is it better than compcache with linux-swap?
min scaling frequency 192000?
I applied the settings from your user.conf in the Cyan thread you linked to except the min scaling frequency because it seems to be set to a non-existent step (192000). Is that a typo or...? Is that user.conf the latest one you tested with CM 4.0.4?
Thanks for doing all this testing and sharing your settings!
fengwuyu said:
Many thanks for your test.
Just one question, why you don't turn the linux swap on in Cyanogen's ROM?
I found you turn on the compcache and backingswap in user.conf.
Is it better than compcache with linux-swap?
Click to expand...
Click to collapse
Compcache with backing swap uses the linux swap partition but it lets compcache manage both the compressed and non compressed storage. When a file can't or shouldn't be compressed it doesn't have to pass it back to the OS to deal with. It just moves it directly to swap. That is why it shows 100% good compression with backing swap turned on. All of my testing has shown that compcache + linux swap is much slower and more cpu intensive thand compcache + backing swap.
my experiences are non-scientific and completely anecdotal, but I like the way my phone behaves w/ a 92 meg linux swap partition enabled w/o compcache. I'm giving up a bit of responsiveness across the board (once it starts swapping) for more virtual memory. Since I have a class 6 card, the lag is bearable (i can't imagine it would be on a slower one).
I like to have my browser still be in memory after loading terminal, gmail, or a couple of other apps. but that's just me & how i use my phone. it's not a perfect config by any means, but it works best for me
ei8htohms said:
I applied the settings from your user.conf in the Cyan thread you linked to except the min scaling frequency because it seems to be set to a non-existent step (192000). Is that a typo or...? Is that user.conf the latest one you tested with CM 4.0.4?
Thanks for doing all this testing and sharing your settings!
Click to expand...
Click to collapse
It's not a typo. Some of the overclocking apps use it as an option. I've used it for a long time and so have other peole. If you want to change it, that is fine. I used 245760 for a while because of some apps I was running. The CPU frequency is one area that you can play with to meet your needs without changing much. I wouldn't suggest going below 192. You can try it but it makes the phone slow to wake up for some people.
alapapa said:
my experiences are non-scientific and completely anecdotal, but I like the way my phone behaves w/ a 92 meg linux swap partition enabled w/o compcache. I'm giving up a bit of responsiveness across the board (once it starts swapping) for more virtual memory. Since I have a class 6 card, the lag is bearable (i can't imagine it would be on a slower one).
I like to have my browser still be in memory after loading terminal, gmail, or a couple of other apps. but that's just me & how i use my phone. it's not a perfect config by any means, but it works best for me
Click to expand...
Click to collapse
That is a pretty good configuration. You will probably see better performance at a slightly higher swapiness with 92MB of swap. I think around 40 is a good setting.
You are right with a Class 6 card the performance is not that bad. You won't see a lot of lag until the file grows to the point that the OS needs to clean it up to make room for more memory. Then it will slow down. If you reboot every day it's not as much of an issue.
I've tried to come up with a configuration that works well for everyone. I helped a guy with a Class 2, 1GB card last night. He thought that my config was slowing him down on CM 4.0.4. We reparititoned and gave him a smaller ext (256 MB) to free up more memory on his FAT32 partition. I have a lot on my phone and my dalvik-cache is on my ext partition and I am using about 215MB so he should be fine with that setting. He got all of his apps installed and setup everything. Then he tested his it out with the stock settings. After he had an idea of how it was running he switched to mine and saw a noticable improvement. Using Benchmark Pi he had the same score I had with a Class 6 8GB card running on CM 4.0.4 the other day. Now my card will beat him out in other tests. Anything that requires swapping to the linux swap partition or a lot of I/O on the SD card will be better on my phone. But because he was using Compcache his performance was still pretty good.
Also, if you enable backing swap your browser should still be in memory after loading other apps. One of the biggest things people notice is that after they have been using the browser or something else that takes a lot of memory and they hit the home button they don't have to wait for it to reload. It's just there waiting for them.
Yes, he speaks the truth. After updating to a recent Cyanogen ROM, my phone just got super clunky and annoying to use, so I set out to do a completely fresh install: resizing, reformatting, wiping, fresh ROM flash, and fresh app dls. I thought since I was stuck using the stock 1GB SD card (for now at least) that is inherently Class 2, it was causing me a major bottleneck since CC and BackingSwap both employ fair usage of your SD card. Well after updating to Cyanogen's 4.1.2.1 and installing all my apps, Benchmark Pi clocked in at about 15.5ms - 16.5ms using Cyano's stock CC settings built into his ROM. Next I pushed Taylor00's user.conf with the 0.1.4.1 userinit.sh. After rebooting, my phone clocked in at 12.6ms - 13.2ms on Benchmark Pi, a definite improvement.
-Maleko48
miketaylor00 said:
That is a pretty good configuration. You will probably see better performance at a slightly higher swapiness with 92MB of swap. I think around 40 is a good setting.
You are right with a Class 6 card the performance is not that bad. You won't see a lot of lag until the file grows to the point that the OS needs to clean it up to make room for more memory. Then it will slow down. If you reboot every day it's not as much of an issue.
I've tried to come up with a configuration that works well for everyone. I helped a guy with a Class 2, 1GB card last night. He thought that my config was slowing him down on CM 4.0.4. We reparititoned and gave him a smaller ext (256 MB) to free up more memory on his FAT32 partition. I have a lot on my phone and my dalvik-cache is on my ext partition and I am using about 215MB so he should be fine with that setting. He got all of his apps installed and setup everything. Then he tested his it out with the stock settings. After he had an idea of how it was running he switched to mine and saw a noticable improvement. Using Benchmark Pi he had the same score I had with a Class 6 8GB card running on CM 4.0.4 the other day. Now my card will beat him out in other tests. Anything that requires swapping to the linux swap partition or a lot of I/O on the SD card will be better on my phone. But because he was using Compcache his performance was still pretty good.
Also, if you enable backing swap your browser should still be in memory after loading other apps. One of the biggest things people notice is that after they have been using the browser or something else that takes a lot of memory and they hit the home button they don't have to wait for it to reload. It's just there waiting for them.
Click to expand...
Click to collapse
if i notice it being laggy, i just swapoff & swapon and it's like i'm fresh off a reboot.
what would be epic is if someone ported anacron / atd to android -- i could set it to do this at 4am.
alapapa said:
if i notice it being laggy, i just swapoff & swapon and it's like i'm fresh off a reboot.
what would be epic is if someone ported anacron / atd to android -- i could set it to do this at 4am.
Click to expand...
Click to collapse
I believe that crontab is a part of busybox. You can use that.
I'm still not following
miketaylor00 said:
It's not a typo. Some of the overclocking apps use it as an option. I've used it for a long time and so have other peole. If you want to change it, that is fine. I used 245760 for a while because of some apps I was running. The CPU frequency is one area that you can play with to meet your needs without changing much. I wouldn't suggest going below 192. You can try it but it makes the phone slow to wake up for some people.
Click to expand...
Click to collapse
What I'm confused about is the significance of choosing 192000 as a scaling frequency at all. My understanding is that the CPU can only run at certain frequencies and 192000 is not one of them. If you set 192000 as your minimum scaling frequency, doesn't that have exactly the same effect as setting it for 245760? Since there are no frequencies available between 122880 and 245760, any setting (for minimum scaling frequency) between those would default to the higher frequency, in this case 245760. Am I missing something here?
The reason I thought it might be a typo is because there is a 19200 frrequency available, but from all reports anything near that low will just lock up the phone.
ei8htohms said:
I applied the settings from your user.conf in the Cyan thread you linked to except the min scaling frequency because it seems to be set to a non-existent step (192000). Is that a typo or...? Is that user.conf the latest one you tested with CM 4.0.4?
Thanks for doing all this testing and sharing your settings!
Click to expand...
Click to collapse
Here is a copy/paste of that section of the latest user.conf set with MT00's settings:
Code:
#cpu clock
proc_cpu{
proc_cpu_en=1 # enable(1) or disable(0) user cpu configurations
# freqency options
# 19200
# 122880
# 128000
# 245760
# 384000
# 528000
scaling_min_freq=192000 # default 245760
scaling_max_freq=528000 # default 528000
sampling_rate=2000000 # default 2000000 depending on kernel version
powersave_bias=0 # default 0, (200 since CM3.9.6+ )
up_threshold=45 # default 40, percent cpu usage before going up a speed step
While 192000 is not an option listed, here is the output of my userinit.sh:
Code:
C:\Documents and Settings\user>adb remount
remount succeeded
C:\Documents and Settings\user>adb shell
sh-3.2# sh /system/sd/userinit.sh -s
sh /system/sd/userinit.sh -s
=== user.conf ===
*** general ***
apps2sd=0
media2sd=0
*** CompCache ***
compcache_en=1
cc_memlimit=18
cc_disksize=32
cc_backingswap_en=1
cc_backingswap=/dev/block/mmcblk0p3
swappiness=28
*** Swap File ***
swap_file_en=0
linux_swap_file_size=32
linux_swap_file=/system/sd/swap.file
*** Linux Swap ***
linux_swap_en=0
linux_swap_partition=/dev/block/mmcblk0p3
*** VM ***
sys_vm_en=1
page_cluster=3
laptop_mode=0
dirty_expire_centisecs=3000
dirty_writeback_centisecs=500
dirty_background_ratio=5
dirty_ratio=10
*** CPU ***
proc_cpu_en=1
scaling_min_freq=192000
scaling_max_freq=528000
sampling_rate=2000000
powersave_bias=0
up_threshold=45
=== CompCache status ===
CompCache version 0.6+
Compcache enabled
CompCache: MemLimit 18432(system) 18432(user)
CompCache: BackingSwap /dev/block/mmcblk0p3(system) /dev/block/mmcblk0p3(user)
CompCache: cc_swappiness - 28(system) 28(user)
=== CompCache status output ===
BackingSwap: /dev/block/mmcblk0p3
DiskSize: 32130 kB
MemLimit: 18432 kB
NumReads: 8048
NumWrites: 10222
FailedReads: 0
FailedWrites: 0
InvalidIO: 0
NotifyFree: 3870
PagesDiscard: 0
ZeroPages: 177
GoodCompress: 100 %
NoCompress: 0 %
PagesStored: 4340
PagesUsed: 1060
OrigDataSize: 17360 kB
ComprDataSize: 4078 kB
MemUsedTotal: 4240 kB
BDevNumReads: 1233
BDevNumWrites: 1731
=== VM status ===
Set VM: page-cluster - 3(system) 3(user)
Set VM: laptop_mode - 0(system) 0(user)
Set VM: dirty_expire_centisecs - 3000(system) 3000(user)
Set VM: dirty_writeback_centisecs - 500(system) 500(user)
Set VM: dirty_background_ratio - 5(system) 5(user)
Set VM: dirty_ratio - 10(system) 10(user)
=== CPU status ===
Set CPU: scaling_min_freq - 192000(system) 192000(user)
Set CPU: scaling_max_freq - 528000(system) 528000(user)
Set CPU: sampling_rate - 2000000(system) 2000000(user)
Set CPU: powersave_bias - 0(system) 0(user)
Set CPU: up_threshold - 45(system) 45(user)
That setting seems to take.
You can set the frequncy to 1234 if you want to. I wouldn't recommend it but you can. I don't know why it isn't listed as an option. It should be. It is a valid setting.
miketaylor00 said:
You can set the frequncy to 1234 if you want to. I wouldn't recommend it but you can. I don't know why it isn't listed as an option. It should be. It is a valid setting.
Click to expand...
Click to collapse
You actually cant set the frequencies to any arbitrary number. There are a set of defined frequencies in the arch/arm/mach-msm/clock.c file. So you can't try to clock your CPU at let's say 523.12 or 99.8 mHz atm. Unless that frequency table is expanded to include every single frequency. Where's coolbho3000 he might be able to explain it better. lol
After the phone has rebooted you can use the following command to see if everything is running properly:
Code:
su
sh /system/sd/userinit.sh -s
Everything seems to work right for me on the install but after I reboot and enter this code. I get "sh: Can't open /system/sd/userinit.sh".
Does this mean it did not work?
bigragu said:
After the phone has rebooted you can use the following command to see if everything is running properly:
Code:
su
sh /system/sd/userinit.sh -s
Everything seems to work right for me on the install but after I reboot and enter this code. I get "sh: Can't open /system/sd/userinit.sh".
Does this mean it did not work?
Click to expand...
Click to collapse
Which ROM are you on? Different builds require the userinit in different places.
Have you done this?
Code:
su
cd /system/sd
chmod 755 userinit.sh
chmod 755 user.conf
reboot
overground said:
Which ROM are you on? Different builds require the userinit in different places.
Have you done this?
Code:
su
cd /system/sd
chmod 755 userinit.sh
chmod 755 user.conf
reboot
Click to expand...
Click to collapse
I'm on CyanogenMod v4.0.4. I clicked the link from this post which lead me to the code he had posted in another thread. I followed the instructions there. I don't believe the code was exactly what you have here. Will try. Thanks.
andonnguyen said:
You actually cant set the frequencies to any arbitrary number. There are a set of defined frequencies in the arch/arm/mach-msm/clock.c file. So you can't try to clock your CPU at let's say 523.12 or 99.8 mHz atm. Unless that frequency table is expanded to include every single frequency. Where's coolbho3000 he might be able to explain it better. lol
Click to expand...
Click to collapse
That is not true at all I just set mine to 192123. Are you telling me that is in the clock.c file?
Code:
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;
192123
bigragu said:
After the phone has rebooted you can use the following command to see if everything is running properly:
Code:
su
sh /system/sd/userinit.sh -s
Everything seems to work right for me on the install but after I reboot and enter this code. I get "sh: Can't open /system/sd/userinit.sh".
Does this mean it did not work?
Click to expand...
Click to collapse
Most likely you don't have a userninit.sh. If you are on CM 4.x it doesn't come by default. Follow the steps in this thread:
http://forum.xda-developers.com/showthread.php?t=542899

Restoring evo RSA keys manually [HOWTO]

I was one of the people that did the initial backup methods (telling you how to backup your certificate and rsa keys) or using cat which doesn't actually backup your wimax.img properly. After hours of playing around in a hex editor I finally got my 4g working again, and i'll explain how
****EDIT****
I added a hex converter you can use for your rsa key if you are too lazy to find one on google. I say to use hex instead of text replace because it's safer in regards to \n's
I was too lazy to make a gui for it but its haxt.net/evohex.php?rsa=yourrsa&cert=yourcert [obviously replace it with your 2 values]
Also, don't try to flash this image without editing it. The rsa key is invalid until you put your valid key in!
***********
Note - this won't work for anybody who actually has no idea what their RSA keys/certificate is.
So there are a few things you need first.
1. Your phones wimax mac address (take out your battery and look at the sticker)
2. Your RSA private key
3. Your Certificate
4. The wimax image file template I attached here in the zip
To simplify, use XVI32 freeware hex editor. If you search "BEGIN" you will see begin rsa key and begin certificate. You need to copy these values for later use.
Download the template file and open it in the hex editor.
Our template's mac is 00:18:41:81:8B:5C
Our templates Certificate is :
http://pastebin.com/vEnKFtS8
Our templates RSA Certificate is :
http://pastebin.com/gJbrh3ii
Convert both of these strings to hexidecimal and write them down! (it will look like a bunch of 4D 49 49 44 6B 44 43 43 41 6E 69 67 41 77 49 42 41 67 49 51 5A 4F 75 35 44 5A 4C 55 44 76 44 57 4B 57 2F 36 6D 48 66 4C 4F 54 type stuff)
If you don't know what your rsa key or certificate is, open it up in a unix friendly text editor(on windows i recommend notepad++). Search case sensitive for BEGIN. You will see the begin rsa key and begin certificate. Copy all of the text in between with no spaces or newlines! Now convert these both to hex and write them down.
Hit search -> replace on xvi32, click hex search and paste your converted hex for the templates RSA key.. and then replace with the hex value of YOUR rsa key. Do the same thing for the certificate as well.
The length of our templates rsa key might be different than yours, and your ending file size MUST be the same as your starting file size(the template is 12,582,912 bytes). There are a bunch of null characters in the template after --END KEY--- you might need to add or remove some to correct this! Just click on one and press the delete key if you have to
Now the only thing you have to do is fix your mac. In your new wimax partition file, text search for 00:18:41:81 to Replace that mac with your mac but subtract 1 from the last digit(if your mac was 00:23:76:EC:214 put 00:23:76:EC:213).
Replace the first 2 of the 3 instances with your mac -- minus 1. (If it ends on a letter, B would become A, C would become B, etc.
The last instance of your mac, put the actual mac address with nothing subtracted as it appears on the sticker under your battery.
Once you have saved the file.. name it something like wimax_fixed_resized.img and copy it to your sdcard.
Boot to fastboot and run "fastboot erase wimax"
Reboot to your recovery and adb shell in.
type "mount /sdcard" so you can run flash_image properly.
Run flash_image wimax /sdcard/wimax_fixed_resized.img
(or whatever you named it)
Profit!
One highly recommended addition to this is to use the correct ROM base version while you do this for testing if your wimax restored correctly. Quite often firmware/wimax mismatches will cause things to not auto connect, or various odd issues (true story)
Thanks for writing this up - I was planning on doing it at some point with a full guide on how to backup and restore the whole nine yards, but this will do in the meantime for people who want to restore things.
At first I thought this was for people who had lost their own RSA keys lol.
Great tutorial nonetheless.
haxt said:
I was one of the people that did the initial backup methods (telling you how to backup your certificate and rsa keys) or using cat which doesn't actually backup your wimax.img properly. After hours of playing around in a hex editor I finally got my 4g working again, and i'll explain how
****EDIT****
I added a hex converter you can use for your rsa key if you are too lazy to find one on google. I say to use hex instead of text replace because it's safer in regards to \n's
I was too lazy to make a gui for it but its haxt.net/evohex.php?rsa=yourrsa&cert=yourcert [obviously replace it with your 2 values]
***********
Note - this won't work for anybody who actually has no idea what their RSA keys/certificate is.
So there are a few things you need first.
1. Your phones wimax mac address (take out your battery and look at the sticker)
2. Your RSA private key
3. Your Certificate
4. A wimax.img from an evo that has has an intact wimax partition(borrow a friends nandroid backup).
To simplify, use XVI32 freeware hex editor. If you search "BEGIN" you will see begin rsa key and begin certificate. You need to copy these values for later use.
Next, open up the backup you got from a friend and save the certificate/rsa information between the ---BEGIN --- and ---END --- tags.
Now that you have the rsa key/certificate for both it is time to run a str_replace.
(Make sure to look at the original file size of the backup you got of someones wimax.img. Once you are done the file size needs to be the same).
Take YOUR rsa key and convert it to hexidecimal.. you can find tons of sites that will do this .. just google convert string to hex (it will be a long string of stuff like 4D 49 49 44 6B 44 43 43 41 6E 69 67 41 77 49 42 41 67 49 51).
Next, take your buddies RSA key and convert it to hex as well.
Open a copy of your buddies backup now and this will be used as the template for your new wimax partition. Hit search -> replace. For the hex to search paste your buddies RSA key you converted to hex.. and for the replace with.. put the hex of your rsa key.
Repeat these last steps for the certificate as well (convert to hex and replace your buddies certificate with your own certificate text)
REMEMBER!!!! if the length is not the same of the certificate/key you can fix this by adding or removing the blank bytes at the end of the ---END RSA or --END CERTIFICATE area.
You should be able to save the file now and the size should be exactly the same as the original backup you borrowed.
Now the only thing you have to do is fix your mac. In your new wimax partition file, search for 00: to locate the mac address of your buddies partition. You might find a few random ones first but just look at the surrounding text to know it's their mac. Replace that string with your mac but subtract 1 from the last digit(if your mac was 00:23:76:EC:214 put 00:23:76:EC:213).
Replace the first 2 of the 3 instances with your mac -- minus 1. (If it ends on a letter, B would become A, C would become B, etc.
The last instance of your mac, put the actual mac address with nothing subtracted as it appears on the sticker under your battery.
Once you have saved the file.. name it something like wimax_fixed_resized.img and copy it to your sdcard.
Boot to fastboot and run "fastboot erase wimax"
Reboot to your recovery and adb shell in.
type "mount /sdcard" so you can run flash_image properly.
Run flash_image wimax /sdcard/wimax_fixed_resized.img
(or whatever you named it)
Profit!
Click to expand...
Click to collapse
is there any way to break it down anymore? and do you have to use a buddies backup? i have my RSA keys i made a backup a while ago... cant you just use one of your old backups and replace wimax? thanks in advance and thanks for the post.
Great post, had been wondering how to actually restore the wimax keys once you had 'em.
Question for any devs that may have them: are the RSA keys generated by or linked to MAC ID somehow? Would it be possible to use backups of an one phone's keys with the another phone's baseband MAC ID?
I'll try to clean up the post to make it an easier read tomorrow but if you have an intact backup of your wimax image you can just restore it with flash_image or fastboot.. or just restore the nandroid backup. This is just for people that have the key itself but the image they have might be corrupted. If it would help everyone I can take a working wimax.img and remove the RSA keys so you can just download it as a template and put your keys in
I updated the thread.. has a template file in there too with dummy certs and keys to make it easier for you guys.
This is a big deal bro. Thanks!
Has anyone been having issues connecting to 4G? I've been having some issues where it authenticates, launches then disconnects. My keys are present but not really sure what else to do from here.
NYCHitman1 said:
Has anyone been having issues connecting to 4G? I've been having some issues where it authenticates, launches then disconnects. My keys are present but not really sure what else to do from here.
Click to expand...
Click to collapse
Does it get to the "Obtaining IP Addres..." then moves to "Disconnected"?
Caanon said:
Does it get to the "Obtaining IP Addres..." then moves to "Disconnected"?
Click to expand...
Click to collapse
That's exactly what it does.
Sent from my PC36100 using XDA App
NYCHitman1 said:
That's exactly what it does.
Click to expand...
Click to collapse
Good news and bad news...
Bad news is that I wasn't ever able to fix it. I tried flashing up and down all the radios I could find, trying all the radio/rom combos I could think of. RUU'd even, and no dice.
Good news is that it might not have actually been your fault. I ended up biting the bullet and going to the Sprint store to explain what was going wrong. The tech looked at it and said, "Let me guess, this happened after an update, right?" Apparently this is a "known issue" to Sprint, and it actually ended up happening to the tech herself about a week before it happened to mine. They ordered me a refurb no charge (I have insurance, but didn't have to use it I don't think) and got it a few days later. New one connects to 4g no problem, and 4g on CM works like a charm (thanks toast and shin!).
Caanon said:
Good news and bad news...
Bad news is that I wasn't ever able to fix it. I tried flashing up and down all the radios I could find, trying all the radio/rom combos I could think of. RUU'd even, and no dice.
Good news is that it might not have actually been your fault. I ended up biting the bullet and going to the Sprint store to explain what was going wrong. The tech looked at it and said, "Let me guess, this happened after an update, right?" Apparently this is a "known issue" to Sprint, and it actually ended up happening to the tech herself about a week before it happened to mine. They ordered me a refurb no charge (I have insurance, but didn't have to use it I don't think) and got it a few days later. New one connects to 4g no problem, and 4g on CM works like a charm (thanks toast and shin!).
Click to expand...
Click to collapse
Damn! I really don't want to go through all that trouble right now. Lol, eff it. I'll wait for the next best thing.
Sent from my PC36100 using XDA App
Question, wouldn't it be easier to just backup the existing wimax.img and restore it if/when needed using recovery? Or does this method address something that can't be done via recovery?
Sticky
Sent from my HTC EVO 4G running Frost 4.0 using XDA app.
i am confused when it come to this. is there a video or something. i know for a fact that i lost my RSA keys and i have used the "WiMAX Keys Checker" to check it and it say they are missing. but during my first initial backup i see the "img" file in there. i can't connect to 4g anymore so i am guessing for some reason it can't read it when i restore to the old version of my evo or when i change rom. i need some serious slow help
ericvbp21 said:
i am confused when it come to this. is there a video or something. i know for a fact that i lost my RSA keys and i have used the "WiMAX Keys Checker" to check it and it say they are missing. but during my first initial backup i see the "img" file in there. i can't connect to 4g anymore so i am guessing for some reason it can't read it when i restore to the old version of my evo or when i change rom. i need some serious slow help
Click to expand...
Click to collapse
Flash the WiMAX radio again and Update Profile, it will grab the keys from the carrier based on your phone's programming information
aph said:
Flash the WiMAX radio again and Update Profile, it will grab the keys from the carrier based on your phone's programming information
Click to expand...
Click to collapse
i flashed the wimax radio and updated the profile but it still does the same thing. any idea? I do have the RSA keys so i don't know why it doesn't grab 4G....
Well I thought I lost my RES keys after doing haxts back up, after I checked using Explorer and there was no res_OEM.key file. I did the back up again, still no file. I used Astro on my phone and the files where there. (res_OEM.key 4,575 KB & res_OEM.keycat 16,863 KB. Now a day later and the files show up using Explorer? I did do a winmax back up before I did anything and that is still there. Bottom line, if you think you lost you res keys after doing a backup, check it with a file manager program on your phone.
ericvbp21 said:
i am confused when it come to this. is there a video or something. i know for a fact that i lost my RSA keys and i have used the "WiMAX Keys Checker" to check it and it say they are missing. but during my first initial backup i see the "img" file in there. i can't connect to 4g anymore so i am guessing for some reason it can't read it when i restore to the old version of my evo or when i change rom. i need some serious slow help
Click to expand...
Click to collapse
I have my keys (WiMAX Keys Checker) but i can only connect when i do a restore of the orginal EVO rom from backup, but on all other roms(elite II for now) it just saids searching and never conects. Please help
edit drop and broke the phone that im talking about.. got new one thur insurance and rooted it and and 4 g works with no problme wonder what i ddi when i root the first phone

Editing the build.prop for faster data speeds

I've been reading about editing hsdpa and hsupa catagory numbers as well as the gprsclass number and seem to have improved my upload speed and possibly my download speed. In my basement, I usually see about 2200 kbps down and 1000 kbps up. Changing a couple numbers, I am now at a consistent 2500kbps and 1600kbps.
I'm running Android Revolution v3.0 with the 26.06.03.24_M2 radio.
ro.ril.gprsclass=12
ro.ril.hsdpa.category=14
ro.ril.hsupa.category=7
ro.ril.hsxpa=3
I rebooted twice.
Could be purely coincidental, but I thought it may be worth sharing and discussing.
Would be great if you could elaborate a little more on the technical side of what these values actually do and stuff
All this is cut and pasted from other sites, it's not my own research.
ro.ril.gprsclass indicates the GPRS class of the target network :
Class 2 : 3 slots : 8 – 12 kbps upload / 16 – 24 kbps download
Class 4 : 4 slots : 8 – 12 kbps upload / 24 – 36 kbps download
Class 6 : 4 slots : 24 – 36 kbps upload / 24 – 36 kbps download
Class 8 : 5 slots : 8 – 12 kbps upload / 32 – 40 kbps download
Class 10 : 5 slots : 16 – 24 kbps upload / 32 – 48 kbps download
Class 12 : 5 slots : 32 – 48 kbps upload / 32 – 48 kbps download
ro.ril.hsdpa and ro.ril.hsupa catagories are similar where each catagory is a target for a maximum data rate. It may seem that higher is better, but another thread on the G2 forum seemed to show that if you went too high, something triggered to lower the speeds back down to below factory levels.
http://androinica.com/2009/12/14/hack-for-rooted-phones-promises-faster-2g3g-speeds/
http://forum.xda-developers.com/showthread.php?t=595108&highlight=amon Amon_RA has a lot of good insight as to what they mean.
http://en.wikipedia.org/wiki/High-Speed_Downlink_Packet_Access
http://forum.xda-developers.com/showthread.php?t=838388
setting hsupa to class 7 is netting me 2.7mbps uploads. Crap, that is faster than my uverse service!
OMG!!! its really fast I just did a speed test i got 4.7 down and 1.4 up...Nice
I edited my build.prop on my inspire and now I get 3000 down and 1673 up i was getting 1200 down and 600 up
Here are my full settings:
GPRS: 12
HSDPA: 10
HSUPA: 7
HSXPA: 3
I didn't change any other settings.
Any steps for those who have never edited this before?
Sportsguy15 said:
Any steps for those who have never edited this before?
Click to expand...
Click to collapse
I used prop editor ( I can't remember where I found it, but it is an apk. I used it to make the changes after backing up my build.prop. I will upload here in a few minutes.
Be warned, you can wreck your software pretty good messing with this file. Just some forewarning.
Well, I'm glad it wasn't just my imagination. Those settings I posted aren't necessarily the optimum setup for our phones, so a little experimentation may yield even better results.
Sportsguy15 said:
Any steps for those who have never edited this before?
Click to expand...
Click to collapse
There are several ways to do it, prop editor being a great one. Here's what I did step by step for the new guys:
MAKE A BACKUP OF YOUR ROM THROUGH CWM.
Download "root explorer" and possibly "mount /system (rw /ro)" from the app market.
Open up root explorer and select the system folder
Near the top of the screen there should be a "Mount R/W" button. Select it. If it won't let you change to R/W, go back and open up the "mount system" app. Select Mount r/w. Go back to root explorer and you should be able to now select Mount R/W in the system folder.
Long press build.prop and scroll down to "Open in Text Editor".
Make your desired changes, tap menu and then Save & Exit. It will automatically save your original build.prop as build.prop.bak and save your changes.
Reboot twice (once didn't work for everyone in the threads I was reading).
As id10terrordfw said, you could potentially mess things up with your rom, so be careful. If you aren't confident in what you're doing, it's probably best to just leave it alone.
I just made the changes but I wont be able to do any speed tests until tomorrow. I am on the Microcell at home.
wanted to share results from my tests today. i'm using CM7 for Inspire and my daily driver - att-inspired-rooted-signed.zip from attn1 - and on both ROMs my build.prop settings are:
ro.ril.enable.dtm = 1
ro.ril.gprsclass = 12
ro.ril.hsdpa.category = 10
ro.ril.hsupa.category = 6
ro.ril.hsxpa = 3.
the APN settings for both ROMs are in first pic. pics 2-4 are from the att stock ROM and pics 5 & 6 are from CM7. i don't know if att is tweaking something, but i've been getting some crazy fast speeds. (doesn't hurt that i live in dallas).
Trying this as soon as I get my new rom flashed
I copied the propeditor.apk to the sd card and clicked it in root explorer then clicked install. Says it can't install because of problem pasring the file?
Got the prop editor installed using appinstaller. Sadly it looks like mine is already edited in coredroid.
gprs=12
hsdpa=10
hsupa=6
hsxpa=3
Don't think there are any settings above these current ones to improve speed.
So I changed
hsdpa=14
and got way better downloads. Changed my hsupa to 7 and it was like hsupa had been disabled again. Changed back to 6 and reoobted again and still acts like it struggles to limit itself to around 300 upload. Is this something in my build.pro or in my new flash of coredroid 3.2? I never had this problem with this rom before. my ro.ril.enable.dtm setting says 0. Not sure what that is but I'll change to 1 and see what happens.
FIXED: changed ro.ril.enable.dtm = from 0 to 1 and it seems to have fixed it.
EDIT also for some reason network was set to wcdma only.
Is there a way to unlock the stock APN settings in the rooted stock rom? Or should I just create a new one?
cant edit
everytime I try to edit build.prop and try to save it, it tells me its a read only and cant save. I tried prop editor and it can't even open it.
Av8tor86 said:
everytime I try to edit build.prop and try to save it, it tells me its a read only and cant save. I tried prop editor and it can't even open it.
Click to expand...
Click to collapse
You need to make sure the file system is mounted as Read/Write. If it's mounted Read Only you won't be able to make changes. I use Root Explorer, and when you go into System you tap the "Mount R/W" button, then open build.prop in text editor. If you use ES File Explorer, go into the settings, go to Root Options, then put a check for Root Explorer, and Mount File System. Now a long press on build.prop will allow you to open it as text, make changes, and save changes. What I like about Root Explorer is it automatically makes a backup of build.prop when making changes.
Excuse my ignorance but would I have to change this section as well?
Or just the top section as the following is around the middle section of the build?
"# ace RF team request
ro.ril.enable.dtm = 1
ro.ril.gprsclass = 12
ro.ril.hsdpa.category = 10
ro.ril.hsupa.category = 6
ro.ril.hsxpa = 3"
Sent from my most memorable Inspire 4G

[HOW TO] Calibrate your touchscreen (chinese tablets - YG A701, Pioneer A700 etc)

Hey guys,
So a couple of weeks ago i've bought a chinese tablet that came with Android 2.3.3. As you might have guessed, the calibration app didn't work and basically i've spent hours and hours reading about how to manually calibrate the screen. At first, i thought it would've been a simple thing to do... but no.
So if any of you out there have experienced any problems with the calibration of your tablet, i have a solution. You just have to follow these steps:
1. Make sure you have the ADB drivers installed. (Install the SDK, run the program - SDK Manager.exe - and then scroll down until you find the "Extras". Select Google USB Driver, download and install them.)
2. Root your device using SuperOneClick. (To do this, turn on the device until the home screen appears, then run SuperOneClick). The program is attached at the end of this post.
3. Run the calibration script i also attached. It's in the "Calibration" folder.
4. You should be partially done.
Basically the file responsible with the calibration of your screen is pointercal (no extension) and it is found in /data/data/touchscreen.calibration/files/. When you try to calibrate your screen using the default app, you're going to end up with the wrong values for the pointercal file. For these devices, there should be 20 pointercal values, not 6-7.
BAD EXAMPLE
22865 15 -804946 -267 18625 -1193918 65536
GOOD EXAMPLE
45 175 602 60 625 360 31 397 325 240 50 50 750 50 750 430 50 430 400 240 (these are actually the values of my tablet).
Unfortunatelly, every tablet is different so you'd have to change some of the values in the pointercal file. I have found out that the first ten values are XY pairs, the last ten are needed to calculate the actual position of the touch input. So basically you'd have to modify the first ten values until you have a nice calibrated screen.
These values match the corners of your screen :
45 175 - Top left corner
602 60 - Top right
625 360 - Bottom right
31 397 - Bottom left
325 240 - Center
Remember these are XY values!
There is no standard, so modify them with any text editor, runt the calibration script, restart your device and see what you've got. If you don't have a nice calibrated screen, try again. I have also included a modified version of build.prop, which makes the screen a lot more sensitive and there are overall improvements.
I really hope this post helps somebody. I also hope i didn't make many English related mistakes :silly: I'm not a native speaker so i apologize.
Nice sharing bro.Some of devices not include calibration setting by default.So this tutorial is useful for those device's owner.
Sent from my LT22i using xda app-developers app
How would I run this on Xperia S? How do I run a script?

[MOD] [18] Multi-Browser2RAM (MB2R) Startup Script - Final Release - 053113

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Note: In the above images I have modified my Chrome cache to 100MB which differs from the attached script. Edit as you wish. I also noticed that I spelled acknowledgments wrong! I'll change it later. Don't be confused by the times. They were from 2 different script runs.
[Edit] Screenshots above are from the first release.
***********************************************************************************************
I have been working on this startup script for awhile now and finally got it polished and ready for release. This script is more versatile and replaces Browser2RAM. Do not run them both at the same time. This script **requires root** and to be **run as root**. If you run it from the terminal make sure to "su" first.
This script works on JB 4.1 (at boot or after boot=terminal or a script manager) and 4.2 (at boot only). It works with 4 browsers: Stock, Naked, Chrome, and Firefox remapping each of their cache folders to a dynamic (as required) 50MB allocation in RAM which should suit most users. For demanding performance you can change the allocation from 50 to 100MB to run up to 20 simultaneous browser tabs for each browser.
Note: Since the RAM cache mapping is dynamic, it does not steal from your RAM unless needed by your browser so there is no downside to running a larger cache. Data is persistent so bookmarks and cookies are not lost if you crash or reboot. GPlay app Script Manager (Devwom) can be used to run this script at boot *as root* or advanced users can use an init.d script method.
Download attached. Upload the file and remove the .txt extension. Optionally remove the .sh extension as well.
******************************************************************************************
Open the script up in Script Manger and click two icons upper left area (su, boot). Also check the radio button "is script" NOT "is executable". You'll see the two set icons next to the script name in the Script Manager file list (if you back out or open it up again) but for some reason you have to run the script in SM once for the settings to stick. That's it. Reboot and all the mountpoints are automagically created. Works with root on stock ROM.
And, for those who don't want to run it at boot automatically, and prefer not using the terminal, you can also use Script Manager to open it up and run it after boot as well. Just click the RUN button and make sure to check the su button first.
If you're having trouble finding Script Manager it's because it has been reported incompatible with some devices. If you can't get it from GPlay, Script Manager is attached but may have some video incompatibilities with some devices.
Linkback to dev thd:
http://forum.xda-developers.com/showthread.php?t=2227123&page=1
[Edit]
Updated script to add 4 more browsers (now 8 in total): Opera Mobile, Dolphin, Boat, and Boat Mini. New one is autostart3.sh.txt
[Edit]
Final release, Rev 4. Removed 2 previous versions. Enhanced error silencing. Updated script to add 6 more browsers (now 14 in total): Added - Dolphin Mini, Opera Mini, Baudi, Adrenaline, Maxthon, and One. If you want more browsers then edit the script. [Edit] Looks like I'll be adding a few more browsers to this per request. Keep your eyes out for REV5 [End Edit]. Added umount_all.sh script to unmount all the mounts created in autostart4.sh (just in case you need it). Chrome (my preferred browser) cache is 100MB, the rest are 50 by default.
There's also been a recent additional method added to load this script at boot and run it as root that does NOT require Script Manager OR init.d support. Confirmed working on stock 10.4.4.25 (JB 4.1.1). Should work on stock 10.6.1.14.4 (JB 4.2.1) too. See PG 12.
[Edit]
Final release 5, 053113, autostart_fn.sh.txt
Rewrote entire script. Now works as a function using variables to load a user-defined list of browser apks (See LIST=" " variable in main code block). Umount_all.sh.txt also updated to umount all the mounts created by the DEFAULT LIST in autostart_fn.sh.txt script. Added @Tylorw1 to the credit list (even though he forgot to add an "m" after "50" for his 3 additions.)
*********************************************************************************************************
NOTICE: @sbdags has already incorporated this entire script into the latest CROMIX.
Do NOT run this script if you are on CROMIX or it may create duplicate mountpoints!
The umount_all script should NOT be loaded in SManager to run at boot! This is a utility script mainly for devs to run from the terminal or a script manager just in case they need to undo what the autostart script does, namely unmount all the browser cache mounts created (for troubleshooting purposes) so they don't have to mess with their setup and/or reboot, especially true if using SManager or an init.d method to load the script at boot.
INIT.D SCRIPTS: If using this as an init.d script, it is IMPERATIVE that your script name have no dots "." and no file extension. In this case, rename the script to autostart_fn or 20autostart_fn if you have multiple init.d scripts.
**New, Recommended Alternate Load Method (hack) to enable init.d support for stock ROMs with Busybox**
(Replaces depreciated method of directly hijacking install-recovery.sh with this script but only works if you have Busybox installed. Stick with depreciated method if you don't have Busybox and can't get SM to work)
http://forum.xda-developers.com/showthread.php?p=42296292#post42296292
*********************************************************************************************************
I love what your script did to the stock browser in CromiX. Will this be a part of a future update in sbdag's rom?
Great work! Thank you!
Sent from my ASUS Transformer Pad TF700T using Tapatalk HD
berndblb said:
I love what your script did to the stock browser in CromiX. Will this be a part of a future update in sbdag's rom?
Great work! Thank you!
Sent from my ASUS Transformer Pad TF700T using Tapatalk HD
Click to expand...
Click to collapse
Thanks for the nice reply.
@sbdags? Feel free but make sure to look inside the script for licensing requirements.
Thanks mate. I have modified yours further to add opera mobile as well.
BTW what does the 2>&- do on the end of the rm command?
eg
rm -rf /data/data/com.android.browser/cache/* 2>&-
BTW here are the lines for opera:
Code:
if [ -d /data/data/com.opera.browser ];
then
umount /data/data/com.opera.browser/cache;
rm -rf /data/data/com.opera.browser/cache/*;
mount -t tmpfs -o size=50m opera_cache /data/data/com.opera.browser/cache;
fi;
sbdags said:
Thanks mate. I have modified yours further to add opera mobile as well.
BTW what does the 2>&- do on the end of the rm command?
eg
rm -rf /data/data/com.android.browser/cache/* 2>&-
BTW here are the lines for opera:
Code:
if [ -d /data/data/com.opera.browser ];
then
umount /data/data/com.opera.browser/cache;
rm -rf /data/data/com.opera.browser/cache/*;
mount -t tmpfs -o size=50m opera_cache /data/data/com.opera.browser/cache;
fi;
Click to expand...
Click to collapse
Good deal. Thanks for the opera. Might as well add the mini too. We could add all the browsers we want - their format is identical except for mutant randomly generated Firefox. I'll update it when I get a chance. I'm pretty burnt on this right now. I sure picked a whopper for my first script and now I'm running with the devs! Anyone can be a programmer if they just know how to Google.
http://www.cyberciti.biz/faq/how-to-redirect-output-and-errors-to-devnull/
***********************************************************
Regarding adding "2>&-" at the end of a command:
0 is stdin
1 is stdout
2 is stderr
The integer file descriptors associated with the streams stdin, stdout, and stderr are 0, 1, and 2, respectively.
What that does is tell the command to not open (log) stderr when it runs. Its a trick to get a command to run even with errors if passible and silence its error output to the terminal. I tried "2>/dev/null" and "&>/dev/null" both of which failed with "Text file busy". Not sure why? Its the only way I could figure out how to prevent the "errors" "rm failed for -rf..." when there are no files to remove from echoing to the terminal.
Ah OK, I won't need the extra stderr stufff or an init.d script. I've added your copyright stuff (although I'm not convinced it is actually copy righted but I understand what it means). Thanks for putting this together! :good:
sbdags said:
Ah OK, I won't need the extra stderr stufff or an init.d script. I've added your copyright stuff (although I'm not convinced it is actually copy righted but I understand what it means). Thanks for putting this together! :good:
Click to expand...
Click to collapse
You are very welcome and glad I could finally give back. You guys have sure helped me out a ton on this site. The dumbest question I can ask here on XDA is the one I didn't. Nobody here has ever condescended or made me feel like the nOOb I am and I really appreciate that (@_that, @becomingx, @jtrosky). It allowed me to lower my stupid shield and really motivates me to learn more and more about Android because you guys are all so positive and helpful its addicting (and fun). Also, let this prove that the knowledge you share with us newbe's can go full circle and (eventually) benefit you in some form as well although we will never be capable of giving back even a fraction of what we learn from XDA.
If run at boot or from a ROM then the stderr thing is trivial. But if a newbe runs it from the terminal they would probably be confused by the "errors" so I masked them out. The script runs and mounts regardless.
Hey, regarding copyrights it looks like its gotta be that way; legal mumbo jumbo. I found a copyright license file instructing me to do so. I just cut and pasted it into my script. Trust me it wasn't my idea nor would I have added that on my own as it goes against the spirit of XDA sharing. I'm in no way looking to profit from it, but I'm also not giving them (copyright holders) all the credit because I put the work into expanding the script and I came up with the idea for the Firefox random fix (graciously coded by @becomingx) so I just fell in suit and jumped on the copyright bandwagon. I'm just following instructions from the *license* file here (valid or not):
https://github.com/steveniemitz/Browser2Ram
[Edit] I just informed Steve that I forked his fork and followed his copyright requests.
http://forum.xda-developers.com/showthread.php?p=41392000#post41392000
I wouldn't want Julian or Steve coming down on me or a fork off me and accuse us of stealing their work for sharing a script. Not that it would come to that, but you know, CYA. I did my part as they asked. You can do as you please. I can't control what others do with it, but I feel I should make them aware of apparent copyrights in license files.
I'll add your credit to the next release for the opera code. [Edit] Also @jtrosky for being a good guy and sharing the "about:debug" trick [End Edit]. If you have the code for any other browsers you'd like to or think would be beneficial to add, I'll add those too. :good:
Here's one to umount them all if you need it for any reason. I've doubled up sometimes on mounts so I need this to clear it all out. I added a umount for opera too.
[Edit]
Had to get Opera Mobile to make sure it worked with the mount and it did. I was having some connectivity issues but that said I tried to use Opera to come here and post back and IT CRASHED right as I was attempting to edit a post. This is with a new mount in RAM for Opera running. All the text box controls were garbled like no icons just txt. I tried both user agents. I made some changes in settings like I put it in turbo mode. I've seen this before in Chrome with bad connectivity but never to that extent. I'll give it another test drive but to be honest with you @sbdags that's the worst browser I've tried since UC. And I used to use both Opera and Opera Mini on my phone and never had a problem.
[Edit]
Posting this using Opera Mobile. Seems to be much better behaved today but it is still a bit glitchy whenever I enter a text box. The zoom is awesome thought, you can really see the forum more like a desktop app complete with sidebar menus and the whole nine yards. I am going to have to increase my text size but seems pretty stable. Oh no text size control? I guess its dynamic with the zoom. Not sure what was going on with my previous connectivity but Opera didn't like it at all. [Edit] But it crashed again editing this post. Opera and I are not getting along. I'm sticking with Chrome. [Edit] Unloaded the mount for Opera and posting back. Lets see if the b%$ch crashed again. So good so far. Hitting save now... Worked that time. And again...
My OOM settings
OOM: Out of Memory
I had a previous discussion with @_that about this and he disagreed with me when I said that for better performance you would increase never decrease the memory value for each catagory from the stock settings, but I'm going to step up and say that after testing this with different settings the performance proves itself and I disagree (for the first time) with him on this. I will also say that this observation matches the pattern in System Tuner in OOM looking at the presets ranging from "very light" to "very aggressive" and agrees with some other posts about optimizing the browser for the TF7. My settings below for the last two categories (Content Providers, Empty Applications) are very close to ST's "very aggressive" presets.
I'm running the following MB (not KB) sizes for OOM:
32,40,48,82,195,246
*************************************************
Ref: ST "very aggressive" preset for OOM
16,32,64,128,192,256
[Edit-Correction/Clarification*] Note the fifth setting for Content Providers is the category where the *background* browser process *service* resides *when the app is not in the forground* and is affected so increasing this to around 192 has proven better performance (in my opinion on this device).
Ref: http://www.transformerforums.com/fo...6579-tweaking-tf700-performance-browsing.html
elfaure said:
Note the fifth setting for Content Providers is the category where the browser process resides and is affected
Click to expand...
Click to collapse
No. While browing, the browser is in category "Foreground Applications". But you can't ever see this in System Tuner, because when you try, ST itself is the foreground application. Increasing the OOM value for content providers means that the browser (or any other processes in that category) is *more* likely to be killed when another app in foreground needs memory.
You can see it yourself via adb shell. Start the browser, and in parallel an adb shell from you computer:
Code:
[email protected]:/ # ps | grep browser
u0_a8 4820 135 538416 66980 ffffffff 4017eee4 S com.android.browser
[email protected]:/ # cat /proc/4820/oom_adj
0
Now switch back to the launcher and see again:
Code:
[email protected]:/ # cat /proc/4820/oom_adj
7
elfaure said:
so increasing this to around 192 has proven better performance (in my opinion on this device).
Click to expand...
Click to collapse
Do you have a reproducible test for the perceived performance increase?
_that said:
No. While browing, the browser is in category "Foreground Applications". But you can't ever see this in System Tuner, because when you try, ST itself is the foreground application. Increasing the OOM value for content providers means that the browser (or any other processes in that category) is *more* likely to be killed when another app in foreground needs memory.
You can see it yourself via adb shell. Start the browser, and in parallel an adb shell from you computer:
Code:
[email protected]:/ # ps | grep browser
u0_a8 4820 135 538416 66980 ffffffff 4017eee4 S com.android.browser
[email protected]:/ # cat /proc/4820/oom_adj
0
Now switch back to the launcher and see again:
Code:
[email protected]:/ # cat /proc/4820/oom_adj
7
Do you have a reproducible test for the perceived performance increase?
Click to expand...
Click to collapse
Just the speed at which my hair blows backwards when I browse. :laugh:
Maybe forcing oom_adj to 0 (or less like the smallest it can get -17) for the browser process might be a good idea so it becomes immortal. That's one of the last processes I want killed, even if it is in the background.
https://bugzilla.mozilla.org/show_bug.cgi?id=768832
http://forum.xda-developers.com/showthread.php?t=622666
But seriously you are absolutely correct that when browsing the app is in the foreground and that setting is low like it should be. Its the last two catagories that early clearing of the trash makes for more RAM for the other 4 groups so foreground apps can have the most room to run. Its unclear to me how forcing an early kill of the browser background *service* WRT content providers is a benefit but it seems to work. Maybe it just forces that service to the forground but still keeps it active.
From the link below:
"From what I have experienced, the more open apps in the "Empty App" category, the slower and more sluggish the phone. Having these apps open is basically a waste of memory, because they are in standby and not being used. A high OOM value should therefore be set for "Empty App"."
"Processes that fall into the "Content Provider" category are also a waste of space; they only actually get used when running the application that service belongs to. This means that often the service will be running in the background when it doesn't actually need to be. A high OOM value should therefore be set for "Content Provider"."
Although it seems counter-intuitive, take a look at this and let me know if you agree. Try it out for yourself and see if you can tell a difference. I can but don't have a deterministic way to prove it.
http://forum.xda-developers.com/showthread.php?t=1639207&page=3
Another thing I've noticed WRT the OOM settings merely as a pattern observation when looking at the settings group for each of the 6 categories as sliders like in ST there appears to be a proportional (exponential) relationship between them. If you did a screen shot for each and made them semi-transparent and overlayed them all you would see a set of sloped curves all with increasing slope moving from light to aggressive. For example if you start with the "very light" settings group and record those 6 numbers then do the same for each group up thru "very aggressive", for each set of 6 there is a proportional relationship between them and the next or previous group. I would guess this suggests the heuristics of the kernel OOM management is best serviced with a group of proportioned parameters. So if you changed the default settings for *any* group up or down the other groups would need to follow to keep the curve shape proportional (size relationship between parameters in any given group).
Forcing oom_adj
@sbdags
Do you have a provision in CROMI(X) to allow the user to force-set the oom_adj value for a particular app or app list? I think this would be a great feature especially for browser. I would like to set it to -17 so its immortal/invincible.
I am particularly interested in understanding what setting a high value for content providers say 192 does when a browser *service* is running in the *background* and questioning whether that service is now more likely to be killed by OOM or not? What happens to the parent process for this service if it is killed? What happens in this condition when browser is also the last app or a fairly recent app?
Here's a post and method to do so:
http://lwn.net/Articles/317814/
elfaure said:
@sbdags
Do you have a provision in CROMI(X) to allow the user to force-set the oom_adj value for a particular app or app list? I think this would be a great feature especially for browser. I would like to set it to -17 so its immortal/invincible.
I am particularly interested in understanding what setting a high value for content providers say 192 does when a browser *service* is running in the *background* and questioning whether that service is now more likely to be killed by OOM or not? What happens to the parent process for this service if it is killed? What happens in this condition when browser is also the last app or a fairly recent app?
Here's a post and method to do so:
http://lwn.net/Articles/317814/
Click to expand...
Click to collapse
Yes this can/could be done. What is the pid of the browser? How do I find out?
sbdags said:
Yes this can/could be done. What is the pid of the browser? How do I find out?
Click to expand...
Click to collapse
Look a few posts back at @_that's reply to me regarding OOM. He shows the code there to do this. Also before we go hog wild here, I was simply interested if it could be done and you confirm it can. Let's speak with _that and others about whether or not this makes sense. For a single browser of choice I say yes it does. For 4 or 5 or a slew of browsers I say no because it could eat all your memory and you'd have no way to kill the processes for oom_adj=-17.
[Edit] We have a slight problem. PID's are different for different devices?? @_that shows PID for browser is 4820 and on my device its 6186? He must have a TF200 or TF300?
On another note, give the dev of the app "Bluetooth Keyboard EasyConnect" two thumbs up from me if you know him/her. Finally some software that connects my keyboard automatically at boot and reconnects it after a timeout just by pounding a few keys actually works for the first time. I've been looking for this app for 6 mos. and tried no less than 8 others. When I saw it was XDA created I thought I'd check it out. The dev created some HID profiles and did some other magic with this app, its awesome!! I can now leave my keyboard for hours and hours and just bang some keys and it reconnects. That's the way it should be. Excellent job.
****************************************
Code:
ps | grep browser
ps | grep chrome
ps | grep firefox
ps | grep opera
ps | grep fevdev
The first output parameter is the PID.
Output:
[email protected]:/ $ ps | grep browser
u0_a9 6186 119 540368 68936 ffffffff 00000000 S com.android.browser
u0_a372 6272 119 528528 65052 ffffffff 00000000 S com.opera.browser
[email protected]:/ $ ps | grep firefox
u0_a190 6330 119 593488 76724 ffffffff 00000000 S org.mozilla.firefox
u0_a190 6403 119 466016 27376 ffffffff 00000000 S org.mozilla.firefox.UpdateService
u0_a190 6415 6330 585740 50932 ffffffff 00000000 S org.mozilla.firefox
[email protected]:/ $ ps | grep chrome
1|[email protected]:/ $ ps | grep chrome
u0_a15 6600 119 563460 65784 ffffffff 00000000 S com.android.chrome
u0_i3 6628 119 542892 57404 ffffffff 00000000 S com.android.chrome:sandboxed_process0
[email protected]:/ $
You sure this works with dolphin? Seems to have speeded up Stock (but I have issues there), but to have made no difference to dolphin. Is there anything I need to do? Running CM10.1 (RC2).
dgjl said:
You sure this works with dolphin? Seems to have speeded up Stock (but I have issues there), but to have made no difference to dolphin. Is there anything I need to do? Running CM10.1 (RC2).
Click to expand...
Click to collapse
Maybe someone can confirm or deny this, but as far as I know (and was told from Naked dev) both Dolphin and Boat use the com.android.browser agent so they are automatically cached to RAM with the mount settings for browser in the script. I haven't done much testing with either. As far as working with custom ROMs I can't help you there because I'm locked on stock ROM. I know it works with CROMIX for the 4 browsers Stock, Naked, Chrome, and Firefox from the feedback I've received. Maybe some other users can test this for us and post feedback here.
[Edit] I just loaded dolphin and searched my device for "dolphin". Interesting findings.
1. There is no com.android.dolphin or any executable for dolphin, so it must use com.android.browser.
2. But when dolphin is running and I type this code into a terminal, I find no dolphin process running nor do I find browser running either??
@_that what do you make of this?
Code:
ps | grep dolphin
ps | grep browser
ps | grep chrome
ps | grep com.
Output:
[email protected]:/ $ ps | grep dolphin
1|[email protected]:/ $ ps | grep browser
1|[email protected]:/ $ ps | grep chrome
u0_a15 6787 119 560624 65404 ffffffff 00000000 S com.android.chrome
u0_i14 12801 119 549252 61132 ffffffff 00000000 S com.android.chrome:sandboxed_process0
1|[email protected]:/ $ ps | grep com.
root 100 2 0 0 ffffffff 00000000 S krfcommd
u0_a91 760 119 499724 56696 ffffffff 00000000 S com.android.systemui
u0_a17 840 119 463884 23492 ffffffff 00000000 S com.android.defcontainer
u0_a88 854 119 469904 34176 ffffffff 00000000 S com.beansoft.keyboardplus
radio 872 119 484048 26848 ffffffff 00000000 S com.android.phone
u0_a77 888 119 464080 23292 ffffffff 00000000 S com.nuance.xt9.input
system 902 119 489608 77744 ffffffff 00000000 S com.android.launcher
u0_a330 1126 119 463976 24252 ffffffff 00000000 S com.TEST.android.lvh
u0_a151 2068 119 468284 24504 ffffffff 00000000 S com.namakerorin.audiofxwidget
u0_a208 2749 119 466992 27464 ffffffff 00000000 S com.latedroid.juicedefender
u0_a24 4799 119 468388 28012 ffffffff 00000000 S com.rootuninstaller.ramboosterpro
u0_a42 5037 119 464436 24776 ffffffff 00000000 S com.google.android.inputmethod.latin
u0_a201 6384 119 480352 38416 ffffffff 00000000 S com.symantec.mobilesecurity
u0_a15 6787 119 560908 64424 ffffffff 00000000 S com.android.chrome
u0_a16 7739 119 473856 26596 ffffffff 00000000 S com.google.android.gsf.login
u0_i14 12801 119 550084 62376 ffffffff 00000000 S com.android.chrome:sandboxed_process0
system 12994 119 464324 29872 ffffffff 00000000 S com.asus.services
system 13233 119 462992 22776 ffffffff 00000000 S com.nvidia.NvCPLSvc
u0_a119 13295 119 462924 23996 ffffffff 00000000 S com.aiteam.wifitogglewidget
u0_a36 13889 119 482888 31720 ffffffff 00000000 S com.google.android.googlequicksearchbox
u0_a12 13921 119 466800 25476 ffffffff 00000000 S com.android.providers.calendar
u0_a28 13938 119 472532 26832 ffffffff 00000000 S com.google.android.apps.maps:GoogleLocationService
u0_a11 13959 119 472712 25960 ffffffff 00000000 S com.android.calendar
u0_a7 16792 119 466732 25868 ffffffff 00000000 S com.android.bluetooth
root 20746 20737 1780 1180 ffffffff 00000000 S /data/data/com.estrongs.android.pop/files/libestool2.so
u0_a76 30444 119 463248 24324 ffffffff 00000000 S com.asus.weather
u0_a21 30513 119 495112 32964 ffffffff 00000000 S com.android.email
u0_a18 30876 119 463264 24012 ffffffff 00000000 S com.android.deskclock
u0_a160 31522 119 462932 23120 ffffffff 00000000 S com.aiteam.bluetoothtogglewidget
u0_a16 32085 119 501984 32392 ffffffff 00000000 S com.google.process.gapps
[email protected]:/ $
[Edit]
When I do the same for boat (ps | grep boat) I do find "com.boatbrowser.free" process running so it is NOT using the com.android.browser agent (bad info from Naked dev). Thanks, I learned something. I will add a mount for boat in the script. But dolphin is confusing me!
What "issues" are you having with the stock browser?
elfaure said:
Maybe someone can confirm or deny this, but as far as I know (and was told from Naked dev) both Dolphin and Boat use the com.android.browser agent so they are automatically cached to RAM with the mount settings for browser in the script. I haven't done much testing with either. As far as working with custom ROMs I can't help you there because I'm locked on stock ROM. I know it works with CROMIX for the 4 browsers Stock, Naked, Chrome, and Firefox from the feedback I've received. Maybe some other users can test this for us and post feedback here.
[Edit] I just loaded dolphin and searched my device for "dolphin". Interesting findings.
1. There is no com.android.dolphin or any executable for dolphin, so it must use com.android.browser.
2. But when dolphin is running and I type this code into a terminal, I find no dolphin process running nor do I find browser running either?
[email protected]:/ $
[Edit]
When I do the same for boat (ps | grep boat) I do find "com.boatbrowser.free" process running so it is NOT using the com.android.browser agent (bad info from Naked dev). Thanks, I learned something. I will add a mount for boat in the script. But dolphin is confusing me!
What "issues" are you having with the stock browser?
Click to expand...
Click to collapse
Now that's what I call a fulsome answer. Good luck with sorting it out. Problems with stock are: 1) when I type the screen goes up and up (as I type it's just gone over the top) on every key press - letters, numbers, punctuation, return, etc. 2) sometimes (using full screen mode) old tabs and blue progress lines get stuck at the top of the screen).
elfaure said:
[Edit] I just loaded dolphin and searched my device for "dolphin". Interesting findings.
1. There is no com.android.dolphin or any executable for dolphin, so it must use com.android.browser.
2. But when dolphin is running and I type this code into a terminal, I find no dolphin process running nor do I find browser running either??
@_that what do you make of this?
Click to expand...
Click to collapse
1. wrong, because com.android.browser is the stock browser.
2. you need to find out the correct app name.
_that said:
1. wrong, because com.android.browser is the stock browser.
2. you need to find out the correct app name.
Click to expand...
Click to collapse
So for my reference, all browsers have a unique executable and no browsers other than the stock browser use com.android.browser I take it? I was told something wrong then. I also thought that in order for it to be an executable is must start with "com." but I now see that is not the case. Man there is a lot of stuff to not know here.
**********************************************************************************************************
Found the name of dolphin source apk is mobi.mgeek.TunnyBrowser so that's the process I am looking for so I launch it and go to a website then I "ps" from the terminal and I found it running with PID 12085.
Also found the name of boat source apk is com.boatbrower.free running at PID 13254.
Also found the name of boat mini source apk is com.boatgo.browser at PID 13177.
Question: Is the PID always the same when running a particular app on a particular device? So for example if I ran dolphin tomorrow or a week from now, or on another TF7 would it always have this same PID or is that determined by load order?
*****************************************************************************************************
Updated script to REV3, now for 8 browsers: 4 original + Opera Mobile, Dolphin, Boat, & Boat Mini.
*****************************************************************************************************
dgjl said:
Now that's what I call a fulsome answer. Good luck with sorting it out. Problems with stock are: 1) when I type the screen goes up and up (as I type it's just gone over the top) on every key press - letters, numbers, punctuation, return, etc. 2) sometimes (using full screen mode) old tabs and blue progress lines get stuck at the top of the screen).
Click to expand...
Click to collapse
I was misinformed about Dolphin and Boat. You got me so I fixed it. New version is ready.
****************************************************
I added 4 new browsers to the script (Opera Mobile, Dolphin, Boat, and Boat Mini)
For your glitches, try the "about:debug" trick here
http://forum.xda-developers.com/showthread.php?t=1923285
Let me know if this resolved anything
For your Dolphin, download the new startup script on PG.1 (autostart3.sh.txt)
elfaure said:
Found the name of dolphin source apk is mobi.mgeek.TunnyBrowser so that's the process I am looking for
Click to expand...
Click to collapse
Good. How did you find it? I used the Play Store web page and read the name in the address bar, but there are lots of other ways.
elfaure said:
Question: Is the PID always the same when running a particular app on a particular device?
Click to expand...
Click to collapse
The PID is only valid while the process is running.

Categories

Resources