2
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
"Operation: Paperthin" hits the presses
My last phone died suddenly at the end of last year. Despite knowing better, I had no backups, losing ~15 years of messages, contacts, and other data from my phone. I was somewhat lucky that recovery was possible (but costly).
Given that I might not be as lucky in the future, I need to make the sudden loss of my phone as painless as possible.
Goals
Make my phone a "thin client" (I know I'm bastardizing the term, but it's a useful north star).
Data should not only live on my phone; my phone should never be a singular point of truth for anything I care about. Either:
As a byproduct, I hope this also makes the process of switching phones easier
Requirements
/storage/emulated/0/Challenges
We're almost 20 years into Android, and its backup story is still dogshit.
The best option on stock, non-rooted Android is Google's backup system which I don't think is great:
Google says, duplicitously:
httpsApple was doing full, offline backups of their devices back in the late 2000s!!
Solution
Contact syncing was pretty painless. I set up radicale a couple months ago and its been rock solid.
Initial Plan
For everything else, I initially planned to reduce the problem to a file sync problem:
This transformed the backup problem into "how do I mirror files from my phone to my backup location".
Syncthing seemed like the solution that most people used. But I wasn't filled by confidence seeing how the official Android client was discontinued, or the seemingly fragmented stewardship of the community fork.
What I Actually Did
In comes Seedvault. It's essentially Google's backup system, but backups are incremental, encrypted and stored on your own storage. That means that it shares the same limitations with respect to app backups, but it was good enough for me.
The real catch is that Seedvault needs to be integrated at an OS level, which practically means that you need to install a custom ROM to use it. Luckily, I'd been somewhat interested in doing that since the Cyanogenmod days so I spent an afternoon prepping the swap and installed a new ROM on my phone.
From there, it was just a matter of configuring which folders and apps I want to backup, and it's been running daily ever since.
Epilogue
I do have some concerns about this solution...
I've read that some people have had reliability issues with Seedvault. I'm currently unsure whether its SMS backups are actually doing anything for me right now, since it claims to have backed up 1.0 MB of data for a corpus of messages I know is substantially bigger.
The right thing to do would be to reset my phone again and validate the backup, but I have yet to summon the willpower.
It seems like using web apps instead of native apps might help a lot with this?