text:
Is there an offline maps application for Android?
Google Maps is great, but unless you have an unlimited data plan, it's going to cost a lot downloading all that data all the time.
Do you know of any (preferably free) good offline map application for Android? Ideally one that can do navigation (preferably with voice) and in my location (Sydney, Australia).

Note: Google now provides offline maps.

Hmmm... How to use Google Navigator with that option of offline maps?

Yah, there is a terrific one, called Maverick Lite.
Off-road GPS navigator with OSM, Google and Bing maps. Support for offline maps & multi-touch. Build-in compass, timer and trip computer. Share your current or planned location. Record and upload tracks to GPSies.com. FourSquare support.
And it's free. the paid version costs about $4

I've been using AndNav2 with offline maps and using "show trace" to show where I've been.  I tried Maverick the other day and it's so much better.  I migrated all my maps to Maverick format and deleted AndNav.  :D

Maverick is no longer able to download Google Maps, due to prohibition by Google.  Happened to Mobile Atlas Creator, too (though older versions of each still work...)  Of course the other company's maps don't have nearly as much detail about places. :(

Oh, nevermind. ;)

Hey, it's on Google Play!!! https://play.google.com/store/apps/details?id=com.codesector.maverick.lite&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5jb2Rlc2VjdG9yLm1hdmVyaWNrLmxpdGUiXQ..

There are quite a few that use openstreetmap data. This is a review of MapDroyd and BigPlanet and the openstreetmap wiki has a comparison of android clients - look in the first column and look for "online + offline".

OSM data is really crappy in the US compared to Google Maps.  In Europe OSM is much better.

In the near future Google Maps for Mobile 5.0 will be released, whose new features include offline storage of area you visit frequently.

update: it's been released

It still can't do offline navigation. It caches the maps, but doesn't plan routes.

There is a hack for Google Maps that allows for cached offline maps.  It can only do navigation in the normal way while connected to the Internet though.
Brut Google Maps

I like Waze.  It is free, works offline (synchs when you're connected to the internet in some way other than 3G).
Its main advantage is feedback from users.  It provides live traffic updates from other Waze users.
You can find it here:
http://www.waze.com/download/android_download/

Hummm. Nice to know that Waze can work offline :) But in some way can it save maps from some cities to navigate some days without internet???

You can created offline version of Google Maps with on your PC and use it with RMaps application on Android. Works very well for me.
You can download RMaps from Market: https://market.android.com/details?id=com.robert.maps&hl=en
And here is a guide on creating offline maps: http://xslab.com/2011/03/rmaps-offline-navigation-tool-for-android/

Recently, there is a new option: Sygic. This is one of the most important companies in the development of navigation software for mobiles. TomTom has also announced that will launch an Android application in the next months.

but paid, or not?

NavFree is free and allows you to download maps for offline navigation.

I used it, but every time I put it on backgroud it closes so I have to remake my route...

I use Custom Maps a lot myself, but you need to put a map image on your mobile yourself and match a few points up with Google Maps to make it work off-line. I often grab screenshots off NZ Topo Map for taking bush with me using Custom Maps.

You wrote the latter app, right? Could you add a disclaimer to the answer? See May I promote products or websites I am affiliated with here?

A very good navigator is MapFactor Navigator Free. As the name suggests, it's free (as in "free beer", not "free speech") and it uses Open Street Maps (free as in "free speech and beer"), directly downloadable by the application menu.
As of today it's still in beta, but I tried it and it works well, comparable to if not better than Sygic, which I was using before.
MapFactor Navigator is on Google play.

OsmAnd is free popular Offline maps for Android.

Unlike other apps, OsmAnd uses Vector based (not pixel) maps, which allows it to have crisp and clear viewing at ANY zoom level.
Includes POIs (points of interest), so you can search and locate the nearest restaurant, gas station, or recreational park.
Point to any location on the map and save it as a favorite.
Offline directional navigation to: POIs, favorites, or road intersections.
Optional extra app for voice navigation that speaks to you.
While navigating to a destination, it displays: your speed, remaining distance, and estimated time of arrival.
Alerts for speed limits and speed cameras.
Ability to avoid: toll roads, ferries, unpaved roads, motorways.
Supports Car, Bicycle, and Walking modes.
Supports dark color night viewing.
Automatic zoom based on speed.
Have the map stationary with north up, rotate with the compass, or have it rotate in the direction you are traveling.
Record (track) a path on the map with GPX routes.
A plugin to save where you parked your car, and alert you when your parking time is about to expire.
A growing number of free Plugins that are being contributed by the community every day.
Supports Many languages. Here are just a few: English, Dutch, French, German, Italian, Japanese, Korean, Portuguese, Russian, Vietnamese.

The best part is OsmAnd is GPL Open Source.
You can help support this project buy purchasing the OsmAnd+ version. This gives you access to download an unlimited number of maps, and access to Wikipedia sight seeing POIs. This app is well worth over double the price they are asking.
OsmAnd


text:
Sleep Tracking App connected with google health
Do you know if there's an app :

Dedicated to sleep tracking
Connected with Google Health

I'm interested in such an application, so if you know one, please share it w/ me.
Thanks.
Rob

Google is discontinuing Google Health so you may want to look for a different option

There's Sleep Bot Tracker Log and Sleep Logger.  They don't seem to directly connect to Google Health, but they let you export data (one does CSV, the other doesn't specify).

I knew both of these apps, but unfortunately, none of the android apps related to sleep seems to connect to google health

I've never used Google Health.  Will it not let you import data via csv?

Huge +1 for mentioning Sleep Bot... so interesting to look at sleep data.

I'm developing an open-source app called ElectricSleep, and it will eventually have this sort of functionality. It is getting close to going into beta.
project website: http://code.google.com/p/electricsleep/

great ! I'll have a look tonight

the beta launched yesterday. you need android 2.2 and an accelerometer. search for "electricsleep" in the market and help test it so I can push out cooler features soon!

source: Stack Exchange

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

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

sort: votes


text:
Disabling the 5 GhZ wifi band on the HTC One X
I had some wifi connection dropping issues with my One X. I don't appear to have the "you're holding it wrong" issue (the squeeze test comes out negative), but some googling found that there seem to be issues with 5 GhZ WiFi bands as well.
It eventually turned out to be some sort of known incompatibility between the One X and my router's firmware (a router update fixed it), but in the process of testing, I tried to disable 5 GhZ WiFi. However I had to disable the 5 GhZ band on my WiFi router (and thus disable it for all my devices) because I couldn't find a way to disable it on the phone.
A posting in the thread above contains

In the WiFi settings, under the menu, "WiFi Network Bands", select "2.4 GHz only".

However I cannot find such a setting. Am I just blind? Or is there at least another way to disable 5 GhZ on a (non-branded, non-rooted) One X?

Where exactly are you looking? I have what appears to be the same option on my Galaxy Nexus if I go into the Wi-Fi settings, press the overflow menu (the "three dots" button) and select "Advanced". It's listed as "Wi-Fi frequency band". Maybe getting a screenshot of what you see in your settings would be useful if you can do it (does Volume Down + Power work on the One X?).

@eldarerathis Yes, screenshot works on One X (didn't that finally make it into a standard Android feature?). Anyway, I did check there; this is all I see behind the advanced wifi settings: https://i.sstatic.net/NCQbE.png

Yes, it's standard in ICS, but I don't know if some manufacturers decided to move/alter it. Maybe the setting that others are seeing is due to carrier/regional differences in firmware or something. That would be fairly annoying if it's the case.

After some reading it appears that HTC has released an update to fix some Wi-Fi issues, but I'm not sure if it will necessarily fix your problem.

Can you please identify what you mean by "non-branded, non-rooted"...? Where/how did you get this phone? What network is it on? What possible version of this phone do you have that does not have these settings?

@Wartickler non-branded = I didn't get it from a carrier, I just bought it at the store (I don't know about the US, but here in Germany you don't have to get your phone from your carrier). non-rooted = I didn't root it.

Right, sorry (:

I assume this was just a bug; this option re-appeared in the "Advanced" Wi-Fi settings after one of the OTA updates.

Based on this review of the Wi-fi capabilities of the HTC One X from anandtech it would appear that the option is there. Look two-thirds of the way down on the site and see this image:
(Click image to enlarge; image taken from AnandTech)

The international One X doesn't have that setting (I'm looking at mine right now). It may be that the US/LTE version doesn't have it either.

Can you resize that image? :)

Hmmm...it comes from the website. I'll see what I can do (:

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


text:
Change default IMAP folders
On my HTC Evo 3D, my IMAP email account is using Trash folder for it's deleted items. My web mail AND my Windows Live Mail on my PC, using IMAP, is using Deleted Items folder. Can I change my phone to use Deleted Items?
This would also apply to sent items, it appears my phone uses Sent and everything else uses Sent Items.

I'd recommend switching to K-9 Mail if the default Email app can't handle this.
In K-9 Mail, once you've set up your account, long-press it and select Account settings -> Folders. On this page you can change the Drafts folder, Sent folder, Spam folder and Trash folder to your preferred ones.

tried tthat app, didn't like it.. but if the solution is a tthird party app, then I guess I'm stuck.

Is there any hope for us who cannot use this third-party application? (Nexus 7 does not have any alternative clients.)


text:
How to pause a movie using Video Player (Galaxy S)?
Galaxy-S (Vibrant), Android 2.1
I was watching Avatar the other day and paused it.  When I played it again later, it restarted at the beginning.  Is it possible to resume play from where I left off, or bookmark a position or something?  Or is there a different/better player that does this?  Thanks!

I'd change the main question to tell its for the Galaxy S. The default player should remember where you was as long as you don't close it. I don't have any experience with other players.

My T-Mobile Vibrant (Samsung Galaxy S) just received a OTA update from T959UVJFD to T959UVJI6. It appears that this may have fixed the problem you are describing.  It no longer is a problem for me after this update was installed.  It is also mentioned at the xda-developers site along with other changes that were included in the update.

I am using the default movies and player that came with my Galaxy S (AT*T Captivate) without this error. It may be possible that there was a timeout (how long did you pause for?).
You may also want to try the doubletwist video player to see if it resolves your problem.

I have the same issue with my Samsung Vibrant.  I just started dropping bookmarks before "pausing" and resuming from them.

How do you drop a bookmark?

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


text:
Looking for a Text Editor that doesn't truncate a file prematurely
I'm trying to find a decent text editor.  I've tried the following apps (in order of preference): TxtPad Lite, Scribtor Notes, AmbleLink Notepad
All of them truncate the text file at 9025 bytes.  The file is fully there, I've verified it with cat from within Terminal Emulator.  Is it a limitation of whatever common text display widget they use or something?  It's really annoying...
EDIT: After trying AK Notepad I got to thinking that maybe it was something with the text files themselves (this is happening on multiple files).  Each paragraph of text was a single line and each file had Unix-style line endings (line feeds).  I first changed it so that each paragraph was formatted with LFs in all the right places; each text editor displayed exactly 1 more character than previous, in terms of the text (it was many more characters in terms of bytes, though, given all of the added LFs.  Next I tried converting from LF to CR/LF (DOS-style endings).  Now I got a dozen more characters of text (which was, again, many more bytes) but they all end at exactly the same spot.  I'm really at a loss to explain it.
EDIT: I found and tried Amoeba and it has no problem with the file; it displays the original file (and the other versions) with no problems.  But the interface is not that great (in particular, scrolling is exceptionally tedious).  Any ideas out there?

What phone are you trying this on?

Galaxy-S (Vibrant, if it matters)

Try AK Notepad.  I'm not sure what the upper limit is, but I know I was able to create a 30kb file in there no problem.

How bizarre -- I'm having the same issue as before, truncating at exactly the same place.


text:
Contact account association with non-HTC phones?
My HTC legend give me the ability to associate my contacts' various accounts in the People application (ie. email, Facebook, Twitter...). Is this a HTC only feature? If it is, is there an alternative for non-HTC phones?

The people application itself is an HTC exclusive, but merged contacts from multiple sources (GMail, Exchange, Twitter, Facebook, SIM, carrier phonebook, etc) is a standard Android feature for 2.x (maybe earlier). By default the system tries to intelligently merge identically named contacts, but you can manually add/remove contacts from the merged identities.


text:
Why is the HTC Legend Froyo ROM labelled as being for Vodafone?
I am currently using Optus and would like to upgrade to this ROM, but it is labelled as being a Vodafone ROM. Is this important? Is the ROM locked to the network or are there other issues it may cause if I installed it. Would this be any different from buying a phone from Vodafone then switching networks?

Where do you live and what carrier handles your cell service?

@JonnyP: Australia and using Optus

I've done sort of the reverse -- installed a US T-Mobile ROM to my T-Mobile phone while I had it on the Canadian Rogers network.  Since the Legend is also a GSM phone like my Vibrant, I would expect yours to work just as well as mine did.  Just make sure you have your SIM card in for the whole process.

"and if you back up your apps/settings (e.g. with Titanium Backup) don't restore any data for the system apps, which might overwrite your current network's data with Vodafone data." If I backup, then install a Vodafone ROM, then restore, wouldn't my Optus settings be saved?

Good point, I was thinking too much about my case, where I switched carriers and ROMs at the same time.


text:
Can my Android device become - remotely and without my permission - a wiretap and get used as surveillance device?
I saw the following article:

An article in the Financial Times last year said mobile providers can
  "remotely install a piece of software on to any handset, without the
  owner's knowledge, which will activate the microphone even when its
  owner is not making a call.

Is this possible one Android phones and is there a way to block it?

Ahh, Schneier on Security,  Unvy gb gur Xvat. :-)
tl;dr
It may be possible, no one can say for sure. And since no one knows if it's possible you can't block it, because you don't know what and therefore how to block.
But first, let use investigate the statement step by step:
Note that the Article is from 2006

...said mobile providers can...

Google is certainly able to do so, if you are using a Google Services enabled device (usually the ones with "by Google" on the back). But basically every hardware/software manufacturer, whose parts are placed within smartphone (or traditional mobile phone), is able to install backdoors in his products, which could by used third parties to manipulate the device. Either because they bought this access or because the manufacturer is forced to, for example by a (secret) government regulation.

..."remotely install a piece of software on to any handset,..

That's possible and every time you install an app over the Play Store web interface you use this technique.

..without the owner's knowledge,..

Usually you will see visual feedback about the installation process, at least until it's running. But the notification about the new app stays in the notification bar. But no one can rule out that there is a silent install method too.

..which will activate the microphone even when its owner is not making a call...

Android apps are able to activiate the microphone if they have the permission to to so. But if the app came with a silent install method, who knows if the permission for the microphone was also silently given?
And now, how can I protect my privacy?
As soon as you buy a piece of hardware/software without having the ability to verify the hardware and software components for surveillance backdoors, you are lost.
But there are alternatives. There have been attempts to create open source hardware and software for smartphones. Therefore allowing you to review the components for unwanted modules. See for example Opoenmoko.

@RichardBorcsik Did I exclude the radio firmware in my answer anywhere? :-)

@RichardBorcsik Just edited my post to make clear that Google isn't the only one who's involved.

The above answer applies not only to Android phones, but pretty much to every piece of proprietary connected hardware.  PCs, routers, firewalls, and other devices that can connect to the Internet can potentially be avenues for attack.

To answer this question:

Is this possible one Android phones and is there a way to block it?

Recently, as far back as the start of this year, there was uproar over a small piece of software which was hidden in certain handsets, and was able to monitor everything - the infamous Carrier-IQ. A bit about the Carrier-IQ as quoted from wikipedia

It provides diagnostic analysis of smartphones to the wireless
  industry. The company says that its software is deployed in over 150
  million devices worldwide.

Thing is, no one really know for certain if they actually did, as the security world got "excited" about it and started to slam-back on the manufacturers - Apple, HTC, Samsung, Sony, to name but a few. And exposed the ruse behind it, all of a sudden that hype fed its way into the Android world, and guess what happened - an app appeared on the Google Play Store, Carrier-IQ detector.
What I was emphasizing, is how the paranoia made its way into the norms of human emotions - yes, a lot of people were really mad and demanded to know - was there a breach of privacy?
By the way, if you look on the main Carrier-IQ site here, there's a ticker that states as of now, 147,918,175 handsets deployed.... (Ok, am not really sure if they are trolling us with that ticker but questionable as it was stated on the wikipedia that is "deployed in over 150million devices" heck it aint even there!!!)
Yes it is quite possible that there are back-doors available to do just that kind of thing, and is commonly associated with stock ROMs straight from the factory! Zte had one, and was reported a while ago and its publicly available on pastebin. For the sake of historical information, I'll quote it here in case it gets lost.

The ZTE Score M is an Android 2.3.4 (Gingerbread) phone available in
  the United States on MetroPCS, made by Chinese telecom ZTE
  Corporation.
There is a setuid-root application at /system/bin/sync_agent that
  serves no function besides providing a root shell backdoor on the
  device.  Just give the magic, hard-coded password to get a root shell:
$ sync_agent ztex1609523
id uid=0(root) gid=0(root)
Nice backdoor, ZTE.

It does show one thing and one thing alone, Stock ROMs! All too often people can be naive in thinking that just because its "Stock ROM", it does its job.
Now, not to induce fear or paranoia into anyone, which I certainly would not wish to do so, it helps to have a cool collected thoughts about this.
The dose of reality will hit home, once you realize how, custom ROMs have a better advantage over stock ROMs, they are compiled from source code and is publicly available, such as CyanogenMod, AOSP, CAF, AOKP; rest assured, you will be equally better off with those ROMs in the long term.
Why? For the most part those custom ROMs would be rooted anyway, which will enable you as a user, to have a tight rein on the handset in the way you want it, not some fancy-schmancy stock skin on top of the ROM, such as HTC Sense, Samsung TouchWiz, Sony TimeScape etc. And if the developer of said ROM is trusted to be good, i.e. good community feedback, then yes you would be pretty safe.
What you can do to re-inforce the belief that a custom ROM is better than stock any day is this, knowing that the ROM is rooted, you can use Droidwall/Hi-Surfing, or another type of firewall, to block access to those "sneaky" apps like that. That will put in a level of assurance, but having said that, its not about justifying why having a rooted ROM in the first place, rather its, to empower yourself over the handset and use it in the way you want. If you don't like an app, uninstall it, if an app requires root - then so be it.
It does make you think and ponder for a bit in why carriers would rather have you to be stuck with a stock ROM, and a locked bootloader i.e. "rooting will void the warranty", "unlock the bootloader - you're on your own", but there's always two sides to the same coin, if anyone can get their hands on a handset, and unlock the bootloader, it will simply factory reset and wipe the data upon unlocking and reboot!
So you can see how, from a security viewpoint in what's going on and the decisions involved. I know, when I made a ROM for Zte Blade, I was trusting that the source does not have any malicious code, well, it was coming from AOSP source on google and yes, its rooted, and users feedback is good.
There's a lot of thought in what was said, and yes, that kind of thing can be blocked - If you want to be really secure - block the following under Droidwall here,

Download Manager, Downloads, DRM protected content storage, Media Storage.
Google Services Framework, Network Location, Google Calendar Sync, Google Contacts Sync.
And finally, block the Linux kernel as well.

With those criteria selected, you will most certainly not be able to download remotely nor sync either. Also, pay attention to the permissions that is asked for by the app on Google Play store, be prudent and you will have nothing to fear.

Technically, its possible. You can visualize it with Play Store scene: Play Store can silently install (when you send signal from web interface) and update apps without owner's knowledge.
Mobile providers can also do this as long as their Trojan app comes pre-installed with device. They can push and install an app to listen your voices.
How to block it?

Root your device and hunt down all apps from mobile providers which could do such nasty things. Google can help. Either remove them from system or block their access to internet using Firewall (there're many firewall apps in Play Store).
Flash a fresh new custom ROM like CyanogenMod etc.

Yes. CarrierIQ, Smithlogger, HTC Logger, and a couple of other things are installed onto the device by the carriers.
iPhones are stuck with CIQ, with nothing more than the mere delusion it isn't there or that they can get rid of it when, in fact, they cannot
However, you can get this, which is more helpful if you're rooted, but even without root privileges, it can point you to the opt-out screen for any logging service that may be on your phone.
Furthermore, all this news talk about malware on Androids is crap.
You have to install said "malware" - but the "malware" barely even exists.
So long as you pay attention to what permissions each app you are installing has, you have no chance of anyone leveraging your phone to spy on you.

Is this possible one Android phones

Yes! It is possible to remotely install apps on your Android phone without your consent. Most of the devices are vulnerable to attacks due to  vulnerabilities found in core Android framework.
For an example, Stagefright vulnerability found back in 2015 July puts about 95% of all Android devices in danger. This vulnerability is activated when Android process a malformed multimedia files on the device. For an example an malformed image you receive as an MMS could trigger the Stagefright vulnerability
Check out the demo https://www.youtube.com/watch?v=7S-11k28324

is there a way to block it?

Do not click on any links received from people you don’t know.
Install a virus scanner and keep it up-to-date.
Do not leave your phone unattended. Always have a phone locked with a PIN or pattern

Source: goo.gl/rHhMNH


text:
Are there any disadvantages of enabling LTE on Nexus 4?
I've heard it is possible to enable LTE for the Nexus 4. Are there any disadvantages of this? I assume there is a reason why it isn't enabled by default.

Related: Enabling LTE on Nexus 4

To enable LTE, you run a older build of the modem firmware or a hybrid custom build. They might have security issues theoretically.
Practically, the only downside is you might have lower battery life.
LTE on Nexus 4 is only supported on Band 4. Make sure your carrier uses that band for LTE. If you experience any issues with the modem, you can reflash the newer build easily via fastboot or recovery.


text:
Will updating the kernel reset the phone memory?
I updated my OnePlus One phone to the company-owned system, Oxygen OS. The battery now is miserable - it depletes within 5 hours. I am looking for a solution to fix that without wiping and reinstalling another OS. I read that installing a different kernel can solve such an issue. I flashed many ROMs on many devices previously, but never updated a kernel. What I will lose if I did it?  What is the best way to update the kernel?

If you're directly writing the kernel with fastboot then it shouldn't touch the user data.  If you're flashing it through recovery it should also be OK, but it's possible for the update.zip file to perform other actions that could wipe data.


text:
How do I root Cruz Tablet?
I am relatively new to the Android scene, and have recently bought my first official android-powered device. The cruz tablet was just $199 at Best Buy so I figured I culd give it a try. Unfortunately, it's very limited. I can live with the hardware shortcomings (no camera, no Bluetooth), but I want access to the full Android Market.
I believe a rooting is in order. Can someone please point me in the direction of rooting instructions for this device? Is rooting the same for each Android device? I haven't found much info on the net about this particular tablet. Anything I can learn from here would be greatly appreciated.
Thanks!
Thomas

There are currently no methods to root this tablet. However, you do have root access when using adb.

I have a rooted Velocity Micro Cruz T301 (now running on Android 2.2 Froyo).
You can find instructions for any Cruz tablet on Slatedroid forums.
So far this forum is the best source of info on this tablets.


text:
How can I view title text for a web image (xkcd.com) on an Android based browser?
How can I see the title alt text for website images on an HTC Desire?
I'm currently using the Dolphin HD browser but I can't see a way of getting the alt text.

Be an activist and upvote the defect here! Though that's a longer term answer. :)

Good question. I don't see an obvious way to do that to solve your problem on all websites. However, there just so happens to be a few xkcd viewer apps. I use this one which has a menu > hover text option.
EDIT:
This seems like a reasonable thing to try for link hover text, but it does not work for me on the default HTC Incredible browser:

Tap any white empty space near to the link you want to hover over.
Now move your trackball up/down until it selects the link. Don’t click it.
There! The tooltip now appears. Simple solution. :)

I saw this suggested here.

Cheers, that's helpful but unfortunately the hover suggestion doesn't work in the case of xkcd.com - maybe because the images aren't links?  The app is a reasonable workaround for now though.

Not every Android phone has a trackball, either.

App no longer available.

The right answer is to just go to https://m.xkcd.com. There is a link on there to show or hide the alt text.

Works perfectly for xkcd, but not for other sites/situations.

I created a bookmarklet for this:
javascript:(function(){var D=document,i,f,j,e;for(i=0;f=D.images[i];++i)if(f.title!=""){var x=D.createElement("div"),s=x.style;s.color="Black ";s.background="yellow ";x.innerHTML=f.title;f.parentNode.insertBefore(x,f.nextSibling);}})();

This displays any TITLE texts as text with yellow background.

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


text:
What can I do to my Droid 2 to prevent random calendar irregularities?
I am in recent possession of not only my first Android handset, but my first smartphone, a Motorola Droid 2. As a Computer Science major, I have elected not to immediately go the nuclear route of making drastic modifications to it, but have instead tinkered with it gradually over time. This is not entirely relevant in a material way, but helps put into context that which follows.
The issue I am attempting to explain frustrated me very quickly, rapidly culminating in a factory reset, which has not solved the problem. It is (Android Version 2.2) (System version.2.3.20.A955.Verizon.en.US). There are very few apps currently installed on the phone. I first installed "Pandora Radio" by Pandora, "Droidlight LED Flashlight" by Motorola Inc, and "Easy Profiles (Pro)" by SmartDyne.
The first marginally complex task I required of my phone was for it to keep track of dates and times for my college classes, as well as making note of when I receive advance notice of a class cancellation. In this regard, it seems to have failed me quite spectacularly.
I elected to save my classes in my Google Account's Calendar, which my phone is capable of automatically synchronizing with. I assumed this was a task for which Android would be innately well-suited, but it appeared that the only Home Screen widget available to show Calendar events was a last-mile addition by Motorola, in the form of the "Calendar" app/widget, marginally effectively but very genuinely unimpressive. I access it via ...
(Home Screen) -> [App Tray] -> "Calendar"

... and the correspondingly disappointing widget, accessible via ...
(Home Screen) -> [Menu] -> "Add (+)" -> "Motorola widgets" -> "Calendar"

I elected to initially add all of my events in via my desktop running Firefox, for which Google has a satisfactorily robust interface. It allowed me to quickly and easily add in my classes, which repeat at their characteristic times, such as "Every Monday and Wednesday", which must be specified by hand. I then assumed my Droid 2 would be capable of synchronizing these events, displaying them via the Home Screen widget, and should a professor cancel a class, I presumed I would be able to delete that single occurrence of the repeating event from the calendar. If only that were the case.
I am quite plainly unable to trust my Droid 2's Calendar's ability to remain accurate and up-to-date, an embarrassing shortcoming for a smartphone. When slight modifications to my calendar are made, such as the deletion of a single event from a repeating series, undefined behavior results, such as the disappearance of other events from the series. Deleting Monday's iteration of a class from my desktop will not remove it from my phone at all, while removing Monday's iteration of a class from my Droid 2 may result in Wednesday's corresponding class disappearing as well, only to spontaneously reappear the following Monday.
I first sought to troubleshoot that it wasn't simply the "Calendar" app/widget distributed by Motorola, and installed another third party calendar app/widget, electing to try the "Android Agenda Widget" by "Everybody all the time" from the Market. The two existed side-by-side for a while, and it was interesting to note that the inconsistencies continued in both widgets, and the two calendars always displayed identical data.
I have discovered a way to very plainly view all of these inconsistencies in real-time as they occur. I can access my Google Account's Calendar data through the mobile browser, by navigating to " https://m.google.com/app#~calendar ". This view, while grossly inefficient for any real work, has always remained free of any of the inconsistencies seen elsewhere on the device, and has always remained accurate to the view from a desktop browser.

I have reason to believe, at this point, that the error results in an inconsistency between the way Google delivers my calendar information to the phone, and the data structure my phone currently uses to store the information, and that this single data-structure is the sole source of calendar data for any Calendar app/widget I might install from Market. I believe that the structure was designed very specifically for the then-current iteration of Google's Calendar data, which has since widened. This is, however, purely speculative based on the behavior of the interfaces, and backed by no hard data.

As I've said, the inconsistencies are wild, and the issue, while prevalent, has proven difficult to reliably reproduce. In addition to the issues listed above, using my phone to adjust a classes' start time by 15 minutes once caused the entire repeating series to disappear forever, while another time, using the "Calendar" app by Motorola to add a fifteen minute warning notification for a specific occurrence resulted in every. single. Calendar. event. period. to spontaneously disappear from my phone.
I am at my wit's end as how to bring the behavior of my phone back into line, and appeal to you for help. Before bringing my objections to light, I was willing to try a nuclear option, such as flashing a different ROM, but my inexperienced Google searches have yielded no more than one or two walkthroughs for flashing the Droid 2, and none of the available ROMs seemed particularly impressive, rife with their own bugs and misfeatures, and there is no available distribution of Gingerbread for my hardware, which was exceptionally disappointing. The locked bootloader of the Droid 2 seems to be the primary cause of this unavailability. It is genuinely discouraging to see the open nature of Android compromised by such hostile hardware design.
EDIT: @Matt asked me about my Autosync options. We have ...
(Home) -> [Menu] -> "Settings" -> "Data Manager" -> "Data Delivery":
[x] Background data
[ ] Data Roaming
[x] Data enabled
    -> Social Applications:
    [ ] Sync over WiFi only

and
(Home) -> [Menu] -> "Settings" -> "Battery Manager" -> "Battery mode":
Presets:
[ ] Maximum battery saver
[ ] Nighttime saver
[o] Performance mode
Custom:
[ ] Custom battery saver

This wouldn't explain all the problems, but the discrepancies may be related to syncing. Have you looked at your autosync preferences?

If Matt's suggestion is not the issue, I agree with your assessment.  I think your complaint is best taken to Google, and hopefully you can find a calendar app that does work in the meantime.  Maybe edit the question to ask if anyone knows one that works.

What about this setting: Home > Menu > Setttings > Accounts & Sync "Background Data" and "Auto Sync" should be checked, then drilling down further, at the bottom of that settings screen click on the Google account that's associated with the calendar make sure "Sync Calendar" is synced.  Is all that setup correctly?

Matt, your last comment has left me confused. The "Background Data" option appears, on my phone, to be in a different location than the one you described (covered in the previous edit), and I cannot find the "Auto Sync" option you've described anywhere.

It sounds to me like a syncing problem of some kind.  I have on occasion read examples of people having different sync problems with the Droid 2.  If all your sync settings are set correctly as I outlined in the comments above and you are still having problems you can try the following.  Some of them involve setting up and using another Google account.  Im not recommending that you abandon your Google account, they are just steps to finding the problem.  You can always switch back later:
Clear the calendar's data...
From the home screen:

Menu > Settings > Applications > Manage Applications > Calendar - Click "Clear Data" & "Clear Cache" if it's not grayed out.
Menu > Settings > Applications > Manage Applications > Calendar Storage - Click "Force Stop" then "Clear Data" & "Clear Cache" if it's not grayed out.
Menu > Settings > Applications > Manage Applications > Calendar - Click "Force Stop" then "Clear Data" & "Clear Cache" if it's not grayed out.

Now open the calendar.  You may need to set it up again.  If that doesn't work then move on to...
Add a second Google Account...
From the home screen go to Menu > Setttings > Accounts & Sync and choose "Add New Account" and go through the steps to add another Google account and then sync that accounts calendar.  See if that one can reliably work.  Also, see if your original calendar is working right now.  Now try removing the 2nd account and see if the original is working.  If that doesn't work then...
Reset the primary Google Account...
Check out this post.  First try resetting it and using the same info, then try changing it to a different Google account.  If that doesn't work...
Reset back to the factory state...
Perform a Hard Reset then set everything up from scratch.  I don't really know what else to do if that doesn't work.
Alternative Calendars...
For alternative calendars I have tried Touch Calendar and Pocket Informant.  I haven't tested them extensively but I have not seen any problems.  That being said, I don't have any problems with the native calendar.  Also, I have read that users do experience sync problems with both of those apps so I think it's going to be a matter of trial and error for you to find an alternative that works.


text:
Why has my GSIII's battery life dropped from 50-60 hours to 16 hours?
I have a GSIII (Sprint) running Android 4.0.4.  In the last three days, I have not made any changes or installed any new software that I know of, but my battery life has dropped such that my phone, when fully charged in the morning, now powers off sometime before I go to bed.  This would make sense if I spent a lot of time using it, but I generally will check a few emails (every 20 min or so) and make maybe 4 calls of 5-10 min each in a typical day.  I have not varied this pattern lately.  I used to have to charge my phone maybe every other day, sometimes when really slow I could squeak 3 days out of it before charging.
Battery usage screen shows 'Cell Standby' taking up 40% of power usage.  I hadn't been looking at battery usage lately, but it strikes me that when I first got the phone (3 months ago) I checked these a few times and Cell Standby was fairly low, around 10% as I recall.
I usually keep the phone on WiFi because of Sprint's crummy network, and the phone was in my house the entire time it was on battery, so was on WiFi for data...and WiFi takes up 3% of the total.  Display takes up 2%.
I remember on my previous phone, the Evo (original) there was a Dialer bug that caused a wake-lock of some sort...I'm presuming something similar here.  Several hard power cycles have not improved matters.
What do I do to stop it, or find out where the CPU cycles are going?
Edit:  taking a look at the battery pane of the settings app reveals that the phone is staying awake 100 percent of the time that the radio is on.  It did not used to do that. Putting the phone in airplane mode lets the phone sleep as usual except for a few times in three hours, as expected.  So, apparently this is a wake lock condition again.

Is your phone rooted? If so, use BetterBatteryStats.

Looking at your edit, this sounds like the infamous l2_hsic problem or something similar. This is a wakelock problem that occurs on the S2 and on the Note 1, but I'm not sure that the S3 has that specific problem. See: http://forum.xda-developers.com/showthread.php?t=1656705 for a documentation of the problem on the Note. Sounds awfully similar, doesn't it?

Wow, that is a great thread.  This phone is not rooted, I could but it's against company policy.  I am planning on an update to Jellybean in a couple days, I'll see if that contains any hope.

BetterBatteryStats should still work on an unrooted phone, though with reduced functionality. You could try installing it from the Play Store ($2.49) to see if you can see kernel wakelocks without root. There is also a free copy available (legally) from the developer, but that is really intended for those people who can't use the Play Store to buy apps, so I'm not going to link to it here.

Cell standby being high means you have a really weak signal wherever your phone was.  The phone cranks its radio up to maximum power to try to maintain a usable signal.
There are several ways to stop it - none of them ideal:

Put the phone somewhere with a better signal (near a window maybe)
Put it in airplane mode to turn off the radio (but you won't be able to get phone calls/texts)
Switch to a carrier that has a better signal near your home/workplace

As for why it's doing it now, it could be that you're leaving the phone in a different place in your house most of the time, or weather is affecting the signal strength, or sprint is extra crummy in your area lately.

I have very good coverage in one spot in the house.  Leaving it there did not improve the situation.  However, as noted above in my edit, it seems to be a wake lock.

It could be an application keeping the phone awake. On my HTC Desire S I can click any application present in the Settings battery pane and see the time the application keeps the phone awake.

HERE ARE THE AREAS THAT EFFECT BATTERY LIFE - HOPE THIS MAY HELP
Weather Widget on front screen.
- click to open -> Menu -> Setting -> Auto refresh = Every 3 hours
Then go to "Settings" (the lines in read are the Titles seen on the MAIN Settings screen most of which you can go in to and change more settings)
Wifi - Off when not in use
Bluetooth - Off when not in use.
Data Usage
Mobile Data = On
More Settings
Flight Mode - Off
S Beam = Off
Wifi Direct - Off
Near By device ->
Switched Off
Mobile Networks ->
Use Packet Date = On
Data Roaming = Off
Sound (scroll Down to System)
Keytones = On
touch sound = On
Screen Lock Sound = On
Haptic Feedback = Off
Autp Haptic = Off
Display
Brightness - Open -> set to auto
Screen time out - After 30 Seconds
Smart Stay = On
Auto Rotate = On
Touch Key Light Duration = 1.5 Seconds
Screen Mode = Standard
Auto Adjust Screen Power = Ok
Display Battery Percentage = On
LED Indicator
Charging = On
Low Power = Off
Missed Event = On
Motion
Motion Activition = On
Direct Call = On
smart Alert = On
Tap to Top = Off
Tilt to Zoon = Off
Pan to Move Icon = Off
Pan to Browse Images = Off
Shake to Update = On
Turn Over to Mute = On
Palm Swipe to Capture = On
Palm Touch to Mute = On
Power saving
CPU power Saving = On
Screen Power saving = On
Background colour = On
Turn off Haptic Feedback = On
Accounts and Sync
General toggle at top - ON
Dropbox - No Sync
Google mail = Sync Then Open the option to display more
Sync Calendar = On
Sync Chrome = On
Sync Contact = On
Sync Gmail = On
Sync Google Phot = Off
Sync Google Play Books = On
Sync Google Play Movies = Off
Sync Google + = On
Sync Instant Upload = Off
Sync Internet = On
Sync Picasa Web Albums = Off
Facebook - Sync
Samsung account - No Sync
Skype  - No sync
If you use Drop Box go in to the setting here and turn Upload using = WIFI ONLY
Location Services
Use Wireless Network = On
Use GPS = On
Use Sensor Aiding = Off (wasnt to sure what this was so left it off)
Location and Google Search = On
Security
Screen Lock = Pattern
With Swipe Lock = On
Lock Screen Option ->
Shortcuts = On
Information ticker = Off
Camera Quick Access = On (Might as well switch this off as I cant work out how to get by the Pattern Recognition for the camera to auto start)
Clock = On
Dual Clock = Off
Weather = On
Ripple Effect = On
Help text = On
Wake up in Samsung unlock = Off
Make Patterns Visable = On
Lock Auto = 5 Seconds
Lock Instantly on power key = On
Vibrate on Screen Tap = Off
Language and Input
Default = Samsung Keyboard
google voice type = Off
Samsung Keyboard = On -> in to Settings
Predictive text = On
continuous input = Off
Keyboard Swipe = On
Handwritting = On
Voice Input = GRAYED OUT
Auto Caps = On
Auto Punctuation = On
Character Preview = On
Key Tap vibration = On
Key Tap sunbd = On
Voice Commands for Apps = Off
Acccessibility
Auto Rotate = On
Speak Passwords = Off
Screen Timeout = 30 Seconds
Lock Ato = 5 Seconds
Talk Back = Off
Install Webscript = Not Alloweed
Negative colours = Off
Developer mode - EVERYTHING IS OFF


text:
How to restart an Android device?
Is there a way to restart an Android device? Now I have to shut it down and manually turn it on again, but I'm looking for a solution where the whole process happens automatically.
This might be device specific, mine is Samsung Galaxy S.

Good question, my galaxy s doesn't have a menu option for that and I couldn't find an application to do that.

A quick way for any phone is remove the battery cover and remove the battery. I have noticed that works on any phone.

@abhi: How is that quicker or more convenient than just turning the thing off and back on again?

@AlEverett my phone gets stuck sometimes and no matter how long I press the power button, nothing happens. So I slide open the cover, remove the battery and pop it back in.

The menu you get when you press the power button should give you a list of options including Shutdown, Restart etc. If it doesn't, your phone's manufacturer might have left it out of the ROM.

Ok. So it seems that it's left out from Galaxy S :(

I can confirm that. On my Galaxy S I have: Silent Mode, Flight Mode and Power Off.

I don't know that any manufacturers included "Restart" in the menu when pressing the power button. I've only heard of that in custom ROMs.

@AlEverett I've always had 'Reboot' in my HTC Hero ROM. The only difference that CM made, for me, was that when I chose Restart, I could choose between 'Reboot', 'Recovery' and 'Bootloader'. It could depend on manufacturer, model or (in the US) carrier.

Is the "shutdown key" the same as the power button?  Pressing and holding the power button (for ~2 seconds, with my FairPhone) should bring up the Shutdown/Restart/... menu.

I'd also like to know what "the shutdown key" is.  I wonder if @Tobias resolved this after commenting?

Use the app Quick Boot to restart your device (a rooted device).
Answer seems to be given partially here:
I've rooted my phone.  Now what?  What do I gain from rooting?
Use the app Quick Boot to restart your device. Start the Quick boot app and choose 'Reboot' and there you go.

In case it's not clear, Quick Boot requires root.

The volume up + power option also works for the Samsung Galaxy S. You have to hold for about 10 seconds before restart, but it works.

Works also on my SGS! But it puts the ringer volume to maximum too and that seems to stay at maximum after the reboot :)

The correct way to reboot in Samsung Galaxy S is to hold home button and power button pressed until the phone reboots.

Press (volume up + Power) at the same time. It will reboot the phone. Tested on Galaxy S Captivate.

Actually, for the Samsung Galaxy S 4G just hold the power button for ten seconds and it will restart.

Does it restart normally or just force shutdown?

@roxan it's a forced shutdown that doesn't go through any of the normal shutdown tasks, effectively the same as just pulling the battery out while its running.

So I assume this is not correct answer. Forced shutdown under normal condition can corrupt data.

huh... that's weird... it doesn't force shutdown on mine... its about the equivalent of telling it from the adb commandline to reboot... the only other way I've seen to reboot it is to root the phone and download an app that reboots it and I'd rather not void my warranty by rooting. Because all the methods listed above do about the same thing as pressing the power off button and holding it...

just found out with my galaxy y. hold Home button first, then hold Power button. just continue holding these buttons for a few seconds and the phone will restart itself. :D

This works with Samsung Galaxy S as well, at least with Gingerbread.

There's a way no one has mentioned yet (for rooted devices):
Use a shell application ConnectBot or SL4A and type:
$ su
# reboot

It will reboot instantly. With SL4A you can create a .sh script and add a shortcut to your home, something like su -c "reboot" would do the job, but I'm not sure.

@jadkik94, what you say is kind of true, it is true that you need root to use the reboot command INSIDE adb shell. Although! You can use "adb reboot" without needing root ;) this is a small trick that you have to know
same counts for
adb reboot recovery
adb reboot download
adb reboot bootloader

So no root is needed to restart the device (when you have your pc with you)
If you run windows you could also use my little tool called Android Reboot

Instructions:

Put your phone on debugging mode: Settings > Applications > Development (GB)
Put your phone on debugging mode: Settings > Developer Options (ICS and UP)
Connect your phone with the usb cable to the computer
Choose one of the options

Download:
http://broodplank.net/files/AndroidReboot_v1.1.rar

For my FairPhone (first edition, FP1, Android 4.2.2), it's pressing and holding the power button for about 2 seconds. This brings up a little menu which offers to switch off, restart (both after an additional prompt), or toggle flight mode.
I suppose this is a common Android feature (because it is described in a beginners's guide to Android smartphones I bought), and thus should at least work for all Nexus devices as well.


text:
Reconnecting Emulator to Eclipse
My main problem with developing in Android is that the emulator seems to continually get disconnected from eclipse. This always happens the 2-3 time I try to upload my .apk from eclipse without rebooting the emulator. Eclipse indicates this with an empty DDMS ->Device section and logcat stays blank - sometimes I'm not sure if the new code made it on the device.
The only fix I have for this is to shut down eclipse, and restart it. With the restarting of Eclipse, on top of the emulator boot time, I can't get any momentum going in my development.
Is there a way to reconnect the emulator to eclipse without having to restart Eclipse or even the Emulator?

you can use "emulator" from console. That way it will stay on regardless of eclipse state.
starting emulator
also, try using adb devices to find out is your emulator really running

You can reconnect your emulator using the Android Debug Bridge (ADB).
There are 2 primary methods to do this:

In Eclipse, open the "Devices" view.  The last button on the right (upside down triangle) will open a menu of additional options.  The very bottom selection is "Reset adb"
From a command prompt you can type the following 2 commands to stop and restart ADB.
adb kill-server
adb start-server


text:
Can I play DRM music from iTunes on my Android?
I thought that DRM content on iTunes could only be played on iTunes, but then I saw SongBird, a non-Apple application that can play DRM protected music.
Is there an app for that uses similar technology that can play my old iTunes purchases?
Is there any other ways I can play my music on my Android (Wildfire)?

Related question: http://android.stackexchange.com/questions/1351/android-and-itunes

I'll just leave this as a comment as I don't know a full answer.  Short answer: you're going to need to remove the DRM from the music to get most (all?) Android players to play it.

IIRC, Songbird basically calls up an instance of Quicktime to play the file, then routes the audio through itself. This isn't really the same as playing the DRM'd file on its own, and it requires Quicktime to be installed (which also means it won't work on e.g. a Desktop Linux install or Android).

This has basically been answered in the comments above but I'll wrap it all up into an answer:
No, you can't play songs that have Apple's Fairplay DRM protection on your Android phone without removing the DRM protection (which technically violates Apple's toc).  As Edarerathis pointed out, Songbird doesn't actually support Fairplay DRM'd media, Quicktime does, so SongBird (like RealPlayer) uses Quicktime to decode the songs and play them.  It wont work without Quicktime installed and so you can't use this functionality in Linux or Android.

As far as "removing the DRM protection", can you not do this legally by burning the mp3 to CD, then ripping the CD to an mp3 or other DRM free format?  This does take a while if you have a large library, as it requires you to burn to an actual audio CD, not an mp3 one.

Try going to the Play Store and looking for 'M4P players for Android'. There are about a dozen choices.
I'm using Video Player for Android to play my older Rolling Stones and Traffic purchases.  Works fine.  Even comes with an equalizer.

Note that M4P is the extension for iTunes Audio File. It's different than MP4.


text:
How can I enable the Wifi Hotspot capability on my Moto Droid 1 without using Adhoc?
I want to enable the wifi access point / hotspot functionality on my Droid so it acts as a "Standard" router like the built in functionality of the newer VZW phones (like the Droid Incredible).  I have tried Wireless Tether for Root Users and Barnacle but they only create Adhoc connections for tethering which is different than becoming a hotspot.
My phone:

Motorola Droid 1
Rooted Android 2.2 w/ any ROM you tell me will get WAP going
Verizon Wireless

Edit:  Just a preemptive request... Please don't suggest PDAnet.  Someone always does.

This atrticle and others around the same time suggest that the hardware in the Droid is only capable of supporting ad-hoc mode.

I believe that unless you are running a different ROM (like CM6, etc.) then it's not available. Pretty sure stock ROM (rooted or not) didn't make this available (even though the non-stock ROMs had it working. Love how VZW said it wouldn't work when it obviously does.

I'm not sure it does. I haven't seen it confirmed anywhere. I'm running cm6.1 an still no wap. My ? is how do I make it work?


text:
Audit app permissions easily in one place?
Is there anyway to list all the applications installed on your phone and the permissions they require all on one page, or export the list so it can easily be audited?

Use market applications like Permission Watchdog or Permissions. Also, there are several others.

Unfortunately, Market application has a bug (or intended feature?) when not all permissions are listed when installing the application. This may a compatibility issue with software designed for older android releases... http://code.google.com/p/android/issues/detail?id=9365

perhaps including comment into you answer would be simpler.

@Nikolaenko, apparently it is on purpose and changed now:  http://android.stackexchange.com/questions/605/why-do-so-many-android-applications-require-permission-to-use-the-phone

@BlackShift, what do you mean by "changed now"? Changed by Android dev. team?

@Nikolaenko, I think I was unclear because it is unclear to me. I'm running cyanogenmod 6, android 2.2, and almost all apps ask for the permissions that your link claims are implicitely granted. So I don't know who changed this (cyanogen or android team).

Another app that I ended up using instead of Permissions is RL Permissions.  I prefer the interface.  As far as which one works better, I don't know.

aSpotCat is also a nice app for permission audit.

Since no Android version is mentioned in the question, I'm proposing  a command-line based answer relevant to Android version 4.2.1 and above. This ideally is an OS-independent solution, OS on PC, that is.
Dependencies

Requires adb to be setup in PC.
Requires busybox binary. If the device is rooted, install Busybox app. Else, download busybox binary from official source, rename the binary to busybox, set Linux compatible executable permission on that binary for everyone and move it into device using
adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC

Requires aapt binary. If you're running a CM or its derivative ROM then ignore this requirement. Otherwise, for Android 4.x, you can consider downloading the binary from here, rename the binary to aapt, set Linux compatible executable permission on that binary for everyone and move it into device using
adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC .

For Android 5.x users, ask Google for assistance.

Here's my little script that does the magic:

#!/system/bin/sh

# Check if the busybox binary exists under /data/local/tmp/ or /system/xbin. Set the detected binary's path into the variable busybox or exit if file doesn't exist or executable permission not set
[[ -x /data/local/tmp/busybox ]] && busybox=/data/local/tmp/busybox || { [[ -x /system/xbin/busybox ]] && busybox=/system/xbin/busybox || { printf "busybox binary not found or executable permission not set. Exiting\n" && exit; }; }
# Check if the aapt binary exists under /data/local/tmp or /system/bin or /system/xbin. Set the detected binary's path into the variable aapt or exit if file doesn't exist or executable permission not set
[[ -x /data/local/tmp/aapt ]] && aapt=/data/local/tmp/aapt || { [[ -x /system/bin/aapt ]] && aapt=/system/bin/aapt || { [[ -x /system/xbin/aapt ]] && aapt=/system/xbin/aapt || { printf "aapt binary not found or executable permission not set. Exiting\n" && exit; }; }; }

# List package name of all the installed apps and save them in the file packages.txt under /sdcard
pm list packages | $busybox sed 's/^package://g' | $busybox sort -o /sdcard/packages.txt

# For each package name in the output we just saved, get the app's label using $path and $label, print a line and then finally list the permissions granted to the app
while read line; do
    path=$(pm path $line | $busybox sed 's/^package://g');
    label=$($aapt d badging $path  | $busybox grep 'application: label=' | $busybox cut -d "'" -f2);
    $busybox printf "Permissions for app $label having package name $line\n";
    dumpsys package $line | $busybox sed -e '1,/grantedPermissions:/d' -e '/^\s*$/,$d' | $busybox sort;
    $busybox printf "\n";
done < /sdcard/packages.txt

Demo output:

Permissions for app DisableService having package name cn.wq.disableservice
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.WRITE_EXTERNAL_STORAGE

Permissions for app Indecent Xposure having package name co.vanir.indecentxposure
      android.permission.RECEIVE_BOOT_COMPLETED

Permissions for app Tags having package name com.android.apps.tag
      android.permission.CALL_PHONE
      android.permission.NFC
      android.permission.READ_CONTACTS
      android.permission.WAKE_LOCK
      android.permission.WRITE_SECURE_SETTINGS
...
...
Permissions for app Themes Provider having package name org.cyanogenmod.themes.provider
      android.permission.ACCESS_NOTIFICATIONS
      android.permission.ACCESS_THEME_MANAGER
      android.permission.INTERNET
      android.permission.READ_THEMES
      android.permission.WRITE_SECURE_SETTINGS
      android.permission.WRITE_SETTINGS
      android.permission.WRITE_THEMES

Save the script in PC into a file named perm_script.sh and move it into /sdcard using
adb push LOCAL_FILE /sdcard/   # LOCAL_FILE is the  path where you saved that file into PC

Run that file
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE   # OUTPUT_FILE is the path where you want to save the final output

The greater the apps installed in the system, the greater the time will be for the command to complete execution. In my device, it took around three minutes.
Related: Is there a native way to find all the installed apps that have access to a phone feature?

Permission Friendly Apps will list installed apps by their order of most demanding to least demanding permissions requirements. (It doesn't actually track or audit or adjust their behavior, though.)


text:
How can I turn off the "allow automatic updating" for an app?
Once I've checked off the box to "allow automatic updating" for an app in the market, is there any way to undo this without uninstalling and reinstalling the app?
Moto Droid running 2.2
UPDATE:  Apparently I am losing it.  Originally it happened with PDAnet.  I accidentally clicked the checkbox and as soon as I did the option disappeared.  I tried restarting the market, restarting the phone but the option never reappeared.  I uninstalled it and reinstalled it and I had the box back, unchecked.  I was afraid to test it out on other apps until the answers below confirmed that either it was an isolated bug or I was crazy.  Needless to say I have the option to uncheck it now.

On the HTC Incredible I just searched for the particular app in the market, selected it and unchecked "allow automatic updating" from there. Hopefully it works that way on your phone (and others).

That is odd. I don't have that option. Once I click it, the option goes away and apparently doesn't com bacl.

That's extremely strange - gary's answer is right for me on my Nexus One. The checkbox is always there for me.
Which app are you talking about?

I noticed the app eventually disappears from my download list after I set it to auto, that's why I had to search for it in the market. It's surprising that would differ between phones.

It's not doing it any more. After I uninstalled an reinstalled the app, it works as you described.

@user3090 It's possible, you'd have to try it out on a couple apps.

@user3090: I've found that you can't do it on an app that's updating or installing but I haven't had a problem doing on apps that are running.

I just went to Market | Downloads and selected the app. The "Allow automatic updates" checkbox is at the top of the page and checked, allowing me to uncheck it.
I also have a Motorola Droid running 2.2.
Is there a particular app with this behavior? Maybe it's a system app that requires automatic updating.

It was PDAnet, but now it appears to be working fine just like you guys said.

I just had this happen to me (HTC Incredible, Android 2.2). An app updated automatically, I decided to turn auto updates off, and the checkbox was gone. Happened with two happens, My Tracks and Maps, both from Google. I found that if I pulled down the notifications panel and tapped on the "Successfully Updated" message for the app to make it go away, then returned to the Market page for the app, the checkbox had reappeared and I could disable automatic updates. Tapping the notification also starts the app, so it could be either removing the notification or opening the app once after the update that made the checkbox reappear.


text:
My phone is not transmitting
I have an Htc Desire and I'm using the headset that came with it. During a call yesterday the other party stopped hearing me.  I unplugged the headset and continued with the conversation normally. Today I checked the headphones again before buying a new pair and indeed the other person couldn't hear me. What was really surprising is that I could hear myself,  echo with about a second of delay. So, electronically my headphones work. Is there something broken in my phone?
Update: I just tried the Skype test call and it worked just fine, so it seems to be my headset when making phone calls, which is really weird.

Well, that's hard to say. Its either your phone, your headset or both of them. I'd say: go to a shop, ask to test a new one. If they work: buy them, its just your headset.
If they don't work: Test your headset in another phone. If they work: it's your phone. If they don't: its your phone AND you headset.


text:
wifi not recognized unless restarted in archos 32
Many times when I'm near a wifi network, my archos 32 won't recognize it. It shows no networks in the wireless settings and doesn't show alerts for available networks even when this alert is on in the settings. It would only recognize the network if I disable wifi and then reenable it.
Did that happen to anyone else? Any workaround?

This thread on an archos 5 mentions turning off the "static IP" setting on the device. Does your device have that setting?

@gary, thanks but it's by default off, and it's also off in my device.

As a power-saving strategy, radio chipsets can sleep -- meaning they stop actively listening for a wi-fi network to connect to -- when they are out of range of any network, and will wake up to search for a network once every few minutes.
It may simply be that the radio on your Android is doing this, and that you haven't waited long enough for it to wake up once you come back in range of a wi-fi network.
A quick search tells me there's a Powersave disabled setting in the wi-fi settings on the Archos that might help.


text:
How can I stop Android from automatically searching a term when I choose it from my search history?
Currently if I search for something like "Why am I so awesome," then at a later time I want to elaborate on that search and start typing in "Why am..." my search history will show the previously searched term.  When I click on the term it automatically searches for it.  I don't want it to automatically search for it, I just want the term I click on to populate the search field so I can edit as I please before actually searching, for example, I'd like to be able to click on the aforementioned search term "Why am I so awesome" and add "everyday" without having to retype the whole things.  It's not that big of a deal in a google search because I can just wait for the results and edit the search field, however on a market search, the search field disappears when it searches and I have to start all over again.
Edit: To me this seems to be an Android issue, not a hardware issue but to preempt any more hardware specific solutions that don't apply to me, I have a Moto Droid 1 on 2.2.

+1. Glad you asked the question. I will need to start using the trackpad when using search history...

The anonym with the vague answer is correct, just not nearly complete.  For keyboard-less phones (like my N1), the trackball or trackpad can be used to scroll down the list of suggestions, and that will enter them into the text field for editing.  For most phones with a hardware keyboard like your Droid, use the d-pad next to the keyboard to select the suggestion for editing (some of them still retain a trackball or trackpad).  Once you have the correct entry in the search box, tap it to continue editing.
BTW, I just discovered this, and it's going to make my life a lot easier.

That's bothered me a few times too, it's annoying to find that the answer is to use the trackpad/ball when I'm on a phone that doesn't have one (Samsung Galaxy S). I thought about it when I upgraded from the HTC Magic, but at the time I could count the number of times I used the trackball on one hand. Seems it does have a use after all :(

But nothing for those of us with no trackball or d-pad, like the X? :(

If you update to the latest version of "Google Search" in the Market, it includes a pencil icon next to each item in the search history, for this exact problem. Tapping the pencil loads the search term into the search box, but doesn't initiate a search for it.

That is great, I never noticed that.  Unfortunately it doesn't seem to work on searches initiated directly from the Market, Maps... but it works from the search widget.  Thanks!

I don't see a pencil when I google search and I don't see any Google Search app in Marketplace. I'm on eclair (Motorola xt720).

I think you need to be on froyo for this.


text:
Tethering Droid 2 Global with Wireless Tether after 2.3 Gingerbread update
My D2G updated to 2.3 today, and I'm no longer able to tether.
Prevously, I had no problem using Wireless Tether 2.0.7 with Android 2.2.
Now that I'm on 2.3:

Wireless Tether 2.0.7 will start up and I'm able to connect my laptop to its WiFi network, but Verizon redirects me to the self-provisioning page; I have no internet access.
Wireless Tether 3.1-beta6 doesn't work.  It says tethering is enabled, but the WiFi network does not show up on any other devices.

How can I fix this?

Edit: This appears to be a reported issue.

are you running a custom rom, or just a rooted version of the stock one?

@jlehenbauer: Rooted stock.

hmm. this same kind of thing happened to mine, but it ended up being that the ROM i was using (not stock) had this functionality built in, and the wifi-tether app interfered. but obviously, this doesn't quite fit your problem. sorry :/

I was able to solve this, but it's not pretty.  Following the advice in this thread, I applied a hack to the radio that gets Wireless Tether working.

Edit: I can confirm this exact procedure will also work on a Droid X.

Download and install RadioComm.  It worked fine on Windows 7 x64.
Open Radiocom.  This was the first time I opened the app, and a splash screen asked for me to "select which MA to use."  I couldn't find the MA mentioned in the thread in this list, so I just selected 3G All Others (or something like that).
Open the Main menu, select MA, Common, MDM 6x00 Chipset Base.
Open the Settings menu, select USB, PST USB Driver.
Connect phone to computer via USB.  Change the phone's USB connection mode to PC Mode.
The Radio Detection icon on the right side of RadioComm will turn green.
Scroll to the P2K 4 tab.
In the STELEM / RDELEM section, tick the Dec Entries radio box.
In the text boxes, enter:
Element ID: 8040
Record #:   1
Offset:     0
Length:     128

Press RDELEM.  It will turn green and the following data should appear:
40767A7733672E636F6D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Change Element ID to 8041.
Press STELEM.  It will turn green.
Change Element ID to 8091.
Press STELEM.
Change the phone's USB connection mode to Charge Only.
Reboot the phone.
Install Wifi Tether 3.1-beta6.
In Wifi Tether's settings, change the Device Profile to Motorola DroidX (CDMA).  (Droid2 does not work.)  This is a good time to set your SSID and encryption as well.
Done.  You can now tether.

In case you need to revert the changes we just made, here's the original values:  (these are the same on a D2G and Droid X)
8041:
4064756E2E767A7733672E636F6D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

8091:
40767A7733672E636F6D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

This is awesome. Worked great!

We have here two situations colliding. For Wireless-Tether to have worked in the first place, it means that you were rooted.
It is typical behavior of OTA updates to remove root access. You must re-root your device in order to ensure that Wireless-Tether will work properly again.
The root access portion of Wireless-Tether is what helps it work its magic that prevents that Verizon hijack page from coming up.

Yes, I was rooted.  Before the update, I manually unrooted (z4root) to ensure the update went smoothly, and after the update, I re-rooted with the Droid 3 one-click root.  I am rooted properly (Titanium Backup works).

The Droid X has a similar issue with this, make sure that you set the device profile to Droid 2 in wifi tether.  This is a setting that was added in the Wifi tether 3.0+ versions.

Setting the device profile has no effect.


text:
Bluetooth AVRCP only device
Is there a Bluetooth device I can use with my Android phone which has nothing more than previous, play/pause, and next track buttons?
There are many AVRCP Bluetooth devices, but they are all also A2DP sinks, which I do not want – I plug my phone's headphone output into my car's aux input.
Ideally, I'd like something I can mount to the steering wheel so I can change tracks without trying to find the button on my touchscreen.
Alternatively, could I buy a small A2DP/AVRCP device like this and configure Android to not send audio, but still respond to the track controls?

The Sony LiveView may fit the bill.

+10 - I ordered one and it arrived today.  This is exactly what I was looking for.  The wristband wraps perfectly around my steering wheel spoke; I could not ask for a better mount spot.  You wouldn't happen to know how to adjust this thing's screen timeout?  It turns off after just a few seconds.

No, sorry, I don't actually have one but I've been eyeing it for a while for the same reasons you had. I'm glad to hear it worked for you. I think I'm going to order one soon.


text:
Sudden loss of contacts on my Samsung Galaxy S - running Gingerbread
I have recently experienced that all my phone contacts suddenly disappeared from my internal phone memory.
I could still see the 2 contacts that were on my SIM-card, and I have no contacts on my external SD-card.
I have looked through the different contact display options under settings, and they were all on.
The contacts disappeared without me installing or deleting anything, or any other provocation. And while I was browsing through my call log, I could see the contact names being replaced by the underlying phone no, like a slow delete, very frustrating.
I tried to Google it, and found that this has happened to many other Android users (and not just Samsung phones), but I couldn't find a suitable solution to the problem anywhere.
It's not catastrophic since I have all my contacts synchronized with Outlook, although, I will be losing the contacts added after my last sync.
But I would really like to avoid to have this happen again in the future, and if possible recover my lost contacts.
Does anyone have an idea of what has happened, what to do about it and how to avoid it in the future...?

I don't know why it happened, but a good way to prevent it from happening again is to set your contacts to sync with your Google account. This way whenever you add a new contact, it will be uploaded, and if the phone loses your contacts again, you probably won't even notice it, as they will be automatically downloaded back to your phone.

Also the beauty of Google Contact is you can restore the address book.


text:
Android Market cannot be opened and cannot download any applications
When I first bought my GT-i5801, I could easily access the Android Market and there was no hassle in downloading any applications I want. But then one time it had a virus or something that doesn't allow the phone to open. Then I had it repaired to a Samsung registered repair shop. Then after it was repaired even a single application cannot be downloaded and that the android market can't even be opened.
So what happened? What can I do with this matter?

The first thing you could try is to clear the Android Market cache and data. This can be done from Settings -> Applications -> Manage applications -> (All ->) Market -> Clear data. Note that the "All" tab may not be available on your device, depending on your Android version. If it's not there, then disregard that step.


text:
Contacts Sync problem in Android 4.4.2
I'm using Samsung Galaxy S4 with 4.4.2 Kitkat version. Currently my phone is showing that all the contacts (phone numbers) are in sync with my Gmail account, however when I check in Gmail Contacts, I could not find even a single contact synced.
I also checked whether the sync is enabled properly or not, but it is "checked and enabled".
Does anyone know of a solution for this?
Note: All other stuff like photos, calendars, are properly synced and reflected in my Gmail.

How/Where did you check for the "sync" status? In the System Settings or in the "Contacts" app or whatever the name of the specific app.

It could be that the contacts are added to your Google account, but they are not in the "My Contacts" section but rather the "Other Contacts" section.
If you go to contacts.google.com, on the left sidebar is "My Contacts" with groups underneath. At the very bottom, just above "Import Contacts" and "New Group" is a section called "Other Contacts".
These contacts are usually auto-added from Gmail, but they can also be contacts added from your phone that weren't synced quite right. Try looking in there for your contacts. If they are there, you can select all and add to "My Contacts".


text:
How to do screen record on android without apps?
I want to know  how to do screen recording on Android without apps? I've been trying many apps from Google Play store, but nothing works for me, it's just adds popping up on my phone...
Can anyone show me how can I do it myself, I want to record screen with longer duration (my phone is Samsung Galaxy S4).

It's not possible without either a special app or a rooted device (and even then a special app as well). Many custom ROMs come bundled with a screenrecord binary (may be named differently), too.

@GiantTree A screen-recording feature was built into Android with Kitkat. So under the condition the device runs Kitkat or higher, your commend no longer holds true. See Narayanan's answer (and my comment on it) for details.

screenrecord is sometimes not bundled with a stock ROM, keep that in mind.

You haven't mentioned the version of Android running in your phone and I assume it is KitKat.
If so, you can use ADB (Android Debug Bridge) tool to record the video.  The are many blog sites that explain how to do this and one such that came out first on my Google search is this one. Even Android SDK page on ADB tool commands explain this well.
In gist, you should use these commands:
adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4

The first one starts capturing the screen to the specified file and the second one pulls (copies) the recorded file to your computer.
Update: By the way if you are finding it difficult to download the entire SDK just this small ADB tool, you can use the one from this XDA page.

Also see: How to use screen recording in Android 4.4 KitKat for a more in-depth tutorial on this – and Is there a minimal installation of ADB? for the ADB part :)


text:
Delete individual call log
In Gingerbread and before, long-click on an individual call log gave you also the option to delete it.
Now, in ICS, while in the Call log tab, on long-press:

on contact image(red): it opens the Contact details;
on the cal log details(yellow): nothing happen;
on the phone image(blue): re-dial

Now, I've found the Clear call log option in menu, but can someone confirm if it has more options and will let me choose the entry to clear, or it'll just delete my entire call log?
I've also found a lot of new Settings, but nothing about deleting an individual call log entry.

If you touch an individual item in the call log, and press the Menu (vertical ellipsis) you'll see a "clear from call log" option.

I just checked this and it appears to be the only way to remove an individual item from the call log.

Still can't remove from frequently called tho :-(

On Nexus S, touch the call log detail (yellow in OP image) to bring up contact log. Press Menu button to get "Remove from call log" option.

Press on the "Contact image" on the left to bring up the contact. Press vertical dots in the top right corner to get "Remove from call log" (removes all log entries for this contact).

I don't know that device are you using, but on my Nexus S with ICS 4.0.3, there are no dots in the top, and if you were talking about the Menu button, there is no option available while in the contact view.

Go in that particular contact-->press 'Menu button'-->select 'History'
You will see all the calls to that particular contact.
Press Menu-->select 'Delete'


text:
How do I reset the launcher app?

Possible Duplicate:
I checked 'use as default' when choosing the default launcher, but now I can't start ADW.Launcher any more

I've installed and set up LauncherPro as a replacement launcher app. How do I reset the phone to use the Android default launcher app?

Go into your Settings -> Applications -> Manage Applications.  Find Launcher Pro and select it.  Hit the button that says Clear Defaults.

This has worked before, but today for some reason the Clear Defaults button wasn't enabled. I couldn't figure out any way to reset the launcher so I ended up uninstalling LauncherPro. Not the best method, but it was effective.

Go to settings, applications, manage applications, LauncherPro and click "Clear Defaults"


text:
Are there any risks to rooting a device?
I see lots of tutorials telling me how to root my phone (Motorola Droid), but none of them mention any potential "side effects."
Aside from a few relatively minor issues that seem to require rooting to fix, I'm basically happy with the phone and therefore a little leery of messing with a device that cost me a lot of money and is only a few months old.
Assuming that I'm just talking about rooting, and none of the typical post-root actions (like installing a custom ROM), am I taking any risks by choosing to root?

Does it have the potential to brick the device?
Will it void my warranty?
Will I stop getting updates?
Will the cops show up at my front door the next day? (Yes, I'm being facetious.)
Anything else I should be aware of?

(See also: Are there any risks to flashing a ROM?)

See also Security risks of rooting Android, which is marked as a duplicate of this, but actually isn't.

@romkyns, concur.  I am astonished on an ongoing basis about the number of people willing to install and run compiled code from a forum post without source.  Just posted this:  http://android.stackexchange.com/questions/83038/is-any-of-the-android-rooting-software-open-source

Does it have the potential to brick the device?
Although it has become relatively simple on the Droid, some methods of rooting pose more risk than others. So in short yes there is a potential.
Will it void my warranty?
It mostly depends on where you live and on your manufacturer (and their warranty policies). But technically this does void your warranty in most cases.
Will I stop getting updates?
Again this depends. Some manufacturer provide updates for rooted devices while others do not. These will usually continue to come in and may unroot your phone if you install them, or even require you to unroot manually before you can receive their updates. If you install a third party ROM, then there's nothing else to do with your original manufacturer.
Will the cops show up at my front door the next day?
I certainly hope not :) but if rooting involves cracking a bootloader, it could theoretically get you in legal trouble in some jurisdictions (anti-circumvention laws, etc.)
EDIT:  Also be aware that there are different root methods based on which current build you are running.
EDIT:  It may (as of May 24, 2017) prevent you from installing some apps: Google Play can now prevent rooted users from downloading certain apps

re: warranty, you can just unroot if you need warranty, right?

@MGOwen Usually yes; no guarantees.

Rooting is legal in nexus according to AnswersFactory and MakeUseOf

Does it have the potential to brick the device?

Yes, it is possible to brick your phone, but should be very unlikely.  Usually there is a way out of even what seems to be a brick.
If you do not know what you are doing and want to use the ADB method (entering shell commands manually) to root your phone, then be sure to follow all of the directions exactly as listed. If you somehow brick your phone, then it does not matter how good your phone insurance is with your cell provider; if they find out you rooted or attempted to, they will not fix it.
If you do somehow brick your phone, then do not panic.  Try these things:

Post a thread to where you downloaded the root program or where the root method was posted.
Post to XDA under their questions and answers section.
Search the web. Someone else has probably had the same problem as you.

It is quite possible to unbrick your phone, but it will take some time and patience to sort it out.

Will it void my warranty?

Yes. But in most cases you can restore your phone to a condition that they'll never know that you rooted your phone.  And sometimes they do not even check to see if you rooted your phone when you return it.

Will I stop getting updates?

Yes and no.  If you flash a rom, yes.  But most likely that rom has constant updates (such as CyanogenMod).  Also if you root and keep stock rom, you will still get OTA update notifications (but running an update will un-root your phone).

Anything else I should be aware of?

May the force be with you.  No, really, it's a relatively painless process with a lot of these "easy one touch (un)root tools" and even then there is a plethora of guides and help from XDA to guide you and troubleshoot any problems you might have.  But if you are happy with your phone just the way it is, then don't root.

Rooted phones are just as secure as an unrooted phones if you never grant root permission to any apps. The problem is that if you root your phone, you're bound to give root permission (otherwise, why are you rooting your phone in the first place), and applications that you give root permission may turned out to be rogue or leak their permission to allow an untrusted applications to gain root-like permission.
Running rooted phone is safe as long as you know which app to give root access and which are not. Problem is, even assuming that you only pick trustworthy apps they still can leak permissions inadvertantly (in security parlance, this is called confused deputy problem), so you must really be careful when choosing trusted apps.

Is root one of the permissions that show up on the permissions dialog when installing an app?

@Jeff: no, it isn't one of the permissions in the permission dialog, at least not on non-rooted devices. I figure a root manager could potentially integrate root permission management into the permissions dialog, but that would most likely not be a good idea as most people had the habit of just clicking through the permission dialog without inspecting it carefully.

Some malwares can escalate to root permissions even on a un-rooted phone. Like the one they just recently found in over 50 (popular) apps on the android market.
http://www.pcworld.com/businesscenter/article/221247/droiddream_becomes_android_market_nightmare.html

They were copies of popular apps, not the popular apps themselves.

By popular I meant that they have been downloaded many times. But indeed they were copies of relatively well-known apps with malware code added to them.

I didn't think any of the Android trojans so far actually bothered to escalate to root? They just asked for more permissions than that sort of app generally needs, and that gave them enough access to do all they wanted? That is after all what a classic trojan does, gets you to let it in and give it the access it wants.

Does it have the potential to brick the device?

Yes.
Will it void my warranty?

Definitely.
Will I stop getting updates?

Yes, if you install a custom ROM.
Will the cops show up at my front door the next day?

Yes, but only if you're Chinese ;-). And even then, only if your police administration is near enough to Beijing.
And you should be aware that it is a security risk. A root user has access to the entire phone, including all of its functionality, and the memory of all running applications. A backdoor could be installed in a custom ROM. It might not even be to your disadvantage, but your phone might become part of a botnet.

This seems a little alarmist.  Most of these ROMs are open source, so any backdoors would be found quickly.  And I thought that it was very easy to root a Droid; can you point me to a link or resource about this Motorola issue so I understand whether or not it can affect my phone?

I have read it on a codeproject newsletter, don't have it anymore. I don't know anymore, but the 'destroy' part was specific to one line [latest probably] of mobile phones. (it's a kind of fuse, which PERMANENTLY disables your phone if you attemp to load a custom ROM) See here for the nearest thing to a reference: http://theunlockr.com/2010/07/14/motorola-continues-to-block-custom-roms/

@Aaronaught: I've never seen the source of one of these ROMs. Maybe I didn't look good enough. But even if I had the source, you need to compile from that source, there's no telling whether the ROM image was actually compiled from that source. Then, you've to review the entire source. Good luck with that. If you are really good, it takes you about a year. Then you've to create a gold-card, and some of these tools were closed-source, and that makes me a little bit uncertain about their FOSS motives. Just as the phone companies that don't release the drivers or digitally sign the boot ROM.

You won't brick the phone, it'll just refuse to boot until you flash a signed rom back on it. That whole "e-fuse" thing was fear mongering.

The e-fuse doesn't brick.

It needs to be clarified that there is a security risk only when you allow an application root access; applications which do not request root or where you deny it will be as safe as ever (which is to say, somewhat unsafe, since there exist exploits). The su binary could itself be malware too, but that's unlikely. Full answer: http://android.stackexchange.com/a/6010/9240

TLDR Version (2017)
Does it have the potential to brick the device?
Yes and no, kinda depends on the method: Installing an official rooted ROM or a setting toggle is safe. Using a script that relies on a CPU bug to crack kernel security isn't.
Will it void my warranty?
It depends on:

The OEM ToS (Terms of Service). Most major OEMs say you lose warranty.
ToS validity under the regional law. For example, in the EU a ToS claiming warranty voids upon rooting is not enforceable. They can't legally refuse your warranty because of it. But in worst case you may have to fight them in court to get it (unheard of as yet).

Will I stop getting updates?
50/50, varies by OEM. In the negative case, you can often unroot then re-root the updated version. But not always.
Cops? Other stuff?
No cops. Rooting is not illegal, anywhere. But:

the play store can detect it and may prevent you from downloading certain apps, though it doesn't prevent you getting those apps elsewhere.
apps with root permission can do more damage to your system, so beware of security threats, see here


text:
Is there a way to use Userscripts / Greasemonkey Scripts on the Android Browser or Dolphin HD?
I would like to be able to use userscripts in Android.  Is this even possible?  I read that it was a couple months back and tried a tutorial which I can no longer find but it didn't work.
This question may be related to this other one I submitted but I believe they may have totally different answers.

see also: http://android.stackexchange.com/questions/1053/is-there-a-way-to-use-pc-browser-bookmarklets-with-the-android-browser-or-dolphin

I just installed tampermonkey on FIREFOX NIGHTLY on android successfully , using this workaround https://www.youtube.com/watch?v=GXcg8r0c-Lk

Use OilCan - "Greasemonkey on steroids for Android".

Have you tried it?  I'm pretty sure this is the one I tried but couldn't get to work.  It was a while ago when I was still new to Android so I might have better luck now.

I haven't tried it yet. Looks cool though so I will give it a try soon and see what happens.

2019 Update:
My preferred way to get userscripts on Android would now be to use the Firefox browser, which has working, well-maintained Add-ons available for both Greasemonkey and Tampermonkey (search for them through the Add-ons menu in the Firefox app).
Pasting the javascript into the address bar still works (at least on Chrome), but note that Chrome now strips out the javascript: prefix when you paste in the code.  If you don't retype it, it will just do a web search.
The mobile versions of Chrome and Opera (also now based on Chromium) don't support userscript add-ons, but the Tampermonkey standalone app is still available from the Play Store.  It hasn't been updated since 2013 but still just about works.  However, given its age, it won't support many of the features of the current Greasemonkey/Tampermonkey API, or modern websites in general.  As a result, many userscripts won't work without modification.  It's also tricky to figure out how to install them in the first player (use the 'Textarea' utility hidden under the Advanced Settings).  There are also Tampermonkey extensions for the Dolphin and UC browsers available in the Play Store.  I haven't tried them, but they haven't been updated since 2016.
Original 2013 answer:
Solution 1. Use Tampermonkey. Tampermonkey is more popular as an extension for Chrome, but it is also available as a standalone Android app. It functions as a lightweight browser, and allows you to manage and automatically run user scripts. Unfortunately it doesn't have many of the features found on other popular browsers, but it does support the Greasemonkey API.
Solution 2. Use Opera Mobile, which has built-in support for userscripts, but no script management features, and doesn't support the Greasemonkey API. Navigate to the User Prefs section of opera:config, then tick "Always Load User JavaScript" and "User JavaScript". Enter the path to a folder (not a file) in the "User JavaScript File" field (I use /sdcard/userscripts/), then store the settings. Save your userscript in that folder with a .user.js extension.  NB this works in OM12, but the OM14 beta doesn't seem to support userscripts at present.
Solution 3. Launch your userscript manually via a bookmarklet or pasting this javascript directly into the browser address bar:
javascript:(function(){var a=document.createElement("script");a.src="http://path.to/myscript.user.js";document.head.appendChild(a);})();

This technique is tedious, but the principle should work in most browsers. You don't get Greasemonkey API support though. The code above should work without modification in the stock Android browser, and can be saved as a bookmarklet. In Chrome Mobile the space in the var a needs escaping, i.e. var%20a=, and bookmarklets don't seem to work, so you have to paste manually every time.

I guess you should advise the people who use the 3rd option. The userscript engine is more than append a js file to the current dom. Is not only the API, it's the sandbox features.

The current version of Opera for Android does not support user javascript.

Option 3 did not work for me, unfortunately.  It just google-searched the string until I realized that the javascript: portion at the front wasn't actually pasting into the URL bar (how annoying!)

Please note that a script won't load if you are on a https:// site but load s script from http:// and also, in newer browsers, you may have to fiddle around with about:config to enable loading of scripts from another domain on some sites who disable it in their <meta> tag in their <head> section

My Firefox android is not compatible with either tampermonkey or greasemonkey addons. Are you sure ?

This answer is out of date. Firefox for Android no longer supports these add-ons unless you use Firefox Nightly, which is not ideal for most users.

There is a Greasemonkey-like add-on for Dolphin called Tampermonkey. There is also a stand-alone Tampermonkey app, but Dolphin is a more full-fledged browser than that thing.
There is also a similar add-on for Firefox for Android, called USI.

Dear lord, Tampermonkey's browser is awful. No cookies, no bookmarks, no passwords, no tabs.  It's the barest of barebones and not even worth using.

Firefox does support plugins on mobile, woot.

Use either the Habit Browser or Slepnir Browser apps. They both support Userscripts. I had to tweak my scripts slightly to get them working (they handle events differently) but they both work really well.

Do you have any instructions on how to install a userscript with either? I played around with Sleipnir for an hour and could not figure out how to do so.

You can run userscripts on your phone by installing Violentmonkey on Kiwi Browser or Iceraven.


text:
how can I control the second internal clock
My alarm clock app has been occasionally failing to ring in the morning, but I don't believe the problem is due to the app.
In other news I recently added a lock screen app that happens to display the time in two locations on the screen (one from app itself and other my widget) and on days when the alarm fails to ring I noticed that the second clock just stops, (which today says 3:52 am)
I have been checking the two clocks before bed, but last night when I checked it was good, yet the alarm failed this morning and now the times are different
I presume there are two internal clocks and the lock screen and alarm app are both using the problem clock, which is probably being killed by some task killer.
I can't afford to oversleep again!
Have Note 3 with latest android update
Any ideas?

"some task killer": do you have a task killer installed? If so, uninstall it!

+1 to that – especially if it's one of those "auto-RAM-optimizers" using Chuck-Norris-Roundhouse-Kicks to "clean up stuff". Those almost always backfire more than proving useful.