Wednesday, July 21, 2010

How to get "free" internet on an enV2 phone

First off, a few warnings:
  1. This is not foolproof. Companies *coughVerizoncough* are always changing their ways to try to stop things like this, and this may not work for very long.
  2. Companies *coughVERIZONcough* are not happy with people doing this, and they WILL monitor your bandwidth and tell you to stop if you do this alot. (At least that's what I've been told.)
  3. I'm not responsible for any negative consequences that could happen during or after this guide. If Verizon sues you, it's on your head. If you brick your phone, it's on your head. Not mine.
  4. Lastly, there are a good many steps in this process, and it's more of a "Why not?"/curiosity deal than practical. I will not help you beyond this guide. I usually would not say that because this blog is small and insignificant, but I also know that this is a fairly sought after piece of knowledge.
And a few more notes before we start:
  • The phone I have and will be talking about is the LG enV2. I mention this because some steps I'm going to talk about are specific to this model of phone; other phones don't need to do these steps, and other phones still need to do a little more. Instead of trying to make a universal guide which is nearly impossible and would be foolish of me since I don't know how other phones operate, I'm going to talk entirely about this phone.
  • This guide relies heavily on a video from The Fixed, a tech channel on Youtube. I would not have gotten anywhere without that video, but they did skim over a few points, which is the reason I'm making this guide. But all credit goes to them, really.
  • This may seem rather intuitive, but keep in mind this: I figured out steps practically completely backward. I knew where to start and where to finish and backtracked from there. So you're welcome.
  • You'll need:
    • A computer (Windows, Linux, and Mac! All work!)
    • enV2
    • Either the enV2 USB cord or a bluetooth adapter for your PC
    • Bitpim
    • A Hex editor (XVI32 recommended, or a Linux/Mac equivalent)
    • A proxy program (CCProxy or HoTTProxy recommended....CCProxy is only for Windows, but HoTTProxy works on any machine that can run Perl.)



With all those out of the way, let's started! There are two sections of actions that need to be taken: a set that need to be done to set up your phone, and a set that needs to be done to set up your computer. Here's a table of context:



I. The Phone
     1. Getting into the menu
          A. Connecting via Bitpim
          B. Extracting, editing, and replacing the file
     2. Editing the WAP settings
II. The Computer
     1. Setting up the Proxy (CCProxy or HoTTProxy)
     2. (Optional) Setting up No-IP
          A. Setup Host
          B. (Doubly Optional) Dynamic DNS Update software
     3. Port forward
     4. Firewall Exception




I. The Phone
This is the most crucial part and the part that you should try first, because if you can't get this set up, there's really no point in getting the computer side set up first.

1. Getting into the Menu
As I said before, I'm on Verizon and using an enV2 (a VX9100). If what I discuss here doesn't work, you'll have to Google "MODEL service menu" with your model to figure out just how to get into your specific phone's service menu.

For the 9100, there are two menus. Type what's in bold at the home screen, then press Send to access them. When prompted for a "Service code", just enter 000000. There are actually two service menus that I know of: ##lgservicemenu and ##program9100. The first one was used by the guys in The Fixed, but mine had settings under a different menu. You need to find a menu that has "WAP Settings", but also inside of that, has something like "Primary Address". The enV2 uses the latter of the two codes I listed (and the 9100 was specific to my model).

So you're in! But there's still more to do; unfortunately, Verizon doesn't want you editing the ##program9100 menu, so you can't do it until you perform a dirty hack.

A. Connecting via Bitpim
Connect your phone either via Bluetooth or the cable. I can't really go into it very specifically since each bluetooth program is a little different, and I really don't know much about how phone cables work. But pair/connect with the phone and remember the COM port.

Download and install Bitpim, a program specifically for connecting to phones. Fire it up and go straight to Settings. You can try the Phone Wizard, but I find it easier to enter everything manually. Select 'LG-VX9100 enV2' from the Phone Type and enter in the COM port (see? I told you to rememebr it.) If you're not sure what port it is, click the "Browse" button and look for one that could be your enV2 in the "Active" section. When you're done, hit "OK",

B. Extracting, editing, and replacing the file
Back in Bitpim, from the top menu, click "View" > "View filesystem". Click "Filesystem" on the left menu, and wait, it might take a while. DO NOT TOUCH ANYTHING OTHER THAN WHAT I SAY AND ONLY DO EXACTLY AS I SAY. MESSING WITH STUFF COULD SERIOUSLY BRICK YOUR DEVICE. Browse to /OWS and find the file paramtable1.fil. Right click it and press "Save", and save it to whatever folder you want to on your computer; I recommend something easy to find. I highly recommend backing up this file to something like paramtable1.fil_original, just in case.

Let's move away from Bitpim for a second. Download and install a Hex editor if you don't have one already (I used XVI32), and open paramtable1.fil. The value at 2 (which in XVI32 is the third block) should be '00', which needs to be changed to '20'. I have no clue what happens if you change the wrong block, so change at your own risk. Google around if you want to make entirely sure. Save the file and go back to Bitpim. Right click on paramtable1.fil again, and this time click "Replace", and choose your new, edited paramtable1.fil. Close Bitpim, because this part is done.

Reset your phone, and try entering ##program9100. If everything went well, things should be editable now!

2. Editing the WAP Settings
Wooh! Well now that that's over with, let's finally edit the settings. This should be cake after what you just went through. But unfortunately, we don't know what to fill it in with just yet, so leave it here and we'll be back in a jiff.


II. The Computer
This part is mostly just installing and running software, though a bit of config is needed.

1. Setting up the Proxy (CCProxy or HoTTProxy)
This part is relatively easy. It basically consists of just installing and running a program that acts as a proxy using your internet connection. CCProxy is easy to use, but it's limited to 3 users; I'm only going to use my phone for this, so it made sense to me. HoTTProxy is free and open source, but a tad more complicated. So take your pic, I'm going to talk about CCProxy, but the configuration is the same for both of them. CCProxy is just alot easier to explain.

So download, install, and run your program. In CCProxy, click the Options button and change the port for "HTTP/RTSP" to 8080. 8080 is what Verizon phones use by default, so that's what we have to use. Hit OK, then hit the Start button (in CCProxy). Wasn't that easy?

2. (Optional) Setting up No-IP
This program is optional, but it makes everything a heck of alot easier. It actually has alot of uses beyond free wifi on your phone, so I would recommend it. No-IP is a website that provides a static web address for your dynamic IP. In other words, your IP might be something like 65.23.61.10, which changes occasionally and is generally just hard to remember. No-IP gives you an address like peanuts.zapto.org that you can use instead of your IP that will act just like it, and it will always be that URL. It's very useful. Anyway, really the only downside is that you have to register at No-IP.com, but it is free.


A. Setup Host
From your home page on the No-IP website, click "Add a Host", and enter in whatever you want for a hostname. I recommend making it something not explicitly obvious, but simple enough to remember. You'll notice that there's a ton of choices available on the dropdownlist, but don't get excited: only the ones listed beneath "No-IP free domains" can be used by free accounts. Pick one that tickles your fancy or you think that you can remember easily, and go ahead and hit "Create."


B. (Doubly Optional) Dynamic DNS Update software
You're half done. Now whatever you entered (like peanuts.zapto.org) now redirects to your IP. The only problem is that you're going to have go back to the No-IP website and change the IP for that Host every time it changes (which it will, eventually). If you're ok with doing that, then skip this step. But if you don't want to worry about that, you can download a tool put out by No-IP that automatically updates the IP for that Host, meaning you will never have to worry about manually changing it, and the URL you entered will always redirect to your IP. (Click here to go to the Download page for the Dynamic DNS Update, but if the link fails, there should be a "Download" link on the front page.) Once you've downloaded and installed it, just sign in with your No-IP account and it should show a smiley face next to your URL.

3. Port forward
If you already know how to Port Forward, you probably already know what I'm about to say. If you don't you're about to learn a very useful trick; port forwarding is basically telling your router "I want you to reserve this port for only this computer." If you've never forwarded a port, I recommend going to PortForward.com, which has probably every Router out there and detailed instructions on how to access the configuration of your specific model.

Anyway, assuming you find your way to the Applications page of your router's config, forward the port from 8080 to 8080 to your IP (which you can find by typing ipconfig into the command prompt). Done.

4. Firewall Exception
What might seem the most obvious to some was the last thing on my mind. I actually had everything working up till here, except for the fact that my Proxy wasn't working, even on other computers. Then I suddenly remembered the Firewall, added an exception, and everything clicked.

I will not tell you how to do this on Windows 7, because I do not know how. On Windows XP,  Open the Control Panel, and click Windows Firewall or Security Center > Windows Firewall if you have Folder Tasks enabled. Click the Exceptions tab, then press the "Add Program" button. (I do not recommend the "Add Port" option, since adding a program allows that program to access the internet, but adding a port opens that port to anything. It's just much, much less secure.) Choose CCProxy (or HoTTProxy) from the list if it's there or browse to it if it's not, then click OK.

Take a deep breath. We're really almost done now.

...2. Editing the WAP Settings (again)
Ok, now that we have your Proxy setup, we can actually put some values into those WAP settings. Get back into the ##program9100 menu and go to the WAP Settings. Go to Proxy Address Setting, and change both Primary and Secondary address to your new No-IP URL (e.g. peanuts.zapto.org) or your computer's IP if you don't want to use No-IP. Then go back and go to Proxy Port Setting and change both the Primary and Secondary Port to 8080 (if they're not already set to that). Lastly, you can go to Homepage and change it to something else; I highly recommend picking something simple and WAP friendly, like m.google.com or wap.google.com or mobile.google.com, or whatever it is nowadays. This is also nice because after setting your homepage, it will reset your phone, which you would've had to do anyway.


III. You're done. Enjoy the freedom.
Go to Mobile Web, and surf. Instead of the homepage I set, I get this weird Verizon page with a Bing search engine, but I can search from there and get to Facebook, Gmail, or whatever I want. Again, I know that people get a "Cease and desist" type deal from Verizon, so I don't recommend using this little secret every day for hours on end, but if you're expecting an important e-mail or you need to check an address on Facebook for a picnic every now and then, this could end out being a lifesaver.





Wooh! I'm surprised I made it through typing that guide, and pat yourself on the back if you made it through too. It took me an entire night trying to get all of this set up for me, mostly trying to unlock that stupid menu, so I'm hoping this guide might provide a little insight.
There's a few nice things that came from this guide for me, in addition to being able to use internet on my phone:
  • I can now edit the ##program9100 menu, which might come in handy some day.
  • I learned how to set up my own Proxy....with two different programs, and now have it set up in case I ever need to use it for something.
  • I have No-IP, which is a fantastic tool for accessing your PC from anywhere; this will change the way I do VNC and the like.
  • I was reminded that Windows nags you about firewall exceptions for a reason, and the one time they don't nag you about it, you still might need to add one.

This has most certainly been the one of the most interesting, fun, and yet draining ventures I've had. It was worth it when I finally got my proxy working, and then was able to load Gmail on my phone.
-Bry

[UPDATE 7-29-10] It's "internet"....not "wifi"....I don't know why my brain farted and I put wifi in the title. Also, if you're wondering why there are quotes around "free", it's mostly because of Warning 2.

No comments:

Post a Comment