Sunday, November 27, 2011

Installing HBO GO and Other Apps Not Available Through Amazon On the Kindle Fire

UPDATE: The following instructions will probably work for other applications but as of today (12/1/2011), Amazon or HBO has apparently disabled the ability to use HBO GO (see comments for more details). I had been using it fine for a week or so but now when I launch it, I get the error "HBO GO is not supported on this device." Lovely.
============================================
I've had my Kindle Fire since the day they came out and it's a fantastic device. I couldn't be happier with it.
OK, maybe I could be just a little happier with it. By default you can only install applications from Amazon's own Android app store and while the selection isn't exactly paltry, there are some key applications that aren't available.
One of these is HBO GO, which I'm used to using on my Droid Bionic as well as on my (now mostly unused thanks to the Fire) iPad 1. Even though it's not available in the Amazon app store you can pretty easily install HBO GO without having to root your Fire, provided you have another Android device on which you can install it.
Here's how I did it.
First, on my Droid Bionic I installed HBO GO from the Android Marketplace. Then I installed Astro File Manager, which is a free application that lets you easily browse the storage on your Android device and has a few other features.
One of the other features available in Astro is the ability to package up installed applications as .apk files, which is the Android package format. You can install .apk files on Android devices directly without going through the Marketplace, which in this case is important since the setup on the Fire routes you to the Amazon app store even if you try to hit Google's app store.
With HBO GO and Astro installed, open Astro and from the main menu click on Application Backup. From the list of your installed applications select HBO GO. This creates an .apk package from the installed application and puts it in /mnt/sdcard/backups.
Next go to the Astro home screen and browse to /mnt/sdcard/backups/apps and you'll see the HBO GO .apk file. Click and hold on the backed up application and then click "Send" in the menu that appears. Send the .apk file to yourself as an email attachment, making sure you send it to an email address you can access from the Fire.
On the Fire, you'll need to first change a setting that lets you install "unapproved" applications, then you'll install a file manager on the Fire, download the .apk attachment you sent yourself, browse to the .apk, and install directly from the file.
Boot your Fire and click on the settings button in the top right corner of the home screen. From there click on "More" and then "Device." Towards the bottom of that screen you'll see a setting for "Allow Installation of Applications From Unknown Sources." Change that setting to "On" and accept the warning that appears (CYA legalese from Amazon).
Go back to the home screen on the Fire and click on "Apps" and then "Store." Search the store for File Expert and install it. This is the app that will allow you to browse the storage on the Fire and install the .apk file you'll download from the email you sent yourself.
Next, go to the email you sent yourself and download the .apk attachment. I did this from my Gmail account I have set up in the Fire's native email application, but adjust accordingly if you're going to access your email a different way on the Fire. However you do it you need to download the .apk attachment to the Fire.
With the .apk file downloaded, open File Expert and then open the Download directory (/mnt/sdcard/Download). You'll see the HBO GO .apk file in this directory. Click on the file and it will take you through the installation process.
That's it! No rooting of the Fire required, you just need another Android device that gives you access to the full Android Marketplace, and of course these same steps will work with any .apk file.
Note that there are some pre-packaged versions of HBO GO and other apps available for download on random web sites, but I felt a lot more comfortable installing directly from the Android Marketplace and packaging myself so I knew I was getting the real thing, not some modified potentially malicious version.

Cisco AnyConnect VPN Client vs. OpenConnect on 64-Bit Linux Mint 12

Last night I decided to replace my Ubuntu 11.10 installation on my System76 Serval Pro with Linux Mint 12. I've used Linux Mint on and off since version 9, and Linux Mint 10 and 11 were my full-time OSes until I ran into some lockup issues with Mint 11 on my System76 Lemur Ultra-Thin, at which point I decided to give Ubuntu 11.10 with Unity a real shot.

Not to get sidetracked on the real topic of this post, but Unity isn't nearly as bad as many make it out to be. After using it for a week I actually started to like it and found myself quite productive with it. That said, since I've also always loved Mint I figured I better kick the tires on their latest release which is now the most popular GNU/Linux distribution, having recently bumped Ubuntu from the top spot.

If you've seen all my previous posts on getting Cisco AnyConnect running on GNU/Linux you'll know that this is an ever-changing series of problems and fixes over the years, but with Ubuntu 11.10 and Cisco finally releasing a native 64-bit version of the AnyConnect client the steps were finally limited to simply install and launch.

For some reason that isn't the case with Linux Mint 12 and as in the past the fixes that worked previously don't seem to apply to Mint 12. Downloading and installing the client is the same as previously, and the installation works fine, but at least on my machine when I try to connect I get a different certificate-related error than I've received in the past and I haven't yet determined how to resolve it.

In the mean time, some folks commented on a previous post to try OpenConnect, which is an open source VPN client designed to work with Cisco hardware. I'd tried it in the past without success against my specific VPN server but since I wasn't having much luck with AnyConnect (and to be fair, I probably only fought with it for about 30 minutes so there may well be a solution--if you know what it is I'd love to hear it!) I decided to try OpenConnect again. (An aside: my apologies for not responding to comments to that post. Posterous is having notification issues and I haven't received comment notifications for a while.)

Installation of the client and the integration with the Mint network manager is easy enough:
sudo apt-get install openconnect network-manager-openconnect

After installation completes you go to Network Settings and configure your VPN connection, which basically just requires the host name of your VPN server. With that configured you can then click on the network connection icon on the top right of the screen and select your VPN connection from the VPN list, and in my case it connected fine.

I did try running OpenConnect from a terminal and even when starting with sudo (which you have to do in order for the tunnel to be created), I got the error "No --script argument provided; DNS and routing are not configured" so although it connected to the VPN server fine, I couldn't do anything once I was connected. Using the network manager piece resolved that issue for some reason. The issue with running from a terminal is probably just a configuration thing but using the network manager is more convenient anyway, so I didn't dig into that either.

So for now at least I'll be using OpenConnect instead of AnyConnect, though if/when I install Mint 12 on one of my other machines I may try to figure out what's wrong with AnyConnect to satisfy my curiosity if nothing else. For now I just had to get something working since tomorrow it's back to work after the Thanksgiving holiday.

If anyone has AnyConnect running on Mint 12 and has ideas of what to try I'd be very interested to hear how you got things running, and I'll do a follow-up post if I figure it out when I work on it on another machine.