A Tribute to the HTC HD2 – Part One
The HTC HD2 is the most developed device in the history of XDA-Developers. Over 1 million posts on more than 45 thousand threads across 17 sub-forums covering five operating systems, the HD2 remains in the top 25 most active devices on XDA almost two years after its release. Its success spoke to all manufacturers about what a smartphone should be like.
I sat down with a friend’s HD2 to hear its story. I asked about where it came from, the struggles it faced growing up in a Tawainese factory, and how it overcame those struggles to become such a smart phone. The HD2 blankly stared at me a moment, then said my friend received a new text message from his mother. No help there. So, I decided to get the HTC HD2’s story from its developers.
XDA member Cotulla first heard rumors about the HTC “Leo” around mid-2009. “Back then, nothing was known except its 4.3-inch screen with a [Qualcomm Snapdragon] 8250.” Its unprecedented specifications caught XDA member DarkStone1337‘s eye, too. “My previous phones were other Windows Mobile-based phones such as the HTC Touch Diamond and the HTC Touch HD, which was infuriatingly slow, and several Nokia handsets. This was a fast phone with good looks that could compete with the iPhone [3GS]. The big screen screamed COOL to me.”
The first iteration of the HD2 was loaded with 512 MB of ROM storage and it was released in Europe around November 2009. A few months later, a version with 1024 MB of ROM arrived for T-Mobile US (TMOUS) in March 2010. Suppliers couldn’t keep up with the demand. Sprint saw the movement of supplies and jumped on the opportunity, leaking specs of the HTC EVO 4G before T-Mobile made the HD2 available in the US. That’s when I (azrienoch) started looking around for ways to put Android on the HD2. The first step toward that meant developing a new SPL.
“The idea of developing HSPL for the LEO first came to us around 11 October 2009. We thought it would be so easy,” said Cotulla. It was actually very hard, “because HTC added additional protection to the LEO.”
XDA Recognized Developer dcordes described that “additional protection” to me. “The actual difficulty about making Linux run on the HD2 was a tiny ‘switch’ in the device that will change how the CPU acts. This must be set during bootup. Else no go for ARM Linux. The difficult and long process of analyzing this ‘crash problem’ by narrowing down all sources of error is logged in mailing list (ML) archives.”
The first hurdle was getting the screen to tell the developers anything at all, as dcordes explained, “The only way to interact with the device when there is no debug bridge like ADB or USBnet is reading from the display.”
Cotulla commented, “We almost lost bepe’s device once. We restored it two days later. Also, I created a special SPL emulator which allows testing our HSPL installer on a PC for a deep look inside.”
“After the initial SSPL & HSPL releases, we released several new HSPL versions, including HSPL for LEO1024. The main issue there was that LEO1.XX ROMs won’t support flashing to the internal memory. Flashing ROMs or HSPL makes it soft brick. So a special HSPL version was created to protect users from mistakes.”
Meanwhile, Darkstone1337 bought the device, wanting to develop apps for Windows Mobile, and soon after discovered Microsoft’s plans for Windows Phone 7. “It would of had been a wasted effort. So I stuck with the phone and began flashing all sorts of custom ROMs and installed all kinds of programs to occupy my time all the while keeping in mind that developers were working on booting Linux on the HD2.”
So, developers began work on a Linux kernel flash using HSPL. They gathered together on dcordes’ #htc-linux IRC channel. “Weeks passed with lots of effort by many and the problem persisted. We really tried to not overlook anything. We even compared the different QSD8250 chips out there for different revisions by looking at the prints on the chips.”
Frustrated and out of ideas, dcordes led the team to Linux-Arm-MSM and found help. “The lead developer Daniel Walker kindly helped us to narrow down the problem.”
“With all the analysis information at hand, the situation well described on the mailing lists, and all developer information easily available,” says dcordes, “it was about time that somebody would look at all this with a fresh thought. Cotulla was that guy and he came up with the brilliant bit to solve this.”
Cotulla says, “After looking at the SPL of HTC Desire and few other devices, I was able to find a fix for the kernel. And android development begins. Actually, [Android‘s early development on the HD2] was done by several people, like me, Markinus, LeTama, and others.” Such as cr2 and XDA Recognized Developer NetRipper. “Of course, a lot of people contributed by testing, etc. I did the touchscreen driver and sound driver in a few weeks.”
“One memorable bug,” Darkstone1337 says, “was the Android OS running at hyper-speed, causing the phone to hang.” This is when he hopped on-board. “I guess my aim at the time was to try and stabilize the build so that it could run longer without crashing. I managed to do this by tweaking some configuration in Android and uploaded a build that didn’t crash nearly as much as the first proof-of-concept. From there I kept playing with Android to see what I could do.”
And we will see, in the upcoming second part of this article, how operating systems build a stable home first on the SD card and then in the HD2’s NAND memory. Thanks to Cotulla, dcordes, and Darkstone1337 for telling us your stories, and of course all of the developers and testers that made the HD2’s story what it is.