Nexus One vs. HTC Desire

Since February my phone has been the Nexus One. When I got it I wrote up a brief review where I compared it to the iPhone 3G and the HTC G1, so I guess this is a sort of exit review for the Nexus One as my new phone is the HTC Desire (also known as the Bravo or A8181).

The HTC Desire is almost the same hardware as the Nexus One. The wikipedia page has a good feature comparison so I’ll try avoid going over that ground. You can see from the photo at the top of this post that they share pretty much the same form factor. The Desire has a little bit of the HTC chin design where the Nexus did not. The Nexus notably has the three brass dots for the docking station which the Desire does not.

Looking at the back, things are pretty much identical. The Nexus One has a band of exposed aluminum frame (which can host an engraving), and the power button is slightly different likely due to the small difference in back cover design. The size, general shape, and weight of the phones are basically identical. I do notice that the Desire feels ‘flatter’ for some reason, and it almost feels as if it is a slightly more refined phone.

The Desire has a Super LCD vs the Nexus AMOLED. There is a visible difference here, and one that sticks in my head. In day to day use it isn’t bothersome, but more than just a subtle difference. The Super LCD tends to have washed out blacks, and appears a little bit dimmer to my eye. In every other aspect the two displays are equivalent, enough to make the differences a non-issue for day to day use. The Desire has a gorilla glass screen, where the Nexus did not.

The dock was a nice feature on the Nexus, just drop it in and it charged. I rarely plugged it into a microUSB connector. However the dock also discouraged the use of any sort of bumper case for the Nexus, I’ve got a case on order for the Desire already.

So while these two phones are quite similar, the button layout is not. Let’s compare the HTC G1 (top), Nexus One (middle), and HTC Desire (bottom):

The G1 actually had buttons dedicated to phone functions, it also had 5 function buttons vs. 4 in the later phone. The Nexus had touch sensitive buttons, which took some getting used to after having real buttons. The track ball was transparent and allowed for coloured notifications. The Desire swaps the track ball for an optical track-pad, some people really dislike this but I haven’t found it to be a problem. The back and search button is a rocker, effectively working as independent buttons.

Looking across the layouts, the home button has wandered around in different locations for every one. Search and menu are fairly consistent, but I’m not sure it helps much. Layout changes like this really mess with your head/muscle memory.

In stock form there are bigger differences between the two devices. However, both are fairly friendly to root and flash with your favorite community ROM. I’ve been running CyanogenMod since I got the G1 and continue to do so with the Desire.

Looking at the internal storage is where we notice some big differences. Nexus One: 196MB, Desire: 148MB. Having come from the Nexus meant that I very quickly started to hit out of storage problems, forcing me to move more of my apps to the SD Card. Everything fits without resorting to apps2sd or other hacks.

Speaking of hacks, you can change this if you are willing to flash a new HBOOT – this is of course somewhat scary as messing up HBOOT may be difficult to recover from. It also requires the phone be in S-OFF (developer) mode, allowing modification of /system while Android is running. Contrary to most of the material out there you can run in S-ON mode and have custom firmware, there are some limitations but no deal breakers (my Desire is currently S-ON).

 

 

Replacing BlackBerry 9700 keyboard redux

Earlier this year I wrote up a how to on replacing the keyboard of a BlackBerry 9700. It seems my brother in-law is especially hard on keyboards as he recently lost the M key. You can see the missing key in the picture above, the membrane has been torn making it necessary to replace the entire keyboard.

Off to eBay again for a new part. This time I took a different approach – I found a reasonably priced used keyboard located in the USA. My total cost was under $6 including shipping. By using a used keyboard I hoped to avoid low quality replicas, sensible given my last experience where the right shift key popped out and needed gluing back in.

The packaging for the keyboard was complete overkill. I wouldn’t hesitate to deal with this seller in future. The part was exactly as the listing indicated, the slight blemish on the keyboard matched the one I received – clearly they took the time to take a photo of the actual part they were selling.

The disassembly of the BlackBerry 9700 went exactly as I wrote up last time. The bottom cover again felt tricky, a little persistence and patience was required. The bezel was a bit easier as I knew to start at the bottom and work around the sides (again as per my previous description), the key to the bezel was getting the bottom started.

I still don’t have the right torx screwdriver (T5) – so again I made use of the same flat head micro-screwdriver pictured on the right. This worked surprisingly well (again).

I think it took me less than 20 minutes to do the entire keyboard swap (including taking a few pictures).

 

iPhone 3G with 4.2.1 – jailbreak and unlock

Wow – where did the month of June go? I’ve kept busy, but haven’t been very good about posting to the blog – I’ll try to get back to my once a week posts.

Recently my Dad rediscovered my blog and found the iPhone 3G with 3.1.2 post. He also has an older Rogers iPhone 3G and wanted some help unlocking it for use with any carrier, especially for use in the States.

He had upgraded the iPhone 3G to 4.2.1. This came along with the baseband (modem) version 05.15.04. I believe that 4.2.1 is the most current version of iOS that can be run on this generation of the hardware, and from what I’ve been told many feel that 3.1.3 is better performing but will prevent you from running some of the more recent applications that require newer features.

One of the problems with 4.2.1 is that while it can be jailbroken, it doesn’t have an unlock due to the baseband (modem) version. So my first thought was – why not just put the phone into DFU mode, and install 3.1.3 on it?

This is where I ran into the first problem. The firmware installed just fine, but we then got a 1015 error. There are two steps that happen when you’re installing a new firmware on your iPhone. (1) The firmware is installed (2) your PC calls home to Apple to verify the firmware.  There is a good write-up on this by Jay Freeman (saurik) that goes into details (read up on the signature server).

At this point I allowed iTunes to just restore back to 4.2.1 to get the phone back into a working state. Still not deterred, I figured there had to be a way to solve this problem. There is probably more than one solution, but I’ll focus on the one I used: it turns out that you can downgrade your baseband (modem) in 4.2.1 IF you have the right bootloader (5.08).

I used tiny-umbrella to check the bootloader version, I puzzled a bit over the information it was providing until I realized the bootloader version was tacked onto the end of the modem version. This is actually not a required step as the downgrade process will check for the correct bootloader anyways.

On the right is my conceptual model (potentially incorrect) of how the iPhone lays things out. There is the bootloader which is a little bit of code that runs when the phone is powered on. It knows enough to help recover if things are in a very bad state and there appears to be no firmware – or we’re in DFU mode. Breaking the bootloader would be a very bad thing.

The firmware and modem (or baseband) are bundled together for distribution, but occupy unique areas in memory and are installed somewhat independently. There are a number of hacks which allow you to prevent the modem from being upgraded (allowing for unlocking to still work).

My understanding of iPhone unlocking is that most of the unlocks are software tweaks to the modem. This is not a true unlock, but a patch that is run each time the phone is booted (or possibly more often). The reason you need to jailbreak your device in order to unlock, is you need to run some unsigned code to unlock the phone. No jailbreak, no unlock.

So, assuming you’ve got the 5.08 bootloader the steps are:

  1. Jailbreak 4.2.1 with redsnow (the latest)
  2. Launch Cydia and install FuzzyBand
  3. Modify FuzzyBand with a new ‘cert’ (download ICE2-05.15.04.cert)
  4. Run FuzzyBand to downgrade the modem/baseband
  5. Install ultrasn0w via Cydia

That’s it. At the end of step 4 you’ll see the “I HAZ DOWNGRADE!” as pictured at the top of this post.

I find it a bit odd that FuzzyBand in Cydia needs to be modified with an additional ‘cert’ file to identify the 05.15.04 modem/baseband. I used a trial version of DiskAid as I was using a Mac. The modification is simply reaching into the FuzzyBand application installed on your iPhone using DiskAid and adding the cert file to it, very easy. If you don’t modify FuzzyBand, it will refuse to downgrade the 05.14.04 modem, it also appears to check that you’ve got the right bootloader (I did) – so it tries fairly hard to be helpful.

Now that your phone is jailbroken and unlocked, sync it to iTunes to recover all of your apps an files. Do not upgrade the firmware again – or you will be back to square one (or worse, possibly locked out). Also consider capturing your SHSH blob.