Open source and privacy aware Push notifications for mobile phones


The popularity of instant messaging services is ever rising. The metadata exposed via the usage of these services is personal and therefore very sensitive. Open source services like Signal or Wire try to improve in this regard by going some lengths to protect their users privacy. Still, even when using these services, part of the communication metadata is shared with third parties through the use of proprietary push messaging services. These services are critical for waking up devices when new messages for the end user arrive, to download the message and display a notification. Not using these central services comes at the cost of higher network and battery usage on users’ end devices. To remedy this issue, I present Push Adapter. It is an open source platform for Android apps to allow pushing of messages via a service that can be hosted by any interested party. A persistent connection is shared for receiving push messages, minimizing battery and network data overhead. Furthermore, it includes an Android library to ease integration in apps that currently employ Googles’ Firebase Cloud Messaging (FCM) service to receive push notifications. To prove the usability of Push Adapter, the open source instant messaging app Wire was forked. It was retrofitted to push messages via Push Adapter instead of FCM. This implementation is described and evaluated. My measurements of battery usage and network bandwidth overhead using the original version of Wire and my fork show that Push Adapter incurs only half of the network overhead when compared to FCM. Additionally, battery lifetime of an Android device was evaluated, which showed that Push Adapter can deliver messages more reliably than FCM while using comparable amounts of the device’s battery. To my knowledge, Push Adapter is the first open source implementation of a push notification service that tries to replace FCM in its entirety. Furthermore, Push Adapter is designed to be easily retrofitted with existing apps that currently use FCM.