How I backup my phone

23 November 2022 by Lincoln Ramsay

I use a combination of TitaniumBackup and ssh/rsync to backup my phone.

I have TB backing up new user apps and new versions every night (with a filter so it only gets user apps, not system apps). It backs up changed data once a week (again only for user apps). Finally, it backs up the call logs and SMS/MMS once a week.

I don’t use TB’s remote backup support. Instead, I have a script that uses ssh (dropbear) and rsync to do an (erasing) mirror of the whole /sdcard directory, with a non-erasing copy of the TB directory. I use crond to actually run the script overnight.

The end result is that my server has a current mirror of /sdcard, plus the complete history of my TB backups, while the phone only keeps recent TB backups.

The script is hand-written by me. I originally used random dropbear and rsync binaries I found online, but recently compiled new ones from source in order to get up-to-date versions. These instructions proved useful.

My server sends me an email to let me know if the backup didn’t happen for some reason. There’s a log file I can check on the phone to see why it failed. Sometimes my phone drops off wifi overnight.

I have some scripts that help me manage the giant TB directory on the server.

I have used TitaniumBackup for a very long time. I paid for the Pro version after trying to move a backup from one device to another because silent install (crucial for batch operations) only works on Pro.

The thing is, Android has changed a lot from that first tablet and phone that ran 2.3, and TitaniumBackup hasn’t quite been able to change with it. Also, there’s some things that TB is just a bit picky about. Here’s a collections of tips I’ve developed over time:


  • Backup your call logs and SMS/MMS as XML. Restoring a snapshot to a new phone is almost guaranteed to fail but the XML backup seems to work reliably (I have 10 years of messages that have moved across 4 phones using TB).
  • To restore SMS/MMS, you need to manually set TB as the default app for messages or it’ll just freeze (not sure which version of Android this broke with).
  • You can’t reliably backup and restore system data so don’t bother to try (apart from call logs and SMS/MMS). I’m sure this worked a long time ago but it’s been unreliable since at least Android 6. System settings won’t really translate from one phone to another anyway, and useful things like wallpaper and widgets never worked properly anyway.
  • Downgrading apps stopped working (Android … 8?), but you can remove the current version and install the old version as a workaround. Home screen icons will go away when you do this 🙁
  • Many apps no longer even install via TB. My solution to this has been to download the apk manually from the internet (if it’s an old or non-store app), or to install the app from the play store and just restore the data using TB. Turning off “Verify apps installed via USB” in the phone’s Developer Settings menu helps this, though I have still had problems with some apps (seemingly failing to restore everything properly, leading to crashes when starting the app).