Backing up Android with BitTorrent Sync and TitaniumBackup

With BitTorrent Sync being available on Android, this means you can simply and securely make a backup of your Android device to your home computer using Titanium Backup and BitTorrent Sync from anywhere. The beauty of this method is that there's no middleman you need to trust with your data as it's encrypted from end-to-end.

To follow this guide, you'll need to install Titanium Backup and BitTorrent Sync on your Android device and BitTorrent Sync on your computer.

Photo Backup

BitTorrent Sync makes photo backup a trivial process. Simply launch the BitTorrent Sync app and select the BACKUP tab. Tap the add folder button and select the DCIM folder from your sdcard. Make note of the secret key that is generated.

Now, from the BitTorrent Sync client on your computer, add a new sync folder using the secret key generated on your phone and a location for the backup on your computer. Once complete, your devices should connect and being transferring data.

Note that, by default, BitTorrent Sync will not backup over cellular data, but that can be changed in the settings if you have the data available to do so.

App Backup with Titanium Backup

Note that Titanium Backup requires root to run.

  1. Setup Scheduled Backups in Titanium Backup

    In order to keep an updated backup, you need to enable scheduled backups in Titanium Backup. There are two profiles that come pre-setup with Titanium; one that backups new apps, and one that checks for changed data in previously backed up apps. The defaults are reasonable, but I like to update them to run more frequently. I set the modified data check to run daily and the new app check twice a week (Wed and Sun).

    Check to enable both scheduled backups.

  2. Setup BitTorrent Sync on Your Phone

    Just like with photos, you'll want to add a new folder to the BACKUP tab in BitTorrent Sync. The directory you want to add can be found in the Overview tab of Titanium Backup. The entry you're looking for is "Backup directory". It should be something like "/storage/emulated/0/TitaniumBackup". Make note of the secret key generated on the phone.

  3. Setup BitTorrent Sync on Your Computer

    Again, from the BitTorrent Client on your PC, add a new folder using the secret key from your phone. The devices will connect and you're on your way to having a backup of all the apps on your Android phone.

Notes

  • In order to have a continual backup, your computer will need to be on all the time. If that's a problem, you might benefit from a Raspberry Pi + BitTorrent Sync setup.
  • By default BitTorrent Sync only backups over Wifi, this is probably what you want, but it can be changed if you have the data available on your cell plan.

Single Point of Failure

Why I no longer use Google for everything

Periodically a story makes the top of Hacker News about someone who's just had their Google account disabled. Every time I read those stories, I think through what would happen if my account got disabled, and as you might imagine, it wouldn't go well for me, since I don't have any good friends who are Google employees who could bail me out.

I don't have any problem with what Google's doing, and I still intend to use some of their services, but it has become a massive single point of failure for me, and I don't have any recourse if something happens, since Google has no support.

I've decided to fix that by switching to separate providers for the services I depend on. Here's the breakdown of what I'm switching and what I'm keeping.

Switching

Email

This is the most important service I'm switching, since it's what I use and depend on the most. I've tried a number of alternatives, and I've decided to go with Fastmail, since they support custom domains, IMAP, SMTP, and have a nice web interface. It's also not expensive for 10GB of space at $40/year (or $32/year if you prepay 5 years). Fortunately, I've been using my own domain with Google Apps, so this switch will be completely seamless for everyone I communicate with.

Email Clients

As a side effect of dropping Gmail, I also needed to switch mail clients on my Android and iOS devices. The key feature I need in a mail client is identites, since I send mail from my custom domain, not the Fastmail account username. On iOS, this is simple, since the native mail client supports sending from a different email address.

Android however, does not support this in the native Mail application, so I had to find a good alternative. The one I ended up with is Kaiten Mail, which is excellent and well worth the $5. It has support for Identities, archiving mail and a plethora of customization options. My only gripe with it is the icon, which looks a lot like a trash can.

Contacts and Calendar

While Fastmail does provide contacts, they don't offer CardDAV syncing, which makes them unavailable on Android and iOS. My solution is to use a separate service, a self-hosted instance of Kolab for both Contacts and Calendar. This works with iOS and Android, since it has support for ActiveSync. It also has a very solid web interface for managing both.

I've also been experimenting with ownCloud's Calendar and Contacts, but I'm unimpressed with their web interface and I probably won't keep it. The main reason I'm trying it is the CardDAV and CalDAV support, since those protocols work well across all platforms, desktop and mobile. Kolab has announnced support for both in the next version, so I think it's still the better choice.

CalDAV/CardDAV Support (Mobile)

This is mostly for my own reference once Kolab has support for CardDAV and CalDAV - iOS has native support, Android does not, but there are good sync adapters available from Google Play for both - CardDAV-Sync ($2) and CalDAV-Sync ($2) which both support 2-way syncing.

Reader

I've been largely off of Reader for a while, since it's been obvious Google didn't care about it. The only place I still use it is on iOS, since it's the only service my favorite RSS reader (Byline) syncs with. Other than iOS, I've moved all my feeds over to both NewsBlur and Feedly, and have been alternating between the two. I'm waiting for the dust to settle after Reader shuts down to decide which I'll stick with.

Music

I'm setting up ownCloud to replace this as well. I'm using ownCloud's file sync to move Music up to a server and then for playback I'll use a separate tool (ownCloud has a built in music player, but it doesn't have many features for filtering albums or artists.) My intention is to setup, Ampache, Subsonic, Jinzora or something else on the server to use for playback and streaming.

This is an area where I might end up back with Google, since nothing I've tried has been very good and I also have everything in Amazon's CloudPlayer, so it's not really a single point of failure for me.

Keeping

Voice

I haven't found a good alternative to Google Voice; SendHub is close, but it's missing a number of key features like SMS to email and at $25/month for 500 minutes it's a little expensive on top of a cell phone bill. My current plan is to start experimenting with the Twilio API to see if I can duplicate the most important features of Google Voice myself.

Docs / Drive

I don't use Docs enough to merit finding an alternative and I already use Dropbox for syncing.

Search

Google still has the best search engine. It's also not strongly tied to my account, so I don't have to worry about losing data.

Summary

I have a few final thoughts on this process:

  1. Google's great on the wallet

    Google's offerings are free, which is really hard to beat if you're trying to be economical. However, that comes at the cost of no support. Now that I'm out of college and have an income, but less time, I'm willing to pay for support and the assurance a service isn't going away.

  2. Google's/Microsoft's/Yahoo's/etc... free offerings suffocate markets

    Looking around for good alternatives to products Google or Microsoft offer for free is really hard. There's no really good open solutions for online calendaring, or, until the recently announed death of Reader, RSS readers. Nobody wants to compete with Google.

  3. Rent a dedicated server

    Nothing gives you more flexibility than having a big beefy dedicated server to run VMs on. When I want to test a new tool, all I have to do is clone a template VM and install it. If I like it, I keep the VM, if not, I delete or archive it and move on.

That's my experience switching from Google. If you have suggestions for good alternatives I'd love to hear about them. Feel free to post a comment or tweet @justjohn.