This manual lists all the steps, in logical order, to go from a physically broken phone to a great working, free and open source phone. It links to several other articles on this blog for detailing individual aspects.
(1) Getting your hardware repair tools ready
A good toolset is demonstrated in HTC Desire HD Disassembly Video. Not all of these are needed though. I recommend these:
- Safe-open pry tool.
- Small torx T5 screw driver.
- Small cross screw driver.
- Scissors. For cutting the adhesive tape to size. I recommend good chirurgical scissors, for cheap from eBay.
- Hair dryer. For heating the adhesive below the display edges to safely open the phone.
- Clear double-sided adhesive tape. This is the only type of tape you really need, as it can replace resp. used to DIY produce the other types mentioned below. I recommend a good quality tape from 3M. I usually buy the 25 mm wide variant, which is wide enough for all jobs, and cut it to size as needed.
- Touchscreen mount tape. This is 2 mm wide double-sided adhesive tape that is offered specifically for phone display repairs, and is useful for many models. Alternatively, you can use more standard, wider clear double-sided adhesive tape (see above) and cut it to size; this is ok if you do one or a few phones. Potential sources for the narrow tape:
- Metal-shielded Mylar tape. Used for shielding some connectors etc.. After taking these off, they normally have to be replaced or reworked. Potential sources:
- It is possible to remanufacture these tape pieces. Use a double-sided adhesive tape that has a plastic film inside, similar to the original black tape, as else the metalized fabric will cause shorts. A good idea (to be tested) is to use 3M doublesided detachable adhesive tape 3M 4658 F, for simplifying future repairs. A good source for the metalized fabric is also the large sheet of metal-shielded mylar tape from the back of the display unit, after detaching it from the frame. It can be backed with new adhesive, then cut to size.
- Double-sided adhesive sheet. Some use it to glue the touchscreen to the LCD and the LCD unit to the chassis [source]. However, it is very thin and too delicate to handle for these purposes. You may find it useful for some other re-glueing jobs on the phone, but I did not miss it when having the film-based clear double-sided adhesive mentioned above. The source mentioned refers to a 3M Adhesive Transfer Tape with the 200MP adhesive, which is available in multiple variants, differing by thickness and backing material. They are sold both in sheets and rolls (and 70 mm wide rolls would fit the HTC Desire HD) but not all are easily available in small quantities. Currently I use the 3M 467MP variant (it's the thin variant, while 3M proposes that for glueing two hard surfaces together it may be necessary to use the thicker variant). Some sources:
(2) Identifying problems with the hardware
Known failure modes by frequency, according to my subjective impressions. It includes only failures for which there is at least one practical example. This is of course an incomplete list.
- Cracked display from falling.
- Only touchscreen cover glas broken, touchscreen works, display works. It is sufficient to just exchange the touchscreen digitizer unit. Separating it from the display unit is however a bit difficult [instructions]. Maybe it is even possible to just replace the cover glas, maybe even with a self-cut polycarbonate sheet (the glas breaks too easily in my view!). Did not try yet.
- Only touchscreen cover glas broken, touchscreen does not work, display works. It is sufficient to just exchange the touchscreen digitizer unit. Separating it from the display unit is however a bit difficult. [instructions]
- Only touchscreen cover glas broken, touchscreen and display broken. You need to exchange the complete touchscreen and display unit. That saves some work, as you don't need to separate these both then [instructions].
- Water damage.
- Display background light does not work. In this case, the screen itself shows an image, which can be seen with a flashlight [instructions]. To repair, try to replace the LCD unit first, and if that does not help you can try to reflow or else exchange a certain IC [source, with image]. You will also find some generic tips in a guide for a Nokia phone's backlight. In some cases, it is possible to get the backlight back while exerting some pressure below the menu button near the HTC logo [source].
- But touch key backlight work. [source, in German]
- Touch key backlight does not work either. I had this case myself.
- Intermittent wifi and 3G connection loss. There seem to be lots of different causes for this, but in many causes it is because of bugs in the firmware (incl. stock firmwares). In these cases, installing a custom ROM without such issues will help.
- Broken loudspeaker. In this case, the loudspeaker will not work, but the internal speaker and headset will work. Fix: Replace the loudspeaker. This is a small press-fit device at the back of the mainboard and is replaced easily.
- Poor or no GPS reception. This seems to be quite a frequent with the Desire HD, kind of its weak point. Fix: If GPS never worked properly with your current ROM, try updating the Raio image first (see below). If it worked before with your ROM, try to re-seat the GPS antenna by pushing on the lower part of the plastic cover that also contains the flashlight LED lenses [source]. By doing this while having the "GPS Status & Toolkit" app running, you get immediate feedback when the condition improves. If this does not help, take out that plastic piece and clean the contacts. If that does not help either, replace that piece with the GPS antenna.
- Humidity from hand sweat made stains in the display. It was reported that through using the phone in summer (holding it in the hand), sweat got between the display and the light dispersion film and caused stains / irrgular lighting. These stains are only visible when the background light is on, and are most visible on white backgrounds. [source, in German]
- Losing GSM signal sporadically or bad reception. Fix: Try cleaning the contacts of the GSM antenna (it's in the SIM / SD card cover) and ensure proper connection [source]. If it does not help, look for problems with the currently installed Radio version and try a newer and better one. If that does not help, exchange the main board.
- Losing wifi signal sporadically or bad reception. Fix: Try cleaning the contacts of the wifi antenna (it's in the battery cover) and ensure proper connection. If it does not help, look for problems with the currently installed Radio version and try a newer and better one. If that does not help, reflow the wifi chip if you can, or simply exchange the main board.
- Proximity sensor not working properly. The proximity sensor is that little piece looking like a clear LED, to the right of the earpiece speaker. Its task is to detect if you are holding the phone to your ear during a call; it will then switch off the screen for you. In a combination with many custom ROMs, this sensor does not work as expected because of improper calibration data. There is a handy tool called DHD Proximity Sensor Recalibrator to fix this – see there also for hints on usage. The tool is alread included on CyanogenMod 11 for Desire HD (as installed below), as an app under the name Proximity Recalibrator (com.leppie.dhd).
(3) Repairing hardware defects
(4) Getting your software tools ready
(5) Freeing the phone: ENG S-OFF, Radio S-OFF, SuperCID, SIM unlock, permaroot
There are several guides available:
So I recommend here using the above Advanced Ace Hack Kit tool and procedure. This will result in: ENG S-OFF (mostly called just "S-OFF"), Radio S-OFF, SuperCID, carrier SIM unlock, rooting ("permaroot" type), Busybox installation, ClockworkMod Recovery installation [source]. So, nothing left to do then.
While still you're encouraged to read their effin-manual.html (in the downloaded package) and follow the steps in there, I want to add one crucial step of help: To get the PASS KEY, start the AAHK software (on Linux sudo ./hack-ace.sh), then look up the key in ./tools/txt/CAJUN.txt. It is generated new each time you start that software. (Sorry attn1, I understand your nerdy humor but I'm so used to fly through docs without harming myself that … well … you got me a little upset with that forced effin manual consumption 😉 )
(6) Installing a Recovery solution
Finally, I like 4EXT Recovery Touch pretty much, so let's install it over the ClockworkMod recovery provided by Advanced Ace Hack Kit.
The first nine steps from the following list are only needed for the first phone where you want to install 4EXT Recovery Touch.
- Make sure USB debugging is enabled (Settings -> Applikations -> Development options) and Fastboot mode is disabled (Settings -> Power). That may seem counterintuitive as we want to use a tool called fastboot, but that tool and the startup speed improvement share nothing but the name. Also, disabling Fastboot mode may or may not be necessary [source].
- Connect the phone by USB cable and select "Charge only" for the connection mode.
- Set up Google Play. We need it for installing BusyBox.
- Install the BusyBox app via Google Play, then start this app and install actual BusyBox with it. BusyBox It is a set of Linux core utilities needed by 4EXT Recovery Updater below.
- Download 4EXT Recovery Updater from here, and install it with:
adb install 4EXTRecoveryUpdater.apk
(Alternatively, you can support the developer by purchasing 4EXT Recovery Control via Google Play, which you can also use here.)
- Start 4EXT Recovery Updater and instruct it to "just download" the latest version of 4EXT Recovery Touch for the HTC Desire HD. That would be version 184.108.40.206 RC3 as of 2014-08. (After that, you can also install it from right there, saving you the remaining steps below. We only do the download step here because it saves you all preceding steps for the second and following installations of 4EXT Recovery.)
- Transfer the 4EXT Recovery Touch installation file to your computer:
adb pull /sdcard/download/4EXT_Recovery_Touch_v220.127.116.11_RC3.zip 4EXT_Recovery_Touch_v18.104.22.168_RC3.zip
- Unzip this archive and change to its directory:
unzip 4EXT_Recovery_Touch_v22.214.171.124_RC3.zip -d 4EXT_Recovery_Touch_v126.96.36.199_RC3
- Check the MD5 sum:
- Edit recovery.md5 and append " recovery.img" (two spaces plus filename) to the first line to make it a proper md5sum file.
md5sum -c recovery.md5
- Boot into bootloader, which is the mode we need to be in to use any fastboot command [source]:
adb reboot bootloader
The phone should show a line indicating the mode as "Fastboot plus USB" or "Fastboot USB".
- Flash 4EXT recovery to the phone:
sudo fastboot flash recovery recovery.img
- Reboot into recovery mode to test 4EXT Recovery Touch. For that:
- Power the phone off.
- Hold "Volume Down" and then press "Power". It will boot you into the bootloader.
- In the bootloader, select "Recovery" by pressing "Volume Down", and start it by pressing "Power".
(7) Updating the Radio image
The "Radio" is a second computer (CPU, RAM) inside the phone that operates just the various radio communication devices so that phone calls etc. are not affected by any malfunctioning app on the main processor. There is an image called the "Radio" containing the "operating system" for this mini computer, and the manufacturer also relases differnet versions of this that fix issues with old versions etc..
Updating the Radio can fix GPS, wifi, GSM and 3G connection issues, improve reception and battery life and also fix freezes and call drops caused by a buggy Radio firmware. For example, GPS reception won't work at all in new Android versions (like 4.4.2) with too old a Radio (like 14.04.28_M – source; or 26.10.04.03_M – own experience). The newest (and generally recommendable, it seems) Radio as of 2014-05 is Radio 188.8.131.52_M.
Flashing a proper RIL (Radio Interface Library) is not necessary and not even working with CyanogenMod 10.1 or 11, as it is only for HTC Sense based ROMs [source].
For flashing instructions, use "The Google Way" in the first post of "The HTC Desire HD Radio Thread" or a longer version in its own thread. Short version of this, which can be used with Linux (but be careful and read what you must, you can brick your phone):
- Preconditions. We met these above already, but keep the accumulator in mind:
- phone is rooted
- phone has Radio S-OFF
- phone has ENG S-OFF
- PC has adb installed
- PC has fastboot installed
- phone has USB debugging mode enabled
- phone is connected to PC in USB debugging mode
- charged accumulator
- Download and extract. Download the Radio image and extract that ZIP anywhere on your PC. It will have a file radio.img in it.
- Go into the target directory. That is, where you just extracted the file.
- Check the MD5 sum. For the latest Desire HD Radio (PD98IMG_184.108.40.206_220.127.116.11_M.zip), the MD5 sum of its radio.img is b3c3fe8dd79e933cc60a16d6d3c3a13f [source]. So create a file radio.img.md5sum with the content (note the double space in the middle)
and execute, to check the MD5 sum:
md5sum -c radio.img.md5sum.
- Reboot to bootloader. In a terminal on your computer, execute:
adb reboot bootloader. Your phone should go into bootloader mode now.
- Flash the Radio image. For that, execute in the terminal of your PC:
fastboot flash radio radio.img (on Ubuntu, you may need to do
sudo fastboot flash radio radio.img in case of getting a "< waiting for device >" error).
- Reboot to normal mode. For that, execute in the terminal of your PC:
fastboot reboot (again, on Ubuntu
sudo fastboot reboot).
(8) Installing a custom ROM
This and the following step (installing apps) can also be replaced by just restoring a full backup (created by 4EXT Recovery on the same device or a different device of the same model). It will restore the operating system, all apps, apps settings, and apps data, and works very well for "mirroring" one device to another one (of the exact same model of course). So if you set up certain devices regularly, you can save time by preparing such an image once and installing it on all the devices you set up.
For manually installing a custom ROM, do it like this:
- First, download your favorite custom ROM. I like the brand new unofficial CyanogenMod 11 Nightlies for Desire HD. Download both the ZIP and the MD5SUM file for it.
- Download the Google Apps package. Available here, including a nice "Minimal" version that only includes "essential" Google Play.
- Put your Google Apps package on the phone (no MD5 sum checking needed because it uses code signing):
adb push GApps_Minimal_4.4.4_signed.2014-07-29.zip /sdcard/GApps_Minimal_4.4.4_signed.2014-07-29.zip
- Put your custom ROM on the phone. Most comfortably done like this:
- Fix cm-11-xxxxxxxx-UNOFFICIAL-ace.zip.md5sum by removing non-existing directory names.
adb push cm-11-yyyymmdd-UNOFFICIAL-ace.zip /sdcard/
adb push cm-11-yyyymmdd-UNOFFICIAL-ace.zip.md5sum /sdcard/
- Check the MD5 sum: mount the SD card, and execute in the directory of its mountpoint:
md5sum -c cm-11-yyyymmdd-UNOFFICIAL-ace.zip.md5sum
Alternatively, you can check the MD5 sum with the app 4EXT Recovery Control, or later within 4EXT Recovery Touch itself.
- Reboot into recovery mode:
adb reboot recovery
- Follow ral's 4EXT Recovery Howto step for installing a custom ROM. Do not forget to also flash the Google Apps package.
(9) Installing apps
See my list of recommendable Android apps, using open source ones where available. For the first phone you prepare, you will have to install them on the phone directly (or remotely via adb), but can then use the backup solution for apps and data proposed below to quickly transfer them between ROM upgrades and to other phones.
Setting up a backup system
Backups of an Android phone serve several purposes:
- Restoring apps after ROM upgrade. Installing a new ROM that includes a major Android system upgrade requires a full wipe, meaning that you would lose all the apps and app data stored in the internal partitions [source]. (Moving apps to the SD card is not a general solution either, since that does not work for all apps [source].) To work around this, we need a proper backup and restore solution for apps and data.
- Snapshots to restore the phone to. We want full-system backups that can restore the phone to a snapshot in case something breaks severly (mostly due to a failed ROM upgrade). 4EXT Recovery already contains a Nandroid backup-and-restore feature for that.
- Restoring to a new phone after theft, loss or hardware defect. With the Nandroid backup-and-restore solution integrated in 4EXT Recovery, we can also restore these backups on a second device of the exact same model. So when travelling, take an identical spare phone with you, and create a Nandroid backup daily (then copy the SD card to your computer, to also include the non-backuped card data like in-app downloads, photos, music etc.). When you lose your phone, have it stolen or broken, you can be up and running again in 15 minutes with the exact same data you had a day before.
Doing a full backup that affords all of the above will look like this, then:
- Nandroid backup. Create a new backup with 4EXT Recovery to your SD card.
- System app data backup. Since restoring this data into a new version of a ROM can cause problems, use specialized backup solutions for call logs, SMS etc..
- App2zip for user apps. Use App2zip to back up your user apps and their data to a ZIP file on your SD card. You can later install them via 4EXT Recovery into a new ROM when needed.
- rsync. rsync your complete SD card to your PC. This will copy over all backups created above, plus the files on the SD card not included in them (in-app downloads, photos, music etc.) to a secure location.
To set up the same phone or another phone of the same model with the same ROM, apps and settings is then simply about restoring a Nandroid backup with 4EXT Recovery from the SD card.
To set up a different phone with the same ROM, apps and settings, or a same or different phone with a different ROM (while keeping apps and settings), the restore process looks like this:
- rsync from your PC to a SD card.
- If necessary, put the desired ROM ZIP file on the SD card.
- Wipe the phone via 4EXT Recovery.
- Flash the ROM's ZIP file.
- Flash the Google Apps ZIP file.
- Flash the ZIP file containing your user apps and apps data.
- Restore SMS, call logs and other system apps data using their special backup solutions.