Pir8Bob borrowed everything from the following Android community blog posts or forum threads:
How to: Root Motorola DROID Running Android 2.2 FRG22D | Droid Life: A Droid Community Blog
[HOW-TO] Manually deodex your phone. - Droid X Releases - AllDroid Public Board - [HOW-TO] Manually deodex your phone. - Droid X Releases - AllDroid Public Board - AllDroid.org > Home
HTC Status Bar Theme for Froyo FRG22
This post shows another method to root:
Another Android 2.2 FRG22D Rooting Method for the Motorola DROID | Droid Life: A Droid Community Blog
Step Zero: DISCLAIMER
I’m not liable for you breaking your phone. I didn’t break my phone. I did this with a Mac, which is harder than using a PC, but maybe easier than using Linux. However, if at any point you aren’t sure what a command does or how to accomplish a step, you should reconsider rooting your device. Reasons? After you root your device, you unlock the ability to seriously screw up your phone (with the added bonus that you’ve voided your warranty so Verizon won’t care that your phone is now only good as a door stop). If you follow this guide, you should finish with a rooted phone that still works. But if you decide to take things into your own hands later (or during), you might be starting a thread of your own hoping for someone to save your bacon. So bottom line: do this at your own risk, don’t type commands unless you know what they do, and read the whole guide before you start, rereading each step before starting it.
With that covered, on to the fun.
Step One: Let’s Root!
The benefits to rooting are tons, and it’s easy. I’ll repeat what was said on DroidLife: this may look confusing and long, but it takes about 5 minutes once you get the SDK. The longest part is waiting. First, let’s get everything you’ll need:
You will need the Motorola USB Drivers if you are running Windows. I didn’t need them for my Mac, and I imagine it’s the same story for Linux. 32-bit or 64-bit -- pick your flavor.
You need the Android SDK. Here. Follow the instructions there. On my Mac, I didn’t bother with the path, I just ran from the download folder. I’ll include those instructions too. On Windows, you actually download an SDK manager. You’ll need Java (get that here, if needed). I assume Linux is more like the Mac download. Whatever you're using, just get the SDK installed. This is the most time consuming part of rooting.
NEW! One-script rooting! (Mac/Linux)
UPDATE 9/29/10: I stumbled upon this little gem today: xda-developers - View Single Post - Easier 1-2-3 Droid 2 Root for Windows / Linux / Mac
And I made some tweaks of my own so it works on Droid 1. (Tested on my wife's previously-stock, now-rooted Droid.)
- All you need to do now is download doroot.sh to your Android SDK 'tools' directory. (The Droid2Root files you need to root will be automatically downloaded.)
- cd to your 'tools' directory: "cd ~/Downloads/android-sdk-mac_x86/tools"
- Run "chmod 755 doroot.sh"
- Type "./doroot.sh"
- You can also download doroot.zip, which includes the Droid2Root files you need to root.
- Extract the zip and move the files in the created directory into your Android SDK 'tools' directory.
- cd to your 'tools' directory: "cd ~/Downloads/android-sdk-mac_x86/tools"
- Run "chmod 755 doroot.sh"
- Type "./doroot.sh"
Sorry Windows users, this is a bash script -- Linux and Mac only. (Maybe you could run it in cygwin?)
Because I've made the files available on Dropbox (if you download just the script, not the complete zip), I'm going to make a shameless plug. If you don't have Dropbox, I recommend you get it. Using this link will give me "bonus space" if you install the client, so if you don't already have it, get it here:http://www.dropbox.com/referrals/NTE2MDM4ODQ5 . Hopefully this doesn't create too much traffic (that's why I've included an attachment with everything you need)--if anyone is willing to host the files for download by the script, that'd be awesome.
Once you get the message "Congratulations, you should now be rooted." you can wait for the reboot and start move on to step 2.
Manual rooting
You will need Droid2Root.rar. You will also need WinRar or UnRarX.
Before you do the actual rooting, here are the commands you’ll enter, with some explanation. These are the Mac commands. (More advanced users, just skip this because you probably already know them better than I do.)
adb devices #This starts the connection daemon and lists devices. This should list a device as a long number. If it doesn't something is wrong. (You likely forgot to enable debugging on your device.)
adb push ~/Downloads/droid2root/rageagainstthecage-arm5.bin /data/local/tmp #This pushes the Rage binary that will allow you to gain root shell access before you have installed su.
adb shell #Connects to your device with a shell.
cd /data/local/tmp #Changes the working directory to where you put the Rage binary.
chmod 0755 rageagainstthecage-arm5.bin #Changes the binary to be executable.
./rageagainstthecage-arm5.bin #Executes the binary. Wait until you are returned to your computer terminal or command prompt. If you don’t wait (yes, it’s painful to wait, but better safe than sorry), then you didn’t follow directions very well and should probably stop messing with your phone. It takes a while, but it will finally finish and return to “hostname:tools username$” or “C:\android-sdk-windows\tools>”. Just have the TV on and time will go faster.
adb devices #Checks to make sure your device is still being seen and reestablishes a connection.
adb shell #Opens the shell again. But now instead of a $ you should see a #. That’s root access.
mount -o remount,rw /dev/block/mtdblock4 /system #Remounts your /system directory with read/write access. I’ve removed the file system type argument because it’s unnecessary for remounting. (Nerd note: actually, the argument specifying the device to mount is ignored--”/dev/block/mtdblock4”--but still required. The system only changes the mount flags for the mount point /system. Remount does not actually unmount and remount.)
exit #Go back to your computer’s terminal .
adb push ~/Downloads/droid2root/Superuser.apk /system/app #Pushes the Superuser app to your phone.
adb push ~/Downloads/droid2root/su /system/bin #Pushes the su binary executable to your phone.
adb push ~/Downloads/droid2root/busybox /system/bin #Pushes busybox to your phone. Not needed to root, but very handy. Recommended.
adb shell #Reopen shell on phone.
chmod 4755 /system/bin/su #Change su permissions to be executable.
chmod 4755 /system/bin/busybox #Change busybox permissions to be executable.
mv /system/recovery-from-boot.p /system/recovery-from-boot.p.disabled #I think this keeps your phone from rejecting the rooting process.
mount -o remount,ro /dev/block/mtdblock4 /system #Remounts /system with read-only permissions.
rm /data/local/tmp/rageagainstthecage-arm5.bin #Removes the Rage binary from your phone.
exit #Exits the phone shell.
Now that you know what you’re about to do, you can do the actual rooting.
- Extract Droid2Root.rar to C:\droid2root or ~/Downloads/Droid2Root/
- Enable usb debugging on your device.
- Connect your phone to the computer via USB cable.
- Open up a terminal window (the command prompt for Windows).
- cd to your Android SDK tools directory (there should be a file called adb or adb.exe):
For most the command would look like this "cd C:\android-sdk-windows\tools" or "cd ~/Downloads/android-sdk-mac_x86/tools/" - Now enter the following commands:
Windows:Mac (I’m assuming you didn’t want to bother changing your path):Code:adb devices adb push c:\droid2root\rageagainstthecage-arm5.bin /data/local/tmp adb shell cd /data/local/tmp chmod 0755 rageagainstthecage-arm5.bin ./rageagainstthecage-arm5.bin adb devices adb shell mount -o remount,rw /dev/block/mtdblock4 /system exit adb push c:\droid2root\Superuser.apk /system/app adb push c:\droid2root\su /system/bin adb push c:\droid2root\busybox /system/bin adb shell chmod 4755 /system/bin/su chmod 4755 /system/bin/busybox mv /system/recovery-from-boot.p /system/recovery-from-boot.p.disabled mount -o remount,ro /dev/block/mtdblock4 /system rm /data/local/tmp/rageagainstthecage-arm5.bin exit
Code:./adb devices ./adb push ~/Downloads/droid2root/rageagainstthecage-arm5.bin /data/local/tmp ./adb shell cd /data/local/tmp chmod 0755 rageagainstthecage-arm5.bin ./rageagainstthecage-arm5.bin ./adb devices ./adb shell mount -o remount,rw /dev/block/mtdblock4 /system exit ./adb push ~/Downloads/droid2root/Superuser.apk /system/app ./adb push ~/Downloads/droid2root/su /system/bin ./adb push ~/Downloads/droid2root/busybox /system/bin ./adb shell chmod 4755 /system/bin/su chmod 4755 /system/bin/busybox mv /system/recovery-from-boot.p /system/recovery-from-boot.p.disabled mount -o remount,ro /dev/block/mtdblock4 /system rm /data/local/tmp/rageagainstthecage-arm5.bin exit
- Done! Reboot your phone for good measure. You are now rooted.
It will probably take more time to read this post than your actual rooting. It has definitely taken more time to write than it did to root. For those of you who just want to root, you can be done. Download some great apps from the App Market. Here’s some that I’ve tried and recommend:
Rom Manager -- Should be your first stop after you reboot. This will allow you to install custom roms and theme, but most importantly, will allow you to back up and restore your phone. Install this, then use it to flash ClockworkMod Recovery to your phone before you continue this guide.
SetCPU for Root Users -- Allows you to set your phone’s CPU minimum and maximum depending on conditions such as temperature and battery charge. Helps maximize battery life.
Barnacle Wifi Tether -- Share your 3G connection through Wifi. Who doesn’t want to do that?
drocap2 for root users -- takes screen shots. Another similar app is ShootMe, but drocap2 has a smaller install size, so I chose it.
Step Two: Deodex those System Files.
If you want to theme your Droid without installing a custom rom, you’re going to need to deodex your system files. What does deodexing do? Well, from what I’ve learned, your stock applications come as packed .apk files that also come with .odex files. These .odex files contain a checksum of the .apk files. So you can’t change the .apk files without having some problems. But most importantly, deodexing lets you replace your system.jar file and change your text colors (like your clock from black to white). That’s right. You’re about to spend an hour just so you can change some text color. Some have said that it also makes your phone snappier. I have no proof of that.
You need to be rooted. This step is more risky than the last. So you may want to kiss your device before you start, just in case. But don’t worry. Install Rom Manager and ClockworkMod Recovery then back up your current rom before you start. If you do something bad, you can pull out your battery, pop it back in, start your phone holding the X key, and start into recovery. From there, you can use nandroid to restore your backup. (Always, always, always back up before you do anything like this, including installing custom roms and themes.)
So, again, let’s get the files you’ll need. If you’re doing this on a Mac or Linux machine, reboot to Windows or fire up that virtual machine. You’ll need theAndroid SDK for Windows as well as the Motorola drivers (32-bit or 64-bit).
You also need xUltimate (now at 2.2.2).
Here’s the process:
- Unzip xUltimate v2.2, and launch "Main.exe"
- If everything goes well you xUltimate should recognize the phone and make a connection. You now should see a list of options. (If you’re running a virtual machine, make sure that you’ve “connected” your phone device to the virtual machine.)
- Choose option 5. (The guide I followed was for Droid X and required doing options 1-4 individually. But I didn’t have a “guava.odex” in my origi_frame folder, so in the end I just ran option 5 and it ran fine.)
- While you are here, run option 6. This will take your origi_app and origi_frame folders and zip them up for backup. If you ever need to restore your original system files and have deleted your backup rom, you just need to change the following directions to copy the original files back.
- Exit xUltimate, and put the phone in USB mass storage.
- Go back into the xUltimate folder and copy "done_frame" and "done_app" and move them to the root of the sdcard.
- Unmount the sdcard from your computer (eject) if you are running on Mac/Linux.
- Turn off USB mass storage mode.
- Open a command prompt (to your android-sdk/tools directory--you can do this on your native machine now, no more Windows required, just remember to disconnect the device from the virtual machine), and do the following:Code:
adb shell su stop mount -o remount,rw /dev/block/mtdblock4 /system cp /sdcard/done_app/* /system/app/ cp /sdcard/done_frame/* /system/framework/ rm /system/app/*.odex rm /system/framework/*.odex mount -o remount,ro /dev/block/mtdblock4 /system reboot
Explanation of commands:
adb shell #Connects to the phone.
su #Grants superuser access. You’ll need to allow it on your phone the first time you do this from the adb shell. Tip: choose to Remember (and Allow). If you do this, you can shell into your phone if you have trouble booting and issue a reboot command without pulling out the battery--you just need debugging enabled (always a good idea when messing with your phone).
stop #Stops your phone. From what I can tell, it basically stops your phone from doing anything phone-ish and frees up the system for you to work in with the shell. The command “start” starts your phone back up again, but the beginning of the boot, but I prefer “reboot”. Whenever you want to replace anything in your system directory, use “stop” first.
mount -o rw,remount /dev/block/mtdblock4 /system #Remounts /system with read/write permissions.
cp /sdcard/done_app/* /system/app/ #Copies the deodexed applications to your phone. Note: don’t be tempted to use mv--it doesn’t work because the files are on different physical devices (sdcard vs. flash memory).
cp /sdcard/done_frame/* /system/framework/ #Copies the deodexed framework files to your phone.
rm /system/app/*.odex #Removes the .odex checksums for apps.
rm /system/framework/*.odex #Removes the .odex checksums for the framework files.
mount -o ro,remount /dev/block/mtdblock4 /system #Remounts /system as read-only.
reboot #Reboots
Your phone should reboot as if you have done nothing. It’s not very satisfying at this point, but keep going and you’ll see that you actually did something.
Step Three: Purify
At this point, I’m going to take a moment to teach another very handy trick that you now have access to: deleting stock applications. For me, I was tired of Twitter running in the background whether or not I had actually opened it or even signed in. I was also tired of Verizon’s Virtual Voicemail app being on my phone. This is how you go about deleting them:
Code:
adb shell su stop mount -o remount,rw /dev/block/mtdblock4 /system cd /system/app/ rm Facebook.apk rm Twitter.apk rm VVMStub.apk cd / mount -o remount,ro /dev/block/mtdblock4 /system reboot
com.amazon.mp3.apk -- The Amazon MP3 store. If you don’t like it on your phone, delete it.
Facebook.apk -- Stock Facebook app. This doesn’t mean you can’t download it from the store, just that you can actually uninstall it.
Twitter.apk -- Stock Twitter app. Same as Facebook as far as implications.
VVMStub.apk -- Verizon’s stub application for virtual voicemail. If you have Google Voice, you’ve probably wanted this gone from day 1 (or even if you don’t have Google Voice).
I wouldn’t recommend deleting any other apps. You can always hide them with LauncherPro anyway. But if you know it’s safe, go ahead (it's your phone after all). Just back up before you do, and don't blame me if it breaks.
Speaking of backing up, you should do that now. After deodexing and deleting bloatware, it’s a good idea to create a clean stock backup.
Step Four: Your First Theme.
For this step, we’re going to use MotaBoy’s HTC Status Bar Theme for Froyo FRG22.
All you need is this file.
- Copy it to your sdcard. You can even send it via Bluetooth (that’s how I did it) or download it directly with your phone.
- Start ROM Manager.
- Select “Reboot into Recovery”
- At the recovery menu, select “install zip from sdcard” (5th option down).
- Select “choose zip from sdcard” (2nd option).
- Browse to the downloaded zip. If you downloaded it in your phone’s browser, it’s in download/; if you sent it via Bluetooth, it’s in bluetooth/. If you used your USB cable, you should know where you put it.
- Select yes to apply the .zip file.
- After applying the theme, press the delete key on the keyboard (on the Droid) to go back to the root recovery menu.
- Select “reboot system now” to reboot the device.
- Enjoy your first theme. If you don’t like it, you can use ROM Manager to restore the backup that I hope you just made. You can use the advanced restore menu to just restore the /system directory (because that’s all you changed with this theme).
Step Five: Other Ways to Customize
Get LauncherPro. I’m not affiliated with the guy that made this app, but I did buy it from the App Market, and it’s worth it. Customizing the dock is a very nice addition to the Android. There’s a free version, so try it out. If you really like it, buy the unlock code. (Bonus: you don't need root do use this app, so if you're nervous about rooting, or have a friend that's nervous about rooting, you/they can use this app.
I pretty much copied a screen shot I saw on DroidLife for my first customization. You can see the results in the attachments below.
I got my dock icons from the goodies download on this thread.
Now you should have all the tools you need to theme and go crazy. Just remember that themes are devices specific. No matter how many times or ways you try copying that theme for the Droid X to your Droid, it’s only going to put you in a reboot cycle that makes you glad you had ClockworkMod Recovery installed. (The link I just gave you is a theme for the Droid X--you can't install it on a Droid--I speak from experience...)
Ok... I hope that was helpful to somebody. Now a few last words.
Please don’t skip to theming before you deodex and then ask me why the clock color is still black. And I’m not trying to endorse any app/process/website. I’m just providing all the information I wish I had had when I rooted into a single thread in hopes that someone finds it useful.
If you find any typos, please send me a private message instead of posting a reply to this thread. If you have a good question that you think others might want the answer to, that’s a good reason for a reply, or to help out a fellow forum member, and also to add anything awesome.
Thanks and credit go out to koush (ClockworkMod), Kellex (DroidLife), Webst3r, xeudoxus (xUltimate), MotaBoy (Sense theme), Manup456 (my dock icons), and darkonion & facelessuser (originally creating the root script) for all the info, previous guides, apps, and themes I've used. Plus the developers of the apps I mentioned. Also plus those that helped develop any rooting tools used here.
Happy rooting, deodexing, and theming!
UPDATE 9/16/10: I corrected some missing line breaks. I typed this up in Pages (iWork) and when I copied it into the post form, a bunch of line breaks were missing. I thought I had gotten them all, but there were a few missing still in the Windows rooting commands. I also changed "./adb shell" in steps > 1 to "adb shell" for simplicity.
UPDATE 9/29/10: I started wondering if anyone had successfully used this guide (I've only had people asking for help with problems), so I've added a poll to the top to see how useful this guide is. I'm hoping that most people using the guide have had little to no trouble; thus, they haven't felt the need to post replies on the thread. Just wanted to find out if hours of typing was a good way to spend my time. Oh, and I added a one-command root script for Mac (and presumably Linux).
UPDATE 11/19/10: Made just the doroot.sh script downloadable. Removed reference to "PC Mode" in the script. (It doesn't exist for Droid users.) I haven't been receiving emails to update me that others have posted. Maybe it's the poll? Or gremlins? But either way, I apologize that I haven't posted or updated in a month. Thankfully, issues are few. I hope most have little to no trouble.