10 year anniversary

Hard to believe it has been that long, but today marks the 10 year anniversary of my very first app release: KaiserTweak. An app that let you tweak 50-ish Windows Mobile settings, written specifically for the HTC TyTN II (aka HTC Kaiser) and later ported to a few other popular devices. I had released other tweaks before, but this was the first release that ran as an actual app. If I recall correctly it was written in C# with the .NET Compact Framework 2.0 - an endless source of headaches.

Time for a trip through memory lane, a chance to reminisce... this is going to be a long story.

Windows Mobile

I came from database information systems and web development background (oh the excitement!) originally, though I spent my spare time creating game-related tools such as Project Entropia Assistant (a sort of Steam Overlay before those existed) and [AAE]PBSS (an cheater-catching/monitoring tool for FPS server admins). Around KaiserTweak's time, smartphones were new and exciting, I was quickly hooked, and soon decided to switch all of my spare attention there.

It wasn't long before the first version of WMWifiRouter was released, which (quite unexpectedly) became a massive success, won several prizes, and ultimately became one of the best selling apps on the entire Windows Mobile platform. While this is something nearly every phone can do today, back then it was the very first utility to turn a mobile phone into a Wi-Fi hotspot and share the cellular data connection that way.

There were dozens of other Windows Mobile apps and tweaks. Patched 3D drivers (with NuShrike) to expose HTC's alternative facts about the Kaiser, FPU hacks (again with NuShrike), data connection management tools, battery saving utilities, ROM porting and customization utilities, cleanup utilities, various graphics-related utilities, and even a device unlock tool. The latter was banned from the Marketplace, but only after it became clear that it (hilariously) was not actually against Microsoft's policies and those policies would need to be adjusted.

While some of those were commercial in nature and helped pay the bills, a lot of them were free, and certainly the most fun to develop were the hacks and patches. Windows Mobile didn't come with sources, so many days were spent in IDA Pro trying to figure out what code did what exactly, and coming up with how to manipulate that code. Since we couldn't recompile things (and I was generally against modifying system files) most of these tools employed in-memory patching of specific processes and sometimes system-wide call rerouting. A similar technique was also used to (with mere hours of work) create a proof-of-concept Marketplace copy protection bypass. I had previously warned their design was flawed, but... :)

Those days the apps that were commercial were managed by a company me and a friend had set up. We had some employees and also did various contract work in desktop, mobile, and web development. I closed that shop shortly after I personally switched to Android, but we certainly had some great times there.


While I imported the HTC Dream (the first Android phone) as soon as it was released and played around with it a lot, I didn't fully move over personally until Microsoft announced they were killing off Windows Mobile and re-doing Windows Phone from scratch with nigh zero portability of existing code. Nobody really understood why Microsoft believed existing Windows Mobile developers (whose incomes had now vaporized) would follow them for another round of punishment rather than jump ship to iPhone or Android, both of which were now well established platforms. And surprise surprise, pretty much nobody did.

In those days XDA was a Windows Mobile only site and I (and several others) lobbied relentlessly for them to start adding Android forums. We were repeatedly told Android wasn't going anywhere, we should go away and start our own forums instead, and continued commentary would be earning us bans. Luckily eventually they came around, imagine what XDA would look like today if there were no Android forums :)

A lot of my early time in Android was spent porting CWM to various Samsung devices/firmwares, with built-in Superuser (together called CF-Root), and releasing root-using tools. Chainfire3D for example manipulated graphics drivers, provided the first evening/nightmode (CF.lumen) implementation available for stock+rooted Android, and through plugins allowed games built exclusively for one model of GPU to be played on other phones. This earned me interest from (and some trips to HQs of) some big corps in the tech world. Didn't take any offers, though.

There were apps like live logcat and live dmesg (both reincarnated as LiveBoot for 4.3+), Triangle Away, Mobile ODIN (reincarnated as FlashFire for 4.2+), StickMount, Recently, and quite a few that never really made it beyond the 2.x days; Android was a very different beast in those days from what it is today. The look and feel, device capabilities, APIs, it's almost a different platform altogether.

DSLR Controller came along, which was the first app for any mobile phone that could remote control a DSLR. This one also became much more popular than I expected, and is still one of my personal favorites. Over the years I've done a lot of contract work alongside my public releases, but some of the most interesting ones were based around custom builds of this app. One example is a cell-growth monitoring system for medical use; another is the camera-controlling software for the SVII, which was used to capture the breathtaking imagery used in Google's Underwater Street View.

Somewhere along the line I wrote SuperSU as a work-around for some of the issues I kept running into with the existing Superuser. I could never have predicted just how big that would get. Just this past month Google reported it passed 100 million unique users! While several other apps I've made have had more than a million unique users over their lifetimes, this is something else entirely - I can still hardly believe that number.

Another one of my personal favorites is 500 Firepaper. Some features it debuted were quickly copied in other wallpaper apps, validating them as good ideas. Too bad that over the years it lost the support of 500px, and as a result I've had to dramatically reduce it's bandwidth usage and thus the amount of imagery it displays, but at least it's still around and prettying up my homescreen!

This should cover the bigger and better known apps, but there are still a bunch more. There's even a couple of apps I wrote but never got around to releasing...


There was a short excursion into mobile VR as well. Development never went beyond prototypes, but when they worked right the image quality was amazing, and buttery smooth. We also had some interesting display manipulation code that let you run any app in the headset; lots of hours spent with GTA :) This never went anywhere (or hasn't yet?), but it was a fun project to work on, and it gave me the chance to visit several of the Silicon Valley giants' HQs.


It's hard to recap 10 years in a single post. There has been so much code. There have been so many apps, tweaks, and hacks. I've had the opportunity to go to a lot of great conferences and meet a lot of even greater people. I've had the luck to be able to work on fun and interesting projects with skilled people and great companies from all over the world. I've had the amazing good fortune of a large group of followers who have always supported me and the things I made. And of course I've also had some amazing luck in timing the right apps at the right time.

This has certainly been a good decade!

PS. While writing this I did Google a few things, and I was surprised to find that some of the older things are pretty much gone. Almost like they never existed, though I know they did. I guess not everything lives forever on the internet after all!
Shared publiclyView activity