Drives formatted from Android (FAT32/MBR) don't get recognized on Macs either.
There is this cursed blood-donor-to-blood-recipient relationship with the three major operating systems that I detest. It's been a problem from the beginning of time, but filesystems such as exFAT were supposed to solve this issue. Today, while trying to initialize some cool flash drives I found from Costco, I had a hell of a time making it work between the M3 MacBook Pro, my Pixel 9, and my computer running Arch.
Attempts
Arch
On Arch, I ran:
sudo fdisk /dev/sda
# `g` to initialize gpt partition table
# `n` to create a new partition
# `<enter>` a bunch of times to accept defaults
# `w` to write and quit
sudo mkfs.exfat -n delta-flyer /dev/sda1
and to my annoyance, while I could mount the drive fine from Linux, both Android and MacOS reported the drive as corrupted and requiring initialization.
Android
On Android, I followed the prompts to initialize the drive, which I plugged back into my desktop to inspect. It had created a FAT32 partition with an MBR partition table. Ok, old school, but I understand that in the name of compatibility.
I plugged it into my MacBook and to my chagrin, I was met with an error message stating that the drive was corrupted and require initialization.
MacOS
It wasn't until I kowtowed to Tim Apple and formatted the drive using Disk Util that everyone was happy. I chose to once again use a gpt partition table, with an exFAT filesystem, and my partition table ended up looking like this:
Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 411648 243402751 242991104 115.9G Microsoft basic data
My MacBook was finally happy, and my Pixel also recognized the drive.
To-Do
I guess the squeakiest wheel gets the oil, and the next step is trying to figure out what MacOS needs in order to be happy with a drive. The 200M EFI partition for one seems required, but the values for the exact start and end sectors don't seem immediately obvious to me.