Skip to content

Phone Sync

Chris Funderburg edited this page Oct 1, 2026 · 2 revisions

Phone Sync puts a copy of your library on an Android phone over your own Wi-Fi. It needs the companion app, Bòcan for Android.

What it does

  • One way, read only. The Mac is the source and the phone keeps a copy. Nothing is written back to your files, your tags, or your library database.
  • Local network only. The Mac announces itself with Bonjour on your LAN. There is no relay server, no account, and no port forwarding. Nothing leaves your network.
  • Resumable. If the phone goes out of range during a sync, the next sync continues from the same byte.
  • Off by default. Phone Sync does not run until you turn it on in Settings → Phone Sync. When you turn it off, the server stops immediately.

The phone receives tracks, artwork, lyrics, playlists, chapters, and downloaded podcast episodes.

Pairing a phone

Pairing takes about ten seconds and is necessary only once for each phone.

  1. On the Mac, open Settings → Phone Sync and click Pair a Phone. A six-digit code appears.
  2. On the phone, select your Mac from the list and type the code.
  3. The Mac asks "Pair with this phone?" Click Trust.

Paired phones are listed in the same settings pane. Each one has a Revoke button. A revoked phone is blocked at the connection layer the next time it tries to connect.

Choosing what syncs

A sync profile decides what goes to the phone:

  • Everything, or only the playlists you select.
  • Downloaded podcast episodes, as an option. The cover art of each show goes with them.

A live size estimate shows the total before the phone starts to download.

Below the estimate, a Ready to sync line counts up while the Mac prepares your library in the background. Each track gets a fingerprint that the phone uses to verify its downloads. On a large library the first pass takes some time. Tracks appear on the phone as they become ready.

Sync at a smaller size

A phone rarely has space for a lossless library, so Phone Sync can convert tracks on the way to the phone.

  1. In Settings → Phone Sync, select a quality, from MP3 320 down to Opus 128.
  2. Each choice shows how much storage your selection will use on the phone.
  3. Tracks above the selected quality are converted before they sync. Tracks at or below it sync without change.

A Preparing for sync line shows the conversion progress. The conversion stays a few gigabytes ahead of the phone, and the converted copies are removed from the Mac after the phone has them. A switch keeps the copies for instant re-syncs. With that switch on, the full selection is converted at the start.

Your original files are never changed. Select Original quality to stop the conversion.

How pairing keeps you safe

  • The six-digit code is a verification code, not a secret. It is derived from the cryptographic identities of the two devices on that exact connection. It proves that the phone in your hand is the phone the Mac talks to. The code has no value on a different connection, and it expires with the pairing window.
  • The final confirmation on the Mac is deliberate. The code is the phone proving itself. The click on Trust is you, at the keyboard, giving trust. No device can pair itself.
  • Pairing attempts are rate-limited.
  • Each connection after pairing uses mutual TLS with pinned certificates in the two directions. The Mac answers only phones it has paired, and the phone trusts only the Mac it paired with.

Problems

Symptom What to do
The phone does not find the Mac Make sure Phone Sync is on, and that the two devices are on the same Wi-Fi network. Guest networks and client isolation block Bonjour.
A track stays pending on the phone Update the two apps. Bòcan 2.14.1 and Bòcan for Android 0.4.0 or later correct a stuck conversion.
The first sync is slow to start The Mac is still preparing fingerprints. Look at the Ready to sync line.
A lost or sold phone Click Revoke next to the phone in Settings → Phone Sync.

The protocol

The Mac and the Android app implement the same open sync protocol. The wire format is documented and versioned.

Clone this wiki locally