native.db
its stored in /ezxlocal/sysdatabase/
its a berkley DB based structure.
is it enough?
Hey all, I'm currently writing a linux application, that intereacts with the phone via the linux USBLAN driver and NFS. It will have features such as easy file transfer (mounting as mass storage is quite sluggish, plus disables much of the phones features while mounted),and conduit for apps like evolution and thunderbird for syncing. You will be requred to have telnet access to the phone for this suite to work, that really shouldn't be a problem since it's so easy now. You will also be able to sync any two folder (via nfs) between the phone and the PC. If anyone can think of any other features you think would be cool, please let me know.
Oh!, and I'm about to start writing the PIM conduit side of the app, since I'm done with the directory sync and file transfer. Does anyone know exactly where the phone stores stuff like it's contacts, SMS's emails etc.?
-Chad![]()
native.db
its stored in /ezxlocal/sysdatabase/
its a berkley DB based structure.
is it enough?
--------------------
-->E680i... ROX.
--------------------
Great! I've got the file on my HD thanks! I'm looking for a way to parse it in my C/C++ code. THANK AGAIN!Originally Posted by akhaliq
-Chad
Okay, I'm downloading Berkely DB right now. It's got C/C++ header files that allow me to open, read and write to it's DB files. I'll update you on the progress. If anyone has any expoerience with these db files..please let me know.
-Chad
*PHEW*
Was living in the Berkeley documenatation all day and night. Finally (never said I was that experienced) I was able to extract all the keys out of my phones native.db file. It seems to have all the data in it. Here's what some looks like.
wap_msg_table_in_flash.wap_fld_final_id
wap_msg_table_in_flash.wap_fld_expiry_time
wap_msg_table_in_flash.cmn_fld_to_nametime
wap_msg_table_in_flash.cmn_fld_time_msg_reach_phoneQ
wap_msg_table_in_flash.cmn_fld_time_msg_reach_phone9
wap_msg_table_in_flash.cmn_fld_subjectg_reach_phone!
wap_msg_table_in_flash.cmn_fld_send_receive_statene!
wap_msg_table_in_flash.cmn_fld_msg_usageive_statene!
wap_msg_table_in_flash.cmn_fld_msg_typeeive_statene!
wap_msg_table_in_flash.cmn_fld_from_nameive_statene!
wap_msg_table_in_flash.cmn_fld_folder_idive_statene!
wap_msg_table_in_flash.cmn_fld_folder_idive_statene!
quickSubjectDB.DTSTAMP.cmn_fld_folder_idive_statene!
quickSubjectDB.DTSTAMP.cmn_fld_folder_idive_statene!
quickLocationDB.DTSTAMPcmn_fld_folder_idive_statene!
quickLocationDB.DTSTAMPcmn_fld_folder_idive_statene!
msgctr_folder_table.userdef_folder_namedive_statene!
msgctr_folder_table.show_order_nor_namedive_statene!
msgctr_folder_table.folder_idr_nor_namedive_statene!
msgctr_folder_table.folder_idr_nor_namedive_statene!
mms_table_in_flash.mms_fld_msguri_nameedive_statene!
mms_table_in_flash.mms_fld_msgid_nameeedive_statene!
mms_table_in_flash.cmn_fld_to_nameameeedive_statene!
mms_table_in_flash.cmn_fld_time_msg_reach_phonetene!
mms_table_in_flash.cmn_fld_time_msg_reach_phonetene!
mms_table_in_flash.cmn_fld_subjectg_reach_phonetene!
mms_table_in_flash.cmn_fld_send_receive_statenetene!
mms_table_in_flash.cmn_fld_msg_usageive_statenetene!
mms_table_in_flash.cmn_fld_msg_typeeive_statenetene!
mms_table_in_flash.cmn_fld_from_nameive_statenetene!
mms_table_in_flash.cmn_fld_folder_idive_statenetene!
mms_table_in_flash.cmn_fld_folder_idive_statenetene!
mail.FolderIDflash.cmn_fld_folder_idive_statenetene!
mail.DateerIDflash.cmn_fld_folder_idive_statenetene!
mail.DateerIDflash.cmn_fld_folder_idive_statenetene!
long_msg_table.tpdu_lenfld_folder_idive_statenetene!
long_msg_table.tpdu_lenfld_folder_idive_statenetene!
folder.FolderTypedu_lenfld_folder_idive_statenetene!
folder.FolderSyncableenfld_folder_idive_statenetene!
folder.FolderNameableenfld_folder_idive_statenetene!
folder.AccountIDeableenfld_folder_idive_statenetene!
folder.AccountIDeableenfld_folder_idive_statenetene!
ems_table_in_flash.cmn_fld_to_nameidive_statenetene!
ems_table_in_flash.cmn_fld_time_msg_reach_phonetene!
ems_table_in_flash.cmn_fld_time_msg_reach_phonetene!
ems_table_in_flash.cmn_fld_subjectg_reach_phonetene!
ems_table_in_flash.cmn_fld_send_receive_statenetene!
ems_table_in_flash.cmn_fld_msg_usageive_statenetene!
ems_table_in_flash.cmn_fld_msg_typeeive_statenetene!
ems_table_in_flash.cmn_fld_from_nameive_statenetene!
ems_table_in_flash.cmn_fld_folder_idive_statenetene!
ems_table_in_flash.cmn_fld_folder_idive_statenetene!
cb_table_in_flash.cmn_fld_to_name_idive_statenetene!
cb_table_in_flash.cmn_fld_time_msg_reach_phoneetene!
cb_table_in_flash.cmn_fld_time_msg_reach_phoneetene!
cb_table_in_flash.cmn_fld_subjectg_reach_phoneetene!
cb_table_in_flash.cmn_fld_send_receive_stateneetene!
cb_table_in_flash.cmn_fld_msg_usageive_stateneetene!
cb_table_in_flash.cmn_fld_msg_typeeive_stateneetene!
cb_table_in_flash.cmn_fld_from_nameive_stateneetene!
cb_table_in_flash.cmn_fld_folder_idive_stateneetene!
cb_table_in_flash.cb_fld_serial_number_stateneetene!
cb_table_in_flash.cb_fld_channel_numberstateneetene!
cb_table_in_flash.cb_fld_channel_numberstateneetene!
calendarExceptionDB_dst780_ex.STARTmberstateneetene!
calendarExceptionDB_dst780_ex.PARENTUIDstateneetene!
calendarExceptionDB_dst780_ex.MEETINGSTATUSeneetene!
calendarExceptionDB_dst780_ex.GLOBALIDTATUSeneetene!
calendarExceptionDB_dst780_ex.EXPDATEDTATUSeneetene!
calendarExceptionDB_dst780_ex.ENDDATEDTATUSeneetene!
calendarExceptionDB_dst780_ex.DTSTAMPDTATUSeneetene!
calendarExceptionDB_dst780_ex.ALARMMPDTATUSeneetene!
calendarExceptionDB_dst780_ex.ALARMMPDTATUSeneetene!
calendarDB_dst780_ex.START_ex.ALARMMPDTATUSeneetene!
calendarDB_dst780_ex.REPEATENDALARMMPDTATUSeneetene!
calendarDB_dst780_ex.MEETINGSTATUSMMPDTATUSeneetene!
calendarDB_dst780_ex.GLOBALIDTATUSMMPDTATUSeneetene!
calendarDB_dst780_ex.ENDBALIDTATUSMMPDTATUSeneetene!
calendarDB_dst780_ex.DTSTAMPDTATUSMMPDTATUSeneetene!
calendarDB_dst780_ex.ALARMMPDTATUSMMPDTATUSeneetene!
calendarDB_dst780_ex.ALARMMPDTATUSMMPDTATUSeneetene!
calendarDB.START0_ex.ALARMMPDTATUSMMPDTATUSeneetene!
calendarDB.REPEATEND.ALARMMPDTATUSMMPDTATUSeneetene!
calendarDB.ENDEATEND.ALARMMPDTATUSMMPDTATUSeneetene!
calendarDB.DTSTAMPND.ALARMMPDTATUSMMPDTATUSeneetene!
calendarDB.ALARMMPND.ALARMMPDTATUSMMPDTATUSeneetene!
calendarDB.ALARMMPND.ALARMMPDTATUSMMPDTATUSeneetene!
account.IsDefaultAccountRMMPDTATUSMMPDTATUSeneetene!
account.AccountNamecountRMMPDTATUSMMPDTATUSeneetene!
account.AccountNamecountRMMPDTATUSMMPDTATUSeneetene!
WARN_DATA_T.syncTypeountRMMPDTATUSMMPDTATUSeneetene!
WARN_DATA_T.dataTypeountRMMPDTATUSMMPDTATUSeneetene!
WARN_DATA_T.dataTypeountRMMPDTATUSMMPDTATUSeneetene!
TASKS_TABLE.SUMMARYeountRMMPDTATUSMMPDTATUSeneetene!
TASKS_TABLE.PRIORITYountRMMPDTATUSMMPDTATUSeneetene!
TASKS_TABLE.DUEORITYountRMMPDTATUSMMPDTATUSeneetene!
TASKS_TABLE.DALARMTYountRMMPDTATUSMMPDTATUSeneetene!
TASKS_TABLE.DALARMTYountRMMPDTATUSMMPDTATUSeneetene!
SYNC_INFO_DATA_T.syncTypeMMPDTATUSMMPDTATUSeneetene!
SYNC_INFO_DATA_T.lastSyncStatusTUSMMPDTATUSeneetene!
SYNC_INFO_DATA_T.endSyncTimetusTUSMMPDTATUSeneetene!
SYNC_INFO_DATA_T.endSyncTimetusTUSMMPDTATUSeneetene!
SYNCML_INFO_SIMMAPPING_TBL.slotNumberDTATUSeneetene!
SYNCML_INFO_SIMMAPPING_TBL.seqNumberrDTATUSeneetene!
SYNCML_INFO_SIMMAPPING_TBL.recStatusrDTATUSeneetene!
SYNCML_INFO_SIMMAPPING_TBL.recLUIDusrDTATUSeneetene!
SYNCML_INFO_SIMMAPPING_TBL.recLUIDusrDTATUSeneetene!
SYNCML_INFO_MISC_TBL.contactsDBSeqNumberTUSeneetene!
SYNCML_INFO_MISC_TBL.contactsDBSeqNumberTUSeneetene!
SYNCML_INFO_MAPPING_TBL.seqNumberqNumberTUSeneetene!
SYNCML_INFO_MAPPING_TBL.recStatusqNumberTUSeneetene!
SYNCML_INFO_MAPPING_TBL.recLUIDusqNumberTUSeneetene!
SYNCML_INFO_MAPPING_TBL.dbTypeDusqNumberTUSeneetene!
SYNCML_INFO_MAPPING_TBL.dbTypeDusqNumberTUSeneetene!
SCHEMA_INDEXMAPPING_TBL.dbTypeDusqNumberTUSeneetene!
SCHEMA_INDEXMAPPING_TBL.dbTypeDusqNumberTUSeneetene!
LOG_DATA_T.syncType_TBL.dbTypeDusqNumberTUSeneetene!
LOG_DATA_T.dataType_TBL.dbTypeDusqNumberTUSeneetene!
LOG_DATA_T.dataType_TBL.dbTypeDusqNumberTUSeneetene!
FMRADIO_TABLE.CHANNELBL.dbTypeDusqNumberTUSeneetene!
FMRADIO_TABLE.CHANNELBL.dbTypeDusqNumberTUSeneetene!
AS_CL_TABLE_NAME_1.serverClaimDusqNumberTUSeneetene!
AS_CL_TABLE_NAME_1.seqNumberimDusqNumberTUSeneetene!
AS_CL_TABLE_NAME_1.operationTypesqNumberTUSeneetene!
AS_CL_TABLE_NAME_1.LUIDationTypesqNumberTUSeneetene!
AS_CL_TABLE_NAME_1.LUIDationTypesqNumberTUSeneetene!
AS_CL_TABLE_NAME_0.serverClaimpesqNumberTUSeneetene!
AS_CL_TABLE_NAME_0.seqNumberimpesqNumberTUSeneetene!
AS_CL_TABLE_NAME_0.operationTypesqNumberTUSeneetene!
AS_CL_TABLE_NAME_0.LUIDationTypesqNumberTUSeneetene!
AS_CL_TABLE_NAME_0.LUIDationTypesqNumberTUSeneetene!
AS_CL_SettingTableNameDationTypesqNumberTUSeneetene!
780_mapping_table.typeDationTypesqNumberTUSeneetene!
780_mapping_table.nameDationTypesqNumberTUSeneetene!
780_mapping_table.idmeDationTypesqNumberTUSeneetene!
780_mapping_table.category nameesqNumberTUSeneetene!
780_mapping_table.category nameesqNumberTUSeneetene!
780_group2_table.group idy nameesqNumberTUSeneetene!
780_group2_table.field typenameesqNumberTUSeneetene!
780_group2_table.contact idnameesqNumberTUSeneetene!
780_group2_table.contact idnameesqNumberTUSeneetene!
780_contact_table.work2t idnameesqNumberTUSeneetene!
780_contact_table.work1t idnameesqNumberTUSeneetene!
780_contact_table.type1t idnameesqNumberTUSeneetene!
780_contact_table.p2p21t idnameesqNumberTUSeneetene!
780_contact_table.p2p11t idnameesqNumberTUSeneetene!
780_contact_table.name1t idnameesqNumberTUSeneetene!
780_contact_table.mobile2idnameesqNumberTUSeneetene!
780_contact_table.mobile1idnameesqNumberTUSeneetene!
780_contact_table.last namenameesqNumberTUSeneetene!
780_contact_table.home2namenameesqNumberTUSeneetene!
780_contact_table.home1namenameesqNumberTUSeneetene!
780_contact_table.first nameameesqNumberTUSeneetene!
780_contact_table.faxst nameameesqNumberTUSeneetene!
780_contact_table.email2nameameesqNumberTUSeneetene!
780_contact_table.email1nameameesqNumberTUSeneetene!
780_contact_table.birth idmeameesqNumberTUSeneetene!
780_contact_table.anniv idmeameesqNumberTUSeneetene!
780_contact_table.anniv idmeameesqNumberTUSeneetene!
780_category_table.type idmeameesqNumberTUSeneetene!
780_category_table.name idmeameesqNumberTUSeneetene!
780_category_table.name idmeameesqNumberTUSeneetene!
Apparently, each of these keys has a corresponding data field. I'm first going to work on the contacts. Gonna see if I can get a formatted txt file with all the contact information. Hopefully, once I can do that, I can manipulate the data to allow syncronization with other apps! If anyone has any experience with the Berkeley DB C/C++ wrappers please let me know!
-Chad
really good to C this progress.
i am moving this thread to development forum. it belongs there acctually
keep up the good work. i have no experience with berkley DB so cant help but i hope someone in development forum can help the idea.
--------------------
-->E680i... ROX.
--------------------
Thanks akhaliq!
I'm going to continue work on this project now, I'll keep posting updates, lol although I haven't been getting much response, I'll take it for granted that an app like this useful to some.
Thanks again,
-Chad
keep going bro...we need more n more developers like u!!...all the best for the success of this project..
@thundershadow14
When your application ready, a lot of people will download it without leave any commentKeep going...
eXMMS and Rockbox running on E680, E680i, E680g, A780, A1200 and ROKR E6
blackhawk, don't worry, you know we love you and the work you're done that's helped us in so many different ways (I for one simply ADORE your book reader as well as many other apps of yours)
thundershadow, it's true what blackhawk says, but people whether they say anything or not will be grateful![]()