Discussion:
[BitPim-devel] A start on the LG LX-260 (Sprint Rumor)
Joe Siegrist
2008-06-11 14:10:12 UTC
Permalink
I've started work to support the Sprint Rumor LG LX-260, so far it detects
properly, and the phone info page is done including the phone number,
firmware and ESN, and I'm able to seeing info from the pbreadentryresponse
on reading, and if I hack around groups in com_lgvx4400.py I can write the
names into the phonebook.

Do the devs congregate on an IRC channel? I see #bitpim exists on
irc.freenode.net, but no one is home. My biggest blocker on making faster
progress has been the need to ask quick questions.

I'm not sure how to figure out the groups, it looks like just about all the
lg phones grab pim/pbgroup.dat which I don't have (see below).. for now I've
just commented it out but that seems pretty fundamental; I'm not sure where
to begin on this.

I made an entry in the phonebook to help figure out what everything is, but
I'm still unsure if I'm on the right track (NNN is name, MMM is memo,
e1,e2,e3 email, 1111 first phone number, etc); for stuff that appears to be
all null what is the convention in the pbentry?

<#! phones.p_lglx260.pbreadentryresponse !#>
00000000 ff 13 03 00 48 01 00 00 a0 02 48 01 00 00 00 00
....H.....H.....
00000010 00 00 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e
..NNNNNNNNNNNNNN
00000020 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e
NNNNNNNNNNNNNNNN
00000030 4e 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00
NN..............
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................
00000050 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00
................
00000060 00 00 00 00 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d
....MMMMMMMMMMMM
00000070 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d
MMMMMMMMMMMMMMMM
00000080 4d 4d 4d 4d 00 65 31 40 65 65 65 65 65 65 65 65
***@eeeeeeee
00000090 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000a0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000b0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000c0 65 65 65 65 65 65 65 65 65 65 65 65 65 00 65 32
eeeeeeeeeeeee.e2
000000d0 40 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
@eeeeeeeeeeeeeee
000000e0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000f0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000100 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000110 65 65 65 65 65 65 00 65 33 40 65 65 65 65 65 65
***@eeeeee
00000120 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000130 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000140 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000150 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 00
eeeeeeeeeeeeeee.
00000160 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
00000170 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
00000180 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
00000190 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
000001a0 55 55 55 55 55 55 55 55 00 ff ff ff ff ff 00 01
UUUUUUUU........
000001b0 02 03 04 31 31 31 31 31 31 31 31 31 31 31 31 31
...1111111111111
000001c0 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
1111111111111111
000001d0 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
1111111111111111
000001e0 31 31 31 00 32 32 32 32 32 32 32 32 32 32 32 32
111.222222222222
000001f0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
2222222222222222
00000200 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
2222222222222222
00000210 32 32 32 32 00 33 33 33 33 33 33 33 33 33 33 33
2222.33333333333
00000220 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
3333333333333333
00000230 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
3333333333333333
00000240 33 33 33 33 33 00 34 34 34 34 34 34 34 34 34 34
33333.4444444444
00000250 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34
4444444444444444
00000260 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34
4444444444444444
00000270 34 34 34 34 34 34 00 35 35 35 35 35 35 35 35 35
444444.555555555
00000280 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
5555555555555555
00000290 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
5555555555555555
000002a0 35 35 35 35 35 35 35 00 00 00 5555555...

Based on this I wrote pbentry:
PACKET pbentry:
4 UINT serial1
2 UINT {'constant': 0x02A0} +entrysize
4 UINT serial2
2 UINT entrynumber
1 BOOL secret
1 BOOL secret
33 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': True}
name
49 USTRING memo
33 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': True}
memo
* LIST {'length': NUMEMAILS} +emails:
73 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread':
True} email
73 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': True}
url
1 BOOL secret
1 BOOL secret
1 BOOL secret
1 BOOL secret
1 BOOL secret
* LIST {'length': NUMPHONENUMBERS} +numbertypes:
1 UINT numbertype
* LIST {'length': NUMPHONENUMBERS} +numbers:
49 USTRING {'raiseonunterminatedread': True} number
2 UINT entrynumber

Is there a good example of someone doing this from the protocol output?

It seems like some code like this would be helpful after phone detection (as
I wasted time assuming that my lx260 was like any of the other lg phones
with files like pim/pbgroup.dat ):

dirlisting=self.getfilesystem('', 1)
keys = dirlisting.keys()
keys.sort()
for i in keys:
self.log('file: '+ i)

Running this on the rumor looks like this:

22:22:13.453 LG-LX260: file: /$SYS.FACTORY
22:22:13.453 LG-LX260: file: /CLK_DB
22:22:13.453 LG-LX260: file: /RDM_DEV_MAP
22:22:13.454 LG-LX260: file: /config
22:22:13.454 LG-LX260: file: /devices
22:22:13.454 LG-LX260: file: CIQ
22:22:13.454 LG-LX260: file: CIQ/CIQCOOK
22:22:13.456 LG-LX260: file: CIQ/CIQPROFIL
22:22:13.456 LG-LX260: file: CIQ/CIQPRSTAT
22:22:13.456 LG-LX260: file: DB
22:22:13.457 LG-LX260: file: DB/SchemaFiles
22:22:13.457 LG-LX260: file: DB/SysDB
22:22:13.457 LG-LX260: file: Dcam
22:22:13.457 LG-LX260: file: Dcam/PictbridgeFat.dat
22:22:13.457 LG-LX260: file: Dcam/Review
22:22:13.457 LG-LX260: file: Dcam/ReviewFat.dat
22:22:13.457 LG-LX260: file: Dcam/Wallet
22:22:13.457 LG-LX260: file: Dcam/WalletFat.dat
22:22:13.457 LG-LX260: file: EPM
22:22:13.457 LG-LX260: file: EPM/FileStore
22:22:13.457 LG-LX260: file: EPM/MediaStore
22:22:13.459 LG-LX260: file: EPM/MessageStore
22:22:13.459 LG-LX260: file: EPM/OEM_Transfers
22:22:13.459 LG-LX260: file: EPM/phone.cfg
22:22:13.459 LG-LX260: file: VoiceDB
22:22:13.459 LG-LX260: file: VoiceDB/All
22:22:13.459 LG-LX260: file: VoiceDB/Lang
22:22:13.460 LG-LX260: file: alarm
22:22:13.460 LG-LX260: file: alarm/alarm.dat
22:22:13.460 LG-LX260: file: alarm/ani_preloaded1.m3g
22:22:13.460 LG-LX260: file: brew
22:22:13.460 LG-LX260: file: brew/.ui_fill
22:22:13.460 LG-LX260: file: brew/ams
22:22:13.460 LG-LX260: file: brew/mif
22:22:13.460 LG-LX260: file: brew/mod
22:22:13.460 LG-LX260: file: brew/shared
22:22:13.460 LG-LX260: file: brew/sys
22:22:13.460 LG-LX260: file: brew/version.txt
22:22:13.460 LG-LX260: file: core
22:22:13.460 LG-LX260: file: core/CLOCK
22:22:13.460 LG-LX260: file: core/CMFL-1300
22:22:13.460 LG-LX260: file: core/CMFL-1310
22:22:13.460 LG-LX260: file: core/CMFL-6093
22:22:13.461 LG-LX260: file: core/CMFL-60D0
22:22:13.461 LG-LX260: file: mmc1
22:22:13.463 LG-LX260: file: mmc1/DCIM
22:22:13.463 LG-LX260: file: nvm
22:22:13.463 LG-LX260: file: nvm/$SYS.ESN
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR1
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR2
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR3
22:22:13.463 LG-LX260: file: nvm/$SYS.MEID
22:22:13.463 LG-LX260: file: nvm/nvm
22:22:13.463 LG-LX260: file: nvm/prl
22:22:13.463 LG-LX260: file: nvm/sms
22:22:13.463 LG-LX260: file: pim
22:22:13.463 LG-LX260: file: pim/MyInformation.dat
22:22:13.463 LG-LX260: file: pim/multiAlert.dat
22:22:13.464 LG-LX260: file: pim/sp_num.dat
22:22:13.464 LG-LX260: file: pim/tsb58a.dat
22:22:13.464 LG-LX260: file: rom_ui
22:22:13.464 LG-LX260: file: rom_ui/file1
22:22:13.466 LG-LX260: file: rom_ui/file2
22:22:13.466 LG-LX260: file: rom_ui/file3
22:22:13.466 LG-LX260: file: rom_ui/file4
22:22:13.466 LG-LX260: file: rom_ui/file5
22:22:13.466 LG-LX260: file: rom_ui/file6
22:22:13.467 LG-LX260: file: rom_ui/file7
22:22:13.467 LG-LX260: file: rom_vdb
22:22:13.467 LG-LX260: file: rom_vdb/file1
22:22:13.467 LG-LX260: file: rom_vdb/file2
22:22:13.467 LG-LX260: file: rom_vdb/file3
22:22:13.467 LG-LX260: file: rom_vdb/file4
22:22:13.467 LG-LX260: file: sch
22:22:13.467 LG-LX260: file: sch/dday.dat
22:22:13.467 LG-LX260: file: setas
22:22:13.469 LG-LX260: file: setas/amsImageIndex.map
22:22:13.469 LG-LX260: file: setas/slideshow
22:22:13.469 LG-LX260: file: sms
22:22:13.469 LG-LX260: file: sms/canned_msg.dat
22:22:13.469 LG-LX260: file: sms/inbox000.dat
22:22:13.470 LG-LX260: file: sms/inbox001.dat
22:22:13.470 LG-LX260: file: sms/inbox002.dat
22:22:13.470 LG-LX260: file: sms/inbox003.dat
22:22:13.470 LG-LX260: file: sms/inbox004.dat
22:22:13.470 LG-LX260: file: sms/inbox005.dat
22:22:13.470 LG-LX260: file: sms/recentlists.dat
22:22:13.470 LG-LX260: file: sms/user_folder.dat
22:22:13.470 LG-LX260: file: sms/voice.dat
22:22:13.470 LG-LX260: file: t9cdb
22:22:13.471 LG-LX260: file: t9cdb/t9cdb_eng.dat
22:22:13.471 LG-LX260: file: t9cdb/t9cdb_spa.dat
22:22:13.473 LG-LX260: file: t9udb
22:22:13.473 LG-LX260: file: t9udb/t9udb_eng.dat
22:22:13.473 LG-LX260: file: t9udb/t9udb_spa.dat
22:22:13.473 LG-LX260: file: user
22:22:13.473 LG-LX260: file: user/sound

Thanks,

Joe
Vallevand, Mark K
2008-06-12 13:57:24 UTC
Permalink
Congratulations! I've struggled with my Samsung m520 trying to add
support. The only commands it responds to are to get the model,
manufacturer, esn and fw version. Oh, and #PMODE command does
something, but I'm not sure what. I'm a rookie with bitpim development,
so all I can add is encouragement.





Regards.
Mark K Vallevand

We old folks have to find our cushions and pillows in our tankards.
Strong beer is the milk of the old.
- Martin Luther


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you
received this in error, please contact the sender and delete the e-mail
and its attachments from all computers.

________________________________

From: bitpim-devel-***@lists.sourceforge.net
[mailto:bitpim-devel-***@lists.sourceforge.net] On Behalf Of Joe
Siegrist
Sent: Wednesday, June 11, 2008 9:10 AM
To: bitpim-***@lists.sourceforge.net
Subject: [BitPim-devel] A start on the LG LX-260 (Sprint Rumor)



I've started work to support the Sprint Rumor LG LX-260, so far it
detects properly, and the phone info page is done including the phone
number, firmware and ESN, and I'm able to seeing info from the
pbreadentryresponse on reading, and if I hack around groups in
com_lgvx4400.py I can write the names into the phonebook.

Do the devs congregate on an IRC channel? I see #bitpim exists on
irc.freenode.net, but no one is home. My biggest blocker on making
faster progress has been the need to ask quick questions.

I'm not sure how to figure out the groups, it looks like just about all
the lg phones grab pim/pbgroup.dat which I don't have (see below).. for
now I've just commented it out but that seems pretty fundamental; I'm
not sure where to begin on this.

I made an entry in the phonebook to help figure out what everything is,
but I'm still unsure if I'm on the right track (NNN is name, MMM is
memo, e1,e2,e3 email, 1111 first phone number, etc); for stuff that
appears to be all null what is the convention in the pbentry?

<#! phones.p_lglx260.pbreadentryresponse !#>
00000000 ff 13 03 00 48 01 00 00 a0 02 48 01 00 00 00 00
....H.....H.....
00000010 00 00 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e
..NNNNNNNNNNNNNN
00000020 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e
NNNNNNNNNNNNNNNN
00000030 4e 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00
NN..............
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
................
00000050 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00
................
00000060 00 00 00 00 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d
....MMMMMMMMMMMM
00000070 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d
MMMMMMMMMMMMMMMM
00000080 4d 4d 4d 4d 00 65 31 40 65 65 65 65 65 65 65 65
***@eeeeeeee
00000090 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000a0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000b0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000c0 65 65 65 65 65 65 65 65 65 65 65 65 65 00 65 32
eeeeeeeeeeeee.e2
000000d0 40 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
@eeeeeeeeeeeeeee
000000e0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
000000f0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000100 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000110 65 65 65 65 65 65 00 65 33 40 65 65 65 65 65 65
***@eeeeee
00000120 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000130 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000140 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
eeeeeeeeeeeeeeee
00000150 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 00
eeeeeeeeeeeeeee.
00000160 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
00000170 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
00000180 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
00000190 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
UUUUUUUUUUUUUUUU
000001a0 55 55 55 55 55 55 55 55 00 ff ff ff ff ff 00 01
UUUUUUUU........
000001b0 02 03 04 31 31 31 31 31 31 31 31 31 31 31 31 31
...1111111111111
000001c0 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
1111111111111111
000001d0 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31
1111111111111111
000001e0 31 31 31 00 32 32 32 32 32 32 32 32 32 32 32 32
111.222222222222
000001f0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
2222222222222222
00000200 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
2222222222222222
00000210 32 32 32 32 00 33 33 33 33 33 33 33 33 33 33 33
2222.33333333333
00000220 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
3333333333333333
00000230 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33
3333333333333333
00000240 33 33 33 33 33 00 34 34 34 34 34 34 34 34 34 34
33333.4444444444
00000250 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34
4444444444444444
00000260 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34
4444444444444444
00000270 34 34 34 34 34 34 00 35 35 35 35 35 35 35 35 35
444444.555555555
00000280 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
5555555555555555
00000290 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
5555555555555555
000002a0 35 35 35 35 35 35 35 00 00 00 5555555...

Based on this I wrote pbentry:
PACKET pbentry:
4 UINT serial1
2 UINT {'constant': 0x02A0} +entrysize
4 UINT serial2
2 UINT entrynumber
1 BOOL secret
1 BOOL secret
33 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread':
True} name
49 USTRING memo
33 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread':
True} memo
* LIST {'length': NUMEMAILS} +emails:
73 USTRING {'encoding': PHONE_ENCODING,
'raiseonunterminatedread': True} email
73 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread':
True} url
1 BOOL secret
1 BOOL secret
1 BOOL secret
1 BOOL secret
1 BOOL secret
* LIST {'length': NUMPHONENUMBERS} +numbertypes:
1 UINT numbertype
* LIST {'length': NUMPHONENUMBERS} +numbers:
49 USTRING {'raiseonunterminatedread': True} number
2 UINT entrynumber

Is there a good example of someone doing this from the protocol output?

It seems like some code like this would be helpful after phone detection
(as I wasted time assuming that my lx260 was like any of the other lg
phones with files like pim/pbgroup.dat ):

dirlisting=self.getfilesystem('', 1)
keys = dirlisting.keys()
keys.sort()
for i in keys:
self.log('file: '+ i)

Running this on the rumor looks like this:

22:22:13.453 LG-LX260: file: /$SYS.FACTORY
22:22:13.453 LG-LX260: file: /CLK_DB
22:22:13.453 LG-LX260: file: /RDM_DEV_MAP
22:22:13.454 LG-LX260: file: /config
22:22:13.454 LG-LX260: file: /devices
22:22:13.454 LG-LX260: file: CIQ
22:22:13.454 LG-LX260: file: CIQ/CIQCOOK
22:22:13.456 LG-LX260: file: CIQ/CIQPROFIL
22:22:13.456 LG-LX260: file: CIQ/CIQPRSTAT
22:22:13.456 LG-LX260: file: DB
22:22:13.457 LG-LX260: file: DB/SchemaFiles
22:22:13.457 LG-LX260: file: DB/SysDB
22:22:13.457 LG-LX260: file: Dcam
22:22:13.457 LG-LX260: file: Dcam/PictbridgeFat.dat
22:22:13.457 LG-LX260: file: Dcam/Review
22:22:13.457 LG-LX260: file: Dcam/ReviewFat.dat
22:22:13.457 LG-LX260: file: Dcam/Wallet
22:22:13.457 LG-LX260: file: Dcam/WalletFat.dat
22:22:13.457 LG-LX260: file: EPM
22:22:13.457 LG-LX260: file: EPM/FileStore
22:22:13.457 LG-LX260: file: EPM/MediaStore
22:22:13.459 LG-LX260: file: EPM/MessageStore
22:22:13.459 LG-LX260: file: EPM/OEM_Transfers
22:22:13.459 LG-LX260: file: EPM/phone.cfg
22:22:13.459 LG-LX260: file: VoiceDB
22:22:13.459 LG-LX260: file: VoiceDB/All
22:22:13.459 LG-LX260: file: VoiceDB/Lang
22:22:13.460 LG-LX260: file: alarm
22:22:13.460 LG-LX260: file: alarm/alarm.dat
22:22:13.460 LG-LX260: file: alarm/ani_preloaded1.m3g
22:22:13.460 LG-LX260: file: brew
22:22:13.460 LG-LX260: file: brew/.ui_fill
22:22:13.460 LG-LX260: file: brew/ams
22:22:13.460 LG-LX260: file: brew/mif
22:22:13.460 LG-LX260: file: brew/mod
22:22:13.460 LG-LX260: file: brew/shared
22:22:13.460 LG-LX260: file: brew/sys
22:22:13.460 LG-LX260: file: brew/version.txt
22:22:13.460 LG-LX260: file: core
22:22:13.460 LG-LX260: file: core/CLOCK
22:22:13.460 LG-LX260: file: core/CMFL-1300
22:22:13.460 LG-LX260: file: core/CMFL-1310
22:22:13.460 LG-LX260: file: core/CMFL-6093
22:22:13.461 LG-LX260: file: core/CMFL-60D0
22:22:13.461 LG-LX260: file: mmc1
22:22:13.463 LG-LX260: file: mmc1/DCIM
22:22:13.463 LG-LX260: file: nvm
22:22:13.463 LG-LX260: file: nvm/$SYS.ESN
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR1
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR2
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR3
22:22:13.463 LG-LX260: file: nvm/$SYS.MEID
22:22:13.463 LG-LX260: file: nvm/nvm
22:22:13.463 LG-LX260: file: nvm/prl
22:22:13.463 LG-LX260: file: nvm/sms
22:22:13.463 LG-LX260: file: pim
22:22:13.463 LG-LX260: file: pim/MyInformation.dat
22:22:13.463 LG-LX260: file: pim/multiAlert.dat
22:22:13.464 LG-LX260: file: pim/sp_num.dat
22:22:13.464 LG-LX260: file: pim/tsb58a.dat
22:22:13.464 LG-LX260: file: rom_ui
22:22:13.464 LG-LX260: file: rom_ui/file1
22:22:13.466 LG-LX260: file: rom_ui/file2
22:22:13.466 LG-LX260: file: rom_ui/file3
22:22:13.466 LG-LX260: file: rom_ui/file4
22:22:13.466 LG-LX260: file: rom_ui/file5
22:22:13.466 LG-LX260: file: rom_ui/file6
22:22:13.467 LG-LX260: file: rom_ui/file7
22:22:13.467 LG-LX260: file: rom_vdb
22:22:13.467 LG-LX260: file: rom_vdb/file1
22:22:13.467 LG-LX260: file: rom_vdb/file2
22:22:13.467 LG-LX260: file: rom_vdb/file3
22:22:13.467 LG-LX260: file: rom_vdb/file4
22:22:13.467 LG-LX260: file: sch
22:22:13.467 LG-LX260: file: sch/dday.dat
22:22:13.467 LG-LX260: file: setas
22:22:13.469 LG-LX260: file: setas/amsImageIndex.map
22:22:13.469 LG-LX260: file: setas/slideshow
22:22:13.469 LG-LX260: file: sms
22:22:13.469 LG-LX260: file: sms/canned_msg.dat
22:22:13.469 LG-LX260: file: sms/inbox000.dat
22:22:13.470 LG-LX260: file: sms/inbox001.dat
22:22:13.470 LG-LX260: file: sms/inbox002.dat
22:22:13.470 LG-LX260: file: sms/inbox003.dat
22:22:13.470 LG-LX260: file: sms/inbox004.dat
22:22:13.470 LG-LX260: file: sms/inbox005.dat
22:22:13.470 LG-LX260: file: sms/recentlists.dat
22:22:13.470 LG-LX260: file: sms/user_folder.dat
22:22:13.470 LG-LX260: file: sms/voice.dat
22:22:13.470 LG-LX260: file: t9cdb
22:22:13.471 LG-LX260: file: t9cdb/t9cdb_eng.dat
22:22:13.471 LG-LX260: file: t9cdb/t9cdb_spa.dat
22:22:13.473 LG-LX260: file: t9udb
22:22:13.473 LG-LX260: file: t9udb/t9udb_eng.dat
22:22:13.473 LG-LX260: file: t9udb/t9udb_spa.dat
22:22:13.473 LG-LX260: file: user
22:22:13.473 LG-LX260: file: user/sound

Thanks,

Joe
chyrlin
2008-06-12 18:56:01 UTC
Permalink
I'm curious to whether or not you have gotten ringtones to properly place in
the My Content Ringers area or not. As far as I'm aware, they are saved as
a .qcp or whatever it is...

Please reply soon! Thanks. :D

PS... if you have, can you explain to me how to set up BitPim so I can do
the same?

More thanks. ^^
Post by Joe Siegrist
I've started work to support the Sprint Rumor LG LX-260, so far it detects
properly, and the phone info page is done including the phone number,
firmware and ESN, and I'm able to seeing info from the pbreadentryresponse
on reading, and if I hack around groups in com_lgvx4400.py I can write the
names into the phonebook.
--
View this message in context: http://www.nabble.com/A-start-on-the-LG-LX-260-%28Sprint-Rumor%29-tp17790232p17807310.html
Sent from the Bitpim - Dev mailing list archive at Nabble.com.
Joe Siegrist
2008-06-19 06:29:16 UTC
Permalink
Attached is a patch against the current SVN; my changes to com_lgvx4400.py are clearly just a hack to make phonebook import/export so don’t commit those to the main tree.



I wish I had more time to spend on this to fully complete it, but this is a pretty good start, and will properly fetch and put contacts onto the phone.



Joe



From: Joe Siegrist [mailto:***@gmail.com]
Sent: Wednesday, June 11, 2008 10:10 AM
To: bitpim-***@lists.sourceforge.net
Subject: A start on the LG LX-260 (Sprint Rumor)



I've started work to support the Sprint Rumor LG LX-260, so far it detects properly, and the phone info page is done including the phone number, firmware and ESN, and I'm able to seeing info from the pbreadentryresponse on reading, and if I hack around groups in com_lgvx4400.py I can write the names into the phonebook.

Do the devs congregate on an IRC channel? I see #bitpim exists on irc.freenode.net, but no one is home. My biggest blocker on making faster progress has been the need to ask quick questions.

I'm not sure how to figure out the groups, it looks like just about all the lg phones grab pim/pbgroup.dat which I don't have (see below).. for now I've just commented it out but that seems pretty fundamental; I'm not sure where to begin on this.

I made an entry in the phonebook to help figure out what everything is, but I'm still unsure if I'm on the right track (NNN is name, MMM is memo, e1,e2,e3 email, 1111 first phone number, etc); for stuff that appears to be all null what is the convention in the pbentry?

<#! phones.p_lglx260.pbreadentryresponse !#>
00000000 ff 13 03 00 48 01 00 00 a0 02 48 01 00 00 00 00 ....H.....H.....
00000010 00 00 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e ..NNNNNNNNNNNNNN
00000020 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e 4e NNNNNNNNNNNNNNNN
00000030 4e 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 NN..............
00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000050 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 ................
00000060 00 00 00 00 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d ....MMMMMMMMMMMM
00000070 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d 4d MMMMMMMMMMMMMMMM
00000080 4d 4d 4d 4d 00 65 31 40 65 65 65 65 65 65 65 65 ***@eeeeeeee
00000090 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
000000a0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
000000b0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
000000c0 65 65 65 65 65 65 65 65 65 65 65 65 65 00 65 32 eeeeeeeeeeeee.e2
000000d0 40 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 @eeeeeeeeeeeeeee
000000e0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
000000f0 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
00000100 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
00000110 65 65 65 65 65 65 00 65 33 40 65 65 65 65 65 65 ***@eeeeee
00000120 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
00000130 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
00000140 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 eeeeeeeeeeeeeeee
00000150 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65 00 eeeeeeeeeeeeeee.
00000160 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
00000170 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
00000180 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
00000190 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
000001a0 55 55 55 55 55 55 55 55 00 ff ff ff ff ff 00 01 UUUUUUUU........
000001b0 02 03 04 31 31 31 31 31 31 31 31 31 31 31 31 31 ...1111111111111
000001c0 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111
000001d0 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111
000001e0 31 31 31 00 32 32 32 32 32 32 32 32 32 32 32 32 111.222222222222
000001f0 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
00000200 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
00000210 32 32 32 32 00 33 33 33 33 33 33 33 33 33 33 33 2222.33333333333
00000220 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 3333333333333333
00000230 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 3333333333333333
00000240 33 33 33 33 33 00 34 34 34 34 34 34 34 34 34 34 33333.4444444444
00000250 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 4444444444444444
00000260 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 4444444444444444
00000270 34 34 34 34 34 34 00 35 35 35 35 35 35 35 35 35 444444.555555555
00000280 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
00000290 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 5555555555555555
000002a0 35 35 35 35 35 35 35 00 00 00 5555555...

Based on this I wrote pbentry:
PACKET pbentry:
4 UINT serial1
2 UINT {'constant': 0x02A0} +entrysize
4 UINT serial2
2 UINT entrynumber
1 BOOL secret
1 BOOL secret
33 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': True} name
49 USTRING memo
33 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': True} memo
* LIST {'length': NUMEMAILS} +emails:
73 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': True} email
73 USTRING {'encoding': PHONE_ENCODING, 'raiseonunterminatedread': True} url
1 BOOL secret
1 BOOL secret
1 BOOL secret
1 BOOL secret
1 BOOL secret
* LIST {'length': NUMPHONENUMBERS} +numbertypes:
1 UINT numbertype
* LIST {'length': NUMPHONENUMBERS} +numbers:
49 USTRING {'raiseonunterminatedread': True} number
2 UINT entrynumber

Is there a good example of someone doing this from the protocol output?

It seems like some code like this would be helpful after phone detection (as I wasted time assuming that my lx260 was like any of the other lg phones with files like pim/pbgroup.dat ):

dirlisting=self.getfilesystem('', 1)
keys = dirlisting.keys()
keys.sort()
for i in keys:
self.log('file: '+ i)

Running this on the rumor looks like this:

22:22:13.453 LG-LX260: file: /$SYS.FACTORY
22:22:13.453 LG-LX260: file: /CLK_DB
22:22:13.453 LG-LX260: file: /RDM_DEV_MAP
22:22:13.454 LG-LX260: file: /config
22:22:13.454 LG-LX260: file: /devices
22:22:13.454 LG-LX260: file: CIQ
22:22:13.454 LG-LX260: file: CIQ/CIQCOOK
22:22:13.456 LG-LX260: file: CIQ/CIQPROFIL
22:22:13.456 LG-LX260: file: CIQ/CIQPRSTAT
22:22:13.456 LG-LX260: file: DB
22:22:13.457 LG-LX260: file: DB/SchemaFiles
22:22:13.457 LG-LX260: file: DB/SysDB
22:22:13.457 LG-LX260: file: Dcam
22:22:13.457 LG-LX260: file: Dcam/PictbridgeFat.dat
22:22:13.457 LG-LX260: file: Dcam/Review
22:22:13.457 LG-LX260: file: Dcam/ReviewFat.dat
22:22:13.457 LG-LX260: file: Dcam/Wallet
22:22:13.457 LG-LX260: file: Dcam/WalletFat.dat
22:22:13.457 LG-LX260: file: EPM
22:22:13.457 LG-LX260: file: EPM/FileStore
22:22:13.457 LG-LX260: file: EPM/MediaStore
22:22:13.459 LG-LX260: file: EPM/MessageStore
22:22:13.459 LG-LX260: file: EPM/OEM_Transfers
22:22:13.459 LG-LX260: file: EPM/phone.cfg
22:22:13.459 LG-LX260: file: VoiceDB
22:22:13.459 LG-LX260: file: VoiceDB/All
22:22:13.459 LG-LX260: file: VoiceDB/Lang
22:22:13.460 LG-LX260: file: alarm
22:22:13.460 LG-LX260: file: alarm/alarm.dat
22:22:13.460 LG-LX260: file: alarm/ani_preloaded1.m3g
22:22:13.460 LG-LX260: file: brew
22:22:13.460 LG-LX260: file: brew/.ui_fill
22:22:13.460 LG-LX260: file: brew/ams
22:22:13.460 LG-LX260: file: brew/mif
22:22:13.460 LG-LX260: file: brew/mod
22:22:13.460 LG-LX260: file: brew/shared
22:22:13.460 LG-LX260: file: brew/sys
22:22:13.460 LG-LX260: file: brew/version.txt
22:22:13.460 LG-LX260: file: core
22:22:13.460 LG-LX260: file: core/CLOCK
22:22:13.460 LG-LX260: file: core/CMFL-1300
22:22:13.460 LG-LX260: file: core/CMFL-1310
22:22:13.460 LG-LX260: file: core/CMFL-6093
22:22:13.461 LG-LX260: file: core/CMFL-60D0
22:22:13.461 LG-LX260: file: mmc1
22:22:13.463 LG-LX260: file: mmc1/DCIM
22:22:13.463 LG-LX260: file: nvm
22:22:13.463 LG-LX260: file: nvm/$SYS.ESN
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR1
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR2
22:22:13.463 LG-LX260: file: nvm/$SYS.INVAR3
22:22:13.463 LG-LX260: file: nvm/$SYS.MEID
22:22:13.463 LG-LX260: file: nvm/nvm
22:22:13.463 LG-LX260: file: nvm/prl
22:22:13.463 LG-LX260: file: nvm/sms
22:22:13.463 LG-LX260: file: pim
22:22:13.463 LG-LX260: file: pim/MyInformation.dat
22:22:13.463 LG-LX260: file: pim/multiAlert.dat
22:22:13.464 LG-LX260: file: pim/sp_num.dat
22:22:13.464 LG-LX260: file: pim/tsb58a.dat
22:22:13.464 LG-LX260: file: rom_ui
22:22:13.464 LG-LX260: file: rom_ui/file1
22:22:13.466 LG-LX260: file: rom_ui/file2
22:22:13.466 LG-LX260: file: rom_ui/file3
22:22:13.466 LG-LX260: file: rom_ui/file4
22:22:13.466 LG-LX260: file: rom_ui/file5
22:22:13.466 LG-LX260: file: rom_ui/file6
22:22:13.467 LG-LX260: file: rom_ui/file7
22:22:13.467 LG-LX260: file: rom_vdb
22:22:13.467 LG-LX260: file: rom_vdb/file1
22:22:13.467 LG-LX260: file: rom_vdb/file2
22:22:13.467 LG-LX260: file: rom_vdb/file3
22:22:13.467 LG-LX260: file: rom_vdb/file4
22:22:13.467 LG-LX260: file: sch
22:22:13.467 LG-LX260: file: sch/dday.dat
22:22:13.467 LG-LX260: file: setas
22:22:13.469 LG-LX260: file: setas/amsImageIndex.map
22:22:13.469 LG-LX260: file: setas/slideshow
22:22:13.469 LG-LX260: file: sms
22:22:13.469 LG-LX260: file: sms/canned_msg.dat
22:22:13.469 LG-LX260: file: sms/inbox000.dat
22:22:13.470 LG-LX260: file: sms/inbox001.dat
22:22:13.470 LG-LX260: file: sms/inbox002.dat
22:22:13.470 LG-LX260: file: sms/inbox003.dat
22:22:13.470 LG-LX260: file: sms/inbox004.dat
22:22:13.470 LG-LX260: file: sms/inbox005.dat
22:22:13.470 LG-LX260: file: sms/recentlists.dat
22:22:13.470 LG-LX260: file: sms/user_folder.dat
22:22:13.470 LG-LX260: file: sms/voice.dat
22:22:13.470 LG-LX260: file: t9cdb
22:22:13.471 LG-LX260: file: t9cdb/t9cdb_eng.dat
22:22:13.471 LG-LX260: file: t9cdb/t9cdb_spa.dat
22:22:13.473 LG-LX260: file: t9udb
22:22:13.473 LG-LX260: file: t9udb/t9udb_eng.dat
22:22:13.473 LG-LX260: file: t9udb/t9udb_spa.dat
22:22:13.473 LG-LX260: file: user
22:22:13.473 LG-LX260: file: user/sound

Thanks,

Joe

Loading...