Most of the things you can do on an iPhone can be done with an Android phone. One big exception is iMessage. Can you be a blue balloon with an Android phone? What about a Windows computer? Yes you can.
How is that possible? Since Apple refuses to give up control over the phone numbers of iPhone users, people have been trying for a long time to make iMessage work on Android. Great progress came when Apple brought iMessage to the Mac. That is the key to making this work.
Before you hope too much, you should know that there are some pretty big catches. First and foremost, you’ll need a macOS device or a macOS virtual machine — although it’s highly recommended that you do so with real Apple hardware.
That device will need to be on Mac OS X El Capitan (released 2015) or later, but you’ll want to take a minute to decide which version will best suit your needs. Certain iMessage features are not supported through the software we will use with some versions of macOS (more on that later).
We will use an open source tool called BlueBubbles. AirMessage is another popular solution, but we think BlueBubbles has several advantages. It hosts itself so you don’t rely on servers run by other people. BlueBubbles is a community-driven and has desktop applications for Windows and Linux, a web application and a host of personalization features.
As mentioned, certain BlueBubbles features are not available on all versions of macOS. See the table below to see which version best suits your needs.
BlueBubbles Features | El Capitan – Catherine | Big Sur | Monterey |
---|---|---|---|
Sending / receiving messages | ✓ | ✓ | ✓ |
Sending attachments | ✓ | ✓ | ✓ ** |
Receiving attachments | ✓ | ✓ | ✓ |
Receive tapbacks, stickers and mentions | ✓ | ✓ | ✓ |
Receipt of submitted / read certificates | ✓ | ✓ | ✓ |
Receiving responses | † | ✓ | ✓ |
Creating DMs | ✓ | ✓ | ✓ |
Creating group conversations | ✓ |
- ✓ ** – Sending Monterey attachments may not be as reliable as previous versions of macOS, as it relies on user interface automation (keystroke simulation) rather than actual code.
- † – Replies will be displayed as a plain message on macOS 10.x devices, instead of being displayed in the reply user interface.
This is the state of BlueBubbles as of June 2022. Check the FAQ page for updated information on macOS versions.
Of course, you will also need an Apple ID to use iMessage. Besides, everything is ready. In short, you need a Mac with a compatible version of macOS, a Messages application logged in with your Apple ID, and a BlueBubbles server. Let’s get started.
Set up a BlueBubbles server
The most important part of the puzzle is the BlueBubbles server. The server runs on your macOS device and acts as a kind of “hub” for iMessages that is sent to BlueBubbles applications on your Android phone and Windows or Linux PC.
First go to the GitHub page on your macOS device and download the latest BlueBubbles server DMG file.
Then open the DMG file and drag it to the “Applications” folder after it is installed. You can now open the application.
You will first be asked to give BlueBubbles “full disk access”. This is required for BlueBubbles to read from the iMessage chat database. Click on “Open system settings”.
Go to the “Security and Privacy” section in the settings and select “Full Disk Access” in the sidebar.
Click the padlock icon in the bottom corner to enter your Mac password, then enable BlueBubles. You will be prompted to restart BlueBubles.
Before leaving the “Security and Privacy” settings, go to the “Accessibility” section and also enable BlueBubbles.
At some point during this initial setup, you will also be asked to allow BlueBubbles access to your contacts. Click “OK” to allow it.
Here’s where things get a little complicated. BlueBubbles uses Google Firebase Cloud Messaging for notifications on your devices. This allows BlueBubbles not to require a connection to the server at all times, which means you get notifications even when the app is running in the background and not consuming as much battery.
To get started, go to the Google Firebase console and sign in with your Google Account. Click “Create Project” and name it “BlueBubblesApp”. You do not need to enable Google Analytics for the project.
Then, under “Build” on the sidebar menu, go to Realtime Database> Create Database.
Select your location, then click Next> Enable with “Run in Locked Mode” selected.
Then click on the gear icon next to “Project Overview” on the sidebar and go to Project Settings> Service Accounts> Create Service Account> click “Generate New Private Key” and save the file to your Mac.
Now switch to the “Cloud Messaging” tab and click on the three-point menu icon for the “Cloud Messaging Legacy API” and go to the API Management in Cloud Console> Enable.
Drag and drop the JSON file we downloaded that includes “firebase-adminsdk” in the file name into the BlueBubbles application.
Return to the Project Settings menu on the Firebase website, go to the “General” tab. Click on the Android icon at the bottom of the page.
Enter “com.[yourname].bluebubbles for “Android Package Name” and click on “Register App” to download google-services.json.
We can now drag the google-services.json file into the BlueBubbles application. Click “Next” after doing so.
Enter a strong password for your server and click on the save icon. Click the “Next” button when you’re done.
The next screen is for “Private API Setup”. This is one of the most advanced features of BlueBubbles. If you want to be able to send reactions, responses, subjects, see typing indicators and effects, you will need to follow the instructions on this page. Note that this requires disabling some additional security measures on your Mac.
The last thing to do is enable “Boot with macOS” and “Keep macOS awake” to ensure that the BlueBubbles server stays active. BlueBubbles can also automatically check for and install updates.
Connect the server to BlueBubbles applications
Once the server is up and running, we can connect Android and Windows BlueBubbles apps to start using iMessage! We’ll start with the Android app, which you can download here.
You’ll need to give the app certain permissions when you first open it and make sure you’re signed in with your Apple ID with iMessage on your Mac.
Then go back to the BlueBubbles app on your Mac, click on the QR code icon, and then scan it with the phone app.


Touch “Start Sync” in the phone app after scanning the QR code.
Once the sync is complete, tap “Finish”.
Now use iMessage on Android! You can find many customization options below the three-point menu on the talk screen. If you have enabled Private API functions, you will want to enable them.
You can also find the Windows app on the BlueBubbles download page.
Setting up a desktop app is the same as Android apps, but you probably won’t be able to scan a QR code with your computer. Instead, you will need to enter the server information manually. You can find them in the Android app under Settings> Connection and Server (same password we created earlier).
Now you have the same BlueBubbles experience as your phone on your Windows PC! Note that there is also a BlueBubbles web application that can be set up in the same way.
Things to know
One important thing to understand is that this essentially turns iMessage into a separate instant messaging service. All your iMessage conversations will be in the BlueBubbles app, while standard SMS / RCS conversations will still be in your device’s default messaging app.
Another thing to know is that this is an inherent workaround to start something that should never have worked this way. Therefore, you will run into problems. The good news is that the BlueBubbles community is very active and helpful on Reddit and Discord. The official BlueBubbles website is also a good source for updated information.
BlueBubbles is not a perfect solution and it definitely takes a little effort to set up. However, it is a solution and you should only go through this process once. It’s pretty amazing when you start doing everything.
RELATED: How to set the default messaging app on Android