text:
Inconsistent UIDS and wiping a data partition
I've inherited my wife's Android phone (GT540) when she got a newer, shining one :-)
We think to  have factory reset it (via the privacy option), and in fact it has finally stopped to refer to her account and all the pics are gone. But I keep getting a warning message, about inconsistent UIDs and the need of wiping the data partition to be sure.
I can click on the only button "I am feeling lucky" to continue, without noticing particular issues.
Obviously, as per Murphy, the message is not popping up right now, so I can't copy it verbatim :-) Will edit the question when it comes out again.

EDIT
The precise message is:

System UIDs inconsistent
UIDs on the system are inconsistent, you need to wipe your data partition or your device will be unstable.

And it is followed by the unexpected crash of the Market application (processocom.android.vending).
So:

what is happening? what data partition is actually worrying it? Wasn't the reset "hard enough"?
what could happen, what UIDs is it referring to?
how can I fix it?

I have a new SD card, which is as far as I can tell empty. I would have liked to format it before using it, but the option is not available: I can only unmount it. Is this (missed) formatting the required wiping to reset the UIDs? Or is it a completely different thing, which I will search/ask in a later question?
Being new to the Android system I don't know if any other info are missing. The kernel is 2.6.29 (but I would be surprised if such basic matters were strongly dependent on the precise kernel version....). Just in case the firmware of the phone is 2.1-update1.

UPDATE
I have asked my wife and she actually did the factory reset suggested. Just in case I did it again, and we still get the error. What now?

I found another solution:
Have a look at /data/system/uiderrors.txt. There you will find the apps that are responsible for the trouble. You can delete them (manualy if necessary) to fix the issue. Reinstalling the apps brings the error back, though.

Titanium Backup users can also go to the batch actions and select manipulate data > remove orphaned files.
As user48823 mentioned, you can also find the apps in /data/system/uiderrors.txt using a root-capable file explorer, but basically Titanium will do this for you, if you select the action I wrote above.
Just fixed it this way on my OnePlus One (Bacon).

worked very well for me, thanks! :) I think the problem happened because of a corrupted titanium restore anyway!

Usually a hard-reset should be sufficient. But as I don't know how you performed it: It cannot hurt to repeat it. There's a "factory reset" option in your menus (usually in the "privacy" section). What this does is rawly explained by its name: Reset everything to the state of delivery. It purges the /data partition -- which is, all user data: Installed apps (except those "in the ROM", which came pre-installed) along with all apps data and settings, plus wipe the cache -- then reboot. The next startup will take a bit longer, as Android needs to rebuild the Dalvik Cache (which basically contains device-optimized versions of your apps, simply spoken). So after that, everything should be clean -- and you need to configure everything as if you just got a fresh phone.
I don't know which UUIDs it's referring to -- without the exact error message this is hard to tell. But as said, the factory reset should fix this.
By 1. plus, to be absolutely sure, a clean and empty sd card. To make sure the latter is really clean and empty, you can use a card reader to attach it directly to your computer, and check its contents there. Formatting should not really be necessary -- just make sure there are no files left, especially also no "hidden ones".

Following methods are available to initiate a "factory reset" aka "factory wipe":

the corresponding item in setup -> privacy
a "call to the magic number *2767*3855#"
Turn ON your phone. Press both VOLUME UP + HOME + SEARCH buttons for 5 sec. (this last item is taken from hard-reset.com)

Thanks, i will ask her about the precise format procedure she used. I have added the message as soon as it popped up again. Is it clear enough now to understand what's going on?

Yepp, quite clear. Following my "step-1-description" should solve this, as a factory reset includes exactly that (wipe /data and /cache). Essentially it does a little more than required -- but with /data wiped you either need to "start from the scratch", so the cleaner the better :)

Unfortunately it didn't appear to solve. Is there a way to manually wipe the data partition? Which by the way appears to be empty (I am using astro, I have a /data folder which is shown to be empty. I also have a /sdcard/data folder, which contains an almost empty folder /sdcard/data/colornote/backup with two files within).

use fastboot to format the /data partition, that is, provided your computer can recognize the handset in fastboot mode.

The latter shouldn't be a problem (though you could remove it to be sure -- it seems to be a backup file from an "colornote" app). But the /data folder should not be empty, as the system creates e.g. its logging directories here (see How can I view and examine the Android log?). A second method for a factory wipe is to "call the magic number *2767*3855#. Third variant: Turn ON your phone. Press both VOLUME UP + HOME + SEARCH buttons for 5 sec.

I tried calling the magic number but the reset didn't start. I tried the third variant and it applied the reset, but it gives the same result as my previous tests: that is I have to reconfigure everything and the data partition is still inconsistent.

In this case I'm out; aside from flashing, it might be time for SYLoV (See Your Local Vendor). For sure if you still have warranty -- they might give you a newer device as replacement, if you can clearly show them the factory reset doesn't do what it's supposed to. Maybe not that "shining one" -- but still...

Sigh. Tomorrow I will try to update the system from the LG site. Maybe it will fix it: in that case I will update this question.


text:
Forcing applications (games) to run at a low resolution
I own a Galaxy Nexus and the performance of a few "HD" games is horrible. Even with a bus overclocked kernel from here: http://www.derkernel.com/jb-tuna.php
Is there any way to maybe force apps to run on a lower resolution, say 540x960, without losing my app data? Are there any ROMs out there which allow you to do so?

Can you name a game that runs horrible on the Galaxy Nexus?

@Flow GTA3, temple run brave, few levels of N.O.V.A. i'm not saying their performance is unplayable. I personally  would like a constant 60FPS over a few more pixels.

okay, maybe "horrible" was too harsh. consider it as "below my expectations" from a Rs25000 phone.

I just wanted to know so that I can compare it myself and if I don't have any problems, chances are that there is something wrong with your device.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
during reboot stuck on "Samsung" logo
After installing CM9 on my Samsung Galaxy S+ (Plus) it gets stuck in the "SAMSUNG" screen whenever I restart, the very first screen (I guess). I have to press the Power button 10 seconds to restart when I come to that point. Did someone discover that kind of problem before, how can I solve the issue?

I have experienced something like this when I first flashed CM10 on my vibrant. I thought it was stuck so I pulled the battery, then rebooted in to recovery and reflashed (wiping data and cache) then rebooted. The screen was "stuck" there for some time again, but I let it go for a bit and it did eventually boot past it, it just took longer then I expected.

This is a common outcome for many possible problems. If you can get in to clockworkmod(or whatever custom recovery) try reflashing cm9. If that doesn't work try doing a factory reset from recovery (clear data/factory reset) and then reflashing cm9.
On the international SGS you always had to flash cm-roms twice (on first flash it sets up the partitions and on the second flash it finaly flashes the rom).
If you still can't boot, flash a stock ROM with Odin (I think it is Odin you use for flashing stock ROMs, since it is Samsung device, if not use whatever is recomended on XDA-developers under topic named something like "restoring a stock ROM"), and check that it boots that. After that install root, recovery and cm as before.
If you still can't get it to boot after that, let us know.

My SGS+ is running correctly with CM9. I can boot (if phone was shut off) and shutdown correctly, only when explicitly restarting the problem occurs.

If everything else works ok, than this is most probably a bug in cm, or just a wierd conincidence in your particular configuration. Either way I would not worry about it since there is a simple workaround. If you want to restart it power it off and than back on. The whole thing is to small to lose sleep over it.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
How can I save all contacts into google account?
I did it using Gingerbread (Samsung Galaxy Ace 2), but with Ice Cream Sandwich (LG L5) I don't see appropriate action for that.
Previously I entered Contacts (ok), then selected Settings (ok), executed Google Merge (no such option), and Sync Data (disabled all the time).
I see only one available (not disabled) item that is relevant -- configuring sync option for my account, but I understand it will work non-stop, and I want action on demand, just from time to time, when I explicitly select it, not enabling a background sync process.
What also worries me, that in GB I could choose where to store contacts (phone, SIM, google), in ICS after initial import from SIM card to phone, I cannot choose anything.
UPDATE -- (hardcore) WORKAROUND
I found that for given single contact I can switch its type from phone to google, nice, but it does not solve the problem due to the amount of contacts.
UPDATE -- DON'T DO THIS
I tried to somehow do it automatically, so I did (but you don't):

change the mode of sending vcard to single file
share contacts
select all
type: gmail
recipient -- yourself
send
OK, switch to gmail app
open the attachment with contacts
choose target as google account
all contacts will be merged with existing ones, but now as google ones

And the last step is killing this workaround. Why? Because some contacts will be added (so when you had "A" you will have "A" for phone and "A" for google), the others will be joined (so when you had "A" you will have "A" as before, but now with double type -- phone and google). In short -- the result is mess. Now I have more work to do than manually switching one by one type of the contacts. Geee, progress, right? ;-/

If you want to "sync on demand only": Just enable sync at the time of demand for, say, 10 minutes while connected to your local Wifi -- and then disable it again. Enough time for the service to get its job done. You can do so in "Accounts & Sync"1, after chosing your Google account:

If next to "Sync contacts" you see the same circular symbol as the screenshot2 shows next to Sync Google Reader, you probably do not even need to activate the permanent sync, but simply hit it for a one-time "sync on demand".

Thank you, I had the state with and without such icon, also similar icon appeared in notification area for two seconds, and then disappeared, however no contacts were sent (I logged in, to the google account to check it). Also still all contacts are "phone" contacts, and they should switch to google ones (I believe). Please see update section -- now I think, that in ICS only google contacts are synced, and the phone ones are ignored. So it might be the question how to convert phone contacts into google ones.

Oh -- as long as they are "phone contacts" (as opposed to "google contacts"), they won't sync this way. In this case you might want to check How to move phone contacts to Google? first -- or, if you'd rather not sync them with Google, check for an alternative to sync with (on Windows, this could possibly be MyPhoneExplorer -- but as non-Windows-user I cannot tell for sure).

Thank you, the post you linked is old, it is for 2.1, and as I said I am asking about ICS (4.0). Once again, in 2.3 the syncing was straightforward, all needed options were right on the screen.

I could not check with ICS (have no device with 4.x), but it at least still works with GB (2.3.x), so I thought it should be still valid for 4.x as well. Does the contacts app in 4.x no longer offer the export/import functionality?

Yes, there is, but it is for transferring data from/to phone from/to SIM card.

No more VCard exports? =:-0 Each new Android version seems to remove something useful it seems :( In this case: Sorry, I was not aware of that possibility...

Nope, I can only share vcard. The results were disastrous, see the update :-(

Ouch. Maybe before step 10, you should simply have deleted all contacts from the Google account (as they should be contained in your vcard export already)? Just for safety, you could even export all from the web frontend to a separate file, in case something goes wrong? And before syncing your device, rather make sure you've purged your contacts there as well...

Maybe. I was afraid of deleting them, because if export was invalid, I would lost a lot of contact. And the last thing I expected was inconsistent merge (i.e. add or join on random).

Well -- now you know your export is valid (as it was imported). You could try again -- this time with prior (backup and) cleanup. Can it get worse? xD

Oh, thank you but way no. I spent so much time on converting all those contacts by hand that I won't do a thing now. Let others experiment too :-) At least I showed the wrong path.

I understand. But for others who do not want to follow all the comments: Maybe we should extract that into a separate answer -- taking your list from above, and inserting two additional steps between 7 and 8 (additional backup from WebApp for safety, purging all contacts from all places)? And additionally remark that this is still untested and has yet to be approved -- but should theroretically work?

Another approach summarized from macias' experiments plus all the comments accumulated so far, is to follow these steps:
BE AWARE THAT THIS HAS YET TO BE APPROVED OF, AS IT WAS NOT TESTED!
I still chose to already add this here, as otherwise it would be hard to follow through all the comments to figure this out. Compared with what macias already did, steps 7-9 have been added/inserted to (hopefully) prevent the mess it caused for him.

change the mode of sending vcard to single file
share contacts
select all
type: gmail
recipient -- yourself
send
open the GMail web site with your account
optional: export/backup all contacts again from here (unless you use a new/empty separate GMail account, as the following was not yet tested)
purge all contact data from the webapp and your devices
OK, switch to gmail app
open the attachment with contacts
choose target as google account
all contacts will be added, but now as google ones

Compare with the steps described in the question's update to see the difference and what has gone wrong there. It should work this way, but that yet has to be approved of. If somebody can verify this, please say so in a comment -- and I will update this accordingly.

I have a HTC Sensation running ICS.
I had been looking to do this, read around a little then in playing with my phone, seem to have done it with a selection in the menu in 'People'.
For me there was simply a 'Move Contacts' in the Main menu in 'People'.

A box pops up, "Move contacts from" with choice of 'Google (qty of contacts)', and 'Phone (###)'.
I touched 'Phone...', it presents a box, "Move contacts to" with one choice 'Google (###)'...
Touch 'Google', and it asks, 'Confirm moving' "Are you sure...?" - Cancel-OK.

Process begins, and is not particularly fast - visibly one at a time...
Interestingly however, it didn't 'Move' my contacts but rather 'Copied' them - they are all still in the Phone, but now all in Google as well.
Not too bad as I can now either filter the list to not display the Phone ones, or delete them all off the phone as they are now all in Google.
...now just a matter of going through and de-duplicating.


text:
Cannot set up a yahoo email account with @yahoo.com.au address (.au not accepted)
The mail app on my Samsung note does not allow me to set up my email account with the full Yahoo address: it does not permit adding the .au at the end of the address. If set up the account like this, then I receive all my emails, but any I send out from my samsung misses the .au domain suffix -- resulting in anyone replying, not being able to respod without it bouncing back to them. They obviously do not notice the .au is missing.
I've contacted Yahoo, who say my address is with .au and anything without that will not get through.
I've tried resetting my samsung by removing my yahoo adress, and replacing it, but it will still not accept setting up the account with the .au and only simply as @yahoo.com.
Is there any solution known?
Tim

Tim, could you please specify which mail app you are using? Stock mail (the pre-installed) -- or the Yahoo mail app? Or something else altogether?

Suggestion: drop yahoo altogether.

I would guess that Samsung failed to provide proper support for Yahoo Mail. Therefore I recommend that you install the offical Yahoo Mail app. It should work out of the box.
Antoher approach is to forward your yahoo mail to your google mail. They advantage is that you don't have to use an additional e-mail app.

authors: ซักวัน ฉัน จะดีพอ


text:
Find-and-Replace on contacts
Is thee any way to perform a find-and-replace in contacts? I want replace a letter with another one in all contacts texts. (My device is an Xperia Mini Pro Android 4.0)

You can export the contacts from gmail, than edit in whatever editor you want and than import back to google. Your phone should then update the changes.
How to export from gmail:
http://support.google.com/mail/bin/answer.py?hl=en&answer=24911
and how to edit the CSV files:
http://support.google.com/mail/bin/answer.py?hl=en&answer=12119&topic=1669027&ctx=topic
There are also related links on the left (for import and other questions)
If importing them back to google makes duplicates, remove all google contacts and then import from CSV.
If your phone does not currently use google contacts sync for it's contacts you can try a similar "hack" by exporting contacts to the SD card and then importing them back.

As Mihic mentions a "similar hack" to process your accounts without Google:

open your contacts app
open its settings
chose to "export to file"

The resulting export file stored on your sdcard is in .vcf (VCard) format, which can be read by many applications. As it is mainly plain-text (except for embedded contact photos), you could do a basic search-and-replace with any plain-text-editor (do not use a word processor like MS Word), if you are careful (a simple "replace a with ae might mess up things -- so take care to specify something more unique, or let the replace ask your confirmation for each single place). Best make a copy first -- so in the worst case you still have the original.
Having finished that, you can import the resulting .vcf file the same way -- maybe after you emptied your contact list:

open your contacts app
open its settings
chose to "import from file"
select your new file, and import it

.vcf files are not easy to modify, they escapes non-latin scripts and contains image of contact as text.


text:
Using another name on the e-mail address of a contact
Is it possible to use another name for e-mail addresses of a specific contact? E.g. I prefer my phone contacts to have their names in greek, but when I send them e-mails I would like to have their names in english in case a foreign recipient is also included in the e-mail.

Possibly related: http://android.stackexchange.com/questions/726/choose-contact-name-manually?rq=1

Also possibly related: http://android.stackexchange.com/questions/6433/how-can-i-specify-a-default-contact-for-merged-contacts?rq=1


text:
How can I merge duplicated contacts that are different only in one letter?
I use "Contact Remover Plus" to merge duplicated contacts. But I want also merge contacts that their names are different just in a letter.
How can I merge these duplicated contacts? I am looking for a automatic solution.

@RyanConrad Google Contact web app do not merge contacts that are different in name!

no, but it is still the easiest to edit them if needed. And, for the record, if the contacts have things like the same email (and maybe even phone number) it can merge them. I have had it merge people that I did not want merged because the email addresses were the same.

What Ryan said answers the question. Not yours as that's off-topic, but it's your best choice. Also, please try to be more civil and less demanding.

"Is there an app for X?" questions are off-topic on Android
Enthusiasts. That's why I have edited your question to ask for a solution instead of an app.

possible duplicate of How do I merge contacts based on phone numbers?

I don't think that this is a duplicate, it may produces the same answers but the constraints are different.

Google Contacts is your best option. It will merge contacts with different names if things like their email addresses are the same. Also, if for some reason, it doesn't detect the contacts that should be merged, you can select multiple contacts manually and click on Merge Contacts from the more actions menu.

I definitely second Ryan. It's best to use the web tool for this task (it has 'revert' too).

Use latest version of MyPhoneExplorer (www.fjsoft.at). It is compatible with nearly any android phone. connect your phone with Bluetooth or USB to PC. Sync your contacts with the software, then you are able to easily merge your contacts by selecting some of them and right-click -> Merge Contacts.
Note, this requires installation of a client on your Windows desktop (no Mac or Linux available)


text:
Free Wi-Fi network: how to autoaccept (robotic click) wifi policy web page?

Possible Duplicate:
Can I automatically log in to open WiFi that requires web login/password?

At a hospital, there is a no-password Wi-Fi network which is for guest and prior having internet, I have to click "Accept" button on an initial web page I get in a browser. The page is super simple, single frame with single button at the bottom called accept.
There is an app in the play store which can open browser so that I can click the accept button.(app name: Auto Wi-Fi Prompt)
Well, is there a way to write such script which will make even the "accept" click for me? (e.g., llama advanced config and a ".bat" file after that)
for example, once I activate Wi-Fi, it detects being connected to hospital-guest and will auto-click accept for me.

Another question which may be related: How can I automate the Hotspot login process?

I don't think you looked very hard in the Play Store. I found several apps which look like they'll do what you want. (I searched on "wifi auto login".)

Wifi Browser Login "This app will automatically detect if your WiFi connection requires browser login.
It can be configured to either notify you or automatically popup a webview for you to login."
WiFi Web Login "Automatically logs you on to any WiFi hotspot, hotel WiFi, guest WiFi."
WiFi Auto Login Lite "WiFi Auto-Login automatically logs in your Android device into some of the most popular FREE WiFi hotspots, eliminating the need to deal with that annoying WiFi hotspot login page!"
...plus a bunch more. There's quite a few that have a very fine focus, such as one just for Starbucks.

The last two of those are trail->payment junk just FYI. Something this simple should always be free.


text:
Would it be possible to use the SD card as the root filesystem
This may sound stupid to someone who knows more about Android, but I don't and it it has been bugging me for some time now.
Since Android is at its core a Linux system, shouldn't it be possible to directly boot from a different storage device (like the SD card) the same way I can boot my computer from a thumbdrive?
This would (in theory) enable the to use a (big) SD card as system memory instead of the (in my case, which is a Wildfire S) ridiculously small real system memory.
So, is this possible?
If yes: How? And are there links/howtos?
If no: Why? Which meachanisms prevent that from happening? Or has just nobody tried to do it?

The Nook Color/Tablet can both do this, and I've seen other Linux distros (Debian, Ubuntu) boot from the SD card on the Xoom. Don't know if anyone's ever tried it on the Wildfire S, although you could look into something like Boot Manager. I'm not sure if there's a device-agnostic solution other than that (which is a little finicky).

The boot.img that is responsible for booting up Android, has their init scripts embedded in the RAM Disk of the actual boot.img which mounts the partitions into the respective /data, /cache, /system mount points respectively.
By altering the init scripts to hit on the SDCard, could lead to an unstable system, furthermore, reducing the life of the SDCard via wear and tear of the SDCard - why?
The kernel when booting, is loading from the / which is within the same partition as the boot partition - hence the need for the RAM Disk to be present along with it. It is that, which gets loaded into memory - a temporary file-system, in order for the init scripts to be read in and executed. Once the mount points are established, then the RAM Disk gets removed and thereby, the temporary file-system a lá RAM Disk, gets "flipped" over to the real partitions at a later stage during the bootstrap.
This is where the RAM Disk comes in - only temporarily, it is through that, the whole process of booting can happen.
The chicken and egg is this - the kernel prior to boot, has no idea what partitions are there!
Not alone that, by hard-coding the SDCard into the kernel's init parameter, which is a specific option that can be passed into the kernel upon boot in which it alters the kernel's processing of the environment.
The wear and tear of the SDCard would be significantly increased, not alone that, the entire Android ecosystem would drastically change, the API's have defined internal storage and external storage - so it could lead to confusion in where to store their own content providers for contacts etc, "Are we sitting on a external storage or internal storage?" from the perspective of Android itself, bear in mind, the content providers itself are housed in internal storage and from an overall picture, its one of de-facto standard convention for Android's file-systems involved.
So to sum up, I do not think that's possible, not ruling out its impossible either but if it can be done, chances are it will be tied intimately to the handset itself, give or take, what manufacturers put in there from a perspective of partition format types (yaffs, emmc, LinusStoreIII, and more importantly, the SDCard handling mechanism from the kernel/hardware viewpoint will be different - am talking about different IO addresses here) and not alone that, differing sizes of the partitions also, this would make the whole concept of Android - not exactly portable either due to non-standard scripts found within the RAM Disk itself.


text:
How to find out the UID of a given file/folder?
I have an issue with inconsistent UIDs.
I would like to know how to manually find out the ID of a folder (specifically the /data partition). I think that it should be the same concept of an usual unix/linux filesystem but... I'm evidently getting older for this stuff :-)
From the Astro app I can see the details of the /data partition but it only tells me d-- and I cannot find any user id.
Actually, I have not set up any account on this phone, so there should be (I guess) only one UID present (the default one) apart from the system daemons etc.
Maybe for this reason it doesn't show up? Is there another, more powerful/informative app to be used? A file manager of some sort, a terminal console would be ideal for me.

I'd personally recommend using a terminal emulator or adb shell and then using the ls command. You can get the UID's listed by name if you use the -l flag and listed by number with the -n flag. Note that in the /data directory you'll need root permission in order to index the files/directories, so ls will fail with a normal user:
root@android:/data # ls -l
drwxrwxr-x system   system            2012-08-27 14:29 anr
drwxrwx--x system   system            2012-08-29 17:46 app
drwx------ root     root              2012-08-27 00:54 app-asec
drwxrwx--x system   system            2012-08-27 00:54 app-private
drwx------ system   system            2012-08-27 00:55 backup
drwxrwx--x system   system            2012-08-29 17:46 dalvik-cache
drwxrwx--x system   system            2012-08-29 17:34 data
drwxr-x--- root     log               2012-08-27 00:54 dontpanic
drwxrwx--- drm      drm               2012-08-27 00:55 drm
drwxrwx--- gps      system            2012-08-27 10:29 gps
drwxr-x--x system   system            2012-08-27 00:54 lightsensor
drwxr-x--x root     root              2012-08-27 00:54 local
drwxrwx--- root     root              1969-12-31 19:00 lost+found
drwxrwx--- media_rw media_rw          2012-08-27 14:10 media
drwxrwx--t system   misc              2012-08-27 00:54 misc
drwx------ root     root              2012-08-27 10:30 property
drwxrwx--x system   system            2012-08-27 00:54 resource-cache
drwxr-x--x system   system            2012-08-27 00:54 sensors
drwxr-x--- root     shell             2012-08-27 00:54 ssh
drwxrwxr-x system   system            2012-08-30 11:05 system
drwxr-xr-x root     root              2012-08-27 00:55 tf
drwx--x--x system   system            2012-08-27 00:54 user

root@android:/data # ls -n
drwxrwxr-x 1000     1000              2012-08-27 14:29 anr
drwxrwx--x 1000     1000              2012-08-29 17:46 app
drwx------ 0        0                 2012-08-27 00:54 app-asec
drwxrwx--x 1000     1000              2012-08-27 00:54 app-private
drwx------ 1000     1000              2012-08-27 00:55 backup
drwxrwx--x 1000     1000              2012-08-29 17:46 dalvik-cache
drwxrwx--x 1000     1000              2012-08-29 17:34 data
drwxr-x--- 0        1007              2012-08-27 00:54 dontpanic
drwxrwx--- 1019     1019              2012-08-27 00:55 drm
drwxrwx--- 1021     1000              2012-08-27 10:29 gps
drwxr-x--x 1000     1000              2012-08-27 00:54 lightsensor
drwxr-x--x 0        0                 2012-08-27 00:54 local
drwxrwx--- 0        0                 1969-12-31 19:00 lost+found
drwxrwx--- 1023     1023              2012-08-27 14:10 media
drwxrwx--t 1000     9998              2012-08-27 00:54 misc
drwx------ 0        0                 2012-08-27 10:30 property
drwxrwx--x 1000     1000              2012-08-27 00:54 resource-cache
drwxr-x--x 1000     1000              2012-08-27 00:54 sensors
drwxr-x--- 0        2000              2012-08-27 00:54 ssh
drwxrwxr-x 1000     1000              2012-08-30 11:05 system
drwxr-xr-x 0        0                 2012-08-27 00:55 tf
drwx--x--x 1000     1000              2012-08-27 00:54 user
root@android:/data #

yes this is exactly what I am looking for. A little problem is that I have not idea of how logging with a normal or the root user. I don't even know my username :-)

@Francesco: Android doesn't really have a concept of a "username" in the same sense that a typical Linux distro does. If you open a terminal emulator it will run within it's own UID (each app has a user id). If you log in with adb shell I think the default is the "system" user. You can't switch to the root user by default, but most devices have some method of gaining root access (How do I root my device? is a good starting point, but if you have specific questions about your device you're more than welcome to post them on this site).

Having to root the phone just to find out the uid of a folder seems a bit excessive. I mean, probably there's no harm involved but for such a simple query I am a bit surprised. I will try to install one of the apps that you told me and see if the standard authorizations are enough. For the moment, I'm doing the third factory reset in a few hours...


text:
How to debug a battery issue?
I have HTC Sensation 4G. I have a very peculiar issue with the battery. I've been using the phone for just over one year now. There are some periods (about 7 to 15 days) when battery performance is absolutely fine.
But then after certain days of good performance battery starts behaving weirdly: Phone gets switched off even at over 60% battery. Restarting it shows about 5% battery, again switches off, restart shows around 20% etc.
So I guessed there is some calibration issue. Taking out the battery at the time of this erratic behavior makes it work fine for a little while (half an hour to a couple of hours) then again the stupidity starts. I have tried draining the battery to 0% and then a full charge, tried various usage models (not using wifi, disabling animations to reduce usage etc.) nothing seems to work.
I can't properly debug this issue properly as connecting to computer starts charging and when its charging there are no such issues. This is REALLY frustrating, Any one has any idea how to debug it?
(I have come to know that certain batch of HTC sensation has this issue, not everyone has experienced similar problems but there are people and no one has been able to point me in the right direction)

Instead of investing too much energy (LOL), have you thought about just buying a replacement on ebay? (BG58100 or BA-S560 battery model). Here in the EU this costs only about 7-13EUR. It'll bring you back the runtime of a new battery as a side effect.

Yes i'm getting a replacement but this weird bug, well it bugs me! Before I switch to the new battery i would like to at least give a shot at debugging or try to know the cause of this problem

I have diagnosed several battery related anomalies with a combination of two apps: one called Diagnosis and the other GSam Battery Monitor Pro.  GSam isn't as robust but it offers a greater filtering options to sort the culprits by CPU usage, power usage, memory usage....  In every case it turned out to be a problem with an app or a setting or my current ROM but those apps helped me track down the problem.
You may also want to check your device's logs for clues.  You can use aLogrec to record your logcat, then note the time of a spontaneous shutdown then check the log to see what events lead up to it.  I can barely understand what is contained in my logcat but this forum post may help you.

I'm using log cat, not able to find anything useful. I'll try out Diagnosis.

I updated my answer, I got confused and didn't realize that I used GSam along with Diagnosis each time.  Basically GSam allowed me find the problem and then Diagnosis allowed me to drill down to the specific process that was going rouge.


text:
How can I install an app if I have inconsistent UIDs and the market app crashes?
I am having issues with inconsistent UIDs. Trying to understand what was going on, I got the advice to install a terminal emulator.
The problem is that when I go to the Market app, I receive a (very fast) error message, which says that the process com.android.vending is not working.
How can I then install one of the apps that have been suggested to me?

Have you tried any of the "usual steps" on a misbehaving playstore issue (purging the cache of the playstore app and things like that)? Try following the google-play-store tag below your question (and further narrow down the results) to find additional suggestions.

Hi @Izzy, I had tried to factory-reset the phone without success. As far as you know, does the reset purge the caches, too, or not? I have in the meanwhile got a new phone...

Factory reset is, simply speaking, wiping everything which is mounted r/w: Data, caches, etc. Basically, only /system (and of course recovery + radio image) are left untouched. If a factory-reset does not cure a bug, that bug has feet (i.e. must be a hardware issue) or is located in the "System ROM". So flashing a different ROM (stock or custom) could cure it in your case. Or have the vendor/producer taking it back for repair.


text:
Why my (unrooted) /data partition appears to be empty?
I am having some issue with my /data partition. Among other things, when I browse its contents with the Astro app, it appears to be empty. The phone has never been rooted and it has been factory-reset at least three times in the last hour, so I would expect it to be at least minimally functioning.
Why is the /data partition empty? When factory reset, is it not supposed to contain something? Is this the cause of my inconsistent (maybe they are not inconsistent: they are MISSING) UIDs?
PS: I am putting the unrooting tag even if the phone was never rooted, since I would like it to go back to its original state :-)

Without root Astro doesn't have permission to view the contents of the /data directory. It probably displays it as "empty" in an attempt to handle it gracefully, I would guess (but that's mostly a guess). It seems like a fairly sensible alternative to other solutions, though, aside from perhaps giving you a message that says "Permission Denied" or similar.


text:
Is Wi-Fi always favoured over other data connections?
I am at home and I would like to be sure that the data connection is always going through the Wi-Fi rather than the (expensive) data connection.
Is it enough to simply turn on Wi-Fi and connect to the (password protected) network? How can I control that the download is happening through the right connection? Can sleep (or other events) disable/change/toggle this setting?

In Android, AFAIK, when you connect to an active Wi-Fi network, mobile data (GPRS, 3G, etc) will be disabled (even if are turned on) temporary. So it would be OK to just connect to the Wi-Fi network. But, if you want to be sure about disabling mobile data, you should go to Settings -> Wi-Fi and Networks -> Mobile Data and uncheck the option to disable mobile data.
(in ICS it's in Settings -> Wireless and Networks -> More -> Mobile Networks)

It's not necessary to disable mobile data, it may even be counterproductive when it comes to MMS.

@Flow I didn't say that it's necessary, I just mentioned if you want to be sure that no data would be allowed through mobile network, uncheck that option.

An adition to yrajabi's anwser:

In Android, AFAIK, when you connect to an active Wi-Fi network, mobile data (GPRS, 3G, etc) will be disabled (even if are turned on) temporary. So it would be OK to just connect to the Wi-Fi network. But, if you want to be sure about disabling mobile data, you should go to Settings -> Wi-Fi and Networks -> Mobile Data and uncheck the option to disable mobile data. (in ICS it's in Settings -> Wireless and Networks -> More -> Mobile Networks)

Sleep might change this if wifi is set to sleep when screen is off - wifi turns off and data comes back on(unless data is force-disabled as per yrajabi). To keep wifi on during sleep be sure to set:  Settings> Wireless & Networks> Wi-Fi settings> MENU button> Advanced> Wifi Sleep policy to Never.


text:
How do I enable USB tethering on a JellyBean device?
Does JellyBean support USB tether?
Is there a way compile the JB source so USB tether is always enabled?
I would like to have the support through the OS and not depend on an App.

I successfully got native USB tethering working on the Nexus 7 with Jelly Bean.
Modify the device/asus/grouper/overlay/frameworks/base/core/res/res/values/config.xml to be the following:
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->

<!-- These resources are around just to allow their values to be customized
     for different hardware and product builds. -->
<resources>
    <!-- Flag indicating whether we should enable the automatic brightness in Settings.
     config_hardware_automatic_brightness_available is not set, so we will use software implementation -->
    <bool name="config_automatic_brightness_available">true</bool>

    <!-- There is no charging LED. -->
    <bool name="config_unplugTurnsOnScreen">true</bool>

    <!-- Our amoled doesn't animate well. -->
    <bool name="config_animateScreenLights">false</bool>

    <!-- disable menu hard key on Crespo in non-pattern lockscreen -->
    <bool name="config_disableMenuKeyInLockScreen">true</bool>

    <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
     The N entries of this array define N + 1 zones as follows:

     Zone 0:        0 <= LUX < array[0]
     Zone 1:        array[0] <= LUX < array[1]
     ...
     Zone N:        array[N - 1] <= LUX < array[N]
     Zone N + 1:    array[N] <= LUX < infinity

     Must be overridden in platform specific overlays -->
    <integer-array name="config_autoBrightnessLevels">
    <item>7</item>
    <item>94</item>
    <item>208</item>
    <item>458</item>
    <item>2223</item>
    </integer-array>

    <!-- Array of output values for LCD backlight corresponding to the LUX values
     in the config_autoBrightnessLevels array.  This array should have size one greater
     than the size of the config_autoBrightnessLevels array.
    -->
    <integer-array name="config_autoBrightnessLcdBacklightValues">
    <item>10</item>
    <item>35</item>
    <item>55</item>
    <item>70</item>
    <item>70</item>
    <item>250</item>
    </integer-array>

    <!-- Array of output values for button backlight corresponding to the LUX values
     in the config_autoBrightnessLevels array.  This array should have size one greater
     than the size of the config_autoBrightnessLevels array.
    -->
    <integer-array name="config_autoBrightnessButtonBacklightValues">
    <item>255</item>
    <item>255</item>
    <item>255</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    </integer-array>

    <!-- Array of output values for keyboard backlight corresponding to the LUX values
     in the config_autoBrightnessLevels array.  This array should have size one greater
     than the size of the config_autoBrightnessLevels array.
     Crespo has no keyboard so all values are zero.
    -->
    <integer-array name="config_autoBrightnessKeyboardBacklightValues">
    <item>0</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    </integer-array>

    <!-- Minimum screen brightness allowed by the power manager. -->
    <integer name="config_screenBrightnessDim">10</integer>

    <!-- Component name of the default wallpaper. This will be ImageWallpaper if not
     specified -->
    <string name="default_wallpaper_component">com.android.wallpaper/.nexus.NexusWallpaper</string>

    <integer name="config_deskDockKeepsScreenOn">0</integer>
    <integer name="config_carDockKeepsScreenOn">1</integer>

    <!-- Default color for notification LED is white -->
    <color name="config_defaultNotificationColor">#ffffffff</color>

    <!-- Default blink frequency for notification LED is 9 seconds. -->
    <integer name="config_defaultNotificationLedOff">9000</integer>

    <!-- Package name providing network location support. -->
    <string name="config_networkLocationProviderPackageName" translatable="false">com.google.android.location</string>

    <!-- Package name providing geocoder API support. -->
    <string name="config_geocodeProviderPackageName" translatable="false">com.google.android.location</string>

    <!-- XXXXX NOTE THE FOLLOWING RESOURCES USE THE WRONG NAMING CONVENTION.
     Please don't copy them, copy anything else. -->

    <!-- This string array should be overridden by the device to present a list of network
     attributes.  This is used by the connectivity manager to decide which networks can coexist
     based on the hardware -->
    <!-- An Array of "[Connection name],[ConnectivityManager connection type],
     [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet]  -->
    <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
     before automatically restore the default connection.  Set -1 if the connection
     does not require auto-restore. -->
    <!-- the 6th element indicates boot-time dependency-met value. -->
    <string-array translatable="false" name="networkAttributes">
    <item>"wifi,1,1,1,-1,true"</item>
    <item>"mobile,0,0,0,-1,true"</item>
    <item>"mobile_mms,2,0,2,60000,true"</item>
    <item>"mobile_supl,3,0,2,60000,true"</item>
    <item>"mobile_dun,4,0,4,60000,true"</item>
    <item>"mobile_hipri,5,0,3,60000,true"</item>
    <item>"bluetooth,7,7,0,-1,true"</item>
    </string-array>

    <!-- This string array should be overridden by the device to present a list of radio
     attributes.  This is used by the connectivity manager to decide which networks can coexist
     based on the hardware -->
    <!-- An Array of "[ConnectivityManager connectionType],
                  [# simultaneous connection types]"  -->
    <string-array translatable="false" name="radioAttributes">
    <item>"1,1"</item>
    <item>"0,1"</item>
    <item>"7,1"</item>
    </string-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
     USB interfaces.  If the device doesn't want to support tething over USB this should
     be empty.  An example would be "usb.*" -->
    <string-array translatable="false" name="config_tether_usb_regexs">
    <item>"rndis0"</item>
    </string-array>

    <!-- Array of allowable ConnectivityManager network types for tethering -->
    <!-- Common options are [1, 4] for wifi and dun or [0,1,5,7] for -->
    <!-- mobile, wifi, hipri and bluetooth -->
    <integer-array translatable="false" name="config_tether_upstream_types">
    <item>0</item>
    <item>1</item>
    <item>5</item>
    <item>7</item>
    </integer-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
     Wifi interfaces.  If the device doesn't want to support tethering over Wifi this
     should be empty.  An example would be "softap.*" -->
    <string-array translatable="false" name="config_tether_wifi_regexs">
    <item>"wlan0"</item>
    </string-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
     bluetooth interfaces.  If the device doesn't want to support tethering over bluetooth this
     should be empty. -->
    <string-array translatable="false" name="config_tether_bluetooth_regexs">
    <item>"bnep\\d"</item>
    </string-array>

    <!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
    <integer-array name="config_keyboardTapVibePattern">
    <item>30</item>
    </integer-array>

    <!-- Vibrator pattern for feedback about booting with safe mode disabled -->
    <integer-array name="config_safeModeDisabledVibePattern">
    <item>1</item>
    </integer-array>

    <!-- crespo doesn't handle this blur effect very quickly. -->
    <bool name="config_sf_slowBlur">true</bool>

    <!-- Boolean indicating if restoring network selection should be skipped -->
    <!-- The restoring is handled by modem if it is true -->
    <bool translatable="false" name="skip_restoring_network_selection">true</bool>

    <!-- Specifies the amount of time to disable virtual keys after the screen is touched
     in order to filter out accidental virtual key presses due to swiping gestures
     or taps near the edge of the display.  May be 0 to disable the feature.
     It is recommended that this value be no more than 250 ms.
     This feature should be disabled for most devices. -->
    <integer name="config_virtualKeyQuietTimeMillis">250</integer>

    <!-- Boolean indicating if current platform supports bluetooth wide band
     speech -->
    <bool name="config_bluetooth_wide_band_speech">false</bool>

    <bool name="config_ui_enableFadingMarquee">false</bool>

    <!-- The attenuation in dB applied to the sound effects played
     through AudioManager.playSoundEffect() when no volume is specified. -->
    <integer name="config_soundEffectVolumeDb">-12</integer>

<string-array name="config_usbHostBlacklist">

    <item>/dev/bus/usb/001</item>

    </string-array>

<bool name="config_showNavigationBar">true</bool>

</resources>

Modify out/target/product/grouper/root/init.usb.rc to be the following:
# Copyright (C) 2012 The Android Open Source Project
#
# USB configuration common for all android devices
#

on post-fs-data
    chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
    chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
    chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
    chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr

# Used to disable USB when switching states
on property:sys.usb.config=none
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/bDeviceClass 0
    setprop sys.usb.state ${sys.usb.config}

# adb only USB configuration
# This should only be used during device bringup
# and as a fallback if the USB manager fails to set a standard configuration
on property:sys.usb.config=adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct D002
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

# USB accessory configuration
on property:sys.usb.config=accessory
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d00
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

# USB accessory configuration, with adb
on property:sys.usb.config=accessory,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d01
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

# audio accessory configuration
on property:sys.usb.config=audio_source
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d02
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

# audio accessory configuration, with adb
on property:sys.usb.config=audio_source,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d03
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

# USB and audio accessory configuration
on property:sys.usb.config=accessory,audio_source
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d04
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

# USB and audio accessory configuration, with adb
on property:sys.usb.config=accessory,audio_source,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d05
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

# Used to set USB configuration at boot and to switch the configuration
# when changing the default configuration
on property:persist.sys.usb.config=*
    setprop sys.usb.config ${persist.sys.usb.config}

on property:sys.usb.config=rndis
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 4e23
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/bDeviceClass 224
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

on property:sys.usb.config=rndis,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 4e24
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/bDeviceClass 224
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

And use a modified tegra kernel that has RNDIS enabled.
Please reference this XDA post

could you post a diff? if the file is ever updated with a system update, replacing it would be dangerous. a diff would highlight the required additions. -- if you are on windows, one can produce a diff with for example winmerge

Yes.
On ICS the setting can be found at
Settings -> Wireless & Networks -> More.. -> Tethering & portable hotspot -> USB tethering
I think it should be at the same place on Jelly Bean. Note that you need a device with a cellular data chip for this feature. Devices without (e.g. the Nexus 7) won't show this option.
USB tethering support was added with the 2.2 (Froyo) release

On Nexus 7 JellyBean it does not list Tethering and portable hotspot...

@Chris: The Nexus 7 doesn't support it. It's only available on devices with cellular data chips (3G/4G). What you want is more like this: http://android.stackexchange.com/questions/3134/can-i-use-my-android-device-as-wi-fi-dongle-ie-tethering-to-pc-through-usb-but

How do other devices that use JB enable the USB tethering option in their ROMS?

@Chris maybe you want to explain to us what you want to do. Do you want to do reverse tethering over USB? What problem to you want to solve?

@Chris Then tethering is not what you need, I think you want http://android.stackexchange.com/a/28186/440

@Flow I disagree, I want to just communicate between the PC and Android. If the regular USB tether was enabled there would be an IP connection between the two

JellyBean supports tethering if the device has a cellular data chip, it doesn't make sense if you don't have one (like the Nexus 7). Your question is "How can I enable IP communication over USB?". In that case the question and answers I mentioned above apply. If that's not true in your case, create a new question and explain what makes it different.

@Flow I still disagree with your answer. There still has to be a way to enable the USB tethering option in JellyBean even regardless of the radio it uses...even if it means modification of the source to make a custom ROM

Tethering is more then just IP communication, it includes the routing of the packets to the internet. That's why I rephrased your question to "How can I enable IP communication over USB?". My answer is correct as long as you ask for USB tethering. I suggest you create a new question and write down exactly what you trying to achieve/which problem you want to solve.

@Flow tethering can be used simply as an ad hoc way to connect two devices and does not imply an internet connection

Sure it can be used for that, but it isn't available on your Nexus 7. Wouldn't you accept an answer that solves your problem without tethering involved? Maybe reverse-tethering? Maybe something else? Why has the solution of your problem have be done with tethering if there are maybe other solutions? Besides Wikipedia says that it implies "sharing a internet connection".

@Flow the question is specific to USB tethering, I am not interested in other solutions.
The question made it clear that a source modification would probably be part of the solution.

@Chris you have an XY problem.

gotcha: Wireless & Networks is not a button, it's a label/title/group. The first one, by the way. More... is the button.


text:
University network crashes phone
At my college the Wi-Fi uses WPA2 Enterprise to secure the connection. I log in with a username and password. My phone (LG Optimus Elite, Android 2.3.7) successfully connects to the network, and I can use it for an arbitrary amount of time before the phone suddenly crashes and reboots. I've successfully used the phone on other wireless networks, so i know that's not the problem.
Any ideas?
The specific configuration of the network is below (per the university's directions)
EAP method: PEAP
Phase 2 Authentication: MSCHAPV2
CA Certificate: unspecified
User certificate: unspecified
Identity: MyUserName
Anonymous Identity: Blank
Password: MyPassword

Edit: Common times when phone crashes (only on university Wi-Fi, never any other time)

Loading/Panning in Maps
During unlock
Loading a webpage
...randomly when I'm not doing anything

Does the phone run slower or get hot while on the University WiFi?

I noticed it heating up every now and then, but I assumed it was because I set it next to my laptop - but    it has heated up. Haven't noticed much of a slowing though - fwiw, i'll update the question and add some specific instances in which it's crashed.

I did a little digging and found this, which might be the problem but doesn't mention the phone actually crashing.

My only speculation is that faulty hardware or buggy software/drivers may have an issue with the extra authentication and it's causing the phone to overheat. The extra auth shouldn't be a problem, but who knows. It's very strange that it only happens on that WiFi network.

Hmm...it's possible (total speculation here) that your phone is retaining an IP after letting it expire, someone else gets that IP, and then your phone gets overwhelmed by incorrectly routed traffic. That said, I doubt it.

I have the exact same same phone and the exact same problem and the funny thing is, it crashes in the university network too :) I have resorted to using the other network that requires a web page sign in.

Sound like kernel panic, do you have wifi calling or other apps that are known to have buggy kernel modules?

If this is still relevant, I think we'd need more info.  Have logcat being written to file for example so we can see what was happening before the crash.


text:
ADB Shell command that can test MLS / SPC codes?
I am a Republic Wireless subscriber with the Motorola Defy XT. The Defy is a decent phone, but unfortunately very little space has been dedicated to internal application storage (300MB) and often we are running out of space so we are on a quest to get root access to alleviate our issues. Sadly, RW has not provided us with the MLS / SPC code to modify the device.
My question is, is there an Android shell command that I can issue that will directly / indirectly test the validity of an MLS / SPC code. In other words, a command that changes a setting that requires the MLS code to be passed along as a parameter.
My hope is that I can write a script that will test all possible combinations of the six digit integer.


text:
Can I download large downloads on the PC?
I just got my new Nexus 7 and found out that most big Android games download their data over WiFi. This is problematic for me as I don't have a good WiFi connection and most downloads freeze halfway. Can I download the extra data on my wired connection on my computer?

There's no easy way to do that (depends per game) so I suggest to not try that, it's probably only a waste of time to reverse engineer what is downloaded and how/where it's unpacked. Just put your Nexus 7 next to the access point until it's finished. The game data will work across releases (most of the time no re-download is necessary). Plus: once it's downloaded you can save the game data, it's usually located at /sdcard/data/[com.game's.package.name]/ (you can see the package name in the web play store link or just guess it by looking or size).

It depends on game. Some games allow you to download the data off phone and extract it to your SD card at the said location of the game instruction. I remember doing so for few games myself.
If the game instruction doesn't have anything like that then you've to manually find out what file it downloads from where and put it in relevant place in SD card.

If you root your tablet, there are reverse tethering apps that will allow you to use your PC's net connection via USB. One of the apps in the Play store is free, and another offers a free trial, so you may give them a try. It appears this working is hit or miss, but since this is a Nexus device you may be in luck (being vanilla Android, not some carrier or manufacturer's possibly locked down version).

See also the reverse-tether tag for more information.


text:
HTML5 games for OUYA?
I'm not sure if this is the right place to ask, but since OUYA is shipping with android 4.0 I'll try.
Anyway, for those of you who are familiar with the platform I'm wondering if it will be possible to launch HTML5/Javascript games wrapped in app for OUYA?

This will be the right place for OUYA questions, but since it hasn't launched yet any answers are going to be speculative at best, and thus not a good fit for the site.

Speculation: If it has webkit and v8, and your game would run ok on other devices than yes, it should run.

It works.
Game Closure (which is HTML/Javascript) runs on OUYA. There are some posts by staff members on the mailing list. It takes some work to get controller support as of writing (they're working on making it available out of the box).


text:
Why can't android connect to an ad hoc hotspot?

Possible Duplicate:
Why can't my device see an ad-hoc WiFi network?

One thing I have noticed about almost all android-powered smartphones is that they find it so difficult to connect to ad hoc wireless hotspots. I can connect most wifi enabled devices to this ad hoc connection(created with an iPhone 3G app, MyWi) but not android phones. Is there a fix for this situation?

As far as I know, this is something inherent to Android itself. I'd go further to say that if you've ever used an Android device that could access ad hoc WiFi it's something the manufacturer added.
I would love it if someone could prove me wrong on that though.
So as for why, I suppose only Google knows.

Same here can't believe this feature is still missing.


text:
Change WCDMA to GSM automatically
I have Samsung Galaxy S II with Android 4.
If I configure my phone to GSM/WCDMA (automatic) mode, I have problems when I receive or make a call. Usually I lost the call or the other person cannot hear me.
In my city 3G network is not very good.
I solve this problem changing the mode to GSM only (manually) and then make the call.
Is there a way to configure my phone to change from WCDMA to GSM automatically when I make or receive a call?
I've installed 2G/3G OFF application, but it is still manual.

If you constantly get a poor 3G signal, you may want to switch the signal preference to favor 2G instead of 3G. Here's a way to do it on ICS:

In dialer, press *#*#4636#*#*
Go to 'Phone Information'
Swipe to this 'Set preferred network type'
Assuming it is 'WCDMA preferred', change it to 'GSM Auto (PRL)'

Screenshot (click to enlarge)
This setting will change its signal quality threshold, allowing it to switch from 3G to 2G 'earlier'. Use at your own risk though...
To address your question of automatically switching signal when you make a call, you might be able to hammer something out on Tasker if you are so inclined (I may give it a try later to satisfy my own curiosity xD).
One problem is forsee though, is that I believe it takes a bit of time to switch signals, so it might affect your call (or its quality).

Good answer! To you have any idea what PRL stands for?

Thanks! PRL stands for Preferred Roaming List.

I would say that the practical anwser is no. Although you could theoreticaly make an appliction/script that would swith to 2g before a cal, the script would have to wait a few seconds before making a call while the phone switches signals. This will make it no faster than manualy changing it before calling.
I suggest you put the 2g/3g widget near your dialer and press it before you enter the dialer, by the time you choose a contact the phone should be ready to call.
Another option has to do with rooting and voiding your warranty: flashing different modems(radio images) from xda. Some modems hold to signals much more aggresively (but use more battery).
The last and most obvious option (the one that I would choose in your place) is to just stay in 2g mode when in the city. Since the signal is so bad you drop calls I would guess that data speeds are slow and dropping too. You will also gain in battery life beacuse the phone won't be constantly searching and droping signals.
In any case I would consider changing the carrier if there is a better option where you live.

I think I've got the solution to your problem, rather our problem. I've been facing this issue for a couple of weeks now, during which I was not able to make any calls when my network mode is set as WCDMA or GSM/WCDMA auto.
I called up my network operator, and they were able to provide me a solution. In the call settings menu, inside Additional Settings, there is a setting for displaying the Caller ID in outgoing calls. I had changed this setting to 'Hide number', and that was the reason I wasn't able to make any calls in the WCDMA mode. After I changed it to 'Network default' or 'Show number', I was able to make calls even in the WCDMA mode. :)
Hope this helps you too.


text:
Will the WWE region RUU version work for my region?
The HTC Desire S RUU for Android 4.0 is now available in the HTCdev website (htcdev.com/devcenter/downloads).
Unfortunately (or is it?), region is set to (WWE - World Wide English)
My region is "038 - HTC India"
Will the WWE be compatible with my device or do I have to wait for a separate release for my region ?
I read somewhere that

WWE - World Wide English, this tells us it is meant for devices all
  over the world and is a generic update.

Is this true?

I have a question.
While installing HTC Deisre S ICS RUU was your bootloader status UNLOCK or LOCK?
Please also tell if you had S - ON or S - OFF.
Thanks.

My bootloader status was locked. and it was S-OFF.

Yes it is true. It also removes all the crap the carriers put on there as well.


text:
Using software keyboard in AOSP custom build emulator
I was finally able to build my own AOSP image, and I want to debug some problem with the software keyboard. However, the default emulator has a physical keyboard emulated, and I don't know how to disable it.
I know that the Android SDK allows disabling the keyboard when creating an AVD, but I was only able to create such AVDs for the platforms that come with the SDK, and not for my own build.

I found a solution. I don't know if it is the best place to do such a modification, but I was able to edit the default emulator skin at
development/tools/emulator/skins/HVGA/hardware.ini

And set hw.keyboard=no there.


text:
How to reset Wi-Fi settings?
Somehow Wi-Fi stopped connecting on my phone. It is not a hardware issue, as it does work when I perform a reset.
What files do I need to delete to get Wi-Fi back working? I don’t want to reset my phone.
If relevant, model is Sony Arc S, using CM9.

It shows „avoided low quality connection” or something like that.

I guess it said avoided poor Internet connection, right?

@Izzy translation differences.

Especially if your system language isn't set to English, yes :) But my link still points to the same issue you're having I think?

I removed /data/etc/wifi, /data/misc/dhcp and /data/misc/wifi and it worked.

For readers: I rejected an edit suggested by a new user for this post  who had this to say: "Don't do this. You will simply lose the wi-fi connection function altogether after reboot. This procedure will ruin your wi-fi connection for good and force you to hard reset your phone. Pure sabotage.". // I found it worthy to be mentioned so I posted a comment on the user's behalf.

@Firelord I  tried factory reset through setting. only deleted my user data...Wifi still not working

@kinokijuf It didn't work for me. My phone loses the WiFi connection at night (while charging) and never comes back automatically. This after getting a new modem/router with the new Fiber connection.

This has happened to me on several occasions, mostly when backing up/restoring Wifi settings using an app such as TitaniumBackup. Here's what I recommend, starting with the safest solutions:

First try going into the wifi settings and removing the problematic network. While you're there you might as well remove any other unused networks:
https://support.google.com/android-one/answer/2819519 > Change, add, or remove saved networks > Remove
If that doesn't work, the only remaining option that doesn't require root access is to delete all of your saved networks.
If you don't want to delete all of your saved networks and you have root access, the wifi network settings are kept in a text file (/data/misc/wifi/wpa_supplicant.conf), which can become corrupted. I've been able to fix problems by manually editing the file:

Turn off wifi (if you leave it on, the corrupted wifi settings may get rewritten)
Back up /data/misc/wifi/wpa_supplicant.conf
Edit /data/misc/wifi/wpa_supplicant.conf and remove any problematic networks.

If you've made it this far and you're still having problems, turn off your wifi and delete /data/misc/wifi/wpa_supplicant.conf. Of course this will delete all of your saved networks. The file will be recreated the next time you turn on your wifi.
As a last resort, you can delete /data/misc/wifi, but I don't recommend it. If you do decide to do this, make sure you back it up first. The folder should be recreated on reboot with default settings, then you'll need to set your networks up again.

How to set network up again from scratch

If you delete /data/misc/wifi and reboot, your phone should restore default files. Then you'll need to add your wireless networks back one by one.

I want reset my wifi, for that I removed /data/etc/wifi, /data/misc/dhcp and /data/misc/wifi. But then after WiFi stop working. I also try factory hard reset.

Those aren't the steps I recommended to reset your wifi ;) Restore those folders (I'm hoping you backed them up) and try the steps in my answer. If you didn't back up those folders, you may be able to find a download for the ROM you're using and extract them from there.

Yes I forgot to back up those folder. Can you tell me where I can found It. I have Moto G Dual Sim (xt1033)

does one need a rooted device to follow your steps ?

@Blackbelt Removing networks does not require root, and apparently neither does FXR WiFi fix and rescue. Accessing the /data folder does require root, at least on my phone.

on my nexus 5, adb shell ls /data returns opendir failed, Permission denied

@bmaupin No files are not created. After searching on XDA I found this http://forum.xda-developers.com/general/help/help-deleted-wrong-folders-wifi-anymore-t2887222 . It have same problem. I added files provide on this link. but It not fix my problem

@Blackbelt Yes, as I mentioned in my previous comment access to the /data folder requires root

What I understand  I need to follow the above 4 steps and then delete this directory /data/misc/wifi. Is it correct ? Thank you for response.

@bmaupin I followed your steps, but nothing happened.

Let us continue this discussion in chat.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How can I monitor the device battery consumption?
I need information about which applications or hardware features discharge the battery. Built-in Android option for this doesn't fit because not all devices have it. Also it would be a great advantage if the solution would send statistics via email.

"Is there an app for X?" questions are off-topc per FAQ. That's why I rephrased your question.

Related http://android.stackexchange.com/questions/10294/how-can-i-tell-what-is-really-draining-my-battery

As far as I know all android devices have these statistics. If for some reason a device doesn't have them (old android or wierd manufacturer), then there is a good chance that the app can't get the information either Apps can only access what android provides, if android doesn't record it they can't get it either - except root apps but if you go as far as rooting than you might as well install a rom that has android statistics. It is possible that you just can't find the android statistics beacuse they are not in the ussual place, try searching the phone a bit more.

@Mihic unfortunately, some of the most important battery stats (wakelocks and some more) have been removed with Gingerbread ;(

You could take a look at SystemPanel1 or System Tuner2. Both let you monitor your ressource consumption (not only battery), and (at least in their respective Pro versions) also offer to do so in background, collecting data for later evaluation. System Tuner2 also offers a bunch of nice widgets3 for your homescreen, if you need to watch things for a while.

EDIT:
After seeing Mihic's comment above, I noticed I missed another important point: While up to Froyo, "dialing" the magic number *#*#4636#*#* brought up a nice system menu (it still does that part) including many battery stats, the latter (battery stats) have been removed since Gingerbread. If your device is rooted, BetterBatteryStats can bring those back -- and do a great deal to help you identifying battery hogs:

These two screenshots show you the most important information BetterBatteryStats provides: Which apps used the most battery power while the device tried to sleep3 -- and those who kept the device awake4, preventing DeepSleep and such "PowerSave Mode". Just helped me getting 20% more battery out of my device ;)


text:
Wi-Fi and 3G connections auto enable after upgrade to ICS 4.0.3
Since I've upgraded to 4.0.3 my rooted Samsung Galaxy S2, Wi-Fi and/or 3G connections auto enable/disable.
I've found a similar question asked here: Wi-fi is auto-enabling
I'd be grateful if someone could find which of my apps is handling the connection:
http://www.appbrain.com/user/jasmines77/phone

You've got quite a few apps in that list which can turn your connections on and off, and make other changes to your network settings.
If you have a look at the permissions the app has (either in the apps list on your phone, or by looking it up in the Play Store), you can see these permissions listed, for example if you go to the Battery Defender-Battery Saver apps Play Store Page, you can click the Permissions tab at the top of the description and amongst its permissions list you can see these:

change/intercept network settings and traffic Allows the app to change
  network settings and to intercept and inspect all network traffic, for
  example to change the proxy and port of any APN. Malicious apps may
  monitor, redirect, or modify network packets without your knowledge.
change Wi-Fi state Allows the app to connect to and disconnect from
  Wi-Fi access points, and to make changes to configured Wi-Fi networks.
change network connectivity Allows the app to change the state of
  network connectivity. Bluetooth administration Allows the app to
  configure the local Bluetooth tablet, and to discover and pair with
  remote devices. Allows the app to configure the local Bluetooth phone,
  and to discover and pair with remote devices.

The easiest way to find the culprit would be to uninstall one of these apps, use your phone for a day or two and see if the problem happens. If your phone works ok without the app installed, then you've found the problem app. Whereas if your phone still has the problem, you can re-install the app you've removed and uninstall another one for a day or two.
It could also be that two or more apps are interacting or interfering with each other and causing the problem (one app may be trying to switch your wifi off to save power while another switches it on to do something else). If this is happening then the best way to work out which app is causing the problem would be to uninstall all of the apps that could possibly be causing the problem, then re-install them one at a time over a period of a few days, and watch to see when the problem starts happening again.
The easiest place for you to see all of the apps on your phone and click throught to see their permission is probably by going to your My Apps page in the Play Store where it shows all of your installed apps and you can quickly click through to the app's description and permissions pages.
Out of your apps list, the apps that look most likely to be causing the problem are these, but I haven't been through the permissions your apps are using one by one so it could be another that is causing the problems:

Battery Defender-Battery Saver
Fastweb.Alice.WiFi.Recovery
Fastweb Wi-Fi Decripter
Phono
APN-Switch
Wpa Tester

I can't find anywhere this "permissions tab"...

Ok, found!
I'll do as you suggested. But, is there an app that can do something like "no one can auto enable/disable wifi and data connection if they're manually setted as disabled"?

Unless you're rooted I don't think there's any way that one app can stop another app from changing settings. They all have the same level of access to the same settings, they'd just end up continuously fighting each other turning the same settings on and off.

My phone is rooted, as I said in the question.

I found out the package is Battery Defender. Strange, but with 2.3 it didn't change network state automatically...

Sprint added a new Connections Optimizer in the latest release. To disable this feature, go to: Settings > More > Mobile Networks > Connections optimizer > uncheck the box; mine says Sprint Connections Optimizer.


text:
Is there a way to trigger the menu in Play Books without a menu button?
On my HTC One X there is no menu button.  Once I have selected a book and started reading all the menus disappear (for changing font size or scrolling through the book), the only way I can get them to re-appear is to switch out of the Play Books application and then switch back, the menu then appears for a few seconds.  Is there an easier way to trigger the menu to appear when I don't have a menu button?

Tap anywhere on the page and the menu reappears.


text:
Find my Android from an App

Possible Duplicate:
An app to locate my Android device around the house?

I'm looking for a "find my phone" app that can be activated from another app instead of a webpage.
The scenario is simple, my wife misplaces her android phone frequently. I'd like to be able to quickly launch an app from my android phone or tablet and activate a find me siren on her device. So far all of the apps I've found require you to long into a bloated webpage first.
Edit: It should work in reverse too, so I can find my tablet (which does not have a phone number of course) from her phone.

It's not a exact duplicate of http://android.stackexchange.com/questions/2603/an-app-to-locate-my-android-device-around-the-house because I am specifically looking for an app that works from app to app (like apple's find my device app) without needing one of the devices to be a phone or needing to visit a website.

"Find My Phone Siren" does what I was looking for (app to app siren). It also uses google to sign in so you don't need yet another account. Only drawback is that it costs $1.97.

If that's your scenario ... just call her on her android phone? Maybe she can put you a siren as your personal ringtone.

Phoning Pigeon
You don't need to install it, but she does. Set your phone number to be one of the activating phone numbers. When you call her phone two consecutive times it takes the phone out of silent mode, making it then easy to call it a third time so it can be found.

Prey is another possibility. It goes beyond the world of Android, even.
You can use the Prey app on your device to monitor your other devices. Technically, though, this will fail one of your criteria as it really just launches the Prey website. (It's not, however, "bloated".)


text:
What is the average maximum file size (by default) for incoming email on the Android?
I am trying to send an email marketing campaign and my email file size is 32K (HTML markup only).
When I open it in the native email client on my Android device (Sprint HTC running Gingerbread 2.3.5) it gets truncated with a message that says "Download Remaining 12K". The button is way below the fold so it's easily missed and 1/2 of my email doesn't even show up in the reader.
I found a setting in my (POP) email account under:
menu → more → settings → Send & Receive → Mail size limit

But the default was set to 25K. That seems EXTREMELY low. I assume this is to keep the total downloads to a minimum since most people don't clean out their inboxes very often.
However, is this the new standard? That emails need to be kept at a minimum of 25K? I am wondering how many other devices running the Android OS are configured this way by default and if I should re-think all of my email marketing campaigns moving forward.
I checked my Kindle Fire and I don't see an option to change the incoming file size and my email does not get truncated on that device.
I am hoping to learn:

Is this an Android version specific? (ie Gingerbread)
Is this a configuration one makes when setting up a device with the Android OS regardless of the version? Meaning every device is different?
How many devices are set with a max file size this low, what's the standard setting out of the box?

Is this an Android version specific? (ie Gingerbread)

No, this has nothing to do with the Android version, I have several close to me and none have such option. It's probably a carrier-specific setting on the stock app.
bahamat answer easily justifies the reason as to why carriers would prefer such low limitations and how this benefits users.

Is this a configuration one makes when setting up a device with the Android OS regardless of the version? Meaning every device is different?

It may vary depending on the device and carrier, but what usual happens with settings like this is that they are silently applied, but as you've found out, the user can update the value to a more desired one.

How many devices are set with a max file size this low, what's the standard setting out of the box?

There's no standard about the size for an email that goes this low. What actually exists is a general conception regarding the emails maximum size that accounts for the sum of the message's body and the encoded attachment.
Since a message will often pass through several mail transfer agents to reach the recipient, and since most of them have to cache messages for a certain period of time, this brings storage issues that need to be addressed. Since the early days, 10Mb was considered to be more than acceptable for an email.
You can read all about this at Wikipedia.

I see no such setting on my Android 4 tablet either (stock email app). But I don't have a mobile data contract.

This is done to conserve battery life. Downloaded data means active radios, which means electricity drawn, which means battery drained.
Your one email, might be fine. But people often get hundreds of messages per day. If every message I got were that size and my phone downloaded the full content of each one the battery would be dead very quickly.
If it's an email that is important that I need to read it's probably going to be only a few lines. Messages that are large are usually things I don't need while I'm at the grocery store or interrupting me while I get a haircut. It can wait until I get back to my desk.
Conversely, without a reasonably small limit you could DoS someone by sending them several large messages, forcing their phone to download all of that data. You can both chew up their data limit and drain their battery.

Also think of those attachments -- just imagine that .bmp Screenshot embedded in some MS Word document attached to some HTML mail, as it comes from some Windows users... =:-0 Especially on smaller devices, people could run out of storage quite fast with those.

Yeah I understand your comments, seems you are against email marketing in general.  Though I don't blame you, email marketing is a multi-billion dollar industry because people respond to discounts and special offers via email. Our list is legitimate and optional. If this size limitation is the new standard due to the popularity of the Android and device file size limitations it will be good to know.

...and to save mobile data usage as well I would have thought?

@marcy23 I'm not against it in general. I quickly unsubscribe from anything I don't want. But even for things I do want any email marketing can wait until I'm at my desk and doesn't need my attention while at the deli.


text:
How is it that Rooting is always possible?
Having spent some time researching what actually goes behind rooting an Android phone, the main reason that leads to the ability root is an inherent vulnerability on the Linux kernel that leads to the exploit and getting the 'su' binary to be installed.
My question is: How come the OS is not hardened yet? Who is responsible? This is a Linux OS we're talking about, which is considered "secure". Yet, people always find a way to get in and root devices.

Linux isn't exempt from privilege escalation exploits. Code has bugs, and even desktop Linux exploits get discovered periodically. What kind of answer are you looking for here?

Compared to a Desktop flavor of Linux, wouldn't you say that the linux versions used for android phones are more susceptible to priv-esc exploits ? Also, I am not aware of ALL the exploits out there that enable privilege escalation.. If you could shed some light on whether these exploits are dense around some specific services/processes running as root already, that would be helpful for me in understanding why people have not been successful in hardening the OS enough to prevent this.

Not really, no. A quick Google search shows sources having a record of at least 200+ kernel vulns found in Linux (since the data started being recorded). The most recent one I see on this site has activity about 2 weeks old (the "Bypass" one). Android ones may perhaps linger longer since carriers are slow to update, but the fundamental answer to your question still seems to be "code has bugs, some are exploitable". Vulns may exist outside the kernel as well.

Rooting is not always possible.

I'm not sure about all phones, but isn't rooting possible because of the recovery mode built in?  To me, it seems the recovery mode is the analog to a PC Bios.  The fact that you can install Knoppix on a PC and have access to the machine isn't really an indictment of Linux security, but a BIOS that isn't constrained (and really doesn't need to be for most purposes).

it's not really the "linux OS", it is the linux kernel. The vulnerability is not necessarily in the OS, or the kernel. There are different exploits that are used. I remember some device being able to load any zip file in the recovery if it was "pre-pended" by a signed zip file. So they used a signed zip and added an unsigned zip to the end of the file. I think this exploit was for the Original Droid.
No software is 100% bug free. if it was, then even a mature product like Windows would not have to do security patch releases every month.
No matter how smart the developer is, or thinks he is, more likely than not, there is probably someone smarter (or at least they may know more about exploiting code).
When exploits are discovered, Google (or the manufacturer) has (usually) patched them. But since a lot of the devices don't receive updates very often, the exploit remains available.

Ryan is right. Many exploits don't exploit the kernel but some daemon software which runs as root.

Well, then ... its the age old answer that if someone builds something, there will ALWAYS be someone who can break it :) Although, it is still not tangible to me that, these big organizations, (Google, as well device manufacturers) are not capable of preventing this. Well, thats just a personal thought !

@asudhak You really think that? I am a software developer for a company and I can tell you, we had a lot of bugs that were found by our QA, but after our last release there were bugs that were reported in production. Also, like I said, if there were not bugs, then Microsoft would not have to have Patch Tuesday.

I have to agree with Ryan - you seem to be equating the size of a company with some kind of infallibility. Until the perfect human being is born bugs will always exist, as they inherently stem from programming mistakes (and everyone, no matter how skilled they are at some given task, will make mistakes).

@RyanConrad - actually, in some phones exploits are NOT being fixed. For instance, the last DROID3 update I got did NOT patch the hole used to root the phones, so I had no problem (and no wait) after the update to re-root my phone.

@MichaelKohne that is true, i changed my answer to reflect that they usually patch them.

Rooting is always possible because rooting, a.k.a. user switching, a.k.a. setuid, is one of the most fundamental feature of Unix and Linux.
For many devices, rooting does not actually involve any security exploits; rooting methods that requires flashing a file through the bootloader and/or ROM updater utility (e.g. Samsung's Odin, HTC's RUU, etc) are not a security breach, as they are legitimate features specifically designed for flashing ROMs. A large number of devices are rooted in this way.
On those devices, rooting are possible because the manufacturers actually provides the facility for it. They certainly do not make rooting an easy one-click process (for good reasons; most people who wanted to root do not actually need root), but they do provide an officially sanctioned method to root under the condition that your warranty voids (official rooting method often leaves a permanent mark to let authorized technicians know if a phone had been rooted).
There are not that many quite a few rooting methods that actually uses a security exploits (e.g. rageagainstthecage, zergRush, gingerbreak, etc), and these exploits are often repackaged into a form that are much easier to use for the masses (e.g. SuperOneClick). Rooting through exploits are often hit and miss since they get patched fairly quickly for devices that are still within update period; but sometimes they provide advantages such as avoiding triggering the warranty marking.
The issue becomes a little complicated when the tech news and blogs reported when a developer wrote tutorials or tools to ease up legitimate rooting process. They often do not understand the nature of the rooting method, and certainly I have never seen them distinguish between legitimate rooting methods and rooting through security exploits, worse they also often report the repackaging of existing exploit and the porting of an existing exploit to a new device as if they're a totally different exploits. Thus the confusion that makes it appear that Android seems to have more exploits than it really does.


text:
Is it possible to add home screens to a Sony Xperia?
I've an Xperia Mini/Pro. I would like to add another home screen. At the moment there are 5 different home screen. Is it possible to add more to the Xperia launcher  ?
I don't want to change launcher, i find Xperia stock launcher very ..comfortable with the function 'corners' .
Thanks

this might help:
http://forum.xda-developers.com/showthread.php?t=1138791
you would need to have your phone rooted for this hack. It is for Xperia Play, but would work on other Xperias, as I've done this before on my Xperia Arc S successfully.

Just swap your launcher.You can use go launcher


text:
Escape key on bluetooth keyboard
I have a bluetooth keyboard connected and working with my Android phone, but with one annoyance:  the escape key does not appear to do anything.  This is particularly problematic for a vi user like me.
Is there a way to fix it so the escape key works, at least in the terminal application?  Is /system/usr/keylayout/qwerty.kl a potential approach or is this something harder?
Hardware specifics:

SMK-LINK Bluetooth compact keyboard, Model VP6630
Android Dev Phone 1 with Cyanogenmod 6.1

The solution that has worked for me is:
Upgrade to a Nexus S running Cyanogenmod 10.

:D that's not a solution..

@Sachin: Yeah, no argument there.  And yet, I can now use vi. ;)

Try this, it worked for me: Ctrl + [

With that, I get a [ character.  With Ctrl+C, I get a c character.  So Ctrl may not be working either.

I use a zagg BT kbd. I have used others, but not with this app.
I use the External Keyboard Pro app from the Play Store to reassign keys. My one kvetch, and it is a serious one, is that I cannot reassign the 'Home' key that takes me back to the 'home screen' with it. And I hate that. I don't want any sort of magical keys on my kbd. That's why I'm using a kbd. And I don't think there are that many people using an external kbd with an android device who are not professional typists to some degree. Users who hunt & peck are going to be fine with the OSK. And the rest of us are going to hate life everytime we hit the 'Home' key and exit our apps. That being said, I have the 'Return' key and the F2/Mic-ON key mapped to ESC on my ASUS 10.1 tab.
It's sufficient to keep me from plucking out my eyes and warning kings of dire times ahead, or wandering around in the day time shining a lantern in poeple's faces. This is a good thing, but there must be a way to make things 'better'. The app isn't awesome, but it works and it'll get you close to what you want. I am 85% happy. I found it via:
http://www.howtogeek.com/175267/the-htg-guide-to-using-a-bluetooth-keyboard-with-your-android-device/

What has this to do with the question?

Switch on keybaord and before typing press Fn + Q at same time to set keyboard in iOS mode. ( Fn + E = Windows mode ) ( Fn + W = Android mode ) ( Above works on my Arteck HB030B keyboard )


text:
How do I stream internal audio from Windows 7 to Android for free?
The audio jack is busted so I want to stream the internal sound to my Android phone and use my headset on that phone instead. No, not just music files. I mean the whole internal sound coming from the laptop. That includes error sounds, clicking sounds (if any) the recycle bin being emptied, etc. Isn't there anything other than Airfoil that can do this?

SoundWire Free appears to do this...but the free version has limitations:

The free version of the application identifies itself by voice every 30 minutes and displays ads. The full version can handle up to 10 connections at the same time, and has no ads or voice identification. Please consider purchasing the full version of SoundWire if you'd like to support the developer.

Edit to add:
That page has SpeakerShare in the "others viewed" links, which appears to be an open source app to do the same thing. The lone comment mentions it's delayed (likely due to buffering/network latency), but things like videos can be worked around (VLC offers an audio synchronization option, for example).

SoundWire seemed to work okay. Thanks! :) I hope there's an mac version too.


text:
Non default browser for specific web page
I have bought my 8 year old a Nexus 7 (lucky boy!). As some of you may know Flash is not available for Jelly Bean so I had to do a bit of a hack using Dolphin browser so he can go to certain Flash powered websites (moshimonsters.com). I want the default browser to still be Chrome so I can use Funamo Parental Control to monitor his web use. Is it possible to create a shortcut/widget/bookmark to the site in question but specifying Dolphin as the browser?
Thanks in advance.

This related question might have a solution: http://android.stackexchange.com/questions/8674/can-i-set-the-default-browser-differently-for-different-websites

See MacroDroid or Tasker heading here: How do I easily create an image/button on my Android home screen which links to a website? You would get an idea how to make a shortcut.

It is doable, but you cannot do this without 3rd party application, because by default shortcuts or bookmarks (as available in the system features) do not hold such information. I am not able to name any app that would do this, as I never personally needed this, but I am certain they do exist as it is not technically complicated, as most likely you are not the only one with such needs. All it needs to be done is to create a shortcut, which would launch this 3rd party app being a "proxy" and said app would then call explicitly specified application handing your URL to it.

I am not sure about a shortcut but a simple widget should be good enough for your needs. While I have not tried this myself here is how I would start:

Write a simple widget to put on the home screen. Be prepared to send in a new intent as soon as the widget is started up
Open the Dolphin browser while having your device connected to ADB. Notice the intent that is being sent by the ActivityManager when starting the browser.
In your app create a new Intent() and fill it up with the specific component/class name of Dolphin browser and pass in the URL of the site you want to open as data.
I think the tricky part will be detecting the exact class and component name used by Dolphin browser. The rest of it should be straight forward (I think).