3

For sentimental reasons, I'm trying to export my text messages from an old feature phone (LG Cosmos 2, circa 2011) to a flat file (CSV or the like). I was able to successfully transfer the entire contents of the phone's file system to my computer, but the messages are locked in a database format that I do not recognize.

I believe the relevant directories and files are as follows:

/DB
  /SchemaFiles
    /Handset
      inboxSchema.dat
  /SysDB
    SMSInboxDB.vol
    SMSInboxDB.vol.log
    SMSInboxDB.vol.sys

I believe the files in SysDB are the actual database volume files, and cannot be interpreted as plain text. However, the inboxSchema.dat file can be read as plain text, and contains the following:

# SMS Inbox Schema 
schema SMSInboxSchema
VERSION 0.8//SMSIN_MSG_CHARLEN

table Inbox maxrecord = 300
{
    U, SYNC_OFF, SMSIN_INBOXINDEX,          1100,   USHORT,     INDEX_KEY_ON,   ON;     # smsInboxIndex => Primary Key
    U, SYNC_OFF, SMSIN_INBOXID,             1101,   ULONG,      INDEX_KEY_OFF,  ON;     # smsInboxId 
    U, SYNC_OFF, SMSIN_MSGID,               1102,   USHORT,     INDEX_KEY_OFF,  ON;     # smsMsgID
    U, SYNC_OFF, SMSIN_CATEGORY,            1103,   BYTE,       INDEX_KEY_OFF,  ON;     # smsCategory
    U, SYNC_OFF, SMSIN_SYSTEMTIME,          1104,   ULONG,      INDEX_KEY_ON,   ON;     # smsSystemTime => Soring Key
    U, SYNC_OFF, SMSIN_MCTIME,              1105,   DATE,       INDEX_KEY_OFF,  ON;     # smsMCTimt
    U, SYNC_OFF, SMSIN_BINMCTIME,           1106,   ULONG,      INDEX_KEY_OFF,  ON;     # smsBinMCTime
    U, SYNC_OFF, SMSIN_READFLAG,            1107,   BYTE,       INDEX_KEY_OFF,  ON;     # smsReadflag
    U, SYNC_OFF, SMSIN_LOCKFLAG,            1108,   BYTE,       INDEX_KEY_OFF,  ON;     # smsLockflag
    U, SYNC_OFF, SMSIN_DUPLICATEFLAG,       1109,   BYTE,       INDEX_KEY_OFF,  ON;     # smsDuplicateflag
    U, SYNC_OFF, SMSIN_PRIORITYFLAG,        1110,   BYTE,       INDEX_KEY_OFF,  ON;     # smsPriorityflag
    U, SYNC_OFF, SMSIN_PRIVACYFLAG,         1111,   BYTE,       INDEX_KEY_OFF,  ON;     # smsPrivacyflag
    U, SYNC_OFF, SMSIN_EMSUDHPRESENT,       1112,   BYTE,       INDEX_KEY_OFF,  ON;     # smssmsEMSUdhPresent
    U, SYNC_OFF, SMSIN_MSGENCODINGTYPE,     1113,   BYTE,       INDEX_KEY_OFF,  ON;     # smsMsgEncodingType
    U, SYNC_OFF, SMSIN_NUMOFSEGMENTS,       1114,   BYTE,       INDEX_KEY_OFF,  ON;     # smsNumOfSegments
    U, SYNC_OFF, SMSIN_TITLEMESSAGE,        1115,   STRING(301),    INDEX_KEY_OFF,  ON;     # smsTitleMessage
    U, SYNC_OFF, SMSIN_NUMOFVOICEMAILS,     1116,   BYTE,       INDEX_KEY_OFF,  ON;     # smsNumOfVoicemails
    U, SYNC_OFF, SMSIN_EMSCTRLDATA,         1117,   BYTE,       INDEX_KEY_OFF,  ON;     # smsEMSCtrlData
    U, SYNC_OFF, SMSIN_EMSCONCATREFRENCE,   1118,   INT,        INDEX_KEY_OFF,  ON;     # smsEMSConcatRefrence
    U, SYNC_OFF, SMSIN_EMSCONCATSTATUS,     1119,   BYTE,       INDEX_KEY_OFF,  ON;     # smsEMSConcatStatus
    U, SYNC_OFF, SMSIN_CBADDRESS,           1120,   STRING(49), INDEX_KEY_OFF,  ON;     # smsAddress
    U, SYNC_OFF, SMSIN_CBADDRESSLEN,        1121,   BYTE,       INDEX_KEY_OFF,  ON;     # smsAddress_len
    U, SYNC_OFF, SMSIN_FRADDRESS,           1122,   STRING(49), INDEX_KEY_ON,   ON;     # smsAddress
    U, SYNC_OFF, SMSIN_FRADDRESSLEN,        1123,   BYTE,       INDEX_KEY_OFF,  ON;     # smsAddress_len
    U, SYNC_OFF, SMSIN_FRINTRIMEMAIL,       1124,   BYTE,       INDEX_KEY_OFF,  ON;     # smsIntrimEmail
    U, SYNC_OFF, SMSIN_FRNAME,              1125,   STRING(33), INDEX_KEY_OFF,  ON;     # smsName
    U, SYNC_OFF, SMSIN_FRPBMATCHICON,       1126,   BYTE,       INDEX_KEY_OFF,  ON;     # smsPBMatchIcon
    U, SYNC_OFF, SMSIN_FRPBID,              1127,   USHORT,     INDEX_KEY_ON,   ON;     # smsPBMatchFilePos
    U, SYNC_OFF, SMSIN_SORTKEY,             1129,   STRING(49),     INDEX_KEY_OFF,  ON;     # for name/number sorting
    U, SYNC_OFF, SMSIN_SORTTIME,            1130,   ULONG,      INDEX_KEY_OFF,  ON;     # for time sorting in desc
}
multikey Inbox
{
    NORMALVALUE: SMSIN_SORTKEY, SMSIN_SYSTEMTIME;
    NORMALVALUE: SMSIN_SORTKEY, SMSIN_SORTTIME;
}

table InboxUserData maxrecord = 6000, maxviewsize = 20
{
    U, SYNC_OFF, SMSIN_INBOXINDEX,          1100,   USHORT,     INDEX_KEY_OFF,  ON;     # smsInboxIndex
    U, SYNC_OFF, SMSIN_SEGINDEX,            1140,   BYTE,       INDEX_KEY_OFF,  ON;     # smsSegIndex
    U, SYNC_OFF, SMSIN_MSG,             1141,   BINARY(220),    INDEX_KEY_OFF,  ON;     # smsMsgLen, smsMsg
    U, SYNC_OFF, SMSIN_MSG_CHARLEN,         1142,   BYTE,       INDEX_KEY_OFF,  ON;     # userdataCharLen(before encoding)
}
multikey InboxUserData
{
    NORMALVALUE:SMSIN_INBOXINDEX, SMSIN_SEGINDEX;
}

table CMAS maxrecord = 100
{
    U, SYNC_OFF, SMSCMAS_INBOXINDEX,        1170,   USHORT,     INDEX_KEY_ON,   ON;     # SMSCMASboxIndex => Primary Key
    U, SYNC_OFF, SMSCMAS_INBOXID,           1171,   ULONG,      INDEX_KEY_OFF,  ON;     # smsInboxId 
    U, SYNC_OFF, SMSCMAS_MSGID,         1172,   USHORT,     INDEX_KEY_OFF,  ON;     # smsMsgID
    U, SYNC_OFF, SMSCMAS_CATEGORY,          1173,   BYTE,       INDEX_KEY_OFF,  ON;     # smsCategory
    U, SYNC_OFF, SMSCMAS_SYSTEMTIME,        1174,   ULONG,      INDEX_KEY_ON,   ON;     # smsSystemTime => Soring Key
    U, SYNC_OFF, SMSCMAS_MCTIME,            1175,   DATE,       INDEX_KEY_OFF,  ON;     # smsMCTimt
    U, SYNC_OFF, SMSCMAS_BINMCTIME,         1176,   ULONG,      INDEX_KEY_OFF,  ON;     # smsBinMCTime
    U, SYNC_OFF, SMSCMAS_READFLAG,          1177,   BYTE,       INDEX_KEY_OFF,  ON;     # smsReadflag
    U, SYNC_OFF, SMSCMAS_LOCKFLAG,          1178,   BYTE,       INDEX_KEY_OFF,  ON;     # smsLockflag
    U, SYNC_OFF, SMSCMAS_DUPLICATEFLAG,     1179,   BYTE,       INDEX_KEY_OFF,  ON;     # smsDuplicateflag
    U, SYNC_OFF, SMSCMAS_PRIORITYFLAG,      1180,   BYTE,       INDEX_KEY_OFF,  ON;     # smsPriorityflag
    U, SYNC_OFF, SMSCMAS_PRIVACYFLAG,       1181,   BYTE,       INDEX_KEY_OFF,  ON;     # smsPrivacyflag
    U, SYNC_OFF, SMSCMAS_MSGENCODINGTYPE,       1182,   BYTE,       INDEX_KEY_OFF,  ON;     # smsMsgEncodingType
    U, SYNC_OFF, SMSCMAS_MSG_CHAR,          1183,   BINARY(220),    INDEX_KEY_OFF,  ON;     # smsCMASMessage
    U, SYNC_OFF, SMSCMAS_MSG_CHAR_LEN,      1184,   BYTE,       INDEX_KEY_OFF,  ON;     # smsCMASMessageLength
    U, SYNC_OFF, SMSCMAS_FRADDRESS,         1185,   STRING(49), INDEX_KEY_ON,   ON;     # smsAddress
    U, SYNC_OFF, SMSCMAS_FRADDRESSLEN,      1186,   BYTE,       INDEX_KEY_OFF,  ON;     # smsAddress_len
    U, SYNC_OFF, SMSCMAS_SORTKEY,           1187,   STRING(49), INDEX_KEY_OFF,  ON;     # for name/number sorting
    U, SYNC_OFF, SMSCMAS_SORTTIME,          1188,   ULONG,      INDEX_KEY_OFF,  ON;     # for time sorting in desc
    U, SYNC_OFF, SMSCMAS_SRVC_CATEGORY,     1189,   USHORT,     INDEX_KEY_OFF,  ON;     # broadcast service category
    U, SYNC_OFF, SMSCMAS_CMAS_RECORD,       1190,   ULONG,      INDEX_KEY_OFF,  ON;     # CMAE Record 01 data(Category, Urgency, ...)
}
multikey CMAS
{
    NORMALVALUE: SMSCMAS_SORTKEY, SMSCMAS_SYSTEMTIME;
    NORMALVALUE: SMSCMAS_SORTKEY, SMSCMAS_SORTTIME;
}

database SMSInboxDB;

What kind of RDBMS is this schema for? And, is there a publicly available tool that will let me open and export the contents of the volumes?

0

1 Answer 1

1

It looks like that might be BitPim

https://sourceforge.net/projects/bitpim/

1
  • I used Bitpim to mount and copy the filesystem from the phone, but it doesn't provide any means to actually open the database volumes.
    – alexw
    Jun 18, 2019 at 15:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.