Beeper Mini: Beeper Brings iMessage to Android Via Reverse Engineering

Beeper Mini, a new app from the creators of Beeper, has successfully integrated Apple's iMessage protocol with Android devices, allowing Android users to send and receive iMessages. This breakthrough was achieved through reverse engineering the iMessage protocol, enabling direct communication with Apple servers and bypassing previous security concerns associated with third-party relay servers.

The team behind the universal chat app Beeper has unveiled a new application, Beeper Mini, designed to bring Apple’s iMessage service to Android devices. This innovative app marks the first instance of utilizing the native iMessage protocol directly on Apple servers for sending and receiving messages on Android.

Beeper Mini’s approach is a departure from previous methods of integrating iMessage with Android, which often involved questionable practices using relay servers on Mac servers. These earlier techniques raised security concerns, as they potentially allowed third parties to access user messages. This security issue led to the removal of a similar iMessage implementation from the Play Store by the company Nothing just a few weeks ago.

The new app allows Android users to communicate with Apple users via iMessage, displaying messages in the familiar blue bubbles of iMessage chats instead of the green bubbles typically associated with SMS or MMS. This development is noteworthy, especially considering Apple’s historical stance of not supporting iMessage on Android, a point of contention for companies like Google, network operators, and some users.

Beeper’s team has shared technical details about the app’s development in a blog post, highlighting the reverse engineering of the iMessage protocol. The lead developer, a student, has also shared insights into the findings and implementation process. A proof-of-concept implementation in Python for using iMessage is available under the SSPL.

The app’s functionality hinges on several Apple services, including the Push Notification Service for message transmission and a key server for key exchange. Registration requires authentication via an Apple ID. The app also necessitates validation data, which is generated by emulating a binary file used by Apple. This file, which relies on obfuscation, is re-created in the app. The validation data comprises various components like the device’s serial number, MAC address, model name, and the UUID of the root disk, which are hardcoded for use in the iMessage reimplementation.

After registering on the key server, Beeper Mini can exchange and receive public keys, facilitating the sending and receiving of iMessage texts. The ease of this process underscores the deep understanding of the iMessage format by Beeper’s developers.

However, the future of Beeper Mini is uncertain, as it remains to be seen how Apple will respond to this use of its servers for purposes other than intended. While the app currently operates without issues, it could potentially violate Apple’s terms of use, leading to exclusion. Apple’s ability to recognize and analyze the validation data poses a risk to the continued functionality of Beeper Mini.

Ankit Pahuja
Ankit Pahuja
Meet Ankit Pahuja, our lead editor and a tech enthusiast with a decade of experience in Open Source, Linux, Programming, and Blockchain. Ankit holds a Bachelor's in Computer Science and is known for his contributions to open-source projects and blockchain innovations.


Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.

More from this stream