Flashing my ADP1 with 1.5 firmware

Finally, more about I decided to upgrade my HTC ADP1 to 1.5 version (the poor one was still at 1.0 firmware, abortion as I got it from Google). The host machine in which I will do the “external” work is a Debian testing (squeeze, grip as of August 2009) one. A nice detail to mention is that after the upgrade, all my apps, with their configuration and data, were there (including my contacts, call log, etc.). I could just upgrade some apps, and everything was working. So, no need to use my backups. Lucky me!

Step by step

From the methods that are commented at the HTC support page, I’m using the fastboot method.

  1. Download 1.5 firmware images from HTC support webpage. I download (radio image), (system image) and (recovery image). In fact, not all these images are needed: for fastboot (which is what I use), radio and system are enough. But well, I don’t pay Inet by the Mbyte… As I understand it, the radio image will go to its own partition in the internal flash memory of the device, while the system image is in fact a .zip file that contains three images (boot, recovery, system), each of which will go to a separate partition. However, there is no need of unzipping the system image: fastboot knows how to handle that.
  2. Download the fastboot executable, also from the HTC support webpage. Of course, I get the version for Linux. In fact, what I get is a .zip file, which I just unzip, to get the fastboot Linux executable.
  3. Download the Android 1.5 SDK for Linux (well, I already had it). In my case, it is 1.5r3 (the latest release in August 2009). Unpack the zip file you get. The important part of the SDK is the adb tool, that once unpacked you can find in the android-sdk-linux_x86-1.5_r3/tools folder.
  4. I check with lsusb and the adb in the SDK that my Debian box sees the ADP1 when attached. As root:

    # lsusb
    Bus 001 Device 019: ID 0bb4:0c02 High Tech Computer Corp.
    # ./adb kill-server
    # ./adb devices
    * daemon not running. starting it now *
    * daemon started successfully *
    List of devices attached
    HT845GZXXXXX device

    That “High Tech Computer Corp.” is the Android device. The “kill-server” thing is just to be safe in case old adb servers are running. The “devices” thing shows the attached devices.

    There are ways to avoid running this as root, such as those described in the Android Developing Guide, or in Howto set android developer device permissions with udev, but for now I’m skiping those.

  5. Now, I copy the radio image to the SD card in the device:

  6. # ./adb push ~jgb/software/android/adp1-images/1.5/ sdcard/
    1114 KB/s (9181622 bytes in 8.047s)
    # ./adb shell sync

  7. Let’s let the device update the radio image with the one I’ve just pushed (following the Flashing firmware images to the ADP1 device instructions). For that, I reboot the device into recovery mode by holding down the HOME key during reboot (that is, holding it down since the boot starts until I get the ! icon). When the device enters recovery mode, it displays a “!” icon.

    Now, let’s open the sliding keyboard and hold down the ALT+l key combination to enable log output in the recovery console.

    Next, hold down the ALT+s key combination to install the update. An “installing update” icon and progress bar are displayed (keep holding the ALT+s combination) — when the progress bar completes, the installation is finished.

    Press the HOME-BACK key combination to write the radio image, update the firmware, and automatically reboot. Note that if you do not use HOME-BACK at this point, the device will not load the updated radio image. After writing the radio image, the device shows a “updating firmware” icon for a few seconds and then automatically reboots in normal mode.

    After seeing “Writing radio image” in the screen (and then a nice icon showing the the process goes on), the device reboots normally.

  8. Now let’s update the system image using fastboot (following the Flashing firmware images to the ADP1 device instructions).

    Boot the device in fastboot mode. First, hold the Camera and the power buttons at the same time when powering on. The phone will boot into Boot Loader Mode. Now, connect the USB cable to the Debian box, and press the back button until “Serial0” changes to “FASTBOOT”.

    Note: For exiting fastboot mode at this point, hold down the keys MENU+Call Start + Call End together.

    As root, I type:

    # ./fastboot devices
    HT845GZXXXXX fastboot
    # ./fastboot update ~jgb/software/android/adp1-images/1.5/
    archive does not contain 'boot.sig'
    archive does not contain 'recovery.sig'
    archive does not contain 'system.sig'
    Bootloader Version...: 0.95.3000
    Baseband Version.....:
    Serial Number........: HT845GZXXXXX
    checking product... OKAY
    checking serialno... OKAY
    checking version-bootloader... OKAY
    checking version-baseband... OKAY
    checking version-cpld... OKAY
    sending 'boot' (1602 KB)... OKAY
    writing 'boot'... OKAY
    sending 'recovery' (1832 KB)... OKAY
    writing 'recovery'... OKAY
    sending 'system' (54825 KB)... OKAY
    writing 'system'... OKAY

    An dthe device reboots. After some minutes, it is finally in 1.5!

Some interesting documents

The procedure i used is based in these documents, where you can find lots of more details:

Posted in ADP1, Gadgets No Comments »