The original Google Pixel is an awesome phone. The Google Pixel 2? A little less, if you ask me. It's no secret that the XL version is plagued with a plethora of problems: a blue tint on the display and permanent pixel ghosting, to name a few. The pixel ghosting was improved with a software update (or hack, actually, as a workaround for the hardware issue). And the non-XL version is just plain ugly for this day and age, especially for its price tag.
Which is why I stuck with the first Google Pixel, and I'm loving it. The camera sensor is absolutely spectacular and some shots are almost indistinguishable from ones taken with a fancy DSLR:
Yes, the image has been edited, but you still need a great camera sensor for it to look this good, and the Pixel delivers.
The Issue at Hand
One thing bothers me so much about the Pixel that I decide to spend hours on a workaround: the infamous Android File Transfer bug. This is a bug in the file transfer utility that Google has provided for macOS users which makes it impossible to manage files on your Google Pixel, causing most transfers to/from the phone to fail or freeze. And Google apparently does not seem to care much ( ).
Why does Google even need to provide a file transfer utility for Android devices on macOS? Probably because Apple is reluctant to provide drivers for Android devices out of the box, complicating Android file management and possibly improving iOS device adoption rates due to the additional step involved in managing files on your Android phone.
This bug is indeed only experienced by some people that use a Mac to manage their Pixel's files. The exact manifestation requirements are still unknown, but the Internet is filled with people complaining about the issue.
Naturally, I start to investigate some possible workarounds. One is to use an app like AirDrop to wirelessly transfer files over a Wi-Fi network. However, that app requires a vast array of prying permissions for its other features, such as display mirroring, and most importantly, transfer speeds are quite slow in comparison to a wired USB-C transfer.
Another option is to use the USB-to-USB-C adapter that Google ships with Google Pixel phones. This apparently works around the issue in Android File Transfer and transfers work fine. But that requires your Mac to have a USB-C input, which mine does not, having acquired it in early 2015. And it requires you to carry that dongle everywhere, and make sure you don't ever lose it.
The final option that comes to mind is using ADB, the Android Debug Bridge. ADB comes with useful commands like
adb push and
adb pull which can be used to both upload and download files to/from your device. This approach successfully works around the bug present in Android File Transfer, but it's not very convenient, as you have to manage your files via the CLI, typing commands in the macOS Terminal. This, in my opinion, is not a proper solution in the long term, especially if you regularly pull photos off of your device, or load new music, for example.
And thus, Pixelmate was born. Pixelmate is an open-source macOS app I built using Electron that issues ADB commands behind the scenes to manage files on your Google Pixel device.
Pixelmate is designed to look and feel like the native macOS Finder for a familiar user experience:
Follow these instructions to download Pixelmate and manage your files like a boss.
Note: Since Pixelmate uses ADB behind the scenes, you need to enable Developer Mode and USB Debugging on your phone, if you haven't already. Check out this guide for detailed instructions.
You can drag files and folders into Pixelmate to upload them to your device, or right click remote files and folders to download them to your computer. I really wanted to implement dragging and dropping remote files to the local computer as well, but this is actually not possible at this time due to Electron platform limitations. I'm waiting on the Electron team to provide a solution to the issue.
Navigation is currently done via the same keyboard shortcuts as in Finder:
- Cmd + ↓ to navigate into a folder
- Cmd + ↑ to navigate out of a folder
- Cmd + Delete to delete a file or folder
UI navigation buttons will surely be added in the future.
Pro tip: You can even use Pixelmate wirelessly, without having to connect your phone via USB cable. Check out this guide for detailed instructions, and check out this app I built to avoid having to connect the phone to run
adb tcpipbefore going wireless. Note that transfers will not be as fast as with a wired connection, though.
I'd love to hear what you think of Pixelmate! For me, it's a lifesaver. Let me know in the comments below!