Warning
This repository is currently not being maintained, as I have personally started using OpenBubbles with phone number registration. Many features are incomplete, though base functionality should still work.
This is an alternate web-based frontend/app for the WebMessage tweak by sgtaziz (backend) which aims to directly imitate Apple's "Messages" app.
The current solution to allow sending/receiving iMessages from an Android device is through BlueBubbles using bluebubbles-server. There are a few other methods, but ultimately they all rely on having a Mac device connected to the internet to act as a server to send iMessages from. As this Mac will send iMessages using an Apple ID by default, adding phone number registration is another step that requires an iPhone with a duplicate SIM card. This iPhone also needs to be connected to the internet and turned on at all times to keep the phone number registered to the Apple ID.
Using this frontend, alongside WebMessage-Tweak, a Mac device is not required at all. The same iPhone used for phone number registration can also be used as the messaging server. A separate SIM card is not required if you choose to install SIMLessPNRGateway on the iPhone.
This setup requires a jailbroken iPhone with root access. For my tests and development, I used an iPhone 5S running iOS 12.4.1.
Before compiling/installing WebMessage-Tweak, you may wish to first install and use SIMLessPNRGateway to register a phone number to your Apple ID without needing a separate SIM card. For installation instructions, check AwesomeIndustry's repo.
- Add the repo https://sgtaziz.github.io/repo to Cydia (or your preferred package manager) to make the WebMessage tweak available.
- Install the WebMessage tweak on the jailbroken iPhone and respring if necessary.
- NOTE: This repo utilizes a directory traversal vulnerability in WebMessage-Tweak to retrieve the iOS version from the server. I doubt that this will be fixed in a future update, but in case it is, here is the commit I compiled and used on my iPhone.
- Open the Settings app and scroll to the WebMessage panel to perform additional configuration.
- Here, you can add a password to the WebMessage server.
- You can also change the port that WebMessage communicates over.
- NOTE: If you want to be able to send messages from anywhere, this port will need to be forwarded through your router software.
Before we begin, this project requires Node (and therefore NPM) to compile. If you don't already have it, download and install Node.
- Clone this repository and
cd
into it.- You may need to clone recursively to fetch the
/fonts
submodule.
- You may need to clone recursively to fetch the
- Install required dependencies by running the command
npm i
- Run
npm run build
to generate files. - Your output files are in the
/build
directory.- Note that all subdirectories of
/build
are dependencies of the HTML file.
- Note that all subdirectories of
- Port the output HTML to any platform with a web renderer!
- Open the iMessage settings pane by clicking the gear icon in the top-right corner.
- Enter the IP address of your iPhone server running WebMessage
- This will be your public IP address if you chose to port-forward, and it will be the private IP address of the iPhone if you chose not to.
- Enter the port that WebMessage-Tweak is running on
- If you are running WebMessage through an HTTPS proxy such as Cloudflare or WebMessage-Tweak's websocket would require a secure connection for any reason, enable the "HTTPS" toggle.
- Enter in your server's password, if necessary.
- Restart iMessage either by refreshing the page or by clicking the "Force Refresh" button.
- sgtaziz for creating
WebMessage-Tweak
- Sending iMessages
- Receiving iMessages
- Receive/view typing indicators
- Send typing indicators (optional)
- Add reactions
- Remove reactions
- View reactions from others
- Message "Delivered" receipts
- Receive "Read" receipts
- Send read receipts (optional)
- Contact names
- Contact profile pictures
- Custom picture support
- Placeholder images using contact name initials
- Receive/view messages with Subject line
- Send messages with Subject line
- iMessage Apps/Games
- See Note 2.
- Pinned/favorited contacts
- Images
- Receive/display
- See Note 1.
- Send
- Receive/display
- Video
- Receive/display
- See Note 1.
- Send
- Receive/display
- Other media types
- Receive/download
- Send
- Recipient edits messages
- Recipient deletes messages
- Editing own messages
- Deleting own messages
- Cannot be implemented as message editing/deletion is not supported on iOS 12. This client still shows a "Edited ''" or "Deleted ''" but this cannot be changed/fixed as these messages are sent from the recipient iPhone when it detects that the server device does not support these features.
- Images and other media content will refuse to load on browsers that force upgrading insecure (http) requests. Should work fine in http-only contexts, or when using a custom certificate.
- iMessage apps/games modals are displayed correctly in this client, but currently cannot be interacted with.
- Messages currently do not continue to load after scrolling upward.
- All forms of message notifications are unavailable, as each implementation is highly platform-dependent.