Update: Verizon has started charging by the MB. Looks like now they charge $1.99/MB, with a minimum charge of $1.99.
Update: Matt M writes that you can access the service menu on the 5400: Dial ##program5400 (##77647265400) and press Send. The service code is still all 0s. Apparently some people have been able to activate the dial-up-networking feature on other LG phones using the data (#4) sub-menu ([howardforums.com]) but this doesn't seem to be available on the 5400. Under Data -> Data Settings there is an option to enable QNC, which is a slower data service, but after enabling it I still get the "DIAL-UP NETWORKING SERVICE IS NOT SUPPORTED" message. -- Thanks Matt M!
I'm not a big fan of complicated phones. In December 2007 I finally parted ways with my ancient LG VX4500 from Verizon and traded it in for a VX5400. The 5400 is basically the same phone, now with a 640x480 camera, bluetooth, and a worse speaker phone. Hooray for progress.
Unfortunately when I got my new bottom-of-the-line ultra-utilitarian phone home I discovered that it was missing one more important feature: the ability to use Verizon's data network. This page is about getting full usage out of the Verizon plan you're already paying for, using a phone that Verizon sells as compatible with their network.
If you're a Verizon customer, even with the most basic plan, take a look at the Plan Details section of the My Plan page on verizonwireless.com. You'll see National Enhanced Services Network listed there. That refers to Verizon's 1x Data Network.
So 1x Data is advertised as a feature. It's advertised as a different feature than TXT Message and Message Waiting Indicator. But how can I use this unique feature that I seem to be paying for? It seems I either have to buy access to Verizon's own web proxy server, or I have to change my phone's idea of where to look for a web proxy.
Well I just happen to have a web proxy running anyway, so this seems like the better option. On my old LG VX4500 the option to do this was located in a hidden, but accessible, menu through the phone's interface (Menu-0, 000000). I was dismayed but not surprised to learn that my new phone no longer makes this menu accessible.
What's a poor hacker to do? ... It'd be nice to find a way to redirect the phone's proxy even without the user accessible menu.
It's very possible to ruin your phone and any data it may contain by attempting any of the following. If you do this, it will certainly void you warranty, and Verizon will probably be able to tell that you changed something in the filesystem if they care to look when you return your phone. Please understand that I am not responsible for any negative effects that follow from your reading and acting on the information provided here, including but not limited to charges incurred, or equipment damaged.
These instructions are for linux. Don't ask me how to do this in Windows! I don't know, and I'm not interested in finding out.
It turns out this is possible. You can access the internal filesystem of the LG VX5400 using bitpim over bluetooth. In the filesystem, you can find and change the file that the browser uses to store the address of Verizon's web proxy servers, and redirect the phone to your own squid server. Here's what you'll need:
Linux Computer with Bluetooth adapter (I use Fedora)
bitpim
A hex editor (I use the hexedit included in Fedora)
Server with a static IP running squid
First make sure that the bluetooth power on the phone is turned on:
Press Turn On in the BLUETOOTH MENU
On your Linux computer, with a working bluetooth adapter run:
sdptool browse
You should get some output like this.
Notice the section that says BT DIAG. Specifically, below the BT DIAG heading notice the
section that says:
"RFCOMM" (0x0003)
Channel: 16
I'm not sure if your channel will be the same, but this number is
important.
The next step is to create a virtual comm port from linux to the
phone on this channel.
At the top of your sdptool output you'll see a line like:
Browsing XX:XX:XX:XX:XX:XX
Where the XX's are numbers. This is the bluetooth address of your phone.
Create the serial link (as root) using this command:
rfcomm bind /dev/rfcomm0 PHONE_ADDRESS CHANNEL
Now you have a device in /dev called rfcomm0 that points to your phone.
To make this permanent when you reboot you can create a rfcomm.conf file
that looks like this. Where you put this file
depends on your distribution of Linux, but in fedora it goes in
/etc/bluetooth/rfcomm.conf.
If you have a recent version of bitpim it should work just fine with the LG VX5400. I've used 1.0.3 from an rpm, but if you have a 64-bit system you may find that getting the bitpim source from the project SVN repository will work better.
Run bitpim
Go to Edit -> Settings
Change Phone Type to LG-VX5400
Change Com Port to /dev/rfcomm0
Click OK
Click Filesystem in the tree on the left
Navigate to the /OWS directory in your phone's filesystem
Find the file called paramtable1.fil and save it somewhere convenient.
There are options in the right-click context menu to save and replace this
file in the phone's filesystem.
The paramtable1.fil stores the settings for the phone's browser. The proxy addresses are stored in plain text. So we'll just change them to whatever we want, and then save this file back to the phone.
Make a backup of your original paramtable1.fil file:
cp paramtable1.fil paramtable1.fil.bak
Open paramtable1.fil in a hex editor (if you're using the Fedora hexedit program, hexedit paramtable1.fil)
At address 0xB in the file, you'll find the string for the browser
homepage. Replace it with a homepage of your choosing. Make sure you write a NULL
character at the end of your string (This is hex 0x0, not the ASCII character 0...).
At address 0x8C you'll find another copy of the home page. I think this is a
backup in case loading the first page fails. I just duplicated my home page in this
string.
At address 0xCC you'll find a string specifying the port used by the
proxy server. The default setting in this file is 8080, which is a common port
for web proxies. If you're running squid though, be aware that the default
squid port is 3128, so unless you've changed it in squid, you'll have to
change it here.
At address 0xEC there is another copy of the port address. Make this
the same value as the port address at 0xCC.
At address 0x10C you'll find a string specifying the SSL proxy
address. If your proxy supports SSL on some port, change this to match.
At address 0x12C you'll find a second copy of the SSL port number.
You should make this the same as the number at 0x10C.
At address 0x2A1 you'll find a string specifying the IP address
of your proxy server. Change this to match the IP address of your proxy
server.
At address 0x2F2 you'll find a second copy of the proxy server
address. Make this match the string you entered at 0x2A1.
There are other URLs in this file. These probably correspond to the
various shortcuts available in the phone browser (mail, news, etc.). I haven't tried
setting them to other values, but I don't see why it wouldn't work.
Note: If you're not running your own web proxy, and don't know anyone nice enough to let you use theirs, you can use the one that google has set up at wap.google.com - but be aware that it only lets you use google pages, so you don't really get to access the entire internet. Also be sure to translate it to an IP address to insert into the paramtable1.fil file. For me it comes up as 64.233.169.147, but it looks like an alias for many different servers. So it may be better for you to look it up on your own.
Finally, use bitpim to upload the modified paramtable1.fil file
back into the /OWS directory on your phone.
Restart the phone. When you load your browser now, you should
see your homepage!
Be aware that Verizon charges airtime minutes for browsing the web.
You will be billed for the time that your browser is open as time that
you were talking on the phone. The data sessions will show up on your
bill as a call to the number 777-000-0001 with a Usage Type
of PlanAllow,Data and a Destination of Data CL.
I mentioned setting up pages for the various browser shortcut buttons. One other feature that I'd like to get working is using the phone as a modem for my laptop. I could attach a USB to serial cable to my old LG VX4500 and send it AT modem commands. It worked as a very slow modem, letting me dial out to nocharge.com at 14.4 kBps. By dialing #777 the phone would connect directly to Verizon's data network. I don't remember what username I used - something like phonenumber@vzw3g.com, with a password of vzw. I was able to use wvdial as a nice dialer program, and get approximatly 40-60 kBps.
You'll notice in the sdptool output that there is a
bluetooth modem section on channel 8. If I hook up a second comm port over
bluetooth:
rfcomm bind /dev/rfcomm1 PHONE_ADDRESS 8
I can connect to the phone with minicom
and issue AT commands
to the phone successfully. However, when I ask the pone to dial out:
atd #777
I get an ERROR return in minicom, and the phone displays a message
on the handset that says:
DIAL-UP NETWORKING SERVICE IS NOT SUPPORTED
My question is whether this is a feature that has been disabled by Verizon,
or if it's simply not implemented on the LG VX5400. I would be very interested
to hear from someone with a LG VX5400 who is using a different carrier
whether their bluetooth modem is working. I also wonder if I were to buy a
USB to serial converter for this phone (thanks LG for making the
connectors incompatible), would I be able to use it the same way as my
VX4500?
Last updated on April 08, 2008.
Please send comments to
mhirsch [at] media [dot] mit [dot] edu.
Style by Tom Baran of DSPG.