I love Android, but it’s so darn finicky.
To be fair, most of the issues I run into can be blamed on the fact that I like to modify devices and run custom software on them, but I only take it so far. I only run major, stable releases of CyanogenMod, which is the most popular community-supported distribution of Android. And my phone model (Galaxy S3) is one of the most popular Android devices of all time, so that helps to guarantee an above-average level of software support and performance.
Above average isn’t perfect, though!
After running an update recently, I realized that my Bluetooth headphones’ “Play/Pause” button was now only being interpreted as a “Play” button, meaning I couldn’t pause anything. After a bit of research, I found instructions on what to change in a specific system configuration file (/system/usr/keylayout/AVRCP.kl) to fix how the system handles Bluetooth input. Of course, if the phone weren’t rooted, I’d have been out of luck entirely.
On top of that, I realized today that whenever LTE service is available, the phone simply cannot connect to the network anymore. It tries to, but it just hangs indefinitely. I had to force it into no-LTE, CDMA-only mode to at least get a 3G connection in the meantime. I’ll have to flash a new modem on the phone to see if that clears up the issue.
Update: It turns out the LTE problem was carrier-specific. Flashing a custom APN XML file cleared up the issue.