Fixing an Asus Transformer TF101 stuck in recovery boot loop

Sometimes hax go awry.  When we’re lucky they only go slightly awry and things are relatively easy to recover once you get all the tools and ducks lined up. In this case it was an Asus Transformer TF101 that the BIL of a friend had tried to root and rom about a year ago. APPARENTLY about a year ago there was a fairly common bug in the tools available that resulted in devices like the Transformer getting stuck in a boot-loop where they’ll only start in recovery mode but won’t ever boot up android by themselves without user-intervention. That user-intervention for reference is:

  1. Press and hold Power and Vol- until the device reboots and small white text shows up saying press Vol+ within 5seconds for recovery.  Do not press Vol+.
  2. It will then prompt you to cold-boot in to either recovery or android, follow the directions on screen to select android and start.

That seems rather annoying to have to do every time you restart the bloody thing. The permanent fix requires either root access via terminal emulator under the installed version of android, or running a remote shell on it with the Android sdk. I chose the latter.

As with all ASDK tomfoolery, start the adb server

adb start-server

Check to make sure the device shows up

adb devices

Start the required remote shell session

adb shell

Run the follow magic command to make everything happy again

echo boot | dd of=/dev/block/mmcblk0p3 bs=1 seek=0

And then reboot the device.

reboot

Once you know it works, take a picture of your haxxing assistant and post to social media.

[PiwigoPress id=67 url=’http://gallery.justanotherdave.ca/’ size=’me’ desc=1 class=’img-shadow’]

Kobo Mini Haxxing

Last weekend a buddy of mine picked up a Kobo Mini on sale for $40 while we were out and about. Smoking deal for the baby brother of the ereader I use (Kobo Glo). After sharing the sale info with friends it was pointed out to me that the kobo is readily hackable. At $40 it was really hard to turn down the opportunity. So I bought two of them.

Foolishly I went through the setup/registration/autoupdate on them before doing much reading into it. After finding out that the first app (Kobo Weather App) I wanted to try out required a python library that didn’t like the latest firmwares (2.6.x) project number one became revert back to an older firmware.

After some trial and error the process worked out as such:

  1. Reset the device to factory defaults. Settings -> Device Information -> Factory Reset
  2. The device will reboot after it restores to the factory image. Select Computer Setup.
  3. Plug the Kobo in and copy the desired firmware (from here) to the .Kobo folder on the SD card
  4. Umount the kobo and unplug it, it will reboot again.
  5. Select Computer Setup a second time, plug in via USB.
  6. Using sqlite open .kobo/KoboReader.sqlite I found instructions for this here, however when I attempted the sql insert it failed saying that the user table now has 7 columns and I was only giving it 5 columns of data.  I ran:
    PRAGMA table_info(user);
    to display the current table schema. It seems like at some point they added a column for Facebook Login and whether or not you’ve purchased anything from the store. I added the extra two columns of data to the insert statement:
    INSERT INTO "user" VALUES('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa','aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa','xxxx@xxxx.xx','xxxx@xxxx.xx','2aaaa aaaaaaaaaaaaa==','','0');
  7. Exited sqlite, ejected the mounted volume, unplugged the Kobo Mini, and it jumped from the setup screen to the main screen of the Kobo software. My mini was now running 2.5.2

After that I copied over the update package to enable telnet, shut down the device, disassembled it, took out the sd card and used ddrescue to create an image of the card. Now I can install apps and muck around and have a good point to revert back to should I break the install too horribly in my playing.