How to move to Signal which only use websockets from a gcm using version without losing the message history

I asked myself if there is any possibility to move to the websocket version of Signal and take over the messages (I used Signal with gcm for several years now, as this was the only way to get push notifications in the past).
As this was the only reason to install and setup microG on my FP2 (currently running FPOpen 17.09.3) I can now remove microG as well (as Signal supports websockets since some month).

The problem is when I uninstall microG Signal always asked for PlayServices as it reached them before.
I can take a backup (I prefer oandbackup) uninstall Signal download the websockets supporting version from https://signal.org/android/apk/ (as far as I understand this is the only way to get it? ) and restore my data again. But this leads to
Permanent Signal communication failure! Signal was unable to register with google play services
again.
If I just start the websockets version the information pops up that the play services are missing on my phone and I can register without any problem. Unfortunately the messages are missing if I do so.

Is there anybody out there who wanted to move to Signal websocket version and keep the messages? If yes? How to do it? (maybe the message are somewhere stored in a file [in my case encrypted within Signal with a password] I can just copy and put back after the websocket installation and registration)

Thanks for any tip in advance…

1 Like

Have you tried importing and exporting the messages in Signal? (The main menu has the option “Import / Export” > 'Export plaintext backup" … and then import them with the new installation same way.)

Yet, this only covers the text messages itself, any binaries / media that were transferred in Signal will probably be lost in the process. Don’t know whether or how Signal itself provides a full backup option including media…

2 Likes

I’d recommend having a plain backup in case something goes wrong and follow the following steps (:warning: they are quite experimental and not tested as a whole):

  1. Install Signal from the website APK and re-register your phone
  2. Restore the oandbackup backup, only data
  3. Download and install Preferences Manager from F-Droid
  4. Open PM, give root permissions and click on the Signal entry
  5. Scroll down to the pref_gcm_disabled and toggle it to true, then press Update
  6. Toggle the pref_gcm_registered to false, then press Update
  7. This might be optional; try without doing this, and came back later if something doesn’t work: Remove every other pref_gcm_* entry below
  • (Don’t filter preferences by searching! Filter currently has a bug)
  1. Reboot your system
  2. Check if other people can actually reach you!

If something goes wrong and your Signal is not useable, then you can still clear the app data and restore the plain text backup.

PD: if someone would try this with microG installed, contact me before. It’s tricky and error-prone.

Hi @amers, thanks for your reply and yes I assume that the messages can somehow exported and imported on this way but the media stuff will be gone.

Here is how I resolved it on my own.

From my perspective there is no way around a re-register (unregister under gcm and register the websocket version) what will lead to a message like

Safety number has changed

at your contacts in the the conversation with you.

What you need:

  • a smartphone which is able to communicate with Google Cloud Messaging (GCM) Services → this can be:
    ** a old phone which has Play Services installed (in case you would like to migrate to a google free new smartphone) or
    ** the same phone where you would like to uninstall all Google related services (like in my case a system with a working mircoG installation which is able to contact GCM) and go on with Signal websockets version - at least at the beginning of the procedure GCM has to work without any problem (later you will uninstall it of course).
  • a working backup recovery tool for your android version (as explained I prefer oandbackup but Titanium Backup and so on should work as well) → at least it should be able to backup and restore data of apps
  • if you use two phones (like I did as microG was not fully working on my “new” phone after an Upgrade anymore) the backup tool should of course work on both and you need a possibility to transfer the Signal Data backup from one to the other. (microUSB-Stick, adb, syncthing, … what ever works for you)
  • The phone where you want to do this should be rooted and run a custom rom of course (like FP Open in my case) - otherwise a lot of the steps might not be possible

Procedure (doing everything on one phone):

  1. on the phone where your Signal Installation, with a working GCM communication and with all your data you would like to keep, is running unregister from Signal messages within the App (Settings → Advanced → “slide” Slider “Signal messages and calls” to the left and agree) … the whole thing is most easy if GCM communication still works on the same phone where you would like to switch to no Google Services (uninstall) and websocket version of Signal.
  2. perform a backup - at least data - of the Signal App. (in my case the backups will be stored under: /storage/emulated/0/oandbackups in addition most of these tools provide a possibility to change the “backup-to” and “restore-from” path)
  3. uninstall Signal and remove everything which has todo with the communication with Google Services (gApps or like in my case microG)
  4. re-install Signal again (use the websocket supporting version - you get it here: Signal >> Signal Android APK I cannot ensure if websockets will work with a version you get e.g. via yalp store)
  5. restore the data-backup you made under step 2 (it is better when the Signal App and the background process for websockets is not running - if this is the case go to Apps under Settings of your phone and “force (Signal to) stop”)
  6. start Signal (if your messages and media store was encrypted by a password before you will be asked for it as normal)
  7. register for Signal messages again - within the App (Settings → Advanced → “slide” Slider “Signal messages and calls” to the right; Type in your number and agree/register)

Congratulations Signal is running with websockets now and you did not lose any of your messages or media-stuff you had before.

Why I used two phones to reach my goal? (this should be helpful for a migration from one to another phone):
I stuck at point 1 as microG was not fully working anymore (on my Fairphone 2 after the upgrade). Signal crashed everytime I tried to unregister (I assume the reason it it has to communicate with GCM to unregister - if this is not working it leads to a crash … just an assumption).
Even working around this with unregister via website - Signal offers such a possibility https://signal.org/signal/unregister/ - did not help as the data backup was from a “GCM version registered App”.
So I had to move my backup to my old phone with gApps installed (a Nexus 5 with CyannogenMod) and restore it there → unregister → backup again and move the un-registered backup back to my Fairphone.

While writing this @Roboe updated this topic as well and I see that pm might be another possibility to move the “Slider” for registration on this level. I did not try this yet but this might obviate the need of a second phone. Thanks @Roboe.
Maybe this also provides a way around the necessity of the re-register in general.

3 Likes

Nope, I prefer your solution. It’s less hacky, I think that’s the way to go!

Thanks for sharing your investigation, I’ll use that knowledge in the coming days. I plan to reinstall Signal without microG working (i.e. without signature spoofing, then enable it later) to avoid data leaks to Gobble, :slight_smile:

Hey @Smojo and @Roboe!
Thanks for sharing your ideas! I had the same problem as @Smojo after I wanted to change to websocket and thus tried to unregister, which lead to an unusable app (I couldn’t re-register). I had been struggling with this for a few weeks now, but today I could in fact solve it with @Smojo’s proposed procedure. Thanks a lot for this!


By the way, another problem I had with the plainext backup was a serious one: It didn’t restore group chats, but all the messages from group chats rather just got integrated into the personal chats with the group member, respectively - in chronological order in between all the personal messages. This was a hole mess!
In fact, I don’t remember what actually happend to the messages I wrote in all the group chats. Maybe they just disappeared? Or they got integrated into personal chats randomly (or in all of them)?

To cut a long story short: If you have any group chats, the plaintext backup is (in its current state) not usable!

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.