Internet Sharing over Wifi-Chainfire's WMWifiRouter v0.80 Ooo Pretty (Dec-10-2007)

Search This thread

TalynOne

Senior Member
Jun 25, 2007
309
39
Note that the NEW thread is at http://xdaforums.com/showthread.php?p=1801986
The topic maintainer (who has done a great job) has been fairly absent recently, which is why the thread has been continued elsewhere. The current topic also includes the information on how to do this all manually, without WMWifiRouter.
(End of Menneisyys' update; original original post follows.)


Breaking News!:

Chainfire has released WMWifiRouter v0.80. An app that automates the launching of Internet Sharing/Registry Changes/WiFi power Cycling/with a new 10 minute timeout fix/process! If you appreciate his work on this or his KaiserTweak application, feel free to donate something to him via PayPal.

IMPORTANT NOTES:
  • If you use this application, NO hacked .dlls are are needed/used. Ignore my (TalynOne's) tutorial, except for any sections referenced in Chainfire's notes below.
  • Make sure you have a working version of Internet Sharing installed, and tested, before trying to share it via WiFi.

WMWifiRouter info from ChainFire:

Changelog:

v0.80
  • Changed interface to use big icons and animations
  • Added new program icons, still needs some work though
  • Added option to make the log visible
  • Added about screen (with new logo)
  • Added options to create/remove shortcut in your program menu
  • Added extra registry backup/restore functionality
  • Added detection for ICS, with the optional error message
v0.76
  • Made "Unattended mode" the default power saving mode (seems to work for everybody)
  • Tweaked clean-up code
v0.75
  • Changed the power tweak with two different power saving modes: "idle" and "unattended". This fixed the power tweak for all users as far as I can tell.
v0.74
  • Changed the way ICS is launched and forced to connect (hopefully this will end the manual-connect issue once and for all)
  • Added code to prevent multiple instances
  • Added an icon
v0.73
  • Adjustments in power tweak
  • Adjustments in timings
  • Added registry tweaks for Sprint users
  • Put the configurable options in a menu
  • Added some code that cleans up your registry if the program crashed or you needed to soft-reset
  • Code cleaned up
v0.7
  • Added a power tweak
  • Made start sharing on start configurable (handy for troubleshooting)
  • Made quit when ICS quits configurable (handy for troubleshooting)
  • Added option to reconnect data connection when it drops
v0.6
  • Maintenance update, no new features added. The sole difference is that I rebuilt WMWifiRouter using a different widget set. The executable dropped 14-fold in size from 1.25mb to 93kb. This results in the application loading faster, consuming less storage, as well as less memory when running. This widget set is also lighter on the CPU, though I do not think that will be noticeable.
v0.5
  • Just a small maintenance update. In short, the app has simple become more responsive / usable:
  • App should be more responsive and load faster
  • 'Loading' indicator is now used
  • Screen Toggle is disabled, as with further testing it causes too many problems
v0.4
  • Back to basics, all 'hacked files' removed. The name of your WiFi interface _should_ no longer matter.
  • New way to get around the 10 minute time out problem
  • Screen Toggle function added. Turns the screen off without disconnecting WiFi
  • WLAN state is recorded on start and restored on exit. So if you had WLAN turned on before you started WMWifiRouter, it will be turned on again after WMWifiRouter is done cleaning up after itself
  • More beers drank while making this version than during any other version!

The power tweak:

This replaces the old screen toggle. This should tell your device to not turn WiFi off when it goes into standby mode. On my Kaiser (TyTN II) this allows me to put the device into standby mode using the power button while the connection keeps being shared. Obviously this consumes a lot less power. I do not know if this will work on all devices, please let me know. Also note that while it usually works for me, it doesn't _always_ work, so try a few times. Wait for the connections to be established before putting the device into standby.

Upgrading:
  • Remove any old WMWifiRouter files you have
  • Follow the installation instructions

Installation:
  1. Download the new zip HERE.
  2. Unpack the zip file on your PC somewhere
  3. Copy the WMWifiRouter.exe files to your mobile device

Usage:
  1. Make sure you have an Ad-Hoc WiFi network configured. If not, follow TalynOne's instructions in the start of this thread.
  2. Run WMWifiRouter.exe
  3. Wait. WMWifiRouter does it's best to start ICS and initiate the connection, but this can take a few seconds. If the "ICS Status" label at the top if the WMWifiRouter screen says "Connected!", all should be well.

Usage Notes:
  • WMWifiRouter does it's best to launch ICS and initiate the connection, but I have noticed once or twice it didn't actually connect. When this happens, just task-switch to ICS and click "Connect" manually.

  • As a different hack is now used to prevent the 10-minute timeout problem, no hacked DLL's are used anymore, and your normal ICS tool is used. This does however lead to the ICS program screen saying you should "check your usb-cable" instead of it saying "connected". Don't worry about it

  • If your phone has a hardware WLAN switch (HTC Mogul), put this in the ON position before starting WMWifiRouter

  • Sets the IP of your WiFi to 192.168.0.1, which may break operation of regular USB cable Internet Sharing. If you have trouble getting regular USB Internet Sharing to work, read the FAQ titled "Help, when I go back to the non hacked version of Internet Sharing to tether via USB, it no longer works!", in TalynOne's tutorial for a possible fix.

So get testing all!
----------------------------------------------------------------












Now back to the regular tutorial...

Description:

A tutorial on how to share your mobile device's dial-up (GPRS/EDGE/UMTS/HSDPA/EV-DO, etc. cellular) connection over an Ad Hoc WiFi connection.

Starting with Windows Mobile 5 AKU3 Microsoft included an "Internet Sharing" application, for free, that allowed you to share your Internet connection (like the commercial apps PDANet and USBModem). But all of these applications only supported sharing your dial-up connection via a USB cable or Bluetooth PAN/DUN connection. This hacked version lets you share your Internet connection via an Ad Hoc WiFi network. This useful, among other reasons, if you want to share your Internet Connection with a device that doesn't support Bluetooth PAN, or USB Host connectivity, but does support Ad Hoc WiFi networks, such as a Sony PSP or iPod Touch.

Introduction:

To find out how this method differs from fluxist's read the FAQ located below. The tutorial is very verbose, because I think it's better to include too much information, rather than not enough. Expect a good number of edits/updates/corrections to this tutorial because of its length. I'm also hoping to include as much information as possible in the hopes that someone smarter than me can use this information to come up with an even better solution. This tutorial is HTC Mogul centric (since that's what I have), and includes certain notes that only apply to the Mogul (I will specify this in the note itself).

Requirements:
  • A Windows Mobile device with a working version of the Internet Sharing application (introduced in Windows Mobile 5 AKU3).
  • The ishare_over_wifi_usb_edition_v0.2.zip archive attached to the bottom of this post.
  • A hacked "intshare.dll" that's been modified to share you connection via WiFi through the USB selection in the "Internet Sharing" application, for the WiFi radio on your mobile device. Look at FAQ below for a list of included hacked .dlls, and the known mobile devices that they are for.
  • A client device that supports Ad Hoc WiFi networks.

Setup Summary
  1. Setup an Ad Hoc WiFi connection on your mobile device
  2. Set a static IP address on your WiFi device of "192.168.0.1" with a subnetmask of "255.255.255.0".
  3. Setup an Ad Hoc WiFi connection on your client device
  4. Download/uncompress the contents of ishare_over_wifi_usb_edition_v0.2.zip to a folder on your mobile device (eg. \Program Files\WiFiShare).
  5. Copy the correct hacked "intshare.dll" into the same folder as you created in the above step (so it's in the same folder as "intshrui.exe").

Connect Summary
  1. Make sure the Wifi radio is off.
  2. Run the new "intshrui.exe", make sure USB is selected from the list, and press "Connect" (left softkey).
  3. Turn your Wifi radio on.
  4. Connect with your Ad Hoc client device (Laptop, PSP, etc...) and enjoy the INTARWEB!
 
Last edited by a moderator:

TalynOne

Senior Member
Jun 25, 2007
309
39
Optional Steps
  • Setup a shortcut to the new "intshrui.exe" from the archive.
  • Setup a shortcut to the Wi-Fi control panel item.
  • Setup and create a shortcut to the included Mortscript ("Share&KeepSharingViaUSB.mscr").
  • Apply the workaround to overcome the 10 minute connection timeout after connecting with the Internet Sharing app.

Sprint HTC Mogul/SERO Notes

It seems Sprint is up to shenanigans in regards to tethering for SERO users. Those of you running Sprint ROMs should navigate to the following registry key "HKEY_LOCAL_MACHINE\Comm\InternetSharing" and delete the string value named "Extension". This will allow you to connect to the Internet via the Internet Sharing app without the dreaded error 67/authentication errors. Previous to this fix, Mogul SERO users would have to connect to the Internet via another method (such as starting Internet Explorer first) before pressing the Connect button in the the Internet Sharing application.

If you're really paranoid (it has been concluded these entries have no meaning when using Internet Sharing), using a registry editor, navigate to the "HKEY_LOCAL_MACHINE\Software\OEM\WModem" key, and set the "CheckProfile", "Multi-NAI" and "WModemDUN" DWORDS to a decimal value of "0".

Optional: Setting up a shortcut to the "Wi-Fi" applet

In this tutorial we will be accessing the "Wi-Fi" applet several times (and possibly every time you connect via Internet Sharing as part of the 10 minute timeout workaround). To prevent having to go to the Start->Settings->"Connections" tab every time you wish to access this applet, we can create a shortcut to this applet, by either:

  • Manually creating a shortcut link to it ("21#ctlpnl cplmain.cpl,17").
  • Going to the "Wi-Fi Settings Shortcut" folder in the .zip package and installing the "Network Cards ShortCut.cab".

Setting up an Ad Hoc WiFi connection on your mobile device
  1. Make sure your WiFi radio is on.
  2. Go to Start->Settings->"Connections" tab.
  3. Select "Wi-Fi" applet.
  4. On the "Wireless" tab, select "Add New...".
    Pic
  5. Type any network name you would like for your Ad Hoc network (eg. WMobileAdHoc)
  6. Make sure the "This is a device-to-device (ad-hoc) connection" option is checked.
    Pic
  7. Select the "Next" button.
  8. On the "Configure Network Authentication" screen, select "Open" for the Authentication type, and "Disabled" for Data Encryption. For the purposes of testing, lets verify the connection works without encryption, if it does, you can modify your Ad Hoc connection properties later to enable the encryption mode of your choice.
    Pic
  9. Select the "Next" button.
  10. Select "Finish" on the final screen.
    Pic

Configuring a static IP address on your WiFi device
  1. Go to Start->Settings->"Connections" tab.
  2. Select the "Wi-Fi" applet.
  3. On the "Network Adapters" tab, select your WiFi device (for the HTC Mogul this is the item listed as "IEEE 802.11b/g Compatible Wi-Fi Adapter").
    Pic
  4. On the "IP Address" tab, select the "Use specific IP address" radio button. For the IP address enter the value "192.168.0.9" with a Subnet mask of "255.255.255.0".
    Pic
  5. OK the dialog.

Connecting to your Ad Hoc WiFi connection on your mobile device
  1. Make sure your WiFi radio is on.
  2. Go to Start->Settings->"Connections" tab.
  3. On the "Wireless" tab, to avoid automatically connecting to other infrastructure WiFi networks in the area make sure, under the "Network to access:" section, to select the "Only computer-to-computer" option.
  4. If you only have one Ad Hoc network defined, Windows Mobile should now attempt to automatically connect to it. If you have multiple Ad Hoc networks defined, or to manually connect to your Ad Hoc connection, in the list of the available connections, tap-and-hold the just added network, and select "Connect" from the context menu.
    Pic

Setting up/connecting the Ad Hoc WiFi connection on your client device

Since the specific procedure on how to connect to Ad Hoc networks greatly varies from device to device (Windows XP/Vista/Sony PSP/MAC/etc...), it's impractical to document each possible combination. In general just fire up your client and search for nearby networks, making sure you're not only looking for access points, but also peer-to-peer (Ad Hoc) networks. This (looking for both types of network) is the default with desktop Windows Wi-Fi clients, other platforms might be needed to be manually instructed to list available Ad Hoc connections.

Installing the hacked Internet Sharing application
  1. From the attached zip file copy the files "intshrui.exe", "ipnat.dll", and optionally "Share&KeepSharingViaUSB.mscr" to a new folder on your device (eg. \Program Files\WiFiShare).
  2. Copy the hacked "intshare.dll" for your WiFi device from the "hacked_dlls" folder in zip file, into the folder you created in the previous step. Read the FAQ question "Which WiFi radios have you included a hacked intshare.dll" below to figure out which hacked .dll you should use.
  3. Create a shortcut to "intshrui.exe" on your start menu for easy future access.

Connecting & Sharing the Internet via Wifi
  1. At this point you should have already setup your Ad Hoc WiFi connection, and set a static IP address for your WiFi device. If you haven't already, do so now.
  2. Make sure the WiFi radio is off.
  3. Start the new "intshrui.exe" Internet Sharing application.
  4. Make sure "USB" is selected (NOT Bluetooth PAN!)
  5. Press the "Connect" button (left softkey).
  6. Turn the WiFi radio on.
  7. Ignore the fact that the satus displays "Check USB cable connection". This is normal.
    Pic
  8. At this point you can connect your client machine to your Ad Hoc network, and it should receive an IP address from the DHCP service running as part of the "Internet Sharing" application. You are now ready to enjoy the glories of the Internet!

Workaround for the 10 minute timeout

You may notice, at least on my device, that "Internet Sharing", at exactly 10 minutes of usage, disconnects from the Internet, while you AdHoc WiFi stays on. This timeout is built into "intshrui.exe". Remember in the previous procedure how the status displayed as "Check USB cable connection", the status line needs to change to "Connected" for the timeout not to occur. This is how:

  1. Make sure "Internet Sharing" is active and connected, but the status message still says "Check USB cable connection".
    Pic
  2. Go to Start->Settings->"Connections" tab.
  3. Select the "Wi-Fi" applet.
  4. On the "Network Adapters" tab, select your WiFi device (for the HTC Mogul this is the item listed as "IEEE 802.11b/g Compatible Wi-Fi Adapter").
    Pic
  5. At this point we need to change something about the IP configuration that won't matter/affect anything, such as the alternate WINS address. It needs to be different from the current configuration or else the settings won't apply, which is needed for this workaround. On the "Name Servers" tab, select the "Alt Wins" entry and enter an arbitrary, unused, IP address value such as "192.168.0.253".
    Pic
  6. OK the dialog.
  7. Go back to the "Internet Sharing" application and the status should now display as "Connected"! The timeout should no be disabled for this connection session.
    Pic

    I've tested this many times and have been on the Internet for more than 2 hours without a disconnection in this state! If you get disconnected for any other reason you will have to reapply the workaround again. Remember to change the IP address to a different value so that the change applies, alternating between "192.168.0.253" and "192.168.0.254" should work fine. It just needs to be different value from the immediate previous setting. I've tried many different things to get the status to change to "Connected" via other methods, this is the only one I so far found to work.

"Share&KeepSharingViaUSB.mscr" Mortscript
 
Last edited by a moderator:

TalynOne

Senior Member
Jun 25, 2007
309
39
This script is included in the attached .zip file To use this script you must first download and install MortScript from here:
http://www.sto-helit.de/index.php?module=download&action=view&entry=65
or here:
http://www.pocketpcfreewares.com/en/index.php?soft=1448

This is an adaptation of Xiou's Share&KeepSharing script.

It turns off Wifi radio, starts hacked version of Internet Sharing app, connects and turns WiFi radio on. Once one valid connection has been made, reconnects if Internet Sharing enabled status status changes to disabled (ie. a disconnect occurs). Also, keeps device from going into standby mode, to prevent loss of WiFi connectivity.

It's heavily documented so it should be fairly easy to view, modify and understand by looking at it in a text editor.

Troubleshooting/Tips:
  • My connection seems flaky/slow, how can I fix it?

    If you have Bluetooth radio is on, try turning it off. On some devices, such as the HTC Mogul, the antenna for the WiFi and Bluetooth devices are shared, and WiFi performance can be greatly degraded when both are on. I've personally experienced a situation where I've been connected to a regular WiFi network connection, and when transferring files, the transfer speed was terribly slow. Turning off Bluetooth greatly sped up the file transfers.

    Don't place your mobile device too close to the device you're connecting to. If the devices are too close your connectivity could get flaky.

    Upping the power level of the WiFi device may help (at the sacrifice of battery power drain). On the HTC Mogul this can be done by going to Start->Settings->"Connections" tab and selecting the "Wireless LAN" applet, then on the "Power Mode" tab, slide the Power Save Mode slider all the way to the left.

  • You stay connected via WiFi, but Internet Sharing gets disconnected every 10 minutes

    Make sure you're using the 10 minute disconnect workaround documented above. Also, you can try the included Mortscript (Share&KeepSharingViaUSB.mscr), or better yet, use Chainfire's WMWifiRouter application.

  • Help, when I go back to the non hacked version of Internet Sharing to tether via USB, it no longer works!

    For some reason the IP address of your virtual USB ethernet device gets blanked out sometimes, to fix this:
    1. Go to Start->Settings->Connections Tab->Wi-Fi applet
    2. On the Network Adapters tab, choose "Remote NDIS Host"
    3. Set the IP to 192.168.0.2
    4. Set the Subnet Mask to 255.255.255.0

  • This doesn't work, what else can I try?
    • Read the FAQ "My device is not in the list and/or I don't know what the device name for my WiFi device is, how do I find out?" to make sure that a hacked .dll exists for your device and is copied into the same folder as "intshrui.exe". If one doesn't exist you can request one be made by posting in this thread, with the WiFi identifier of your device (please provide the name of your device too). You can also create your own hacked .dll by reading the FAQ "How did you hack intshare.dll?".

    • Try Chainfire's applicaton, available at the top of the thread HERE

    • Try fluxist's methods HERE (try the non hacked .dll method first)

FAQ:
  • How is this different from fluxist's hack?:

    It redirects USB instead of Bluetooth for sharing the Internet Connection, and works of an independent copy of intshrui.exe, so none of your original files/functionality gets effected. By redirecting the USB functionlity, instead of Bluetooth, you don't have to deal with the Bluetooth visibility prompt, and your Bluetooth radio doesn't get turned on by the Internet Sharing application. On some devices, such as the HTC Mogul, the antenna for the WiFi and Bluetooth devices are shared, and WiFi performance can be greatly degraded when both are on. I've personally experienced a situation where I've been connected to a regular WiFi network connection, and when transferring files, the transfer speed was terribly slow. Turning off Bluetooth greatly sped up the file transfers. Also the method allows for the 10 minute timeout elimination workaround described above. More information is located in the FAQ "How did you hack intshare.dll?".

  • Why would I want to share my phone's data connection over WiFi, as opposed to over Blueooth or USB?

    There are many reasons, including:

    With 3G technologies, such as EVDO, phone data speeds can easily exceed what Bluetooth supports (Bluetooth v1.2 - 1 Mbit/s, Bluetooth v2.0+EDR - 3 MBit/s). This is not counting the overhead taken by the protocol itself.

    The ability to share with multiple clients. I tested with my laptop and a Dell Axim X50V connected to the Ad Hoc network, and both were able to use the shared connection on the Windows Mobile device at the same time just fine!

    WiFi data communication can be encrypted with industry standard encryption, Bluetooth sharing is not.

    WiFi range tends to be typically much longer than most Bluetooth devices.

    You may want to share your data connection with a device that does not have Bluetooth PAN or USB Host connectivity, but can connect to Ad Hoc WiFi devices, such as an iPOD Touch.

  • By using this will I be charged by my phone carrier?:

    Generally, this will incur the same charges as using the Internet on your phone. If you have an unlimited data plan, you should be fine. You are responsible for any charges you may incur due to lack of sufficient testing.

  • Can secure my WiFi connection ?

    Sure, when setting up your Ad Hoc connection just enable an encryption method (such as WEP or WPA). Make sure the encryption method you choose is supported on both your Windows Mobile and client device.

  • Which devices support Ad Hoc networks?

    Almost every device that supports normal Wifi networks, including the Sony PSP, Apple iPhone, and Apple iPod Touch.

  • I have a SmartPhone, how do I set my IP Address?

    I don't have a SmartPhone, but luckily PocketPC Expert Menneisyss does, and has found a solution. Since I don't have a SmartPhone I'm going to plagiarize his solution for you here:
    1. Download/install the IP profile Manager CAB file HERE (mirrored it HERE), which makes it possible to fill in the IP addresses on MS Smartphone (Windows Mobile Standard) devices as well. That is, with this tool, you can use MS Smartphone models having Wi-Fi support like the HTC Dash / s620 and Vox / s710. A poster reported success with the HTC Dash / s620. With the Vox, I haven’t managed to make internet sharing work, but you may have better luck.
    2. After installing and starting the application, you’ll need to select your WiFi networking device (as can be seen in the following screenshot, it’s "TNETW12511" on the HTC Vox; if your model has the default TIACXWLN1, then, no such dialog will be presented):
      Pic
    3. You'll then need to select Options / Add Profile; there, just fill in the two numbers (IP:192.168.0.9 / Subnet Mask:255.255.255.0), making sure you also give the profile a name so that it is saved and becomes selectable:
      Pic
    4. Then you can select the new profile:
      Pic
    5. And restart the device as prompted:
      Pic
    6. After restart, follow the exact same procedure as on the Pocket PC.
 
Last edited by a moderator:

TalynOne

Senior Member
Jun 25, 2007
309
39
  • How did you hack intshare.dll?

    I took fluxist's hacked .dlls, and using a HEX editor replaced every instance of the string "RNDISFN1" (which refers to the USB device) with the WiFi identifier. If the string was too long and encroached into the "BTPAN1" string, then I moved the "BTPAN1" string over. I have no idea if this breaks the functionality of using the "Blueooth PAN" entry in the Internet Sharing app for sharing over WiFi, I haven't tested it, and you should never use it regardless. The top three occurrences of the WLAN identifier (TNETW12511 for the Mogul) are related to my USB hack, the last (fourth) occurrence of the WLAN identifier is a left over from fluxist's Bluetooth hack.

    This hack is different from a fluxist's registry change .dll hack. In my hacked .dll I replaced EVERY reference to the USB device (RNDISFN1), to the WiFi device in question (TNETW12511 for the Kaiser/Mogul). So if you just perform a registry change with the original version of the intshare.dll, the "Status" messages the "Internet Sharing" app looks for/displays are related to the USB device. In my hacked version, the "Status" messages the app looks for/displays are related to the actual WiFi device. So changing WiFi IP address properties, for the 10 minute workaround, while running the non hacked version will have no effect, because the non hacked .dll version is monitoring the USB device, not the WiFi device.

  • For which WiFi radios have you included a hacked version of intshare.dll?

    TIACXWLN1
    -Artemis / HTC P3300
    -Pocket Loox 718/720
    -Hermes / HTC TyTN / XDA trion / MDA Vario II / VPA Compact III / SPV M3100 / Dopod CHT 9000 / Dopod 838 Pro
    -Athena / x7500

    TNETW12511
    -HTC Titan / Sprint Mogul / Verizon XV6800 / P4000
    -HTC TyTN II / Kaiser / AT&T Tilt / 8925 / P4550
    -Elf / HTC Touch
    -HTC Vox

    TNETWLN1
    -Universal / Qtek 4040 / XDA-IV / SPV M5000 / MDA-IV / i-mate 2005
    -HTC Wizard / Qtek 9100 / i-mate K-JAM / MDA Vario / O2 XDA Mini S / SPV M3000 / Cingular 8125 / T-Mobile MDA / Dopod 838 / VPA compact II

    WLAN11g1
    -Terralogic Toughnote DA05-M Ruggedised PDA

    SWLD25SP1
    -E-ten Glofiish X500
    -Samsung SGH-i600

    GSPI86861
    -Sharp EM-ONE

    CheetahSDN1
    -O2 XDA Flame

    CF8385PN1
    -O2 Atom LIFE

  • My device is not in the list and/or I don't know what the device name for my WiFi device is, how do I find out?

    1. Go to Start->Settings->"Connections" tab.
    2. Select the "Wi-Fi" applet.
    3. On the "Network Adapters" tab, make note of the name of your WiFi device (for the HTC Mogul this is the item listed as "IEEE 802.11b/g Compatible Wi-Fi Adapter").
    4. Using a registry editor, search the registry using the name you noted in the previous step. The second occurrence (it's slightly different from the first, it has a suffix "1" after the registry key name, and also has a "Wireless" value) will be something like this:

    Code:
    [HKEY_LOCAL_MACHINE\Comm\[b]TNETW12511[/b]]
    "DisplayName"="IEEE 802.11b/g Compatible Wi-Fi Adapter"
    "Group"="NDIS"
    "ImagePath"="TNETW1251.dll"
    "Wireless"=dword:00000001

    Look up the name of the subkey, which is [HKEY_LOCAL_MACHINE\Comm\TNETW12511]. Of this, you’ll only need the last subkey name component (TNETW12511).

Other reading of interest:

Bluetooth specs:
http://en.wikipedia.org/wiki/Bluetooth

Internet sharing description & why Microsoft Mobile team removed Bluetooth DUN:
http://blogs.msdn.com/windowsmobile/archive/2007/04/17/why-did-we-remove-bluetooth-dun.aspx

The new dial-up network model of the WM5 AKU3:
http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1415&more=1&c=1&tb=1&pb=1

A tutorial of setting up and using Wi-Fi peer-to-peer (Ad Hoc) connections between Pocket PC's:
http://www.pocketpcmag.com/blogs/index.php?blog=3&p=588&more=1

Dial-up Networking Through Bluetooth Under WM5 AKU3 / WM6:
http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2121&more=1&c=1&tb=1&pb=1

Unrestricted BT PAN server with the MS BT stack:
http://www.pocketpcmag.com/blogs/index.php?blog=3&p=2230&more=1&c=1&tb=1&pb=1

Links for developers/hackers :

Sample for using Internet Sharing API:
http://groups.google.com/group/micr...4aaa543efc216f/a9c637f89b0575b6?lnk=st&rnum=1

Configurable TCP/IP Configuration Parameters in WinCE 3.0:
http://msdn2.microsoft.com/en-us/library/ms881801.aspx

Controlling the Radio Devices:
http://www.teksoftco.com/articles/article 007/radiodevices.htm

802.11 WLAN WiFi : Power Mini FAQ - Windows CE:
http://blogs.msdn.com/cenet/archive/2006/12/14/802-11-wlan-wifi-power-mini-faq-windows-ce.aspx

WiFi toggling fix:
http://forums.sbsh.net/index.php?showtopic=17139&pid=175405&mode=threaded&start=

New Windows Mobile 6 State and Notifications Broker State Values:
http://www.pluralsight.com/blogs/jimw/archive/2007/04/20/46866.aspx

Internet Connection Sharing for Microsoft Windows CE MSDN documentation:
http://msdn2.microsoft.com/en-us/library/aa924710.aspx
http://msdn2.microsoft.com/en-us/library/ms901927.aspx
http://www.microsoft.com/technet/archive/wce/evaluate/sharece.mspx?mfr=true


Thanks/Credits:

Chainfire - For his awesome WMWifiRouter application.

fluxist - For the original hack!

Menneisyys - For his blogging on the subject.

Xiou's - For his Share&KeepSharing script.

gthing - For the XDA-Developers Hermes Accesspoint Wiki.

luv2chill - Sprint Mogul Internet Sharing Connect Fix. (post by luv2chill).

electronicrice - Multi-NAI disable hacks for the Mogul

Final Thoughts/Notes:

fluxist's tutorial instructs you to set the IP address to 192.168.1.1, I instruct you to set it to 192.168.0.9. This is so it matches up to what I found in "intshare.dll". When I was testing sometimes my laptop would get a 192.168.0.0 network address, even when my mobile device was statically set to a 192.168.1.0 network address.

My expertise is in network/system administration/repair and software development. I can easily create code, but when it comes to hacking someone else's compiled code, I'm a complete novice. The ideal solution is if a one click solution could be written to change the WiFi configuration to Ad Hoc, set a static IP address, connect to the Internet with the Internet sharing app, have it stay with a status of "Connected", and reconnect on loss of connection.

I'm figuring a skilled hacker/cracker should be able to patch "intshrui.exe", where I believe the actual 10 minute time out exists, and get rid of it. When opening this file in a Hex editor, I noticed the strings "HostConnectTimeout" and "CellConnectTimeout" inside.

Another solution would be to figure out the undocumented APIs to build a new Internet Sharing application.

intshare.dll exposes the following exports: InternetSharingEnable, InternetSharingDisable, RegisterForInternetSharingNotifications, and DeregisterForInternetSharingNotifications.

ipnat.dll exposes the following exports: IPNat, LanaUp, NAT_Close, NAT_Deinit, NAT_IOControl, NAT_Init, NAT_Open, NAT_Read, NAT_Seek, NAT_Write, and NatConfigure.

The included "Share&KeepSharingViaUSB.mscr" Mortscript uses vjvolubilis.exe (available at http://www.vijay555.com/?Releases:VJVolubilis) to toggle the Wifi radio off and on, but this app is not compatible with the HTC Mogul. It would be great if someone can suggest a program that would work with Mortscript and the HTC Mogul.

--------------------

Changelog:

v0.2
  • Added hacked dll for "CheetahSDN1" (O2 XDA Flame)
  • Added hacked dll for "CF8385PN1" (O2 Atom LIFE)
  • Changed IP address in hacked intshare.dlls from 192.168.0.1 to 192.168.0.9 to prevent possible conflicts.
  • Changed "Share&KeepSharingViaUSB" Mortscript.
  • Added "StopSharingViaUSB" Mortscript.

v0.1
  • Initial Release
 

Attachments

  • ishare_over_wifi_usb_edition_v0.2.zip
    262.7 KB · Views: 4,680
Last edited:

MWillis561

Senior Member
Dec 18, 2006
74
2
WOW!!

All I can say is Wow. Thank you very much for the effort and time that you put into creating this. I am currently using an Athena and the files and tuturial that you setup work great. Thanks for the work. It makes my Athena just that much better. I will let you know if I run into any problems.
 

kwyatt6347

Member
Apr 13, 2006
27
0
another wow

thanks for all the time and effort you put into this. you definitely went out of your way to make sure this was easily understandable and complete. i applaud you for your hard work.
 

specv

Senior Member
Dec 3, 2006
86
2
great tutorial, my only question is when would you use this. When you have a laptop with no wireless card?
 

TalynOne

Senior Member
Jun 25, 2007
309
39
Ack, I just realized my poor topic title. No, if you wanted to use Internet Sharing with a USB cable, just use the one built into your Windows Mobile, no hacks needed.

This is for sharing via WiFi, the USB cable doesn't even have to be connected for this hack.

MWillis561, which WiFi Radio does the Athena use (so I can document it)?
 

Menneisyys

Retired Moderator
Jul 25, 2005
5,511
138
www.winmobiletech.com
great tutorial, my only question is when would you use this. When you have a laptop with no wireless card?

On the contrary. When you have a non-BT PAN-capable client still able to communicate over Wi-Fi P2P networks - for example, a Symbian or a Windows Mobile phone. I've used both (Symbian: NOkia N95; Windows Mobile: a lot of different clients) in this config; they all worked great. Check out my related articles.
 

Chainfire

Moderator Emeritus / Senior Recognized Developer
Oct 2, 2007
11,452
87,862
www.chainfire.eu
I've spent a few hours to hack together an app that does all these things without needing any of the hack DLL's or scripts (it does all the registry changes at the right times, enable/disable WLAN at the needed times etc).

There's just one thing I can't seem to get around, and that's the 10 minute timeout thing. Just doing things manually, I can't get the 10 minute disconnect workaround to work as described (and if I can't even do that, how am I going to get it to work programmatically? :)). My cable stays in 'disconnected' state. Help?
 

TalynOne

Senior Member
Jun 25, 2007
309
39
I've spent a few hours to hack together an app that does all these things without needing any of the hack DLL's or scripts (it does all the registry changes at the right times, enable/disable WLAN at the needed times etc).

There's just one thing I can't seem to get around, and that's the 10 minute timeout thing. Just doing things manually, I can't get the 10 minute disconnect workaround to work as described (and if I can't even do that, how am I going to get it to work programmatically? :)). My cable stays in 'disconnected' state. Help?

Try doing it manually WITH the hacked .dll for the Kaiser, see if that helps.
 

Chainfire

Moderator Emeritus / Senior Recognized Developer
Oct 2, 2007
11,452
87,862
www.chainfire.eu
I think I have duplicated what your 10 min fix does though, in my app. I've uploaded it to http://www.jongma.org/WMWifiRouter/WMWifiRouter.zip.

It would be great if you (or someone else) could give it a go and see how (if) it works for you, including the timeout.

Usage is simple, put the EXE on the phone. All you need to have is that ad-hoc connection set up. Run the EXE, it will do some registry modifications, turn of WLAN and start up IS. Put IS on USB and connect, the EXE should turn WiFi back on including the reconfiguration. One note though, once you disconnect in IS you have to really close IS and restart the EXE as well.

Thanks.
 

TalynOne

Senior Member
Jun 25, 2007
309
39
Ok, for the Timeout hack to work it has to be running the hacked version of the .dll, you can not simply get away with registry changes. The hacked dll does more than just set the registry. When starting your app stand alone it started the non hacked "Internet Sharing" app, which never applied the Timeout workaround properly. When starting my hacked version first, getting a valid Internet AND AdHoc connection first, and then executing your .exe it worked half the time. It seems your .exe, every other time, set the WiFi adapter to DHCP mode.

Change it so it runs the hacked version, doesn't perform any registry changes on the Internet Sharing Private/Public interface keys (since the hacked .dll already does this), and changes the ALT WINS address to a new value from its current value, make sure you don't set the WiFI adapter to DHCP at any point.

Great job! Looks like we're getting close.
 
Last edited:

Chainfire

Moderator Emeritus / Senior Recognized Developer
Oct 2, 2007
11,452
87,862
www.chainfire.eu
Ok, for the Timeout hack to work it has to be running the hacked version of the .dll, you can not simply get away with registry changes. The hacked dll does more than just set the registry. When starting your app stand alone it started the non hacked "Internet Sharing" app, which never applied the Timeout workaround properly. When starting my hacked version first, getting a valid Internet AND AdHoc connection first, and then executing your .exe it worked half the time. It seems your .exe, every other time, set the WiFi adapter to DHCP mode.

Change it so it runs the hacked version, doesn't perform any registry changes on the Internet Sharing Private/Public interface keys (since the hacked .dll already does this), and changes the ALT WINS address to a new value from its current value, make sure you don't set the WiFI adapter to DHCP at any point.

Great job! Looks like we're getting close.

Same link. Updated the EXE so that it looks for intshrui in the local folder first. If it finds that it will not perform the ICS registry hacks.

You mention however that the hacked DLL's do more, I thought the only thing changed about it was the interface names? I don't see why that would be of influence (as that can be fixed through reg, as obviously with all the normal files / no hacks, I can use the app and it just works for me).

The changes applied are indeed to the WINS adapter, I do not touch DHCP. Though what you may be seeing is at the moment you disconnect, the app restores the default registry settings for the wireless adaptor, which has DHCP enabled. Furthermore I'm not entirely sure I actually have to change any value. I think the control panel application simply doesn't "apply" if there weren't any changes, force the driver to rebind the adaptor with IOCTL messages like I do now, would probably work with or without modifications.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Archos 5

    Hi All,

    Can anyone help me on how to connect and set up my HTC touch diamond to connect to my Archos 5 using the WMWifiRouter software please? I want to use my data plan bundled with my contract.

    Thanks in advance,

    Mick