One of the biggest pain points in the modern smartphone industry is the fact that Apple refuses to play nice with non-iPhone messaging systems. For a long time in the U.S., iMessage has reigned supreme among iPhone users, leaving Android phone owners with SMS or a third-party service like Whatsapp to communicate with their fruit phone-carrying friends.
But thanks to some savvy people, you can get iMessage on Android (and PC) as long as you have a macOS installation running. The service is called BlueBubbles, an open-source initiative that acts as a server on your Mac to intercept your iMessages and route them to a connected client app.
Curious? Here’s how I did it.
Setting up a macOS virtual machine
Your heart might have sunk, as mine did, when you read that you need a Mac. That’s a problem for a lot of people, since Macs do not represent a significant portion of the personal computer market — nor are they cheap. However, there are a couple of options to consider.
The first, and easiest, is that you pick up a used Mac — like a Mac mini — for cheap and run the BlueBubbles server off of that. The second is far more involved, but it’s what I ultimately went with. It involves a macOS virtual machine.
I do not hide the fact that I’m a computer nerd. In my utility closet is a cluster of computers that act as my servers, a little homelab if you will. All of my important services run here in virtual machines and Docker containers, like my network ad-blocker, Jellyfin media server, website, and more.
But macOS has particular requirements to run in a virtual environment properly, so I picked up an old, used Xeon workstation PC on eBay for $30, along with an upgraded CPU for $20.
Full disclosure, I followed these instructions from Nicholas Sherlock (opens in new tab) to install macOS Ventura in a virtual machine. The steps are many, but if you follow them exactly, it should work out OK for you. Configuring the VM took me a while, but it proved a lot easier than I thought. Though, the actual macOS installation process added a lot of time on top of the setup.
But upon a successful boot, I completed the final configuration steps to ensure macOS would function properly, signed in with my Apple ID, then set to installing BlueBubbles.
Installing the BlueBubbles server
From here, I just followed the BlueBubbles instructions, which are quite quite clear and well-documented — this pleased the former technical writer in me. Visit the website, download the DMG file, and install it.
Configuring the cloud-based notification system takes a bit to get through, since I needed to work through the Google Firebase console. That said, BlueBubbles walked me through the whole process from start to finish. I appreciated how simple the whole thing was.
My one hiccup came down to how I wanted to run the server publicly. I originally intended to use DDNS and port forwarding on my router to serve up my messages when away from my local network. But I had some configuration issues, so I went with the Cloudflare option. It’s still free and has worked fine thus far, even if manually entering the long URL string is annoying on PC. (You can scan a QR code on mobile.)
Once the server was up and running, I just installed the client app on my Pixel 5, scanned the QR code the server generated, and boom. I had iMessage on Android.
I almost threw my laptop off my lap when I exclaimed in victory. I was ecstatic when my wife got my test message and her response lit up in blue. After three or so hours of work from start to finish, I could use iMessage from my Linux laptop, workstation, or gaming PC.
This solution won’t work for everyone, obviously. You need the capacity to run a virtual machine, which you can do with software on an existing Windows or Linux computer. The obvious way is to just get an old Mac to run on your desk or in a closet. You could turn a non-supported Mac into a Hackintosh to get the Ventura-specific features in BlueBubbles (like editing messages). That’s another topic, though.
Was all of this work worth it? Definitely. It makes my GrapheneOS-powered Pixel 5 more tempting as a daily driver, since I primarily communicate with people via iMessage.
But bear in mind that my experience may differ from yours since I have iMessage going already on my iPhone and Apple ID. How that colors the experience, I do not know. You'll just have to try it out for yourself.
Of my thousand or so contacts, two use Signal, and I've never spoken to them on it. About 70% are on iMessage.
This tends to be very location/culturally specific. Here in California, iMessage is king. In Europe, most people are on WhatsApp. Telegram is also popular worldwide.
I don't understand why this matters. I primarily communicate with people who use iMessage too. In fact of all my contacts I know TWO people on Android. And even though the rest of them have to see my apparently offensive green text bubbles, we manage to communicate just fine. Why does jumping through all these hoops to make your texts blue make sense?
If you just wanted to see if you COULD for geek reasons I totally get that. But it seems like you did this so you could turn your texts blue on peoples iphones.