[EVO 4G Android Development] GuestX00836:
Thanks to all the developers who put the bits & pieces together; without them it wouldn't be possible. You don't need to be an Android or Linux guru to get it working - SDK, ADB, etc. are not required.

What is OpenVPN?

OpenVPN is a free and open source software application that implements virtual private network (VPN) techniques for creating secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities. It uses SSL/TLS security for encryption and is capable of traversing network address translators (NATs) and firewalls.

What's Covered in this Guide:

A step by step tutorial for configuring OpenVPN on the Evo 4G. Use at your own risk!

Not Covered:

Yea but how do I?

Requirements:

Rooted Evo

USB Data Cable

Amon RA Recovery - RA-evo-v1.8.0 (or above)

http://files.androidspin.com/downloads.php?dir=amon_ra/RECOVERY/&file=recovery-RA-evo-v1.8.0.img

Terminal Emulator (download from market)

Super Manager (download from market)

Busybox (download from market)

OpenVPN Installer (download from market)

OpenVPN Settings (download from market)

Tun.ko built for your specific kernel (recommend netarchy-toastmod, Stable: 4.1.9.1 or higher)

http://xdaforums.com/showthread.php?t=719763&highlight=amon

Modified openvpn executable & matching iproute-wrapper script.

http://xdaforums.com/attachment.php?attachmentid=385959&d=1282516002

An OpenVPN Account & config files.

GTech Net Tools (download from market).

Let's begin.

Root your Evo if not already done.

Install GTech Net Tools & run; select My IP & Get IP Address; External Address & Local Information are issued from your cell provider data network; record these values for later comparison.

Install Amon RA.

Install Busybox to /system/xbin.

Install OpenVPN Installer (binaries) to /system/xbin; select path to ifconfig: /system/xbin.

Install OpenVPN Settings (settings later in this guide).

Install custom kernel with built in tun.ko support; flash via Amon RA recovery & reboot.

Install Terminal Emulator.

Install Super Manager.

Open your openvpn config file & add the following to the last line, then save: 'iproute /system/xbin/iproute-wrapper.sh'.

***Make sure your config.ovpn file has NO_SPACES in name***

Connect Evo to PC via USB cable; select 'Disk Drive' & 'Done'.

Create folders on SDCard 'Downloads' (if not already there), and 'openvpn'.

Copy your config.ovpn files to SDCard/openvpn folder

Copy 'openvpn' & 'iproute-wrapper.sh' to Downloads folder on SDCard.

Disconnect USB cable.

Start Super Manager; select Settings; Enable ROOT function; press back button on phone; browse to SDCard/Downloads - copy & paste 'openvpn' & 'iproute-wrapper.sh' to /system/xbin.

Start Terminal Emulator.

@ $, type su & enter key; should now see #

Type 'chmod 755 /system/xbin/openvpn' & enter; then type 'exit' & enter.

Start Super Manager; select Settings; disable ROOT function.

Press Home button on phone.

Start OpenVPN Settings; press 'menu' button on phone; select 'advanced'; check 'load tun kernel module'.

Click 'TUN modules settings'; Check Load module using 'insmod'.

Enter Path to tun module: '/system/lib/modules/tun.ko'.

Select 'path to openvpn binary'; enter '/system/xbin/openvpn'.

Check 'Fix HTC Routes'.

Press Back button on phone.

Check OpenVPN; check your_server.ovpn; 'Username/Password required' should appear on Status bar at top of phone.

Slide Status bar down, click on 'Username/Password required', enter info & click 'OK'.

Under yourserver.ovpn view status - Wait for 'connecting...auth...get config'...should be 'connected to 111.111.111.111 as 222.222.222.222'.

Start GTech Net Tools; select My IP & Get IP Address; External Address & Local Information should now be issued from your OpenVPN provider; compare to original data you recorded earlier.

Press Home button on phone...do you see the 'Key' icon on Status bar?

If Yes.............You have done it!

Additional Resources:

OpenVPN

http://openvpn.net/

Wikipedia - OpenVPN

http://en.wikipedia.org/wiki/Openvpn

Enjoy!

:):):)