Discussion:
[Bitpim-devel] Have vx7000, may be able to help
l***@comcast.net
2004-07-14 17:11:34 UTC
Permalink
Hi,

I may be able to help this project. I have a week-old vx7000 and I've successfully gotten into it, using BitPim 0.7.14 & RadioShack's (FutureDial) vx6000 cable. Your app reads the file structure (mostly) and overwrites pre-existing images & sound files correctly. But it would be much nicer if it were able to truely recognize the 7000, so that the backups could be made and actual phone data transferred.

So, what information do you need from these LG phones to make templates (classes?) for them in BitPim? And what applications do you use to collect it?
Roger Binns
2004-07-15 03:01:03 UTC
Permalink
Please read the archives for this group since very similar issues and
questions have been raised and answered multiple times.
Post by l***@comcast.net
So, what information do you need from these LG phones to make templates
(classes?) for them in BitPim? And what applications do
you use to collect it?
Please read the file examples/phonespec.html

You should be comfortable with the protocol viewer.

Please post a protocol log of when you have problems. In particular the
Brew (filesystem) protocol is very different and completely unrelated
to the phonebook protocol. We would need to establish which areas
are broken.

Roger
Logan Graves
2004-07-15 20:43:24 UTC
Permalink
Post by Roger Binns
Please read the archives for this group since very similar issues and
questions have been raised and answered multiple times.
Right, I read you reply last month to a similar inquiry about the
6070's, but I'm at a disadvantage since I'm not even able to Backup the
Entire Tree without receiving "Unexpected Exception" errors. I have
tried all of the LG settings, including generic CDMA. The vx6000
appears closest, as it's the only one which doesn't throw checksum errors.

Unfortunately, the only thing that currently works for me is retrieving
the Filesystem directory & Saving/Overwriting files. So I guess I'll
start by posting log from the failed Tree backup (see below).
Post by Roger Binns
Please read the file examples/phonespec.html
You should be comfortable with the protocol viewer.
I'll do this, too.
Post by Roger Binns
Please post a protocol log of when you have problems. In particular the
Brew (filesystem) protocol is very different and completely unrelated
to the phonebook protocol. We would need to establish which areas
are broken.
Yes, I'd feel much better if I could back things up before I started
tinkering.

Thanks,

--Logan


Some stats first:
phone: LG vx7000 (set to "RS-232")
cable: RadioShack (FutureDial) 1200/6000 USB(Serial)
drivers: vx6000 USB-to-Serial from FutureDial.com
software: BitPim 0.7.14
OS: Windows 2000

------------Protocol Log-----------
An unexpected exception has occurred.
Please see the help for details on what to do.

Traceback (most recent call last):
File "gui.pyo", line 152, in run
File "gui.pyo", line 92, in __call__
File "gui.pyo", line 1247, in getbackup
File "gui.pyo", line 1199, in dirlisting
File "com_brew.pyo", line 178, in getfilesystem
File "com_brew.pyo", line 178, in getfilesystem
File "com_brew.pyo", line 150, in getfilesystem
File "com_brew.pyo", line 358, in sendbrewcommand
BrewNoSuchDirectoryException: No such directory

Variables by last 8 frames, innermost last

Frame run in gui.pyo at line 145
e = <com_brew.BrewNoSuchDirectoryException instance at
0x02397FD0>
res = None
self = <WorkerThread(BitPim helper, started daemon)>
item = (<gui.Request instance at 0x02397F08>, <gui.Callback
instance at 0x023979E0>)
call = <gui.Request instance at 0x02397F08>
ex = <com_brew.BrewNoSuchDirectoryException instance at
0x02397FD0>
resultcb = <gui.Callback instance at 0x023979E0>
first = 0

Frame __call__ in gui.pyo at line 92
self = <gui.Request instance at 0x02397F08>
args = ()
d = {}
kwargs = {}

Frame getbackup in gui.pyo at line 1247
path = ''
self = <WorkerThread(BitPim helper, started daemon)>
recurse = 100

Frame dirlisting in gui.pyo at line 1199
path = ''
self = <WorkerThread(BitPim helper, started daemon)>
recurse = 100

Frame getfilesystem in com_brew.pyo at line 178
i = 0
res = <p_brew.listdirectoriesresponse object at 0x0236B930>
self = <com_lgvx6000.Phone instance at 0x0235E300>
req = <p_brew.listdirectoriesrequest object at 0x0237C730>
recurse = 100
results = {'//RDM_DEV_MAP': {'date': (0, ''), 'type': 'file',
'name': '//RDM_DEV_MAP', 'si
subdir = '/OWS'
date = -1831540184
dir = ''

Frame getfilesystem in com_brew.pyo at line 178
i = 0
res = <p_brew.listdirectoriesresponse object at 0x0236BDD0>
self = <com_lgvx6000.Phone instance at 0x0235E300>
req = <p_brew.listdirectoriesrequest object at 0x0236BE10>
recurse = 99
results = {'/OWS/keytable1.fil': {'date': (0, ''), 'type':
'file', 'name': '/OWS/keytable1
subdir = '/OWS//OWS/MMC'
date = -1831540184
dir = '/OWS'

Frame getfilesystem in com_brew.pyo at line 164
i = 0
self = <com_lgvx6000.Phone instance at 0x0235E300>
req = <p_brew.listfilerequest object at 0x02374BD0>
recurse = 98
results = {}
dir = '/OWS//OWS/MMC'

Frame sendbrewcommand in com_brew.pyo at line 358
responseclass = <class 'p_brew.listfileresponse'>
origdata = 'Y\x0b\x08\xd1\xb1~'
d = 0
err = 8
buffer = <prototypes.buffer instance at 0x0239D1C0>
request = <p_brew.listfilerequest object at 0x02374BD0>
callsetmode = True
firsttwo = 'Y\x0b'
crc = '\xd1\xb1'
data = 'Y\x0b\x08'
self = <com_lgvx6000.Phone instance at 0x0235E300>


----------------Log-----------------
16:29:54.658 COM5: Opening port COM5, 115200 baud, timeout 3.000000,
hardwareflow 0, softwareflow 0
16:29:54.739 COM5: Open of comm port suceeded
16:29:54.759 LG-VX6000: Attempting to contact phone
16:29:54.759 LG-VX6000: Listing dir ''
16:29:57.763 COM5: Timed out waiting for 7e, requested bytes 1 - 0
bytes read
16:29:57.773 COM5: Changed port speed to 38400
16:29:58.293 LG-VX6000: Now in brew mode
16:30:53.453 LG-VX6000: Listing dir ''
16:30:53.674 LG-VX6000: Listing dir '/OWS'
16:30:53.944 LG-VX6000: Listing dir '/OWS//OWS/MMC'
16:30:54.265 Exception: An unexpected exception has occurred.
Please see the help for details on what to do.

Traceback (most recent call last):
File "gui.pyo", line 152, in run
File "gui.pyo", line 92, in __call__
File "gui.pyo", line 1247, in getbackup
File "gui.pyo", line 1199, in dirlisting
File "com_brew.pyo", line 178, in getfilesystem
File "com_brew.pyo", line 178, in getfilesystem
File "com_brew.pyo", line 150, in getfilesystem
File "com_brew.pyo", line 358, in sendbrewcommand
BrewNoSuchDirectoryException: No such directory

Variables by last 8 frames, innermost last

Frame run in gui.pyo at line 145
e = <com_brew.BrewNoSuchDirectoryException instance at
0x02397FD0>
res = None
self = <WorkerThread(BitPim helper, started daemon)>
item = (<gui.Request instance at 0x02397F08>, <gui.Callback
instance at 0x023979E0>)
call = <gui.Request instance at 0x02397F08>
ex = <com_brew.BrewNoSuchDirectoryException instance at
0x02397FD0>
resultcb = <gui.Callback instance at 0x023979E0>
first = 0

Frame __call__ in gui.pyo at line 92
self = <gui.Request instance at 0x02397F08>
args = ()
d = {}
kwargs = {}

Frame getbackup in gui.pyo at line 1247
path = ''
self = <WorkerThread(BitPim helper, started daemon)>
recurse = 100

Frame dirlisting in gui.pyo at line 1199
path = ''
self = <WorkerThread(BitPim helper, started daemon)>
recurse = 100

Frame getfilesystem in com_brew.pyo at line 178
i = 0
res = <p_brew.listdirectoriesresponse object at 0x0236B930>
self = <com_lgvx6000.Phone instance at 0x0235E300>
req = <p_brew.listdirectoriesrequest object at 0x0237C730>
recurse = 100
results = {'//RDM_DEV_MAP': {'date': (0, ''), 'type': 'file',
'name': '//RDM_DEV_MAP', 'si
subdir = '/OWS'
date = -1831540184
dir = ''

Frame getfilesystem in com_brew.pyo at line 178
i = 0
res = <p_brew.listdirectoriesresponse object at 0x0236BDD0>
self = <com_lgvx6000.Phone instance at 0x0235E300>
req = <p_brew.listdirectoriesrequest object at 0x0236BE10>
recurse = 99
results = {'/OWS/keytable1.fil': {'date': (0, ''), 'type':
'file', 'name': '/OWS/keytable1
subdir = '/OWS//OWS/MMC'
date = -1831540184
dir = '/OWS'

Frame getfilesystem in com_brew.pyo at line 164
i = 0
self = <com_lgvx6000.Phone instance at 0x0235E300>
req = <p_brew.listfilerequest object at 0x02374BD0>
recurse = 98
results = {}
dir = '/OWS//OWS/MMC'

Frame sendbrewcommand in com_brew.pyo at line 358
responseclass = <class 'p_brew.listfileresponse'>
origdata = 'Y\x0b\x08\xd1\xb1~'
d = 0
err = 8
buffer = <prototypes.buffer instance at 0x0239D1C0>
request = <p_brew.listfilerequest object at 0x02374BD0>
callsetmode = True
firsttwo = 'Y\x0b'
crc = '\xd1\xb1'
data = 'Y\x0b\x08'
self = <com_lgvx6000.Phone instance at 0x0235E300>
Roger Binns
2004-07-16 05:02:53 UTC
Permalink
Post by Logan Graves
The vx6000
appears closest, as it's the only one which doesn't throw checksum errors.
The checksums are not phone model specific. The filesystem code isn't
phone model specific either.
Post by Logan Graves
the Filesystem directory & Saving/Overwriting files. So I guess I'll
start by posting log from the failed Tree backup (see below).
Please post the complete contents of the protocol log. You'll want to
zip it and post with an extension of zep.

Roger
Logan Graves
2004-07-21 21:06:56 UTC
Permalink
Post by Roger Binns
Please post the complete contents of the protocol log. You'll want to
zip it and post with an extension of zep.
Sorry for the delay in replying. I was out of town all weekend.

Okay, I now see that the error popup is just a small part of the Log,
and not the whole of it, as I'd thought. Here's a zip with my entire
Protocol Log, including failed attempts to Get Phone Data & Backup the
Entire Tree.

--Logan
Roger Binns
2004-07-29 05:55:19 UTC
Permalink
Post by Logan Graves
Okay, I now see that the error popup is just a small part of the Log,
and not the whole of it, as I'd thought. Here's a zip with my entire
Protocol Log, including failed attempts to Get Phone Data & Backup the
Entire Tree.
The "Get Phone Data" bit won't work with your phone until BitPim
has code specifically written for the VX7000. Lying to BitPim
about the phone model won't fix that.

The filesystem issue should be fixed first anyway. What is happening
is that the phone is stupid :-)

Actually what is happening is that BitPim asks it to list the
contents of "/" so the phone returns the entries like this
"//FOO" which confuses the heck out of things.

I won't make any changes until someone who has the VX7000
has the developer version of BitPim (ie from CVS) up and
working.

Unfortunately fixing this is going to affect all phone models
so some extensive testing will be needed.

Roger

Logan Graves
2004-07-16 00:53:30 UTC
Permalink
Post by Roger Binns
Please post a protocol log of when you have problems. In particular the
Brew (filesystem) protocol is very different and completely unrelated
to the phonebook protocol. We would need to establish which areas
are broken.
Here are the typical error logs when I try any of the four Get Phone
Data choices (with the vx6000 setting).

Ringtones, only, in this case:

-----------Protocol Log-------------
An unexpected exception has occurred.
Please see the help for details on what to do.

Traceback (most recent call last):
File "gui.pyo", line 152, in run
File "gui.pyo", line 92, in __call__
File "gui.pyo", line 1129, in getdata
File "gui.pyo", line 1123, in getfundamentals
File "com_lgvx4400.pyo", line 101, in getfundamentals
File "com_lgvx4400.pyo", line 109, in getwallpaperindices
File "com_lg.pyo", line 192, in getmediaindex
File "com_lgvx6000.pyo", line 76, in getcameraindex
File "com_brew.pyo", line 221, in getfilecontents
File "com_brew.pyo", line 360, in sendbrewcommand
BrewNoSuchFileException: No such file

Variables by last 8 frames, innermost last

Frame getdata in gui.pyo at line 1129
self = <WorkerThread(BitPim helper, started daemon)>
req = <guiwidgets.GetPhoneDialog instance; proxy of C++
wxDialog instance at _1e6dd80_

Frame getfundamentals in gui.pyo at line 1123
self = <WorkerThread(BitPim helper, started daemon)>
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam

Frame getfundamentals in com_lgvx4400.pyo at line 101
g = <p_lgvx4400.pbgroups object at 0x0236BDB0>
i = 9
self = <com_lgvx6000.Phone instance at 0x0235CA58>
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam
groups = {0: {'name': 'No Group', 'icon': 0}, 1: {'name':
'Family', 'icon': 1}, 2: {'name
buf = <prototypes.buffer instance at 0x02397F30>

Frame getwallpaperindices in com_lgvx4400.pyo at line 109
self = <com_lgvx6000.Phone instance at 0x0235CA58>
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam

Frame getmediaindex in com_lg.pyo at line 192
maxentries = 20
index = {}
c = 8
builtins = ('Beach Ball', 'Towerbridge', 'Sunflower', 'Beach',
'Fish', 'Sea', 'Snowman')
name = 'Snowman'
media = {1: {'origin': 'builtin', 'name': 'Beach Ball'}, 2:
{'origin': 'builtin', 'name'
self = <com_lgvx6000.Phone instance at 0x0235CA58>
offset = 130
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam
maps = ((10, 'download/dloadindex/brewImageIndex.map',
'brew/shared', 'images', 30), (2
location = None
key = 'wallpaper-index'
indexfile = None
type = 'camera'

Frame getcameraindex in com_lgvx6000.pyo at line 76
self = <com_lgvx6000.Phone instance at 0x0235CA58>

Frame getfilecontents in com_brew.pyo at line 221
self = <com_lgvx6000.Phone instance at 0x0235CA58>
req = <p_brew.readfilerequest object at 0x0236BBB0>
start = 1089939059.835
file = 'cam/pics.dat'
data = <cStringIO.StringO object at 0x0236BB80>
desc = 'Reading cam/pics.dat'

Frame sendbrewcommand in com_brew.pyo at line 360
responseclass = <class 'p_brew.readfileresponse'>
origdata = 'Y\x04\x06\x00\x00\xf0\x00\x00\x00\xf0\x00\x00No
Group\x00\x00\x00\x00\x00\x00\x
d = 0
err = 6
buffer = <prototypes.buffer instance at 0x02397FD0>
request = <p_brew.readfilerequest object at 0x0236BBB0>
callsetmode = True
firsttwo = 'Y\x04'
crc = '\xac\xb9'
data = 'Y\x04\x06\x00\x00\xf0\x00\x00\x00\xf0\x00\x00No
Group\x00\x00\x00\x00\x00\x00\x
self = <com_lgvx6000.Phone instance at 0x0235CA58>


------------Log-----------------
20:50:26.367 COM5: Opening port COM5, 115200 baud, timeout 3.000000,
hardwareflow 0, softwareflow 0
20:50:26.437 COM5: Open of comm port suceeded
20:50:26.457 LG-VX6000: Attempting to contact phone
20:50:26.457 LG-VX6000: Listing dir ''
20:50:29.470 COM5: Timed out waiting for 7e, requested bytes 1 - 0
bytes read
20:50:29.482 COM5: Changed port speed to 38400
20:50:30.022 LG-VX6000: Now in brew mode
20:50:59.303 LG-VX6000: Retrieving fundamental phone information
20:50:59.303 LG-VX6000: Phone serial number
20:50:59.303 LG-VX6000: Getting file contents 'nvm/$SYS.ESN'
20:50:59.424 LG-VX6000: Reading group information
20:50:59.424 LG-VX6000: Getting file contents 'pim/pbgroup.dat'
20:50:59.525 LG-VX6000: Reading wallpaper-index
20:50:59.525 LG-VX6000: Getting file contents
'download/dloadindex/brewImageIndex.map'
20:50:59.625 LG-VX6000: Getting file contents
'download/dloadindex/mmsImageIndex.map'
20:50:59.724 LG-VX6000: Getting file contents
'download/dloadindex/mmsDrmImageIndex.map'
20:50:59.835 LG-VX6000: Getting file contents 'cam/pics.dat'
20:51:00.236 Exception: An unexpected exception has occurred.
Please see the help for details on what to do.

Traceback (most recent call last):
File "gui.pyo", line 152, in run
File "gui.pyo", line 92, in __call__
File "gui.pyo", line 1129, in getdata
File "gui.pyo", line 1123, in getfundamentals
File "com_lgvx4400.pyo", line 101, in getfundamentals
File "com_lgvx4400.pyo", line 109, in getwallpaperindices
File "com_lg.pyo", line 192, in getmediaindex
File "com_lgvx6000.pyo", line 76, in getcameraindex
File "com_brew.pyo", line 221, in getfilecontents
File "com_brew.pyo", line 360, in sendbrewcommand
BrewNoSuchFileException: No such file

Variables by last 8 frames, innermost last

Frame getdata in gui.pyo at line 1129
self = <WorkerThread(BitPim helper, started daemon)>
req = <guiwidgets.GetPhoneDialog instance; proxy of C++
wxDialog instance at _1e6dd80_

Frame getfundamentals in gui.pyo at line 1123
self = <WorkerThread(BitPim helper, started daemon)>
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam

Frame getfundamentals in com_lgvx4400.pyo at line 101
g = <p_lgvx4400.pbgroups object at 0x0236BDB0>
i = 9
self = <com_lgvx6000.Phone instance at 0x0235CA58>
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam
groups = {0: {'name': 'No Group', 'icon': 0}, 1: {'name':
'Family', 'icon': 1}, 2: {'name
buf = <prototypes.buffer instance at 0x02397F30>

Frame getwallpaperindices in com_lgvx4400.pyo at line 109
self = <com_lgvx6000.Phone instance at 0x0235CA58>
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam

Frame getmediaindex in com_lg.pyo at line 192
maxentries = 20
index = {}
c = 8
builtins = ('Beach Ball', 'Towerbridge', 'Sunflower', 'Beach',
'Fish', 'Sea', 'Snowman')
name = 'Snowman'
media = {1: {'origin': 'builtin', 'name': 'Beach Ball'}, 2:
{'origin': 'builtin', 'name'
self = <com_lgvx6000.Phone instance at 0x0235CA58>
offset = 130
results = {'uniqueserial':
'9c1be194637c9d79028f2174a46fdc8c9fab8180', 'groups': {0: {'nam
maps = ((10, 'download/dloadindex/brewImageIndex.map',
'brew/shared', 'images', 30), (2
location = None
key = 'wallpaper-index'
indexfile = None
type = 'camera'

Frame getcameraindex in com_lgvx6000.pyo at line 76
self = <com_lgvx6000.Phone instance at 0x0235CA58>

Frame getfilecontents in com_brew.pyo at line 221
self = <com_lgvx6000.Phone instance at 0x0235CA58>
req = <p_brew.readfilerequest object at 0x0236BBB0>
start = 1089939059.835
file = 'cam/pics.dat'
data = <cStringIO.StringO object at 0x0236BB80>
desc = 'Reading cam/pics.dat'

Frame sendbrewcommand in com_brew.pyo at line 360
responseclass = <class 'p_brew.readfileresponse'>
origdata = 'Y\x04\x06\x00\x00\xf0\x00\x00\x00\xf0\x00\x00No
Group\x00\x00\x00\x00\x00\x00\x
d = 0
err = 6
buffer = <prototypes.buffer instance at 0x02397FD0>
request = <p_brew.readfilerequest object at 0x0236BBB0>
callsetmode = True
firsttwo = 'Y\x04'
crc = '\xac\xb9'
data = 'Y\x04\x06\x00\x00\xf0\x00\x00\x00\xf0\x00\x00No
Group\x00\x00\x00\x00\x00\x00\x
self = <com_lgvx6000.Phone instance at 0x0235CA58>
Roger Binns
2004-07-16 04:59:57 UTC
Permalink
Post by Logan Graves
Here are the typical error logs when I try any of the four Get Phone
Data choices (with the vx6000 setting).
You are confusing two things. The vx6000 code is designed to retrieve
and understand files specific to the vx6000. The files location, field
sizes etc are different on every model of LG phone, which is why giving
BitPim the wrong information about your phone is a bad idea.

It seemed like the filesystem protocol may be somewhat different.
Can you read all files in the filesystem view, and can you write
to files? You are normally safe making files and directories
below /user.

Roger
Logan Graves
2004-07-21 21:09:24 UTC
Permalink
Post by Roger Binns
It seemed like the filesystem protocol may be somewhat different.
Can you read all files in the filesystem view, and can you write
to files? You are normally safe making files and directories
below /user.
I can both read & OVERwrite to files in the filesystem view.


When I try to Backup the Entire Tree, the protocol analyzer seems to
show errors caused by missing branches such as "/OWS//OWS/MMC" which
does not exist in the 7000. So, here's a text version of the file
structure.

I think I have copied the whole tree. Although, BitPim frequently fails
to display the tree's sub-branches on the first attempt. (They
initially appear, then quickly vanish, but are usually present upon
re-opening the branch, in question).

--Logan
Loading...