Wednesday, August 1, 2012

HTC One S - Linux unlock, root access

Ok so I have been home a few weeks now and decided to unlock my phone and get root access. This is quite a long post, but it is the sequence I followed and I have an unlocked bootloader....no root though.

Just over two years ago I did the same thing to my Nexus One, this time it was much easier to unlock the bootloader. Last time I gave up and booted into windows and used the tools there, it was my impatience coming through.

This time I was determined that I wouldn't use windows, two reasons. One I don't have any windows partitions to boot into on my various computers, so I would have to borrow my partners win7 laptop, which is worse then using my own back up win install. And two, the documentation seemed to be much better this time around, so I was fairly confident that even as an advanced amateur I would be able to succeed.

There are a few things that you need first on linux, I'm running Linux Mint 12, if you want to root your phone from your linux install.
  • sudo apt-get update
  • sudo apt-get install ia32-libs
Then you will need to get the android debug bridge (ADB) software, this is part of the SDK most forums and tutorials I have read on the net suggest installing the whole thing, this can take a long time depending on your connection speed.

To get the ADB software you will need to grab the SDK install from the official website this will come down as a .tgz archive. Extract it to a useful file, mine is in /home/adam/Programs/AndroidSDK.

The easiest way to get what you need for this is just install the "android sdk tools" and the "android sdk platform tools", that is all and it will only take a few minutes to install.

Once you have gotten this far you are most of the way there, connect your phone to your computer, go to the developer options and tick the "usb debugging" icon. Open a terminal and run:

  • lsusb

You should see an entry that looks something like this:

  • Bus 001 Device 003: ID 0bb4:0cec High Tech Computer Corp. 

The "0bb4" identifies HTC, other manufacturers have different numbers, and the "0cec" is the device identifier, so all One S phones should have the same number, there may be differences for different versions of the phone, I'm not sure.

Next navigate to the {path}/platform-tools/ folder in your terminal. Then make sure that ADB can see your device by running:

  • ./adb devices

The output should look something like this:

  • List of devices attached 
  • "A serial number"

If not try running the command as root:

  • sudo ./adb devices

Next reboot your phone to the bootloader by powering it off then holding the volume down button when you turn it back on. Select the fastboot option, there should be a red area on the screen this should show "fastboot", and "fastboot usb" when plugged into your computer.

If your phone shows "fastboot usb", in your terminal run:

  • sudo ./fastboot devices

The output will look something like this:

  • "A serial number" fastboot

If you have gotten this far you are about 80% of the way to unlocking your bootloader. You will need to head over to HTCdev to get your unlock code. But to speed you along, run:

  • sudo ./fastboot oem get_identifier_token

The generated token is used to get you your unlock code. You are going to have to sign up which is annoying, but this is the easiest / safest way to unlock your bootloader.

Once unlocked when in bootloader mode, it will show unlocked.

Now using the superboot method it is supposed to be really easy to install permanent root on your phone, this has not worked for me. This is the forum post I followed at XDA I had the success message after running the two commands as root (sudo) in my terminal, but alas no root.

This happened on my Nexus One, since I already had the bootloader unlocked I installed CM6 at the time which already has root built in.

This is what I plan to do with my One S, not sure what system I am going to use since there isn't an official CM for the One S yet. But I will keep updating this blog with my progress.