Update on Hulu for Android

Written 2011-02-04

Tags:adobeflash CyanogenMod Hulu iPhone Android User agent 

The key to running Hulu on Android is getting a User-Agent string and Flash Version String that match. Previously I posted how to change your flash version and how to change your flash version on Android. However, you need to match your User-Agent and Flash String. That is to say, Adobe Flash "MAC 10.Sandwich" failed rather quickly.

By default, Android supports 3 User-Agents: Intel Mac Desktop, Android, and iPhone. By changing my user-agent to appear as an Intel Mac Desktop running 10.5.7, I was able to use Hulu for a little while, but it stopped working within a day. I suspect that this is due to the fact I have no idea what flash runs on 10.5.7, making it easy to blacklist. If anyone knows a flash version for 10.5.7 that runs Hulu, let me know, as then you could run Hulu without a full firmware update.

My current solution is to use CyanogenMod, which supports a User-Agent of IE6. I copied the Android Version from my desktop, "WIN 10,1,103,20" to libflashplayer.so on my phone. Since doing this, Hulu has run, albeit slowly.

What's the downside to this little hack? Since the User-Agent and Flash Version are both for desktops, every website thinks you are running a full desktop with plenty of RAM. Each flash library that contains mobile optimizations won't use them, because it thinks it is running on a desktop. Also, Hulu renders in full quality and full bandwidth.

The results? 1-2 FPS, and sound that actually doesn't skip. I'm running a fairly sketchy overclock to 800MHz. However, I was able to test this on a 1GHz T-Mobile G2, which performed much better, and since Flash uses 40-50 threads while playing, I hope it scales well to multiple cores just like it does on desktops.