10.28.11

Android Basics: What is root?

Here’s an answer to a question I get asked often. For the super geeks in the crowd, try to remember that this is a high-level description. There’s lots of niggling details. For the geeks-in-training in the crowd, have fun with those niggling details.

Hey Keith, what is root? What does that mean to root my phone?

Android is based on Linux.

In Linux, like newer versions of Windows, accounts have different levels of access to the computer. The idea is that since most users don’t need to install software and change the hardware settings, they shouldn’t have access to do so accidentally.

In Windows, the account with the most access is called Administrator. In Linux, that account is called root. The root account can make vast and profound changes to the computer, to the point of crippling it. That’s why on Android you don’t get access to the root account.

By the way, your phone is just a tiny computer.

So, if you want to make big changes to your phone you need to get root access. The process of doing this is called rooting your phone. Generally this is done by exploiting a bug or problem in the Android operating system. This ranges from ridiculously easy to currently impossible depending on the phone you have. Newer phones and versions of Android fix these problems making it harder and harder to get root access to most phones.

Neat! But why would I want root? What can I do with it?

Most people who root their phones do so in order to install 3rd-party ROMs. A ROM, also called firmware, is essentially an operating system install file for your phone. Since Android is open-source software that means anyone can go get the original software, change it a bit, and then release it on their own. Lots of volunteers make improved versions of Android. Finding the right one for your phone is going to take some searching. But at least one popular bet is Cyanogenmod. Chances are there’s a Cyanogenmod ROM for your phone.

Some apps require root. Titanium Backup allows you to backup and restore your apps and data. This is very handy in case your phone dies or you install a new ROM (which will erase your phone). You can sometimes tweak the performance of your phone by increasing the CPU speed or changing memory settings. There are apps which allow free tethering, remote access to your phone, and more.

How do I get started?

Google it! But really, here’s a few links:

 

There, that oughta shut the lit—err, hi. You’re still here? Why? Go play!

10.5.11

Entourage Pocket Edge Google Apps & Market

Ermine + Market = Allmine

What this is:

  • Installs Google Apps
  • Fixes a problem with the Edgejr which prevents it from talking to google talk
  • Allows all google apps to function properly
  • Installs Superuser.apk & su (Version 3.0)
  • Installs busybox
  • Yes, you will have a working Market.

What this is not:

  • A full ROM.
  • An adb/titanium backup/root hack which involves copying apps from your phone.

Prerequisites:

  1. You must have a gapps zip file from http://wiki.cyanogenmod.com/wiki/Latest_Version
  2. You must have a microSD card.
  3. You must have a USB flashdrive.
  4. I have no idea if this will work if you have already tried installing google apps via other methods.
  5. I have no idea if this will work on the full sized Edge. If you want to send me an Edge to play with, that would be swell.

Instructions:

I have only tested this package from a stock Dingo (Android 1.6) ROM. If you want to try without downgrading all the way back to Dingo, let me know how it works. If you brick your edgejr, I’m sorry :)

If you want to wipe your PE and start from scratch, start with Downgrade to Dingo.

If you have the Stock firmware your PE shipped with and haven’t monkeyed with it at all, you can start with Upgrade to Ermine.

If you have upgraded to Ermine already and haven’t monkeyed with installing google apps via other methods, you can try to start with Install Allmine. If you have any problems, though, you will probably have to start over from the top.

Downgrade to Dingo

  1. I have made a version of the Dingo “Golden” update which skips some of the checks which stop the update from working. Get it here:http://bellybuttonporn.com/android/edgejr/Dingo-update.zip-hellbent.zipThis update will factory reset your PE! Do not proceed unless you have backed up all your data.
  2. Rename the zip file to “update.zip” and put it on the root of your USB flashdrive.
  3. Turn off your PE. Insert the flash drive.
  4. While holding Menu and Rotate on the LCD side, turn the PE on. Continue holding Menu and Rotate.
  5. The PE might reboot a few times before it actually updates. Once you see the Updating screen, you may let go of the Menu and Rotate buttons.The PE will reboot when the update is complete. When it boots up you will have the Dingo ROM. This is Android 1.6, and what it shipped with.

Upgrade to Ermine

  1. Download the Ermine ROM. Get it here:http://bellybuttonporn.com/android/edgejr/Ermine-update.zip
  2. Rename it to “update.zip” and put it in the root of your microSD card.
  3. Turn off your PE. Unplug your USB flashdrive and insert the microSD card.
  4. While holding Menu and Rotate on the LCD side, turn the PE on. Continue holding Menu and Rotate.
  5. The PE might reboot a few times before it actually updates. Once you see the Updating screen, you may let go of the Menu and Rotate buttons.The PE will reboot when the update is complete. When it boots up you will have the Ermine ROM. This is Android 2.2, released shortly before Entourage went belly-up.

Install Allmine

  1. Download Allmine. This update fixes a bug with the PE which prevents googletalk (and thus Market) from working. Get it here:http://bellybuttonporn.com/android/edgejr/Allmine-latest-update.zip
  2. Rename it to “update.zip” and put it in the root of your USB flashdrive.
  3. Download a Google Apps package from the Cyanogenmod wiki. Go here:http://wiki.cyanogenmod.com/wiki/Latest_VersionScroll to the bottom. You want the Cyanogenmod 6 HDPI zipfile.
  4. Rename it to “gapps.zip” and put it in the root of your USB flashdrive.Both Allmine (update.zip) and Google Apps (gapps.zip) need to be on your flash drive
  5. Turn off your PE. Unplug your microSD and insert the USB flashdrive.
  6. While holding Menu and Rotate on the LCD side, turn the PE on. Continue holding Menu and Rotate.
  7. The PE might reboot a few times before it actually updates. Once you see the Updating screen, you may let go of the Menu and Rotate buttons.The PE will reboot when the update is complete. When it boots up you will still have the Ermine ROM. Sorry! :) But wait, there’s more. You’ll have Google apps, and they’ll work.When your PE restarts it will want you to complete the registration process. You will find that your on-screen keyboard is too wide so you probably can’t sign in to your google account. Whoops!

Setup Gingerbread Keyboard (optional)

  1. During the setup wizard, choose to sign in later.
  2. From your home screen, hit menu, then Language & Keyboard. Put a check next to “Gingerbread Keyboard”
  3. Hit back, go into “Accounts & Sync”. Tap Add account.
  4. Long-press on the input box for your email address. Choose Input method. Choose the gingerbread keyboard.

Setup

  1. Sign in to your google account.
  2. Go into your apps and into Market. Accept the User agreement.Watch about a zillion notifications popup that it’s updating your google apps to the latest versions.

Caveats & Things to Keep in Mind:

  • The build.prop in your Pocket Edge is setup to fool Market into thinking it’s a Nexus One. The setup wizard also thinks it’s a Nexus One. As a result, you will only see market apps that will work on a Nexus One. Also, if you visit the market website your PE will be listed as Nexus One.
  • You can try doing the various updates all from a USB flashdrive or from a microSD. I never had much luck. Dingo likes to upgrade via USB, ermine via microSD, and allmine via USB again. No idea why!
  • A few people have tested this out. It seems to work fine. Proceed at your own risk. Let us know in this thread how it works.
  • Keep holding the Menu & Rotate buttons until you see the update screen. Really.
  • If your Allmine update fails for some reason, look in your USB flashdrive for an update.log file. Post that here.
  • If you have tried some custom wackiness with your PE (perhaps you were hacking on it trying to get google apps to work?) and the upgrade(s) fail, your best bet is to start over with step 1 and wipe the PE.
  • If your PE doesn’t respond during an upgrade for 30 minutes, you can turn it off by poking the reset button next to the USB port.

Library fix

If you’ve previously applied the Allmine update and your library is broken, applying the newest Allmine update should fix it. If that doesn’t work, you can try this manually. First, find your serial number. Go into Settings, Edge Settings, Default Device Preferences, and then scroll down to Device Preferences. Write that down.
su
sqlite3 /intstorage/.edge/.esi-data/.databases/library.db "update esimeta set device='SERIAL_NUMBER_GOES_HERE'"

Have you moved your Library to your SDcard? (Thanks to bobthesane of mobileread.com forums for this fix)

su
sqlite3 /sdcard/.edge/.esi-data/.databases/library.db "update esimeta set device='SERIAL_NUMBER_GOES_HERE'"

Version History

  • 0.1.0 – Initial Release
  • 0.1.1 – Fixed Library “could not insert” bug.
  • 0.2.0 – Fixed trackpad, camera, and keyboard bug, big thanks to tarvoke and vldmr from mobileread.com forums for the build.prop edit. Added superuser.apk & su v3.0

Download links:

http://bellybuttonporn.com/android/edgejr/Dingo-update.zip-hellbent.zip
http://bellybuttonporn.com/android/edgejr/Ermine-update.zip
http://bellybuttonporn.com/android/edgejr/Allmine-latest-update.zip
http://wiki.cyanogenmod.com/wiki/Latest_Version

 

09.29.11

ASUS Transformer TF101 update 8.6.5.13 US for CWM + Root

That title makes sense if you follow the xda-developers forums :)

Anyhow, I have a Transformer Android tablet and there was an update today. It’s pretty cool; includes a kickass note taking app.

I use clockworkmod recovery and my tablet is rooted. This means in addition to the awesome things I get from root access (the tablet dispenses candy bars, I swear) I cannot apply the official upgrades. Why not? They’ll remove my root access.

So when a release is updated some brave soul must step up and modify that update to work on our rooted tablets. This time, I am that brave dummy.

So, if you have an ASUS Transformer TF101 US on stock firmware version 8.6.5.9, use Clockworkmod, and are rooted, then I have an update for you here:

http://bellybuttonporn.com/transformer/kwt-cwm-8.6.5.13-proper.zip

09.20.11

Playing with the Entourage Pocket Edge

I got in on the $80 woot deal for an Entourage Pocket Edge. I was interested in its big brother (the Edge) when it was released but balked at the price. So did everyone else. Now that the company’s defunct I got this for a song.

There is a little bit of a community for the device. Check here:

It ships with Android 1.6 (entourage’s code name: Dingo) but there is a beta of Android 2.2 (code name: Ermine). You can find links to download it above or here at my mirror: http://bellybuttonporn.com/edge/dustyfeet.com/edge/ There’s a zillion threads above asking for the update but hardly any tell you how to do it.
  1. Download the pocket edge ermine zip file from one of the above links.
  2. Rename it to update.zip
  3. Copy it to a microSD card or USB flash drive. Insert it into the pocket edge.
  4. With the PE off, hold down the MENU and ROTATE buttons on the LCD side.
  5. With your other hand, hit the power slider.
  6. HOLD the menu and rotate buttons for quite a while. Really.
  7. When the “Updating Software…” screen comes up, you can release the buttons.
I bricked my device (rendered it inoperable) by playing around with android and trying to enable the google apps (market, gmail, etc). To fix it I had to reflash the dingo ROM. It was a pain in the ass. If you have to do it, you will have to keep retrying several times.
I have an idea on how to enable the market. I’m going to try it (again) on my PE after I’ve got it reupgraded to ermine. When I figure it out I’ll post.

07.7.11

I Want a New Phone

I want a new phone.

It should have the following characteristics:

  • Dual-core processor
  • Big screen
  • At least qHD display
  • Lots of RAM
  • physical slide-out keyboard
  • 4G LTE
  • Preferably on Sprint, but Verizon will work if my unlimited data is grandfathered in.
  • NFC
Up until those last three points the Droid 3 would be perfect. Damn them for cutting corners on what would otherwise be a perfect phone.

| Posted in Android | No Comments »
05.19.11

Titanium Backup and CyanogenMod7: Got a problem?

I’ve run into this and from my searching it seems a few others have too.

Here’s the scenario: You’re running CyanogenMod 7 on your phone and you decide to try out a different ROM. You use Titanium Backup to save all your apps and data only to find that once you’re on the new ROM a lot of data doesn’t seem to stick around. Titanium reports that it’s successfully restored the data — and some of it really has been restored — but lots of data is missing. It’s restored to the default value from when you first installed the app.

Now here’s what’s really going on.

Titanium is indeed restoring your data. It just makes sure the app isn’t running and copies all of the database and prefs setting files into its data directory. No magic. That’s all it does and that’s all it needs to do. When your app starts up (if it’s coded well) it will check the integrity of its database files. If they are corrupt it will probably delete them and start over from scratch. Not exactly optimal, but at least the app can still run, right? Well that’s what’s happening here. Your app thinks its database file is corrupt.

CyanogenMod 7 uses a newer version of sqlite than other ROMs. (sqlite is the database engine underpinning android’s apps). This version introduces a new journaling method, the write-ahead-log, abbreviated wal for short. There’s a variety of technical benefits to using wal but that discussion doesn’t really impact our issue. Our issue is that the older version of sqlite on other ROMs doesn’t understand wal, so thinks your databases are corrupt. Bam, bye-bye data!

You can attempt this fix in one of two places. You can either fix the database files before you back them up, or after you restore them. In terms of having the right version of sqlite3 available, it’s probably best to try this before you back up your apps.

This fix assumes a few things. First, you have root. If you’re messing with CM7 and Titanium Backup you already have root. Not a problem. Second, you have busybox installed. Again, not a problem since Titanium requires busybox (and even installs it for you). Third, you have to have a sqlite3 binary somewhere on your phone. If your ROM doesn’t (some don’t for some reason) include it, you’re not screwed. I *think* Titanium will detect this and copy a binary to your phone when you click the “Problems?” button. If that’s not the case, there may be other copies of sqlite3 on your phone you can use. Open up a terminal, buddy, you’re goin in.

Find an sqlite3 binary:

find / -name sqlite3

This will locate sqlite3 for you, if it’s on your phone. Once you find it, (mine was in /system/xbin/, i.e. preinstalled in the ROM), make sure it’s new enough to understand wal.

/path/to/sqlite3 --version

If you get something 3.7.0 or higher, you’re in luck. If not, hopefully you found other sqlite3′s you can try. This is why it’s a good idea to do this BEFORE backing your apps up and flashing a new ROM. If your ROM has wal, its copy of sqlite3 does too.

I hesitate to call this a script, so here’s the command to run:

find /data/data/ -regex '.*databases/[^-]*' -exec /path/to/sqlite3 {} 'PRAGMA journal_mode=delete;' \;

Again, run this in a terminal. And yes, you do need to be root. What this is doing is going through all of the database files stored by your apps and setting them to the old journal_mode. You will get errors that certain files ending in -wal or -shm don’t exist. Don’t worry about those. When sqlite3 changes the journal_mode back to delete it will get rid of the -wal and -shm files automatically; that confuses find  but doesn’t hurt anything. If an app is running during the process we won’t be able to open and update its database files. So make sure to kill them all from the Applications menu (or your task killer if you still have one of those around).

IMHO the best time to do this is on your old ROM (e.g. CM7) before doing the Titanium Backup. If you’ve already flashed to the new ROM and you’re stuck, then you can try running the command immediately after restoring everything in Titanium Backup. If you mess something up try not to panic; Titanium still has your data safely backed up. You can try again.

Leave a comment to tell everyone if this worked for you.