This program combines multiple backups created by SMS Backup & Restore Android app. This has been tested against Android 4.3 and older version.
Usage can be found by using python clean.py --help
, which produces this output at the time of writing:
$ python clean.py --help
usage: clean.py [-h] [-i infile [infile ...]] [-o outfile]
Combine XML files created with the program SMS Backup and restore.
optional arguments:
-h, --help show this help message and exit
-i infile [infile ...], --input infile [infile ...]
the input files to combine
-o outfile, --output outfile
the output file to write
Big thanks to radj
for the original project .
Need to have Python 2.x installed.
python clean.py -i ~/SMSBackupRestore/big_backup.xml -o output_file.xml
python clean.py -i /path/to/directory -o output_file.xml
python clean.py -i backup1.xml backup2.xml backup3.xml -o ~/Backups/output_file.xml
python clean.py -i backup1.xml ~/SMSBackupRestore/sms-*.xml -o ~/Backups/output_file.xml
Emoji needs the lxml
package. Use pip install lxml
to install it first, then use as normal.
- Python 2 only. (For now?)
No emoji supportNow supports emoji! See above.No MMS duplicate filtering. It just maintains the MMS entries as is.
'''
CREATE TABLE smss(protocol text, address text, date text, type text, subject text, body text, toa text, sc_toa text, service_center text, read text, status text, locked text, date_sent text, readable_date text, contact_name text, primary key (address, date));;
CREATE TABLE mmss(text_only text, ct_t text, using_mode text, msg_box text, secret_mode text, v text, retr_txt_cs text, ct_cls text, favorite text, d_rpt_st text, deletable text, st text, sim_imsi text, creator text, tr_id text, sim_slot text, read text, m_id text, callback_set text, m_type text, retr_txt text, locked text, resp_txt text, rr_st text, safe_message text, retr_st text, reserved text, msg_id text, hidden text, sub text, rr text, seen text, ct_l text, from_address text, m_size text, exp text, sub_cs text, sub_id text, resp_st text, date text, app_id text, date_sent text, pri text, address text, read_status text, d_tm text, d_rpt text, device_name text, spam_report text, rpt_a text, m_cls text, readable_date text, contact_name text, network_type text, privacy_mode text, id integer, primary key (address, date));
CREATE TABLE parts(seq text, ct text, name text, chset text, cd text, fn text, cid text, cl text, ctt_s text, ctt_t text, text text, data text, fk_id_mms integer, primary key (data, text, name));
CREATE TABLE addrs(address text, type text, charset text, fk_id_mms integer, primary key (fk_id_mms, charset, type, address));
'''