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     MMMM.e1@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.e3@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