Cisco Anyconnect VPN on Android (Motorola Droid and Droid2)

The Anyconnect VPN client is now working for Motorola Droid and Droid2 phones. It should also work on other Android phones, but I have not tested. Here’s how for the Motorolas:

You’ll need to “root” the phone first. This is simply the process for allowing applications to have greater authority on the phone. In this case, it allows the VPN client to load a VPN driver into the kernel. Go here and download SuperOneClick. This is the application that performs the “root”. Go here and download “Motorola Driver with MotoHelper”. This is the driver for the phone. Install the Motorola driver. Unzip SuperOneClick. Download tun.ko for your particular phone (this might take a little searching on google). I found it for Droid here and Droid2 here. For Droid2, I had to rename tun_alt.ko to tun.ko. Once you find it, place tun.ko into the SuperOneClick folder underneath the folder called adb.

Now it’s time to perform the root. Make sure USB debugging is enabled on your phone – menu -> settings -> applications -> development. Now attach the phone to your PC via USB and wait for the drivers to load. When the have finished loading, simply open SuperOneClick and press the “root” button. You can close SuperOneClick now and restart your phone.

Now we must install the driver itself. Open a command prompt on your PC and navigate to the SuperOneClick folder. Change to the adb folder underneath it. Type this command:

adb shell

You should be at the $ prompt. This is the command prompt for the phone itself. Let’s make the proper folder for the new driver with the following command (note that we use the forward slash here):

$mkdir /data/local/kernel_modules

Now type exit to return to a windows command prompt. Copy your driver like this:

adb push tun.ko /data/local/kernel_modules/tun.ko

Now back to the shell:

adb shell

Make sure the phone screen is on and unlocked. Now we need to become a “superuser” on the phone. Enter this command:

$su

Look at your phone and allow su to run if necessary. You should be at the # prompt. This is the superuser prompt on the phone. Let’s test our driver like this:

Change directories:
#cd /data/local/kernel_modules
Install driver:
#insmod tun.ko

Hopefully, there are no errors.

Check to see if it loaded:
#lsmod

Is tun listed? If so, great! If no, you’ll need to search for the proper driver for your phone again and try another one.

The Cisco client will automagically load the driver as needed, so there is no need to leave it running. Stop it like this:

#rmmod tun

Now:

#exit
$exit

Disconnect your phone from the PC. Go to the Market and download the Cisco Anyconnect client for rooted phones and enjoy your new-found connectivity.

No comments yet.

Leave a Reply