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?