Wednesday, February 25, 2009

Thoughts re: Remote Wipe of Prototype Phone from MWC

As some of you may already know, a prototype WM6.5 device (according to reports, a Diamond 2 or Touch Pro 2) was stolen from Mobile World Congress last week.

Industrial espionage expert Les Goldsmith already told the Daily Telegraph that this could be very bad for Microsoft if the beta's bugs are reported before the final product is released (does anyone really expect MS to release something that is 100% bug free??).

Luckily for MS, they have reportedly performed a "Remote Wipe" of the data, including the OS, as soon as the phone was reported stolen.
Whew, that was a close one, Microsoft!

However, this is raising a lot of eyebrows in the mobile user community. Remote wipe of data is nothing new- its already possible if you are set up to sync with an Exchange Server, as a security precaution. That's an understandable data security feature for private info- a corporate exec or celebrity loses their phone, it can be remotely hard-reset (storage card included) before anyone can copy the sensitive info out of it. It won't return your lost hardware, but at least your data is safe. In some cases, devices have the option to be rendered useless, as a theft deterrent system (marking an ESN or IMEI number as "bad" so that networks won't activate it).

However, how does an OS-wipe work?
Do they remotely send a command to wipe out the ROM? Does it format its own EPROM chips so that you can't even get to the bootloader? This is entirely new- and, I might add, entirely unlikely.

First of all, why would this feature exist? Aside from the current situation (in which Microsoft is preventing its unreleased OS from falling into the wrong hands), when else would a remote wipe of the OS EVER be necessary? Would a user EVER want this done?
It seems very unlikely that Microsoft would go through the trouble of devoting R&D time to this kind of safety feature, just for the MWC. Clearly Microsoft is taking its sweet time innovating for the OS as a whole (judging by how far away the legendary version 7 is slated to be), so are we to beleive that development is being slowed because they are wasting their time with temporarily useful security precautions?

No, I think there may be something very fishy about this story.
Here's what I think may have happened:

Sol's phone was stolen, but they can't really remotely wipe the ROM. Its possible that they only did a remote wipe of user data using standard Exchange features. This means the ROM and 6.5 OS are still at large, however the press and/or MS Employee quoted heard the term "remote wipe" and assumed the Microsoft secrets were secured as well.

Sol's phone was stolen, and the MS code can be extracted and leaked. Microsoft comes forward and claims that the ROM is "remotely wiped", which will make people less interested in trying to find the leaked ROM online.

Sol's phone was never stolen, however there are already unofficial early betas of 6.5 floating around the net since before MWC. Microsoft, in fear of having the bugs reported before the software could be ironed out, claims that the ROM was stolen, but "remotely wiped", which will make people assume 6.5 roms floating around are merely unofficial hacks trying to get publicity, or at worst able to be remotely wiped by Microsoft! This may keep more people waiting for official 6.5 release devices.

Its also possible that this whole thing is a publicity stunt to show how versatile and synchronized the new OS is. Lose your phone? No problem- we can remotely do things you never dreamed possible. Does this feature really exist, though? Perhaps, although I still find it unlikely.

Now, its possible that Sol's phone was stolen, and that MS was able to lock out the phone using a remote bomb command to prevent potential theives from using the phone. Betas of 6.1 used to have a timebomb built in as I recall- to avoid it being leaked out and used on a large scale, they included a snippet of code that would prevent the OS from operating after a certain date. The final version of the OS could easily have this snippet of code omitted, leaving everything else intact.
Its entirely possible that MS included a remote-bomb along the same principles... namely, send a command to lock the user out of the phone. Such a command would NOT format the ROM however, and much less prevent someone from dumping the ROM, finding the lock and removing it (as someone did for 6.1, if I recall correctly).
It could also be an exposed new feature for OTA updates- it could be pretty useful to have portions of the OS update over the air with carrier updates (MS has included Windows Update on WM devices, but to my knowledge nothing has ever appeared on it). If stolen, perhaps they rolled out a bogus update that fried the bootloader. Unlikely, but possible.

Perhaps Microsoft really DOES have this feature, and if so its a very scary one indeed. This raises the same questionable practices Apple instituted with its "kill switch", namely that they have the ability to remotely lock/shut off/wipe portions of the code running on your phone. Now, in Apple's case they claimed it was to help prevent rogue code or faulty apps that might do damage to your handset, but of course that's what they would claim. No one wants to beleive in the whole "big brother" controlling their device, and many people are happy enough just assuming its for their own benefit.

Are there any other theories out there anyone would care to share?

Monday, February 16, 2009

Windows Mobile 6.5 (For real this time)

Ok, so maybe the video I posted last time was a bit lame (not an official 6.5 debut, but rather another leaked 6.5 beta hacked to work on a Touch HD)... but today at Mobile World Congress, MS dropped the real deal on us with a demo running atop some hot new HTC hardware (The Diamond 2 and Touch Pro 2 were announced and put on display at the event as well- HTC has been busy).

I haven't had any first hand experience with the OS so I can't really share my thoughts with you yet... however, you can read more on it at WMExperts, and see a video captured at the event by the Endgadget crew.

Looking forward to this when it comes our way...

Sunday, February 15, 2009

WM 6.5 Features Leaked

Well, I'm looking forward to seeing where MS goes with Windows Mobile to stay competitive in this emerging era of commonplace smartphones...

A brief look at version 6.5 of the OS has been "leaked" according to many tech blogs, but it appears to be simply the buggy beta that got out a few weeks ago, but hacked to run on a Touch HD.
Lame, if you ask me, but if you haven't been following the 6.5 news, this is an interesting look at things to come.

Keep in mind, its buggy as all heck and the final version will be MUCH smoother (hopefully?)...

Monday, February 09, 2009

The Saga of HTC's Video Performance...

...Or, why doesn't video play smoothly on my Diamond or Touch Pro???

Not so long ago, there existed a Smartphone manufacturer named HTC. HTC always used standard tried-and-true CPU architecture from companies like Intel and TI, until the dark lord Qualcomm arrived and changed everything. Qualcomm, an accomplished temptress, offered HTC a "device-on-a-chip", which would drastically reduce manufacturing costs while delivering top-notch performance for mobile devices. All they had to do was sign on the dotted line...
What HTC may not have realized at the time is that Qualcomm's promised performance came at a price- their graphics drivers required proprietary code with high-priced licensing fees! Oh, woe is HTC!
The decision was made to release the devices without proper video acceleration- after all, they are supposed to be WORK/CORPORATE devices, and have no business playing video or games! Surely the kingdom would be happy with this compromise...

So began the saga of the failed video performance on the most recent wave of HTC devices. This problem first reared its ugly head with the HTC Kaiser (Tilt*), Titan (Mogul*), and Vogue (Touch*). The lack of proper video drivers was often so bad, it would make the entire OS seem sluggish compared to the previous generation of devices with "slower" processors. This inspired many angry letters and even a couple of websites petitioning for HTC to release proper drivers, or threats of class action law suits.
(Note: Previously I mentioned Samsung included better drivers for their Omnia, but it appears they just avoided Qualcomm's MSM chipset entirely and went with the Marvell chip. The Verizon literature implies that they are incorrectly using a Qualcomm CPU)

HTC apparently listened a little, and announced that the NEXT set of devices would have 3D acceleration for some nifty new TouchFlo interface. The Diamond and Touch Pro were released with much fanfare shortly thereafter.
However, as I blogged about previously, the Touch Pro (which I've recently made my primary phone) had some minor performance issues out of the box, reminiscent of the previous generation of Qualcomm based devices.

While swapping to a later version of Windows Mobile alleviates almost all of the slow-downs (stock version is sort of laggy in general), the video STILL seems to have trouble keeping up when playing back movies at full sized VGA resolution.

The reason for this, is the missing peice of the Qualcomm Puzzle: Qtv

Qtv is a display driver specifically designed by Qualcomm to deliver high performance video to small screens that are powered by their chips. This is part of what Qualcomm has been dangling over the heads of OEMs for royalty fees. Unlike D3D, DirectDraw or GDI, it is NOT a standard video driver and the code to make it work can only be obtained from Qualcomm directly, and only by paying for the licensing rights to it. This means that while the new Diamond and Touch Pro devices have beautifully flowing menus and 3D effects, actual plain-old video playback still lags.

So how do I get the best video playback on a Diamond or Touch Pro?

In order to get full video acceleration, you're going to need to use the Qtv driver. However, since it is proprietary, most popular video playing applications (TCPMP, divxMobile, etc) DON'T support it, offering the industry standard DirectDraw method at best. DirectDraw support has improved since the first wave of Qualcomm based devices (which originally barely worked at ALL), but it still seems to have trouble drawing VGA video smoothly. In other words, if you're using DirectDraw, you're probably NOT going to get smooth full-resolution video.

For the Diamond/Touch Pro, HTC decided to cave in and license Qtv for their new HTC Album (which is normally used to play back video taken with the device's camera), and it appears to have trickled down to the bundled Windows Media Player as well. This may mark the first time that a video plays smoother in the bloated WMP than something like the open-source TCPMP.

In fact, the hardcore users over at XDA-Developers have even developed a tool to convert videos to high quality Mp4 that HTC Album can play, citing it as "the best way to watch full sized videos on the Touch Pro". They even go on to say not to bother complaining if you are using CorePlayer or some other player, since they do not contain the full Qtv support.

NOTE: I did a little comparison myself to see the difference, and found an mp4 of a TV show played PERFECTLY in HTC Album (had to place the video into the "storage card\my videos" dir for it to show up) in full VGA, whereas TCPMP could barely keep up with the frame rate, delivering 10-12 frames per second (as opposed to the nearly 30fps it was encoded at).

But doesn't CorePlayer now support Qtv?

Sort of.
Qtv is propietary, and the folks at Core haven't paid for the code, so they don't have it. However, what they DID do is figure out how to call the video routine overlay. This is similar to how desktop-based DVD player apps tend to work on hardware accelerated PCs- they paint a box of a specific shade which the renderer uses to overlay the video, thus taking the rest of the work away from the OS.
This works pretty darned well, although from my testing, it doesn't play mp4 as well as HTC Album which has "real" qtv acceleration.

Still, Coreplayer supports DivX avi files, which I've always found a great deal more efficient than mp4 video. In fact, I was able to take DivX videos directly from my computer and drag them over to my Touch Pro (no conversion/encoding needed) and play them surprisingly well when set to Qtv (benchmark reported playback at about 90% full speed, which means only some frames dropped and there). Still, HTC Album seemed to do this more effortlessly.

The only problem with using CorePlayer's Qtv is when using the video out function. The overlay doesn't translate well, and creates a flickering blue screen every few seconds, which is VERY annoying. Hopefully the team at Core is going to come up with a workaround, but for now the best option especially for video out is using HTC Album (or... *Gulp* Windows Media Player!).

Hopefully more workarounds will come out soon. Personally, I'd love to see someone rebuild TCPMP with full Qtv display drivers... Perhaps one day.


*When listing alternate names for the Kaiser, Titan and Vogue, I picked the most common carrier branded versions so that people may recognize them more easily. In this case, the AT&T Tilt, Sprint Mogul, and Sprint Touch, respectively. These have many other names on various carriers, as I am very well aware. No need to point out alternative instantiations.