>And of course, the idiotic permissions system. Want to check to see if a user's on the phone? Gotta also get access to who they call and their IMEI and other permanent identifiers.
Use XPrivacy. It should be mandatory for anyone who uses a phone and has a clue about privacy.
It filters permission requests so when an app tries to use one, it gives you a popup with allow/deny temporarily/permanently options, so if an app wants to access something it shouldn't (location, contacts, device ID, etc.), you can feed it empty/fake data transparently to it.
This requires rooting, which (unfortunately) comes with all sorts of strings attached and ugly rough edges. I'd rather have the idea of a flexible permissions model built into the OS.
I'd like it too, but there are still innumerable things that also need root. I've never had a single problem from root and would never own a phone without root, for any reason. Without root, a phone just sucks too much.
Pry-fi (randomise MAC address when probing for wireless networks), Titanium Backup (backup that doesn't suck), most advanced network tools, changing FDE password to be different to lock screen password, running an sshd, detecting IMSI catchers, most performance fixes/optimisations, even just basic full filesystem access - all need root too.
Use XPrivacy. It should be mandatory for anyone who uses a phone and has a clue about privacy.