Wie ist das eigentlich bei Signal? Wenn man den Open-Source-Code dessen Clients 'runterlädt und selbst kompiliert (auch mit eigenen Änderungen), kann dieser sich dann mit den Signal-Servern verbinden? Wenn nein, wieso nicht und woran wird der "Nachbau" erkannt?
Wenn die Builds reproducible sind, dann dürfte für die Signal-Server eine Serververbindung identisch aussehen, wenn sie von einer selber gebuildeten App kommt. Ohne explizite Authentisierung der Verbindung kann das Signal nicht erkennen. Die App-Signatur ist dafür ja irrelevant.
Bei Threema wird das grundsätzlich auch so sein. Threema prüft aber seit einiger Zeit beim Erstellen einer ID (wie von Claus korrekt bemerkt) die Play Store Kaufquittung (oder die Threema-Lizenz, wenn Direktkauf). Das heisst, eine selber gebuildete (oder modifizierte) App kann zwar mit einer bestehenden ID aus einem Backup problemlos verwendet werden, allerdings kann man keine neue ID erstellen. (So ist zumindest der aktuelle Stand der Dinge.)
(Damit keiner auf blöde Ideen wie "Vor-Generieren von IDs" kommt: Die ID-Erstellung ist natürlich rate-limited.)