Using iMessage on Android and Windows

Most of the things you can do on an iPhone, you can do with an Android phone. One big exception is iMessage. Can you be a blue bubble with an Android phone? What about a Windows PC? Yes, that’s possible.

How is that possible? Ever since Apple refuses to give up its hold on iPhone users’ phone numbers, people have been trying to make iMessage work on Android for a long time. The big break came when Apple brought iMessage to the Mac. Therein lies the key to getting this working.

Before we get too hoped up, you should know that there are some pretty big catches out there. First, and foremost, you’ll need a macOS device or a macOS virtual machine, although it’s highly recommended to do this with genuine Apple hardware.

That device must be on Mac OS X El Capitan (released 2015) or newer, but you’ll want to take a moment to decide which version is best for you. Certain iMessage features aren’t supported by the software we’ll be using with some versions of macOS (more on that later).

We use an open-source tool called BlueBubbles. AirMessage is another popular solution, but we think BlueBubbles has some advantages. It is hosted by yourself, so you are not dependent on servers run by other people. Community-driven, BlueBubbles has desktop apps for Windows and Linux, a web app, and tons of personalization features.

As mentioned, certain BlueBubbles features are not available on all versions of macOS. Check out the table below to see which version is best for you.

BlueBubbles Features El Capitan – Catalina Great Sur Monterey
Send/Receive Messages
Send attachments
Receive attachments
Receive tapbacks, stickers and mentions
Receiving delivered/read receipts
Receive answers I
Create DMs
Create group chats
  • – Monterey sending attachments may not be as reliable as previous macOS versions as it relies on UI automation (simulation of keystrokes) rather than actual code.
  • I – Replies are displayed as a regular message on macOS 10.x devices, rather than using the Replies UI.

This is the status of BlueBubbles as of June 2022. Check the FAQ page for updated information on macOS versions.

Of course, you also need an Apple ID to use iMessage. Furthermore, we are completely ready. Basically, you need a Mac with a compatible version of macOS, the Messages app signed in with your Apple ID, and the BlueBubbles server. So let’s get started.

Set up the BlueBubbles server

The most important part of the puzzle is the BlueBubbles server. The server runs on your macOS device and acts as a sort of “hub” for iMessages sent to the BlueBubbles apps on your Android phone and Windows or Linux PC.

First, go to the GitHub page on your macOS device and download the latest DMG file from the BlueBubbles server.

Then open the DMG file and drag it to the “Applications” folder after it’s installed. Now you can open the app.

Drag BlueBubbles to the Applications folder.

You will first be prompted to give BlueBubbles “full disk access”. This is necessary for BlueBubbles to read from the iMessage chat database. Click on ‘Open System Preferences’.

Go to the “Security & Privacy” section of the settings and select “Full Disk Access” from the sidebar.

Select "Full disk access."

Click the lock icon in the bottom corner to enter your Mac password, then enable BlueBubbles. You will be prompted to restart BlueBubbles.

Switch "Blue Bubbles."

Before exiting the “Security & Privacy” settings, go to the “Accessibility” section and enable BlueBubbles as well.

Switch "Blue Bubbles" to have "Accessibility" access.

At some point during this initial setup, you will also be prompted to allow BlueBubbles to access your contacts. Click “OK” to allow that.

Here it gets a little complicated. BlueBubbles uses Google Firebase Cloud Messaging for notifications to your devices. Because of this, BlueBubbles doesn’t always need a connection to the server, which means you’ll get notifications even if the app is running in the background and doesn’t use that much battery.

To get started, go to the Google Firebase Console and sign in with your Google account. Click on “Create a project” and name it “BlueBubblesApp”. You do not need to enable Google Analytics for the project.

Give the project a name "BlueBubbles app."

Then, under “Build” in the sidebar menu, go to Realtime Database > Create Database.

Choose your location, then click Next > Enable with “Start in Locked Mode” selected.

Then click the gear icon next to “Project Overview” in the sidebar menu and go to Project Settings > Service Accounts > Create Service Account > click “Generate New Private Key” and save the file to your Mac.

Select "Generate new private key."

Now switch to the “Cloud Messaging” tab and click the three-dot menu icon for “Cloud Messaging Legacy API” and go to Manage API in Cloud Console > Enable.

Drag and drop the JSON file we downloaded that contains “firebase-adminsdk” in the filename into the BlueBubbles app.

Drag the json file into BlueBubbles.

In the Project Settings menu on the Firebase website, go back to the “General” tab. Click the Android icon at the bottom of the page.

Enter “com.[yourname].bluebubbles for the “Android Package Name” and click “Register App” to download the google-services.json file.

Give the package a name and "Register App."

Now we can also drag the google-services.json file into the BlueBubbles app. Click “Next” after you’ve done that.

Drag the json file into BlueBubbles.

Enter a strong password for your server and click the Save icon. Click the “Next” button when you are done.

The next screen is for “Private API Setup”. This is one of the most advanced features of BlueBubbles. To be able to send comments, replies, topics, typing indicators, and effects, follow the instructions on this page. Keep in mind that this requires disabling some additional security measures on your Mac.

Advanced Private API features.

The last thing to do is enable “Startup with macOS” and “Keep macOS Awake” to keep the BlueBubbles server running. You can also have BlueBubbles automatically check for and install updates.

Keep your Mac running.

Connect the server to the BlueBubbles apps

With the server up and running, we can connect the 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 open it for the first time and make sure you’re signed in with your Apple ID using iMessage on your Mac.

Give BlueBubbles permissions.

Then, back in the BlueBubbles app on your Mac, click the QR code icon and then scan it using the phone app.

Generate the QR code to scan.
Show QR code on Mac.
Scan the QR code with your phone.
Scan with the Android app.

Tap “Start Sync” in the phone app after scanning the QR code.

Tap "Start synchronization."

Tap ‘Finish’ after the sync is complete.

Tap "Finish."

You are now using iMessage on Android! You can find many customization options under the three-dot menu on the call screen. If you’ve enabled the Private API features, you’ll want to enable them.

Go to the "Settings" for more options.

The Windows app can also be found on the BlueBubbles download page.

Select the "desktop" app.

Setting up the desktop app is the same as the Android app, but you probably won’t be able to scan a QR code with your PC. Instead, you must enter the server information manually. You can find it in the Android app under Settings > Connection & Server (the 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 app that can be set up in the same way.

Things to know

An 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 SMS app.

The second thing to know is that this is an inherently hacky solution to making something work that was never intended to work this way. That’s why you shall 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 current information.

BlueBubbles is not a perfect solution and it certainly takes some effort to set up. whatever it is a solution and you only need to go through this process once. It’s pretty awesome when you get everything working.

RELATED: How to set your default texting app on Android

Leave a Comment