MCPcopy Index your code
hub / github.com/ezhes/Andromeda-iMessage

github.com/ezhes/Andromeda-iMessage @1.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.2.1 ↗ · + Follow
122 symbols 288 edges 17 files 25 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Andromeda(B)

A client for the MessageProxy Server so as to provide an entirely open source implementation of iMessage on Android!

Features

  1. Getting and sending messages
  2. Delivery status/read status
  3. GROUP CHATS! This includes named and unnamed iMessage group chats (i.e. Person 1, person 2, person 3 AND "The Sushi Brigade")
  4. Loading of attachments of any type (images are inline). todo: allow sending!
  5. Live messaging (with sockets!)
A named iMessage Group Inline photos!
image image

Configuration / Setup!

  1. Setup the MessageProxy first on a server first.
  2. Download and install the latest client or build from source
  3. Open the app and fill out the configuration. You'll want some sort of domain which will resolve both internally and externally. Setup a DNS server at home if needed. Fill in the exact same API protection token as you did previously. Remember, absolutely no special chars or spaces. Just A-z and 0-9. If you file an issue and your token includes this I will punch you in the face through your computer.
  4. Install Pushbullet on your phone, sign in with the same account as you setup with IFTTT (or setup with some other push service, that's on you. I picked IFTTT because it's a very general API and you can pick how you get your notifications i.e. flashing your coffee pot)
  5. Build and run on to your Android device. Mind you, this is for a high API target so if you're on KitKat shucks to your ducks
  6. Hopefully it should work at this point. It works for me and I use it everyday so it's mildly unlikely there is a major connection bug here so if it doesn't get your messages check all your config files.

Crash reporting/analytics

I have setup Firebase crash and session analytics. Nothing personally identifiable is being stolen away (you can check through the code!) but if you are still not comfortable with this you can easily disable tracking globally by editing AndroidManifest.xml's firebase_analytics_collection_deactivated key to be true. Given that this is beta, I'd recommend that you don't do this since I need crash reporting to make this better but I of course realize that messaging is a very sensitive data.

Extension points exported contracts — how you extend this code

SocketResponseHandler (Interface)
Used as a callback holder for SocketClient [2 implementers]
app/src/main/java/eu/aero2x/andromedab/SocketResponseHandler.java
Message (Interface)
An extension of the IMessage interface I've added more iMessage required features like delivery status and read status. [2 …
app/src/main/java/eu/aero2x/andromedab/Message.java

Core symbols most depended-on inside this repo

get
called by 31
app/src/main/java/eu/aero2x/andromedab/Version.java
equals
called by 28
app/src/main/java/eu/aero2x/andromedab/Version.java
showDismissableSnackBar
called by 10
app/src/main/java/eu/aero2x/andromedab/UITools.java
val
called by 7
app/src/main/java/com/gm/android/volley/Headers.java
digest
called by 7
app/src/main/java/com/gm/android/volley/HttpDigestStack.java
getId
called by 6
app/src/main/java/eu/aero2x/andromedab/Conversation.java
parseMessageBundle
called by 4
app/src/main/java/eu/aero2x/andromedab/Conversation.java
getName
called by 4
app/src/main/java/eu/aero2x/andromedab/Conversation.java

Shape

Method 104
Class 15
Interface 2
Enum 1

Languages

Java100%

Modules by API surface

app/src/main/java/eu/aero2x/andromedab/ContactSelect.java32 symbols
app/src/main/java/eu/aero2x/andromedab/Conversation.java25 symbols
app/src/main/java/com/gm/android/volley/HttpDigestStack.java16 symbols
app/src/main/java/com/gm/android/volley/Headers.java8 symbols
app/src/main/java/eu/aero2x/andromedab/RemoteMessagesInterface.java6 symbols
app/src/main/java/eu/aero2x/andromedab/Version.java5 symbols
app/src/main/java/eu/aero2x/andromedab/Message.java5 symbols
app/src/main/java/eu/aero2x/andromedab/UITools.java4 symbols
app/src/main/java/eu/aero2x/andromedab/SocketClient.java4 symbols
app/src/main/java/eu/aero2x/andromedab/SpecialCharacterUtil.java3 symbols
app/src/main/java/eu/aero2x/andromedab/CustomOutgoingMessage.java3 symbols
app/src/main/java/eu/aero2x/andromedab/CustomIncomingMessage.java3 symbols

For agents

$ claude mcp add Andromeda-iMessage \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact