Skip to content

Android Stuff

Apps and Tips for Android…


Archive for February, 2010

A simple App to backup and restore SMS Messages, useful when doing a factory reset or installing custom ROMs. The backup is stored in /sdcard/SMSBackupRestore folder by default.



  • Backup SMS Messages in XML format.
    • Choose a scheduled time to automatically backup everyday.
    • Choose the name of the file to backup to.
    • Option to add and XSL style sheet to the XML file, so that the file can be opened with a browser for viewing easily. Check the “Related Downloads“. Copy it in the same folder as the Backup XML file and then open the XML file in a browser like Internet Explorer or Firefox.
    • Option to add the date in readable format.
    • Backup format is independent of the Android version so the messages can be easily moved from one phone to another, irrespective of which version of Android it has. Tested with v1.5 to v4.4.2.
  • Option to select which conversations to backup.
  • Option to choose the format for the auto-generated file name.
  • Restore SMS Messages.
    • Option to select the backup file to be restored from the folder.
  • View Messages in the backup files.
  • Delete all SMS Messages on the Phone.
  • Email a backup file.
  • Delete existing backup files.
    • Option to delete old files automatically after specified number of days.
  • Import SMS Messages from Windows Mobile.
  • Import SMS Messages from Nokia.
  • Import SMS Messages from Sony Ericsson.
  • The backup files can also be viewed on the computer and edited using MS Excel.

Please report any problems you are having with the App here in the comments section or email me with the details as I cannot respond to problems in the Android Market. My email address is on the market.

Answers to some Frequently Asked Questions can be found here. has posted a helpful user guide to using the app.


It can be downloaded from the Android Market, search for it or scan this QR Code with barcode scanner:
Click here to view on Cyrket

Click here to view on

Click here to download from


The app is currently translated in the following languages:

  • Finnish – Thanks to Juhana H.
  • Russian – Thanks to Pavel (Павел Миронов)
  • Spanish – Thanks to Miguel A. Alvarez
  • German – Thanks to Marc Hillesheim & Jan
  • French – Thanks to Julien Benoist
  • Dutch – Thanks to Kristof Roels
  • Portuguese – Thanks to António Silva
  • Italian – Thanks to Oliver Thomas Cervera
  • Swedish – Thanks to Björn Lindahl
  • Polish – Thanks to MSZ & MR
  • Estonian – Thanks to Margus Palu
  • Simplified Chinese – Thanks to Thomas Wang
  • Macedonian – Thanks to Vlad
  • Turkish – Thanks to Hasan Gök
  • Hungarian – Thanks to Kojedzinszky Dániel
  • Traditional Chinese – Thanks to Bernie Huang
  • Korean – Thanks to HoeLyn Do
  • Norwegian – Thanks to Dag Jøran Hanssen
  • Danish – Thanks to Jeppe Leth Nielsen
  • Greek  – Thanks to Michael and Dimitrios
  • Slovak – Thanks to Richard Antal
  • Georgian – Thanks to Temuri Doghonadze
  • Vietnamese – Thanks to Long Nguyen

If you would like to help translate the app in other languages, please send me an email.

Icons designed by Vlad Kitanoski of

Known Problems / Issues:

  • If you are running any “Task Killer” app that kills apps on a schedule (like Advanced Task Manager), make sure that you exclude SMS Backup & Restore from it, otherwise the Scheduled Backups may not work properly. This App displays a notification every time it backs up with the details of the backup, make sure you are getting those notifications.
  • Some message threads have the time of restore instead of the actual time of the message. They do get sorted once you open the thread and then go back to the messages. Most of this problem has been fixed in v1.4 of the app but some messages which have alphabetical sender names instead of phone numbers don’t work properly on Android v1.5 and v1.6.
  • Version 3.6, 3.7 & 3.8 remove the Contact Name and Readable Date from existing messages in the backup file when using the Archive Mode. This was fixed in v3.9.
  • Recent firmware update of the Motorola Droid X (and possibly other Driod phones) seems to have created an issue where the Date on the restored messages appears to be the restore date rather than the actual date of the message. A potential fix for this problem has been applied on v4.4. Please let me know if its still a problem.

Permissions Required:

The App needs the following permissions to work:
  • Storage – modify/delete SD card contents (android.permission.WRITE_EXTERNAL_STORAGE): To create the xml file on the SD card.
  • Your messages – edit SMS or MMS, read SMS or MMS (android.permission.READ_SMS, android.permission.WRITE_SMS, android.permission.RECEIVE_SMS): Needed to read SMS during backups and write them during restore.  Receive SMS permission needed to properly handle messages received while the app is the default messaging app on Android 4.4+ devices.
  • Network communication – full Internet access (android.permission.INTERNET): For displaying Ads.
  • Network State – (android.permission.ACCESS_NETWORK_STATE): Required by the Google Admob Ads so that it can check the state of the network before requesting Ads.
  • System tools – prevent phone from sleeping (android.permission.WAKE_LOCK): To prevent the phone from going to sleep/suspended state while a backup or restore operation is in progress.
  • Hardware controls – control vibrator (android.permission.VIBRATE): To vibrate the phone when the backup or restore operation is completed.
  • Read Phone State and Identity – To fix an error caused during Restore on some phones.
  • Automatically Start On Boot – To start scheduled Backups.

Fields in the XML File:

A lot of people have been asking me about the details of the fields used by the application. Here is some description of the fields:

  • protocol – Protocol used by the message, its mostly 0 in case of SMS messages.
  • address – The phone number of the sender/recipient.
  • date – The Java date representation (including millisecond) of the time when the message was sent/received. Check out for information on how to do the conversion from other languages to Java.
  • type – 1 = Received, 2 = Sent, 3 = Draft, 4 = Outbox, 5 = Failed, 6 = Queued
  • subject – Subject of the message, its always null in case of SMS messages.
  • body – The content of the message.
  • toa – n/a, default to null.
  • sc_toa – n/a, default to null.
  • service_center – The service center for the received message, null in case of sent messages.
  • read – Read Message = 1, Unread Message = 0.
  • status – None = -1, Complete = 0, Pending = 32, Failed = 64.
  • readable_date – Optional field that has the date in a human readable format.
  • contact_name – Optional field that has the name of the contact.

All the field values are read as is from the underlying database and no conversion is done by the app. As you can see there are some fields which are not used and probably can be removed but I have kept them for compatibility reasons.

Related Downloads:

Following are some additional useful files related to this app. Right click and then select “Save As” or equivalent.

Change Log:

– MMS Backup performance improvements (Thanks to Jonathon Gilbert)
– Hi-res icons
– More details displayed in file lists
– Bug fixes

– Bug fixes

v7.00, 7.01, 7.02:
– Experimental MMS Support – Enable it in Backup Settings.
– Support for External SD Card on Android 4.4+ devices.

– Bug fix for the “the bind value at index 4 is null” error that some users are experiencing.

– Better handling on Android 4.4 for SMS Messages received when the app is the default SMS app. New Receive SMS permission required for the same.

v6.41 & v6.42:

– Android 4.4 compatibility


– Using Amazon Ads.
– Now forces to select the backup folder when restoring/viewing/deleting backups if it hasn’t been set yet.

–  Changed Ad Network back to MoPub
–  Now displays proper switch for On/Off on devices that support it in Scheduler and Password settings.

– Changed Ad Network to AppBrain
– Fixed buttons in Landscape
– Delete Backups now has option to Select/Unselect All
– Bugfixes

– Bug fix for some users getting a NullPointerException when creating a Backup.


  • Better handling of Draft messages
  • File search can now be cancelled
  • Bug fixes


  • Fix for restore failing on Verizon Galaxy S4.
  • Various bug fixes.


  • Added an alternate Restore method as a workaround for Restore problems on some devices. The app will prompt the user to try the alternate way when the restore fails. It can be manually switched on from Preferences as well. The alternate Restore may result in the Phone App crashing, pressing OK on the message will restart the app. After that Resume Restore.
  • Opening the app after a failed Restore will prompt to Resume Restore.
  • More bug fixes.


  • More bug fixes
  • Better error messages
  • Added Vietnamese translations, thanks to Long Nguyen
  • Added Menu Option to Send Logs


  • Another attempted fix for the Restore errors on Samsung Jelly Bean devices.
  • Added more logging for other errors.


  • Attempted fix and better error reporting for the “null” error during Restore.
  • Added option to Send Logs from within the app – Press the Send Logs button on the Error dialog.
  • Added Menu Option to “Contact Developer”.
  • Minor UI fixes


  • Now gets registered as a file handler for XML files so that backups can be viewed and restored directly from Email attachments and File Managers.


  • Bug fixes
  • Georgian Translation – Thanks to Temuri Doghonadze


  • More bug fixes.
  • Minor changes to Menus.


  • Added Slovak Translation
  • Bug fixes.


  • Support for detection of external storage cards
  • Holo based theme and ActionBar support
  • Inbuilt file/folder browser
  • Open Conversation from Search result.
  • Lots of other internal changes


  • Added Dropbox support, needs Add-On v2.0+


  • Fixed a bug where default Preferences were not getting set correctly.
  • Fixed a bug where the app was crashing after a backup.
  • Added a basic Locale/Tasker plugin implementation.


  • Restore performance improvements on ICS phones like Galaxy Nexus.
  • Restore can now be cancelled.


  • Added Option to Adjust Timezone in the Received messages when creating Backups.
  • Timezone adjustment now uses the DST offset in calculations.


  • Added Option to remove a conversation from a backup. Long press on a conversation when viewing the backup and select “Remove this Conversation”
  • Fixed a bug where some invalid characters could make the backup corrupted. Thanks for Claus for helping with this one.
  • Added Greek Translation – Thanks to Michael and Dimitrios


  • Now clicking on the notification will open the app with the detailed message.
  • Bug fix for the app force closing trying to restore on some phones.
  • Added Translations:
    • Romanian – Thanks to Gabriel Peca


  • Added option to only restore messages sent/received since specified date.
  • Added Translations:
    • Traditional Chinese – Thanks to Bernie Huang
    • Korean – Thanks to HoeLyn Do
    • Norwegian – Thanks to Dag Jøran Hanssen
    • Danish – Thanks to Jeppe Leth Nielsen


  • Fixed a problem where new backup files do not appear properly when some phones like Galaxy Nexus are connected to a computer.
  • Updated translations.
  • Other minor bug fixes.


  • Experimental feature to automatically send emails after backup. Needs the SMS Backup & Restore Add-On app from the Market. Check Backup Settings for options.
  • Rearranged the Preferences screen to have Backup Settings in a separate screen.
  • Added Translations:
    • Macedonian – Thanks to Vlad
    • Turkish – Thanks to Hasan Gök
    • Hungarian – Thanks to Kojedzinszky Dániel


  • Option to choose the app language.
  • Email backup now includes the xsl file as well as link to the instructions.
  • New Icons. (Thanks to Vlad Kitanoski
  • Updated translations.
  • Trying another Ad Network.


  • Changes to the File Selector to make it easier to view/restore files from other folders.
  • Fix for app closing/crashing on orientation change on ICS.
  • Fix for scheduled backups not starting after reboot on ICS.

v 4.6:

  • Fix for Contact Names not appearing on Android 4.
  • Minor fix for Swedish notification message.
  • Trying a different Ad network.


  • Added a basic password protection for the app on launch.
  • Options to send a message and dial the number from the viewer and search.
  • Sent date now gets backed up and restored
  • Added Translations:
    • Slovenian – Thanks to TKL
    • Welsh – Thanks to Huw Waters
    • Czech – Thanks to Jiri Trcka


  • Potential fix for the incorrect Date/Time problem after restore on some Motorola phones. Special thanks to Dominick Young for his endless testing. Also thanks to John L Galt for his help.
  • Fixed sorting of conversations on some phones.
  • Added yyyy-MM-dd_HH-mm-ss as file name format.
  • Added a label to display the last backup date.



  • Needs READ_PHONE_STATE for getting around an error when restoring messages on some phones.
  • Potential fix for the missing conversations when selecting conversations to backup.
  • Updated Admob Library.
  • XSL file now gets deployed to the Backup folder if it doesn’t already exist
  • Added Translations
    • Polish – Thanks to MSZ & MR
    • Swedish – Thanks to Björn Lindahl
    • Estonian – Thanks to Margus Palu
    • Simplified Chinese – Thanks to Thomas Wang


  • Added basic search functionality.
  • Fix for the french language error during backup.
  • Added Translations
    • German – Thanks to Marc Hillesheim & Jan Allan Zischk
    • Dutch – Thanks to Kristof Roels
    • Portuguese – Thanks to António Silva
    • Italian – Thanks to Oliver Thomas Cervera


  • Added Translations
    • Finnish – Thanks to Juhana H.
    • Russian – Thanks to Pavel (Павел Миронов)
    • Spanish – Thanks to Miguel A. Alvarez
  • Some more bug fixes.


  • Fix for the “Delete Backups” function deleting wrong files in certain cases.


  • Fix for the “Send by Email” not working anymore.


  • Reverted back to the original color scheme.


  • New Icon
  • New UI
  • Browse button for selecting Backup Folder
  • Fix for some message types resulting in messages getting resent after restore
  • Check for state of the storage card before starting a backup.
  • Lookup for backup files in other folders when no backup file found in the configured backup folder.
  • Restore only a particular conversation (Long press a conversation from the viewer)
  • Various bug fixes


  • Hopefully the last fix for the errors introduced in v3.9.2
  • Added option to sort messages oldest/newest first in the message viewer.


  • More bug fix for contact name lookup errors.


  • Bug fix for errors during backup & restore on some phones.


  • Updated the viewer to show conversations in reverse chronological order.
  • Added options to adjust timezones when viewing or restoring backups.
  • Minor bug fixes.


  • Removed the option “System Default” from the Backup date format option which was added by mistake.


  • Added option to select the date format used when storing Readable Date in the backup.
  • Fixed a bug where Readable Date and Contact Name would be removed from existing messages in Archive Mode.


  • Internal change to make sure the Free version can co-exist with the paid version.

v 3.7:

  • Option to select conversations to be backed up.
  • Minor internal changes.


  • Fixed a bug with the Archive Mode where it would miss messages if a new message was deleted. If you are missing messages, I suggest a Full Backup to be on the safe side. Thanks to Jim for identifying this problem.


  • Faster Restore
  • Option to share from the viewer
  • More Scheduling options
  • Archive Mode
  • Verification
  • Locked Message Handling
  • Option to change the Backup Folder
  • Option to disable Notifications


  • Fixed the Illegal character problem on Android 2.2.
    Thanks to Juan and Justin for logs and testing.


  • Attempt at fixing the Illegal character problem on Android 2.2


  • Updated to Android 2.2 SDK.
  • Minor Bug fixes.


  • Added Progress Bar to be displayed during Backup and Restore.
  • Updated the contact list in the message viewer.


  • Added a basic message viewer.


  • Bug fix for blank numbers in SMS resulting in error when retrieving names.


  • Bug fix for Scheduled Backup resulting in Force Close in some cases.


  • Fixed a bug where the Restore would fail in some cases.


  • Added preference to Add the Contact Name to the backup.


  • Removed the Location permission requirement.
  • Updated the Admob Library.
  • Added tags specifying that low resolution phones are supported.


  • Fixed the option to choose the file name format.


  • Ads are back, with option to remove them
  • Scheduled Backups
  • Better handling of screen rotation


  • New (and hopefully better looking) Icons.


  • Scheduled Backups – Experimental till March 31 – Use at your own risk!
  • Fixed an Xml parsing error which resulted in “PI must not start with xml” error message.


  • Removed the Ads.
  • Added a BIG Donate button :-).


  • Added Preferences Screen with:
    • Option to disable Vibration.
    • Option to add Readable Date in the backup XML.
    • Option to add the XSL stylesheet in the backup XML.


  • Fixed a bug where restoring more than 1000 messages did not work properly.
  • Added a partial wake lock so the backup/restore/delete operation continues even if the phone goes to sleep.
  • Now vibrates after a backup/restore/delete operation is finished.


  • Fixed the bug where the selection of file during restore did not work properly and resulted in an error. Thanks Shawn for pointing this out.


  • Added button to facilitate selection of files to be deleted.


  • Fix for the wrong time stamp in the message threads after the restore.


  • Fix for the wrong month in the auto-generated file name.


  • Support for multiple backup files:
    • Backup asks to input a file name.
    • Restore asks to select a file.


  • Added Menu option to send the Backup file by Email.


  • Better handling of special characters in messages.
  • Added prompt during restore to confirm if duplicates should be checked.
  • Faster restore when not checking for duplicates.
  • Backup xml is now properly indented.

v0.3 BETA:

  • Now does not ask to delete (and does not delete) messages before restore.

v0.2 BETA:

  • Fix for the duplicate check during restore.

v0.1 BETA:

  • Initial Release.

Update: many people have reported errors encountered with SMS Exporter and although I’d like to fix those problems, its very difficult for me since I do not have a Windows Mobile phone and the application is using a 3rd party library to export the messages. If you are getting errors, please try the other ways below.

SMS Exporter:

Looking at the number of hits on my site about moving SMS Messages from WinMo to Android, I decided to try writing a simple tool to export messages from WinMo phones.

Click here to download SMS Exporter. This is an experimental application and since I do not have a Windows Mobile phone I have not been able to test it properly. Any feedback about this app is highly appreciated.

Download the .CAB file from the link above and install it on your phone. Running it will present you with a simple form with an “Export” menu.It will export messages into a SMS.xml file which can be directly imported into any Android phone using the SMS Backup & Restore app.

SMS Exporter uses the Pocket PC and Smartphone 99% .NET MAPI library to read the messages.

If the SMS Exported does not work for you then you can always try the following options:

Mario at Homebrew has written an excellent article explaining how to Import/Export/Move/Transfer SMS Messages from Windows Mobile to your Android Phone using PIM Backup and my App SMS Backup & Restore.

Pie at PieMaster has written another article and his own tool for Exporting from Windows Mobile. Click here to have a look.

This process works WITHOUT needing root access on the Android phone. Check it out!

Change Log:

  • Removed the BOM (Byte Order Mark) from the Xml.


  • Added UTF-8 encoding of exported file.


  • Fixed “Invalid type request”errors.


  • Added logging.


  • Initial Release

I have received a lot of emails & comments about adding an option to have Automatic/Scheduled Backups and I want to do that but I am in a dilemma about it. Right now the app displays an advertisement when its opened I get some cents from it every time someone clicks on those. When I add the functionality to add Scheduled Backups there won’t be a need to open the app often as its supposed to take the backups without the user needing to do anything.
I have the option of making a paid app which does not have ads and has the scheduled backups but Google has not enabled paid Apps for developers in Australia so I cannot upload the paid app in the Android Market. The other option I have is to publish the paid app on an alternate market like but I do not know if users will actually be willing to buy apps from there.

So, I would like to know what your thoughts on:

  • Would you be willing to pay for a paid SMS Backup & Restore app which is ad-free and has Scheduled Backups?
  • If yes, how much would you be willing to pay for it?
  • Would you be willing to buy the paid app from an alternate market like
  • Any other way you can suggest where I can get some monetary rewards to keep developing the app and other apps?

Please add your comments on this below or email me at: android at riteshsahu dot com.

Update: I’ve decided to add the scheduled backup option in the app and to keep the apps free for now, with a button to donate on each of the apps. There is a reminder to donate when using scheduled backups.