Remix.run Logo
poisonborz 7 days ago

Backing up Signal on Android for free and offline was ~always possible. The app creates a multi GB backup file on the phone memory under the Signal folder that you can just copy out and back on a new phone.

The file is encrypted with the passcode and the database can be extracted.

https://github.com/bepaald/signalbackup-tools

Sesse__ 7 days ago | parent | next [-]

There are a couple of problems with the existing backup:

1. It is non-incremental. This means you'll need about as much free space on your phone as your Signal database takes, and it may take many hours to make if your database is large (mine is 18GB). I used to wake up to find my phone had not even fully charged because it had been so busy writing Signal backups.

2. Once you have it on disk, how do you get it away from your phone? Especially after SyncThing disappeared from Play Store (because it was basically a non-Android app behind a thin Android shell that couldn't easily be upgraded to more modern native APIs), there's nothing super-obvious here.

I would have loved a better solution for local backups, but realistically, $2/month for cloud backup is really cheap, and a pragmatic solution.

dns_snek 7 days ago | parent | next [-]

> Especially after SyncThing disappeared from Play Store (because it was basically a non-Android app behind a thin Android shell that couldn't easily be upgraded to more modern native APIs), there's nothing super-obvious here.

That's not what happened, it was Google who started rejecting their updates on Play store. I believe the original Android app maintainer quit after that but there's a fork on on F-droid which works perfectly.

graemep 7 days ago | parent [-]

fork that will work perfectly until year after next.

npoc 6 days ago | parent | next [-]

Not if you run the GrapheneOS variant of Android.

graemep 6 days ago | parent [-]

I would love to but my banking apps only work on Google Android.

npoc 5 days ago | parent [-]

Unlucky. All three of mine work on GrapheneOS

https://privsec.dev/posts/android/banking-applications-compa...

Zambyte 6 days ago | parent | prev [-]

Why?

cyphar 6 days ago | parent [-]

Presumably they're referring to Google's plans to roll out developer signing requirements for all apps[1], which will affect F-Droid-installed apps.

[1]: https://news.ycombinator.com/item?id=45017028

Sanzig 6 days ago | parent | next [-]

Assuming that the developer of Syncthing-Fork doesn't mind providing ID to Google, they shouldn't have an issue getting a signing key (we will see how this works in practice). They aren't doing anything objectionable to Google.

The bigger issue for third party apps will be things like Newpipe, where applying for a key will put the developers in danger of a lawsuit because it affects Google's business.

(The APK signing requirement is a fiasco, I'm not defending Google. Just pointing out that this app will probably not be as seriously impacted as others).

sunaookami 6 days ago | parent | prev [-]

FWIW, adb install will continue to work: https://www.notebookcheck.net/Android-s-app-sideloading-bloc...

zamadatix 7 days ago | parent | prev | next [-]

The $1.99/m is not for the up front work of fixing what sucks about current backups though, it's just bundling those fixes in with YACSS (Yet Another Cloud Storage Subscription) is the only way to get people to pay their "reasonable" recurring fee.

People here seem to want to answer the question of how to copy data most directly, but only because that's how the problem was phrased. I'm not convinced "users had no way to sync data on their phone" was/is a real problem worth paying for YACSS for in the first place.

andrepd 7 days ago | parent | next [-]

Explicitly, from TFA:

> But secure backups aren’t the end of the road. The technology that underpins this initial version of secure backups will also serve as the foundation for more secure backup options in the near future. Our future plans include letting you save a secure backup archive to the location of your choosing, alongside features that let you transfer your encrypted message history between Android, iOS, and Desktop devices.

zamadatix 7 days ago | parent | next [-]

Yeah, they're definitely fully aware. If they ever do actually get cross device local backup I'll be particularly pleased, several years back the stance was basically "working as intended".

Tepix 6 days ago | parent | prev [-]

Looking at how long it‘s taking them i wouldn‘t hold my breath!

godelski 7 days ago | parent | prev [-]

Not to mention that this is a pretty good way to fund Signal. That's always been a challenge with Open Source projects as not enough people want to donate. On that note, a lot of companies will do donation matching and just saying, that's one way you could go about it if you feel inclined. For an app I use every day, I don't mind throwing them some beer money (and having work pitch in too). I get more utility out of it than my Spotify subscription

stevenwalton 7 days ago | parent | prev | next [-]

  > Once you have it on disk, how do you get it away from your phone?
Since we're talking about Android, a great method is to just use Termux and rsync. You can write a pretty quick and dirty shell script to accomplish this. Here, I'll drop mine[0]. It's no the cleanest but it'll get the job done and has some documentation to it. It will check if you're on WiFi and connected to a specific SSID. You can change this around pretty easily to do different things like point at 2 servers, use Tailscale, give a white list of allowed SSIDs, change the rsync to have it delete from the local storage, or whatever. If you don't know how you can reply to this comment or open an issue and I'll respond[1].

Unfortunately this doesn't work on iPhone. I have a shortcut that will do something similar that I can share but that is a lot hackier...

[0] https://github.com/stevenwalton/.dotfiles/blob/master/script...

[1] Probably better. I'm normally logged into my alt account

autoexec 7 days ago | parent | prev | next [-]

> Once you have it on disk, how do you get it away from your phone?

plug your phone into a computer? Install Termux and use one of the countless command line programs designed to transfer bits over a network?

codethief 6 days ago | parent [-]

I think GP was talking about how to transfer the backup 1) daily, 2) in an automated manner, and 3) reliably and in time (before, 48h later, Signal overrides the existing backup on your phone later with a new one).

This is not trivial when each backup archive is in the order of 20 GB.

justoreply 7 days ago | parent | prev | next [-]

You can still use https://f-droid.org/en/packages/com.github.catfriend1.syncth...

whatevaa 7 days ago | parent | prev | next [-]

On Linux KDE connect can mount your phones filesystem as FUSE filesystem and then you can use desktop file explorer like dolphin. It's even integrated and automatically apears as an option. Quite convenient, I would say. Performance is pretty good too.

andrepd 7 days ago | parent [-]

Any Linux desktop can do that via MTP (Google doesn't allow access as mass storage anymore)

jowea 6 days ago | parent | next [-]

Maybe it's just me but doing a big transfer over cable is a crapshot since it will disconnect midtransfer. KDE connect is a bit better but syncthing is the best solution still.

taylortbb 7 days ago | parent | prev [-]

Doesn't MTP require plugging in a USB cable? KDE Connect works wirelessly as long as your phone and computer are on the same network.

godelski 7 days ago | parent [-]

KDE Connect just uses an SFTP file mount. You can do that on any system that you can ssh.

But I wouldn't use that for backups, I'd use rsync.

https://wiki.archlinux.org/title/SSHFS

Dunedan 6 days ago | parent | prev | next [-]

> There are a couple of problems with the existing backup:

>

> 1. It is non-incremental.

I wonder if that's differently with the newly announced functionality. Their announcement doesn't sound like it:

> Once you’ve enabled secure backups, your device will automatically create a fresh secure backup archive every day, replacing the previous day’s archive.

Dunedan 6 days ago | parent [-]

@greysonp verified they're indeed incremental for media: https://news.ycombinator.com/item?id=45170515#45175402

aftbit 7 days ago | parent | prev | next [-]

I would use scp under Termux to copy the backup away personally.

nottorp 7 days ago | parent | prev | next [-]

> Once you have it on disk, how do you get it away from your phone?

adb pull no worky? At least for HN readers.

Sesse__ 7 days ago | parent [-]

Any backup that needs manual intervention is no backup.

dmesg 7 days ago | parent | next [-]

Even automatic backups run at intervals to cause less server load. The article says you absolutely have to write down your restore key too (They say notebook or PW manager).

It may seem obvious now, but I know most people will forget and be puzzled if their phone suffers physical damage. A lot about this has mandatory manual steps.

kelnos 7 days ago | parent [-]

I think you misunderstand. Any backup that requires a manual step every time a backup is created is not a backup. A backup that requires some one-time manual setup, like recording a restore key, is fine.

Yes, there are some people who will forget to do that, or just lose the restore key, but that's the security/usability trade off.

nottorp 7 days ago | parent | prev [-]

Thought people are talking about backups without a "cloud" involved. So you'd need to manually connect your phone to something...

nine_k 7 days ago | parent | next [-]

Wireguard + syncthing (from F-Droid) work fine. Triggering it when the phone is on the charger makes it very easy to sync things from a computer to the phone, while next to the computer.

hiq 7 days ago | parent [-]

To be clear, Signal + Syncthing also works fine, that's what I have.

XorNot 7 days ago | parent [-]

It absolutely does not work fine. Keeping 2x the size of my database in free space on my phone to let backups work it's no solution at all, which is why I stopped doing it. (The backup creates two files - current and previous, and Syncthing can't remove complete files to another location, so you need an actually rather difficult to write script to do it).

roywiggins 6 days ago | parent | next [-]

I never really grokked Syncthing.

I recently vibe-coded a crappy Windows Go GUI to grab files off my phone via rclone & sshd4a and then optionally delete them, but it's a very manual process since sshd4a has to be running on the phone before I initiate the pull.

XorNot 6 days ago | parent [-]

Syncthing is just open source Dropbox, self hosted.

It's entire purpose is "make two folders identical".

It's very good at that: so good that I frequently wish it did other things - i.e. if it had some notion of minimum seeding levels so it would destage files off a device provided they were replicated elsewhere (e.g. automatically clearing old photos off your phone would be a good use of it).

roywiggins 6 days ago | parent [-]

Yeah, I think I was just trying to get it to do something it wasn't suited for!

nine_k 6 days ago | parent | prev [-]

I see. I was talking about Syncthing in general, not about the specific way of backing up Signal.

Sesse__ 7 days ago | parent | prev [-]

What? My phone has a perfectly working 802.11 chipset, which is able to talk to my very own machines that are not in a cloud, no manual connection needed. This is purely a software/ecosystem issue.

dmesg 7 days ago | parent [-]

Imagine we could run the backup server backend self-hosted and FLOSS. Like Vaultwarden, the upstream bitwarden client API.

UltraSane 6 days ago | parent | prev | next [-]

USB transfer is by far the best way to transfer large amounts of data to and from phones.

codethief 6 days ago | parent [-]

Really? Ever since Android devices ceased to be regular USB storage devices and switched to MTP, this has never worked well for me. MTP is incredibly slow.

UltraSane 6 days ago | parent [-]

What method do you find to be faster?

roywiggins 6 days ago | parent | next [-]

MTP is so slow that when I have enough photos and videos on my phone, Windows will crap itself and stall out just trying to list the folder. It's functionally unusable and I don't know how I'd get those files off the phone if I didn't use literally anything else. If it was mass storage I could just rsync it over USB but it isn't so I can't.

I ended up using rclone on Windows with an rsync server running on the phone, I think sshd4a usually.

codethief 6 days ago | parent | prev | next [-]

Pretty much any other: Connecting my phone to my computer as USB storage (when it was still possible), connecting a thumb drive to my phone, syncing files using Syncthing, using adb, …

kzshantonu 6 days ago | parent | prev [-]

Copyparty running in termux serving over USB tethering

bmicraft 7 days ago | parent | prev | next [-]

Foldersync is a great app

jp191919 7 days ago | parent | prev | next [-]

>2. Once you have it on disk, how do you get it away from your phone? I've been using Nextcloud for my backups for the past couple years.

aaron_m04 6 days ago | parent | prev | next [-]

#1 does suck very much.

My solution for #2 is an sshd I start up in Termux when I need to backup. I just rsync the file onto my computer.

h4ck_th3_pl4n3t 6 days ago | parent | prev | next [-]

How can an encrypted backup be incremental if it's supposed to be never decrypted on-remote-machines?

Ever thought about that?

tremon 6 days ago | parent | next [-]

Why would you need remote data to create an incremental backup?

codethief 6 days ago | parent | prev | next [-]

I'm sure if borgbackup can pull this off, Signal can, too?

The solution is to split up your data into encrypted chunks, and only upload the new ones.

zorgmonkey 6 days ago | parent | prev | next [-]

Why wouldn't it be possible? All it really means is that you need to do the work to make incremental entirely on the local side and not on the remote side.

palebluedot 6 days ago | parent | prev [-]

That seems pretty trivial to implement

h4ck_th3_pl4n3t 6 days ago | parent [-]

I dare you to implement this then, where others have failed.

Sesse__ 6 days ago | parent [-]

tar --listed-incremental=foo.snar -cf - . | gpg --encrypt -r <key> > nightly.gpg

You're welcome.

5 days ago | parent [-]
[deleted]
jcynix 7 days ago | parent | prev | next [-]

> Once you have it on disk, how do you get it away from your phone?

On Android? Easy, Termux app and then rsync to my Desktop/Laptop. Or via Solid Explorer. Or E-Mail via Blitzmail.

Non incremental is a suboptimal design decision, backups should be incremental, e.g. monthly if automated or with from-to dates.

arccy 6 days ago | parent | prev [-]

at least on android: you use a good old usb-c cable.

growse 7 days ago | parent | prev | next [-]

Personally, I find that having orchestrate and regularly schedule the exporting of that file off my device to somewhere else, and then look after it there to be not "free".

The new offering is reasonably priced imo.

_heimdall 7 days ago | parent [-]

Agreed. I prefer setting it up myself and have had Signal backing up to my home server for a few years now, but for most users an opt-in with a basic free tier and cheap enough paid plan makes a lot of sense.

Glad to see they're finding potential revenue streams that don't compromise their focus on privacy and security.

dcow 7 days ago | parent [-]

They even say they’re committed to offering BYO storage as the feature matures

jacooper 6 days ago | parent | prev | next [-]

This trick never worked for me, the app just never restores this. People used to say the same about WhatsApp. Now both have direct migration features.

tjoff 7 days ago | parent | prev | next [-]

Yeah, didn't see it mentioned, I trust it will still be available?

halyconWays 6 days ago | parent [-]

I bet they'll phase it out and try to force their worse service, wherein your data is stored on their servers, like they tried to do with PINs. It took enormous pushback to get them to stop mandatory PINs, and even then they made it nagware for a year or two.

I didn't trust their rationale about PINs and remote attestation somehow meaning your data is secured by a small passphrase, just like I won't trust them to not remove a useful and existing feature I already rely on for backups.

Also not mentioned, they designed their existing backup solution to require reverse-engineered community solutions to actually access your data; I have to use a Github project to unencrypt the backup and export my chats, which is something I've never had to do with any other messenger.

codethief 6 days ago | parent [-]

While I understand (and share) your criticism, it does sound like they'll continue to support local backups:

https://news.ycombinator.com/item?id=45171576

https://news.ycombinator.com/item?id=45172188

halyconWays 6 days ago | parent [-]

From your link, I wish they would answer this, and they've been asked numerous times, and to my knowledge have avoided the question (which is very concerning to me):

>This is excellent news! Will there also be official documentation on the backup format, potentially even official tooling like signalbackup-tools[0] to access/parse backups offline? I'm asking because, having used Signal/TextSecure for 10 years now, my backups are worth a lot to me (obviously) and there have been times when I would have liked to mine & process my backed-up data. (Extract media from conversations in an automated manner, build a more elaborate search, …)

I'm like that poster and backup all my chats obsessively, since way back in the day, and experienced a period with Signal where it was impossible for me to access my own data because of their position.

codethief 6 days ago | parent [-]

> I'm like that poster

So you're like me :)

Greyson answered my question btw.

anilakar 6 days ago | parent | prev [-]

If you restore the backup on a new phone, you'll have to resync all desktop machines, and at least on Windows syncing old messages has never worked for me.

poisonborz 6 days ago | parent [-]

Signal never syncs old messages on secondary clients for security reasons.

anilakar 6 days ago | parent | next [-]

They do. They also offer to do it when you link your desktop client, and like I said, it works on Linux but gives an error message on Windows.

Also, considering that linking requires access to your existing device I don't see an issue with that. Moxie himself considered usability to be more important than tinfoil hat-level crypto because large-scale adoption is what enables security.

AnonC 5 days ago | parent [-]

> They do.

The limitation is that only message history from the past 45 days would be synced. If this has changed recently to allow syncing all message history, I’d be thrilled!

privacyking 6 days ago | parent | prev [-]

I don't think that's true anymore. They added message history syncing