The next file of a folder opens
MacDroid610 ms
Comparison
Same Mac, same phone, same files.
Same Mac, same phone, same files. Pick a test to replay it.
| PortLine | MacDroid | |||
|---|---|---|---|---|
| USB debugging | 200 photos, Mac → phone | 12.8 s | 15.5 s | 1.2× faster |
| USB debugging | 200 photos, Phone → Mac | 4.7 s | 54.5 s | 11.5× faster |
| USB debugging | 10 videos, Mac → phone | 1:04.8 | 1:07.5 | 1.04× faster |
| USB debugging | 10 videos, Phone → Mac | 1:01.7 | 1:05.8 | 1.07× faster |
| File transfer | 200 photos, Mac → phone | 17.3 s | 19.4 s | 1.1× faster |
| File transfer | 200 photos, Phone → Mac | 13.3 s | 39.4 s | 3.0× faster |
| File transfer | 10 videos, Mac → phone | 1:08.3 | 1:59.4 | 1.7× faster |
| File transfer | 10 videos, Phone → Mac | 1:06.8 | 1:54.2 | 1.7× faster |
| Wi-Fi | 200 photos, Mac → phone | 13.0 s | 21.8 s | 1.7× faster |
| Wi-Fi | 200 photos, Phone → Mac | 19.6 s | 2:05.1 | 6.4× faster |
| Wi-Fi | 10 videos, Mac → phone | 1:34.8 | 2:25.9 | 1.5× faster |
| Wi-Fi | 10 videos, Phone → Mac | 17:52.1 | 20:38.1 | 1.2× faster |
Nothing Phone (3a) · MacBook Pro (M1 Pro) · MacDroid 2.10 · October 2026
3 minutes · no sound
Medians of three rounds over USB, 22 October 2026.
| PortLine | MacDroid | ||
|---|---|---|---|
| Open the next file in a folder | 1 ms | 610 ms | 610× faster |
| Copy a 200 MB folder off the phone | 5.7 s | 41.2 s | 7.2× faster |
| Open a file alone in its folder | 133 ms | 864 ms | 6.5× faster |
| Read 200 small files | 6.7 s | 24 s | 3.6× faster |
| A new file on the phone shows in Finder | 1.5 s | > 60 s | > 40× faster |
| Everyday tasks completed | 52/52 | 28/52 | +24 |
Real time. 1 ms vs 610 ms for each next photo.
Shown at 4× speed. 5.7 s vs 41.2 s.






Waiting…✓ ShownNot shown after 60 s






Waiting…✓ ShownNot shown after 60 s
Saved on the phone, in a folder open in Finder. Clock runs 12× after 3 s.
Nothing Phone (3a) · Android 16 · USB
Copies, renames, moves and deletes, checked on the phone.
MacDroid610 ms
MacDroid41.2 s
MacDroid> 60 s
MacDroid0/8
MacDroid0/2
MacDroidNever appeared
Medians of three rounds. Lower is better.
| Test | PortLine | MacDroid |
|---|---|---|
| Read 200 small files (16 KB) back from the phone | 6.65 s | 24 s |
| Copy a folder of 50 × 4 MiB files from the phone (ditto) | 5.68 s | 41.17 s |
| Read 50 × 4 MiB files, four at a time | 5.4 s | 7.44 s |
| Open the next file of a folder | 1 ms | 609.5 ms |
| Open one file of a 200-file folder | 159 ms | 599 ms |
| Open a file alone in its folder | 133 ms | 864 ms |
| Copy 200 small files (16 KB) to the phone | 9.16 s | 9.39 s |
| Copy 50 × 4 MiB files to the phone | 6.59 s | 6.62 s |
Nothing Phone (3a) · Android 16 · USB
macOS hands a freshly downloaded file to the app that asked for it only after its file provider database flushes, on a timer about half a second away, unless a new download request forces the flush. MacDroid waits for that timer on every open. PortLine asks for the next files of a folder as one request, which forces the flush at once and has the next file ready before you click it.
| PortLine | MacDroid | |
|---|---|---|
| Copy a 1 GiB file to the phone | 28.9 s · 37.2 MB/s | 35.4 s · 30.4 MB/s |
| Read a 1 GiB file back | 28.2 s · 38.1 MB/s | 29.5 s · 36.4 MB/s |
| List a new folder of 2,000 files | 3.44 s | folder never appeared |
17 October 2026.
Nothing Phone (3a) · Android 16 · USB
| Folder | PortLine | MacDroid (measured) |
|---|---|---|
| Open in Finder, or shown in the last 2 minutes | At once when opened; every 2 s for a minute after a change; then every 5 s | 18–40 s under heavy load; not within 60 s under light load, even after a file check |
| Closed in Finder, or listed by another app, in the last 10 minutes | Every 30 s | Not re-read |
| Anything else | When Finder opens it | When opened, or after a file check |
Each step was done in the app's Finder location, then checked on the phone itself over a separate connection. Nothing Phone, Android 16, 17 October 2026, against MacDroid 2.10.
PortLine is faster or the only one that completes in 36 of 55; MacDroid is ahead in 2, by about a tenth of a second; 11 are within ±10 %. MacDroid could not complete 16 of them.
| Test | PortLine | MacDroid | Better |
|---|---|---|---|
| create folder | 0.42 s | 0.34 s | tie |
| copy 64 KB file | 0.23 s | 0.96 s | PortLine |
| overwrite existing file | 0.67 s | 0.59 s | tie |
| append to file | 0.63 s | 0.63 s | tie |
| zero-byte file | 0.14 s | 0.41 s | PortLine |
| copy nested folder (30 files, 9 folders) | 1.52 s | 4.28 s | PortLine |
| name: emoji | 0.73 s | 0.71 s | tie |
| name: accents (NFD from macOS) | 0.16 s | 0.77 s (written decomposed, NFD) | PortLine |
| name: japanese | 0.69 s | 0.75 s | tie |
| name: spaces | 0.83 s | 0.84 s | tie |
| name: leading dot | 0.83 s | 0.83 s | tie |
| name: long (240 bytes) | 0.87 s | 0.72 s | MacDroid |
| name: colon | 0.87 s (look-alike name) | fails | PortLine |
| name: question mark | 0.7 s (look-alike name) | fails | PortLine |
| name: asterisk | 0.84 s (look-alike name) | fails | PortLine |
| name: pipe | 0.13 s (look-alike name) | fails | PortLine |
| name: backslash | 0.78 s (look-alike name) | fails | PortLine |
| name: double quote | 0.82 s (look-alike name) | fails | PortLine |
| name: angle brackets | 0.76 s (look-alike name) | fails | PortLine |
| name: trailing space | 0.82 s | 0.71 s | MacDroid |
| name: trailing dot | 0.79 s | 0.76 s | tie |
| Finder metadata files (.DS_Store, ._*) | stays on the Mac | stays on the Mac | |
| rename file | 0.53 s | 0.8 s | PortLine |
| case-only rename | 0.58 s | fails | PortLine |
| rename folder with 5 files | 0.36 s | 0.66 s | PortLine |
| move file into folder | 0.47 s | fails | PortLine |
| move folder into folder | 0.52 s | 0.9 s | PortLine |
| move file to Trash | 0.29 s | 2.06 s | PortLine |
| move folder to Trash | 0.37 s | 2.84 s | PortLine |
| delete file (rm) | 1.85 s | 2.15 s | PortLine |
| delete folder tree (rm -r, 10 files) | 2.82 s | 2.73 s | tie |
| paste a file (APFS clone, as Finder does) | 0.43 s | 0.51 s | tie |
| paste a folder (30 files, clone) | 1.95 s | 3.49 s | PortLine |
| Duplicate a phone file | 0.4 s | 0.62 s | PortLine |
| rename to a name with : and ? | 0.31 s | fails | PortLine |
| copy a tagged file with extended attributes | 0.47 s | 0.84 s | PortLine |
| copy a phone file to the Mac (not downloaded yet) | 0.19 s | fails (never appeared) | PortLine |
| p2-open: phone makes folder | 3.35 s | fails | PortLine |
| p2-open: phone creates file | 1.48 s | — | PortLine |
| p2-open: read file made on phone | ok | — | |
| p2-open: phone changes file | 6.23 s | — | PortLine |
| p2-open: read changed file | ok | — | |
| p2-open: phone renames file | 6.64 s | — | PortLine |
| p2-open: phone deletes file | 3.11 s | — | PortLine |
| p2-open: phone makes subfolder | 3.03 s | — | PortLine |
| p2-open: change in a closed folder shows when Finder opens it | 7.97 s | — | PortLine |
| read 50 x 4096 KiB made on the phone (4 at a time) | 8.97 s, 23.4 MB/s | — | PortLine |
| read 200 x 16 KiB made on the phone (4 at a time) | 10.4 s, 0.3 MB/s | — | PortLine |
| list a new 2,000-file folder | 3.44 s | fails (folder never appeared) | PortLine |
| list it again | 0.002 s | — | PortLine |
| copy 1 GiB file | 28.9 s, 37.2 MB/s | 35.4 s, 30.4 MB/s | PortLine |
| read 1 GiB file back from the phone | 28.2 s, 38.1 MB/s | 29.5 s, 36.4 MB/s | tie |
| p2-open: folder visible after MacDroid file check | — | fails | |
| read 50 files made on the phone | — | fails (folder never appeared) | |
| read 200 files made on the phone | — | fails (folder never appeared) |
The harness, the raw results and the recordings behind every figure are kept with the project.
Google no longer offers Android File Transfer for Mac. PortLine's Standard USB mode is the same File transfer (MTP) connection those tools used, inside Finder instead of a separate window, and its Advanced USB and Secure Wi-Fi modes go further than MTP can.