There are many difficulties that come with attempting to root a phone. As time has progressed and the Android platform as a whole has matured, several new techniques have arisen that allow easier rooting of phones. Here are three of the great ways different phones can be rooted using some of the latest tools.
GingerBreak found on XDA, is a very simple tool for gaining root access. It works very well with the Motorola Droid X2. GingerBreak is a single apk file that when downloaded and run, it uses an exploit present on many devices to remount the internal system memory, write root capabilities, and install a superuser apk file. This root attempt is extremely interesting because it requires no manual reboots, and works with a single apk file downloadable from the internet.
SuperOneClick is a Windows focused tool that roots most phone types. Simply put the Android device into debugging mode, connect the device via USB to the computer, and run SuperOneClick. The tool will automatically attempt to install and run the appropriate exploit, as well as install the needed root capabilities and packages.
I have successfully used SuperOneClick with the Galaxy S - Vibrant, as well as with the Galaxy Tab (7 inch version), and the Motorola Xoom tablet.
Cmenard's OverStock kernel
The OverStock kernel is a good tool that works for several phones, including the Galaxy S - Vibrant. This is actually the method recommended by the CyanogenMod team for the Vibrant. The kernel allows the user to continue using the existing ROM, but replaces the Kernel and system features with a version that includes root capabilities for the user. One of the benefits of this method, is that it does not seem to violate the Android security model, as it can only be used with the appropriate desktop software, and by starting the phone into download mode. The software is open source, and is maintained on Github, making the Heimdall project very centralized and well managed.
Summary and Concerns
Despite the ease of use of all of these solutions, the first two rely on security exploits in the Android operating system. This is a huge concern for me because although it makes rooting and flashing very easy, it violates the qualities that should be in place for good security. If GingerBreak works to root the device in the way we want it to, this means that any malicious app could use the same exploit to hurt the user's system. A malicious app could be uploaded to the market containing the same exploit, and install a monitoring system, or hurt the rest of the system. I have not yet been exposed to, or heard about any malicious uses of these exploits, but the fact that it's possible makes it very probable that it will happen in the future.
In the future, we need to find a way to root and flash more phones that doesn't violate the security model, but still allows the user to take full control of their Android phone, and their operating system.