Integrating and Optimizing Thunderbird for Google Mail

Let’s admit it, gMail is awesome (some of you would beg to differ), especially when you use gApps like I do. But I’ve always had a few requirements:

  • being able to access my most recent e-mail offline
  • without using a browser
  • large mailboxes (4+ GB)
  • use of certificates to sign or encrypt e-mail
  • integrated calendar, tasks, contacts
  • multiple e-mail account support
  • and recently, synchronize all this with my Android phone

My former method was to use Microsoft Outlook, but that program is riddled with problems and cumbersome. It also doesn’t seem to alert you when you have new mail if you use IMAP. Synchronizing Calendar and Contacts with my phone required a 3rd party program, which would be limited to just 1 calendar in Outlook and often create duplicate Contacts. On one occasion, the program got stuck with corrupted information and about half of the ~75 contacts in my list had about 25 copies each. (I fixed this shutting off Outlook & the sync program, exporting all my contacts to a Google CSV, and removing the duplicates offline.)

So in my quest for a more seamless & less troublesome e-mail client, the only VIABLE non-browser e-mail client turns out to be Mozilla’s Thunderbird. However, integration with Google Mail isn’t seamless or without quirks.

Read more

HTC Sensation (4G) 1.45.401.2 OTA Update

This week, the HTC Sensation (Pyramid) is being blessed with an OTA update that brings Android Gingerbread 2.3.4 and has been reported to fix the HTC Sense lag issues and generally boost the interactive performance of the device. It’s also suspected that this update prepares the bootloader to be unlockable, because updating to this OTA release prints a “***LOCKED***” text at the top of the bootloader screen.

For those of us that are running a custom ROM, or just have your device rooted, you may have already be running 2.3.4, but may be wondering if you could update your bootloader without losing S-Off or root access. The answer is YES!

I’ve attached to this post the extracted “” from the OTA update, which contains the updated bootloader (HBOOT 1.18.0000), radio (10.56.9035.00U_10.14.9035.01_M), and a bunch of other firmwares (pg2fs_spcustom, rcdata, rpm, sbl2, tz). THIS PACKAGE IS MEANT FOR CUSTOM ROM USERS ONLY – I’ve removed the stock HTC kernel and recovery images, assuming that you have installed your own (2.3.4 compatible kernel of your choice, Clockworkmod Recovery). Rename the ZIP file to, place it into the root of your SD card, and reboot into the bootloader to update:

Because this firmware update includes a new radio, I’ve also attached the corresponding radio interface library (RIL) for the radio included in this update. This one must be flashed via recovery, with the /system partition mounted:

Standard disclaimer: I’m not responsible for anything that happens to your device. You’ve been warned. Enjoy!

Android Market 2.3 Force Close / Crash

I was stumped by this issue for a long time and was only recently able to find the solution using the Android SDK’s “adb logcat” function to reveal the system logs.

Essentially, you try to install or update an app from the Android market, and it crashes with a force close message. Reading around on the forums over at and other places suggest the following:

Proposed Solution #1
Settings -> Applications -> Manage Applications -> All -> Market :: Hit “Uninstall” to uninstall updates, essentially roll back the version to the one that came with your ROM.

Proposed Solution #2
Settings -> Applications -> Manage Applications -> All -> Market :: Hit “Clear Data” and “Clear Cache”

Proposed Solution #3 (mailny for cyanogenmod or ROMs that don’t come with the Google apps installed)
Boot into recovery and reinstall the gapps zip file.

Proposed Solution #4
Search for the Market app’s apk file and install it using “adb install -r appname.apk”. Make sure you have Settings -> Applications -> Install from Unknown Sources enabled.

Proposed Solution #5
Wipe all data / factory reset. Obviously #sadface. Or #angryface.

I tried all of the suggested solutions above, except the full reset. Obviously should be something that doesn’t require that drastic of a change… but none of the other solutions worked. So I turned on usb debugging, ran “adb logcat”, and then reproduced the market force close / crash. Deep in the hundreds of lines of code, I found this:

E/AndroidRuntime( 2975): FATAL EXCEPTION: Download Service
E/AndroidRuntime( 2975): java.lang.SecurityException: Requires VIBRATE permission

What the hell? Yes, I thought the same thing… Why does the market place require vibrate permissions? For notifications maybe… but even more interesting is the fact that the vibrate permissions are required for (the music player), which force closes before the market app.

The solution? I had a profile that turned vibrations off for the default “Media” apps group (be default it only has the Music app in it). Switching it to “No override” fixed the crashing / force close issue in a jiffy.

What’s up with this funky fix? And why does the Android Market need to call the Music app with vibrate permissions? Beats me… too bad Google’s apps are closed source.

EDIT: Known affected Market versions (by me), as of writing: 2.3.2, 2.3.3, 2.3.4.

Updates!!! March 23, 2011

Long time no see?

Just wanted to write this post to keep you guys updated on a few behind the scenes things…

1.) New domain :: Everything that was available from is now on, which should be regarded as the primary domain for all transactions. It’s shorter and much cleaner to use. In other words, please update your bookmarks, RSS feeds, etc.

2.) Mach Technologies :: The entire MTI website has been redesigned, including the client area. Give it a spin:

3.) “Bye Maemo, Hello Android!” :: I recently got an Android phone. Feel free to ask me Android questions – as a matter of fact, the next post is an Android tip.

I’ve also heard requests for video tutorials on some tech stuff? Let me know in the comments below…