Google's RC30 update for the Android was not to prevent Jailbreaking, but to fix a critical bug

Last week people discovered a means to access Android as a super user, effectively allowing them to “jailbreak” the phone. Saturday morning, RC30 was pushed out that closed this ability to access the phone as root.

Some people seem to think that this update was to solely prevent jailbreaking the phone, and are pretty upset that Google appears to be acting evil by closing down people’s attempts to use their phone with open source software in any means they wish. However, they couldn’t be farther from the truth.

The RC30 update was not for preventing jailbreaking, but to fix an absolutely critical bug. In fact, as one blogger said, this was the worst bug ever. Others seem to agree that this was one hell of a horrific bug, and are now doubting Google as a source of reliable software. After I was informed of the bug and confirmed its existence, I was honestly a little nervous to use my phone for fear of breaking it. How could something so bad get past their quality assurance? Well, I do believe mistakes happen, and I’m just glad it was fixed promptly.

The “Worst. Bug. Ever.” caused every single keystroke to be sent to the phone as a command from a super user. If you unknowingly typed keystrokes in just the right fashion that they could be interpreted as a well-formed command, it was executed as if you were root. One discoverer of the bug had simply told his girlfriend his reason for his brief departure from IM by succinctly responding, “reboot”. That word is a Unix command, and it was sent to the phone as if it came from a super user. The phone promptly obeyed by restarting itself.

This is a serious bug. Sometimes seemingly jibberish is actually a dangerous Unix command, such as rm -rf /, which stands for “remove everything, including its children, ignoring any potential problems, starting from the root of the file system.” I don’t think anyone dared to test that command while knowing that bug was active!

Some people enter these commands full well knowing what they do, intending for it to only effect a remote system. The application ConnectBot allows system administrators to connect to remote servers from their phone. This bug meant that every command that sysadmin entered effected both the remote server and his own phone as if it was issued by a super user. That was a ticking time bomb that would blow up in someone’s face any second.

The jailbreaking bug was thought to be by opening telnetd through a terminal emulator on the phone. This exposed the phone to allow anyone knowing its IP address to access it as root. What was likely happening was not that there was a bug in telnetd, but rather that all the commands you were entering into the terminal emulator were simultaneously being executed as a root user silently in the background.

Despite that RC30 prevented jailbreaking, it was still a much needed hole to close. We could not live with this bug, even if it gave us freedom, for it would definitely one day destroy someone’s phone. We’ll see if Google is the “evil control freak” when the community finds the next hole that allows jailbreaking that does not simultaneously expose another serious security flaw.

I do believe we should have root access to the operating system of our phones, though. I do not quite understand why we are not just explicitly told, “These are the steps to access the phone as root. Do so only at your own risk.” But that is a different debate.