OpenPush - Ein freies Push-Nachrichten-Framework für Android

Push-Nachrichten sind ein wesentlicher Bestandteil vernetzter Mobilgeräte. Sie sind auch eines der entscheidenden, noch fehlenden Teile im Open-Source-Ökosystem von Android. Bisher mussten kostenlose Android-Apps entweder ein eigenes Push-Benachrichtigungssystem implementieren, auf Push-Messaging verzichten oder das proprietäre Google Cloud Messaging nutzen.

Wir erwarten von unseren Mobilgeräten sowohl eine lange Akkulaufzeit als auch sofortige Benachrichtigungen. Bei der Umsetzung einer eigenen mobilen Push-Funktion kann man in der Regel nur eines dieser Ziele optimieren. Dies trifft insbesondere dann zu, wenn der Anwender mehrere Anwendungen nutzt, von denen jede ihre eigene dauerhaft betriebene Verbindung für Push-Benachrichtigungen mitbringt. Um den mit dem Betrieb mehrerer Verbindungen verknüpften Akkuverbrauch zu bekämpfen, führte Google das Google Cloud Messaging (GCM) Framework ein, das vor kurzem zum Firebase Cloud Messaging (FCM) wurde. Firebase Cloud Messaging verlässt sich auf das auf einem Android-Gerät zur Verfügung stehende, proprietäre Google Play Services Framework. Die Nutzung von FCM erfordert außerdem die Einbindung der proprietären FCM Client Library in Open-Source-Android-Apps, wie Signal, Wire oder selbst Firefox, was diese im Prinzip zu nicht-freier Software macht, die nicht über das vollkommen freie Software-Repository von F-Droid vertrieben werden kann. Darüber hinaus müssen alle von FCM gelieferten Push-Nachrichten Google-Server durchlaufen, auf denen sie eine Metadatenspur hinterlassen, selbst wenn es sich um ein leeres Aufweck-Ereignis handelt oder der Inhalt der Nachricht verschlüsselt ist.

Dezentralisierte, selbst gehostete Systeme wie Matrix, Nextcloud oder RocketChat sind derzeit noch von Googles Infrastruktur und Nutzungsbedingungen abhängig, um Push-Benachrichtigungen zu liefern. Die F-Droid-Versionen dieser Apps müssen auf ineffizienteres Polling zurückgreifen oder es fehlt sogar jegliche Unterstützung für Benachrichtigungen.

OpenPush ist die Umsetzung eines selbstgehosteten, freien, alternativen Push-Nachrichtendienstes, der sowohl parallel zu FCM als auch als dessen Ersatz betrieben werden kann.

OpenPush wurde auf der FOSDEM präsentiert. Der Vortrag vermittelt einen Überblick über den generellen Aufbau und durchläuft die Schwierigkeiten, was Design und Implementierung eines Push-Nachrichtendienstes betrifft.