Featured Post

Linux daemon using Python daemon with PID file and logging

The python-daemon package ( PyPI listing , Pagure repo ) is very useful. However, I feel it has suffered a bit from sparse documentation, an...

2014-11-06

Mounting a HTC One on Ubuntu 14.04 Trusty; Re-flashing the ROM

Since I unlocked my HTC One (M7), I do not have a voicemail app since the phone was tied to a specific provider. Now, I'm trying to figure out how to re-flash the device to generic.

The first thing was to try to connect it to my Linux machine. However, upon plugging the phone into the USB port, an error appeared: "Unable to find matching udev device".

Apparently, this is fairly common and happens with other devices. The error boils down to a bug in Ubuntu's default Media Transfer Protocol (MTP) library. The fix is to install a later version.

First, add a new repository:
$ sudo add-apt-repository ppa:webupd8team/unstable
$ sudo apt-get update
Then, install the mtpfs package.

UPDATE: HTC has a free bootloader unlocking utility. You just have to sign up for their free developer program. Then, follow the instructions here: http://www.htcdev.com/bootloader/unlock-instructions

The one thing they do not mention is that you have to have root privileges for the fastboot utility to work, so:
$ sudo ./fastboot oem get_identifier_token
Then, they email you a file for unlocking. Next, re-flash the phone with a vendor-appropriate ROM from here: http://www.htcdev.com/devcenter/downloads

For AT&T (my phone's original ROM) and T-Mobile (my current provider), there is no binary image for flashing. I didn't bother looking to see if you could compile the source. Instead, I went with the Android Ice Cold Project (AICP). I discovered it via this step-by-step article. They also have a download of the full Google Apps.