Thursday 13 June 2013

Android Reverse Tethering for windows users.
Tethering is the ability to surf on your pc using the 3g of your phoneReverse tethering is the opposite : surf on your phone using the ADSL of your PC. No Wifi or 3G connection required.
This work only for rooted users !!!For non rooted users, you can try my other solution, but require more manipulations and is limited to surf :http://www.codeproject.com/KB/androi...orwarding.aspx
Installation :Unpack the zip file. This zip files contains the windows part, ADB and the android APK.
Before starting the tool : 
  • You must install drivers for your device. Generic driver provided by google is on the usb_driver.zip
  • Ensure you have debugging enabled on your phone :
  • Settings > Applications > Development > USB Debugging > Turn On
  • Ensure you have root access AND SuperUser application installed.
  • Change the superuser settings (Menu -> Preferences -> Notifications part) :
  • Uncheck "Notifications" label to display "Do not show notification when an app is granted Su Permissions"

AndroidToolThe AndroidTool.exe is the windows part The low level communication tool (ADB) is included in the zip file.AndroidTool will try to find ADB in c:\android-sdk-windows\platform-tools\adb.exeIf not found he will use the provided one. 
The first time you use the program :
  • If you want to use another version of ADB, clik "config" and in the first tab enter the path to the ADB
  • Select the DNS server to use in the right list. On complex system, some dns can be detected.

Start reverse tetheringJust click “Connect”. If it's the first time you use the program, This will install the latest android package and the dependencies (busybox and redsocks).The SuperUser process may ask you to allow “Usb tunnel” 

If the android process crash after receiving superuser rights, close the windows program and start again.
The android interface (first tab) will show connections forwarded to windows.Others tabs are just for debugging (give information about system route tables and connections). Not yet finished. 
Start your browser Google chrome will complain that no connection is available. Don’t care. That work.Firefox , opera and dolphin don’t have problem with that !!!
The current version of the application can’t forward low level ICMP packet (PING). From Android Os point of vue, there is no internet connection.
Google Market/Play :
For android 4.x ONLYSince version 3.4, it's now possible to download/update application.This step is optional !Required only if you want to download from market. Since it's new and modify the system, I recommend to perform a nandroid backup.Don't worry, I didn't brick my phone and tablet during the development. The Xposed framework author and me are not responsible for anything you do with your phone/tablet/rice cooker.
  • On the windows program, go to tools tab and click "install hack"
  • Launch the Xposed Installer (you just installed) on your android and click on "Install/Update"
  • Go to the module tab and check the HackConnectivityService
  • Reboot the phone
  • Done!
  • This work for market but also for some other programs (some games,skype,hangouts...)

For older android 2.x or 3.x version :The application want to have an active 3G or Wifi network interface. Some market applications are tagged "Wifi" only.To get around this problem, you can activate the 3G BEFORE starting reverse tethering,all the data will goes to the usb.Tips : You can connect to some wifi hotspot not protected by a key. It's only when you want to surf that the hotspot ask you a user/password. But, at this point, we have an 'active' connection. Market download should work after starting reverse tethering.
Other apps :The system detect automatically ports like http (80), https (443) , Market (5228),UDP ports like DNS, ...You don't need to add static ports in the windows program (config / ports).So unless the application is not well written, it must work.I suppose it's more than 95%
Not fully working application: 
  • Market download, but work if you install the HackConnectivityService on android 4.x
  • Skype. but work with the HackConnectivityService (not checked yet)
  • If someone know another one, post a reply !

Troubleshooting 
If your device is not listed in the "select a device" combobox :
  • Ensure Usb debugging is enabled (Settings > Applications > Development > USB Debugging > Turn On). Deactivating and reactivating the Debug mode may help
  • The ADB subsystem is sometimes not working properly. Click the "Kill ADB" button (on Tools)
  • Your device is perhaps not installed properly. See your device manufacturer. On the download section of this article, the usb_driver.zip contains a generic driver. Lastest version can be download here : http://developer.android.
  • com/sdk/win-usb.html
Click refresh or restart the tool to detect your device.If the connection shutdown often, try another usb cable
Proxy :There is 2 problems with proxies :
Android 3G proxy. Even if 3g is desactivated, your provider (APN) proxy may still used by applications.The windows tool is not able to communicate with your provider proxy.Note that not all providers include a proxy. You must remove it manually. The tool will give you informations on how to do it when detected. 
Corporte proxy. The windows application is not able to traverse proxies. The good news is that you can use some applications like FreeCap , sockscap and proxifier.You must start the androidTool from one of these launchers, giving proxy adress and port. Thanks "edgd1er" for the information.
History :
Version 3.5
  • More stable.
  • Removed some memory leaks.
  • Added 3G proxy detection
  • Some cosmetic changes
  • Added a button to help installing Xposed and HackConnectivityService (action need to be done manually)
  • Changed iptables low level binaries

Version 3.4 beta
  • No change at all on how the system work (just send a message to HackConnectivityService to enable fake wifi)
  • Added HackConnectivityService.apk to allow market download (optional and in beta test, see above)


Version 3.3 : minor update
  • Updated low level binaries (smaller)
  • Better connection

Version 3.02 : minor bugfix. 
Version 3.00 beta : major update
  • Rewrite low level communication. Should be more faster and more stable
  • Simplify user interface.
  • Fix systray

Version 2.30 : minor update
  • Added systray support on the windows tool.
  • Last 20 seconds upload and download graph is displayed in tray.
  • Minimize or click to systray icon to put it to systray. click again to show the tool.

links for the reverse tether
http://dl.xda-developers.com/attachdl/e4ee0acc3fb55f0687d0f34e55d33c3c/51b997f7/2/0/2/7/3/4/2/ReverseTethering_3.6.zip