BlueBubbles Helper Bundle (Private API)
This is the repo for the bundle containing code to perform various tasks not accessible through Apple's AppleScript, for example sending tapbacks or typing indicators.
Features
- Send reactions
- Send and receive typing indicators
- Mark chats read on the server Mac
- Mark chats unread on the server Mac (requires MacOS 13+)
- Rename group chats
- Add / remove participants from group chats
- Leave group chat
- Update group chat photo (requires MacOS 11+)
- Send messages
- Send replies (requires MacOS 11+)
- Send message effects
- Send message with subject
- Send mentions
- Update pinned chats on the server Mac (requires MacOS 11, higher versions are currently unsupported)
- Edit messages (requires MacOS 13+)
- Unsend messages (requires MacOS 13+)
- Check user focus status (requires MacOS 12+)
- Force notify a message (requires MacOS 12+)
- Retrieve Digital Touch and Handwritten message previews (requires MacOS 11+)
- Create chats
- Delete chats
- Delete messages
- Check user iMessage and FaceTime status
See here for more details on how these were implemented.
Support
The bundle has been tested on MacOS 10.13 (High Sierra) - MacOS 13 (Ventura). It could work on higher or lower MacOS versions, but we do not know for sure.
Build Yourself
Pre-requirements:
- MacOS and Xcode
- Apple Developer account with a valid Team ID
- 10.12 - 10.13: mySIMBL / 10.14+: MacForge
Instructions:
- Clone the repo and open the respective folder for your macOS version, then open the Xcode project in Xcode
- Hit the Play button and you're done! This will automatically build the
.bundle
and install it in the MacForge / mySIMBL directory.
Develop
Its recommended have a good knowledge of Objective-C and tweak development before attempting to develop just to make things easier on yourself :)
Resources
- https://iphonedev.wiki/index.php/Main_Page - tweak development wiki
- https://github.com/w0lfschild/macOS_headers - pre-dumped headers for macOS
- https://github.com/beeper/barcelona - Eric Rabil's wonderful REST API built using IMCore
- http://stevenygard.com/projects/class-dump/ (OS X) / https://github.com/freedomtan/classdump-dyld/ (Big Sur) - scripts to dump headers on macOS
- https://lapcatsoftware.com/articles/bigsur.html - open-source tool from Apple to access system libraries
- ZKSwizzle
Use the above resources and trial and error to develop new IMCore integrations! There aren't any Apple provided docs of course, so there is a lot of educated guesswork and using the above resources to try and add things to the bundle. If stuff doesn't work, don't give up! Find as many clues as you can by searching online, searching the header files, and using swizzling techniques.