Over the last three months, I have repeatedly told myself that I would not root my Droid 2. I made this choice because I wanted to use the same kind of phone that the average customer would use. After ninety days, I am completely satisfied that the “average customer” can have a warm, inviting, robust and feature-complete experience on an Android phone. And after ninety days, I can also confirm another simple fact: I am not an average customer.
For those who have followed my blog for a while, you will remember that I used custom firmware on a variety of Windows mobile phones. And you will remember that I have run custom firmware on my broadband router for over seven years. So many of you have probably taken bets on when I would break down and deploy custom firmware on my Android phone.
Well, I hate to disappoint you. But I have not yet loaded a custom ROM onto my Droid 2 – at least, not yet. But I have rooted my phone. And I did not take this action lightly. Before I was willing to forever say goodbye to the safe shores of carrier-based support, I needed to have some concrete reasons for the change. So here are my reasons:
- I need to backup my phone. This includes my customer data, my applications and the system itself. And my carrier does not provide a means to do this. So if I want to back up key files on my system, I need to have escalated privileges.
- I need to control the firewall that is on my phone. I want to say which apps can use which ports. And I want to say which external hosts I will allow threw my defenses. To do this with the builtin firewall (i.e., iptables), I need to have escalated privileges.
- I need to be able to proxy access for a selected set of applications. Unfortunately, most Android apps do not use proxy settings. In the future, I am sure that most good apps will have this feature. But for now, few have this feature. So I need a way to “impose” a proxy on apps that I choose. In short, I need a transparent proxy. Since I use Privoxy and Orbot, I need to have escalated privileges.
- I really want to block ads from a number of applications. I do think that ads are a good way to generate revenue for small software companies. But if I have paid for an app, I don’t want the adware. Indeed, I consider some ad services to be real crapware. So I want to blacklist some ad servers. To do this, I need to update my local hosts file. By pointing some of these ad servers to my local loopback, I can negate the nastiness of many of these advertisers. To do this, I need to have escalated privileges.
- I really want to control the tunneling tools that I use to connect to my home systems. I use ssh to tunnel VNC/RDP traffic into my house. And I need to have full control of these tunnels. You can use some of these tools in user mode. But kernel mode tools are much better for some of these core services. To do this, I need to have escalated privileges.
Should you root your phone? That one is up to you. I will take no responsibility for supporting you. And there is no warranty, either explicit or implicit, when you decide to take control of your phone.
But if you are willing to accept the responsibility to support yourself, there are thousands of people who would be willing to help – including myself. There are hundreds of sites that can help you on this journey. But one of the best places is the xda-developers forum.
If you decide to take your first step into a brave new world, good luck on the journey – and I can’t wait to see you on the other side.
-Roo