How To: Tether Windows to the Internet via your Android


First Things First

The first article I wrote about this subject was for Tethering your GNU/Linux machine to the Internet via your Android. That article has been visited and proven to be useful by many, many visitors, including callout  from this story at hak5.org

As for this entry, I decided to write it for two main reasons. 1.) I wanted to see how easy it would be to use FOSS tools to connect windows to the Internet via the Android, and 2.) Some friends and co-workers of mine have asked for the windows version of the tethering instructions. By documenting this process, IN NO WAY do I endorse using windows as your primary operating system! 

Let me be clear... My suggestion is that you use GNU/Linux instead of any other operating system! I say this because GNU/Linux is the only truly Universal Operating System and therefore it’s vastly superior to other operating systems that are available today. And now that I have your attention, please take some time to learn about how you can truly be enabled by Free Software, and by the GNU/Linux operating system by visiting these links: gnu.org | fsf.org | linux.com | getgnulinux.org | ubuntuguide.org | whylinuxisbetter.net | distrowatch.com | makethemove.net | livecdlist.com | thedocumentfoundation.org ubuntu.com(you can install Ubuntu Linux inside windows). You really should set yourself FREE and be truly enabled with technology. Do this by using GNU/Linux/FOSS! Furthermore - A gigantic THANK YOU goes out to all the wonderful humans in the world for making GNU/Linux/FOSS possible for everyone on the planet to benefit from. Because of you, we truly are Riding Upon the Shoulders of Giants. Your works are immensely appreciated!
-Shannon VanWagner




Now for the details on how to get connected to the Internet via your Android with windows.

Note: This tutorial assumes you are running your computer with administrative privileges, if this doesn’t apply to your situation, you may have to launch the “start.bat” executable (in step 10 below) as a user with administrative privileges for it to work. Also, I’ve only tested this process using windows xp. Feel free to leave any comments about your experiences at the end of this post.


1.) First, install azilink (credit) on your Android by launching the link below from the phone.
Note: you may have to put a check by Settings > Applications > “Unknown Sources - Allow installation of non-market applications” before you can install azilink. If this is the case, be sure to go back and disable that setting after you’re done installing azilink.
http://lfx.org/azilink/azilink.apk


2.) Download the Android SDK Installer for Windows and extract it to a directory (e.g., “%userprofile%\android-sdk-windows” folder) http://developer.android.com/sdk/index.html


3.) With Internet connected, launch the “SDK Manager.exe” program from within the extracted Android SDK folder from step 2 above. Then click to select “Available Packages” from the “Android SDK and AVD Manager” window. Next, you’ll expand the https://dl-ssl.google.com... site by clicking the “+” on the left of it, place a checkmark next to “Usb Driver package, revision 3”, then click “Install Selected”. Accept the license and click Install to download the usb drivers. This process will create a folder named “usb_driver” in the same folder where the “SDK Manager.exe” is (e.g., “%userprofile%\android-sdk-windows\usb_driver” ). Close the Android SDK and AVD Manager after you’ve downloaded the drivers.


4.) Now, modify the “%userprofile%\android-sdk-windows\usb_driver\usb_driver\android_winusb.inf” installer file per the instructions below to include the Droid Incredible drivers reference (credit) (or other phones, TBD).
In the section labeled [Google.NTx86], add these lines at the end of the section:

;
;HTC Incredible
%SingleAdbInterface%        = USB_Install, USB\VID_0BB4&PID_0C9E
%CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C9E&MI_01
;
;Motorola Droid X
%SingleAdbInterface%        = USB_Install, USB\VID_22B8&PID_4286
%CompositeAdbInterface%     = USB_Install, USB\VID_22B8&PID_4286&MI_01


Then, under [Google.NTamd64] Add these lines at the end of the section:

;
;HTC Incredible
%SingleAdbInterface%        = USB_Install, USB\VID_0BB4&PID_0C9E
%CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C9E&MI_01
;
;Motorola Droid X
%SingleAdbInterface%        = USB_Install, USB\VID_22B8&PID_4286
%CompositeAdbInterface%     = USB_Install, USB\VID_22B8&PID_4286&MI_01




5.) Now, go to your Android and enable "USB debugging" via Settings > Applications > Development, and attach the Android phone to the computer via the USB cable. When prompted to install drivers for ADB, select the “%userprofile%\android-sdk-windows\usb_driver” (android sdk folder from step 2 above) so windows can see the android_winusb.inf installation file. The driver installation will then proceed.


6.) Install OpenVPN onto the windows computer. Download it from http://openvpn.net/index.php/open-source/downloads.html


7.) Place the azilink.ovpn configuration file in the “tools” folder of your extracted Android SDK directory,  (e.g., “%userprofile%\android-sdk-windows\tools”)(This is also where the adb.exe file lives). You can get the configuration file from http://azilink.googlecode.com/files/azilink.ovpn, or you can simply create a file in the tools directory, edit it to include the text below, then rename it to azilink.ovpn.

dev tun

remote 127.0.0.1 41927 tcp-client
proto tcp-client
ifconfig 192.168.56.2 192.168.56.1
route 0.0.0.0 128.0.0.0
route 128.0.0.0 128.0.0.0
socket-flags TCP_NODELAY
#keepalive 10 30
ping 10
dhcp-option DNS 192.168.56.1





8.) Now, navigate to your Android “%userprofile%\android-sdk-windows\tools” directory where adb.exe is located, then create a file with the text below and rename it to start.bat. At this point, my suggestion would be to create a shortcut to the start.bat by right-click-dragging it to your Desktop (or quicklaunch), then select “Create Shortcuts Here”. You can then rename the shortcut to something simple like “Tether” or whatever you like. This new shortcut will be what you use to launch the tethering process.

adb forward tcp:41927 tcp:41927
openvpn --config azilink.ovpn

pause




9.) Enable azilink on your phone by launching azilink (it’s the flying insect application icon), then put a checkmark by “Service active” so your Android can receive the tether connection.

10.) To connect your computer to the Internet via your Android, simply launch the “start.bat” executable via the shortcut you created in step 8 above. You will see the command window appear with some stuff happening and then the “Initialization Sequence Completed”. At this point you should be able to access the Internet. Note: in Firefox, you may have to uncheck “Work Offline” via the File menu before you can surf. Note: While the Android is tethered, a command window will be present, don’t close it because that will disconnect you. Simply minimize the command window to get it out of the way.

11.) To end your tethered connection, simply close the command window from step 10 above, then disable azilink on the Android phone.


Disclaimer: I do not offer any warranties for any information on this site, and I cannot be responsible for any damage you do to your computer after using the above steps. Furthermore, it is your responsibility to check with your provider to see if you need to pay an additional fee for using the tethering process covered in this article. By using these instructions, you assume all responsibility for any consequences of your actions. If the above configuration steps are too much for you, perhaps you should try PDANet by June Fabrics instead.

Cheers!
Shannon VanWagner
09-14-10