PortLine

Comparison

PortLine vs MacDroid

Same Mac, same phone, same files.

Faster in every test.

Same Mac, same phone, same files. Pick a test to replay it.

USB debugging

200 photosPhone → Mac

PortLineAdvanced USBDone
4.7s200/200
MacDroidADB modeDone
54.5s200/200
11.5×faster 4.7 s vs 54.5 s
Faster in every test.
PortLineMacDroid
USB debugging200 photos, Mac → phone12.8 s15.5 s1.2× faster
USB debugging200 photos, Phone → Mac4.7 s54.5 s11.5× faster
USB debugging10 videos, Mac → phone1:04.81:07.51.04× faster
USB debugging10 videos, Phone → Mac1:01.71:05.81.07× faster
File transfer200 photos, Mac → phone17.3 s19.4 s1.1× faster
File transfer200 photos, Phone → Mac13.3 s39.4 s3.0× faster
File transfer10 videos, Mac → phone1:08.31:59.41.7× faster
File transfer10 videos, Phone → Mac1:06.81:54.21.7× faster
Wi-Fi200 photos, Mac → phone13.0 s21.8 s1.7× faster
Wi-Fi200 photos, Phone → Mac19.6 s2:05.16.4× faster
Wi-Fi10 videos, Mac → phone1:34.82:25.91.5× faster
Wi-Fi10 videos, Phone → Mac17:52.120:38.11.2× faster

Nothing Phone (3a) · MacBook Pro (M1 Pro) · MacDroid 2.10 · October 2026

Watch the whole test.

3 minutes · no sound

More tests

Medians of three rounds over USB, 22 October 2026.

PortLine vs MacDroid 2.10 (1205) · MacBook Pro, Apple M1 Pro, macOS 27.0.1 · USB 2.0, both apps over Android debugging (ADB) · 22 October 2026

The numbers
PortLineMacDroid
Open the next file in a folder1 ms610 ms610× faster
Copy a 200 MB folder off the phone5.7 s41.2 s7.2× faster
Open a file alone in its folder133 ms864 ms6.5× faster
Read 200 small files6.7 s24 s3.6× faster
A new file on the phone shows in Finder1.5 s> 60 s> 40× faster
Everyday tasks completed52/5228/52+24

Open 20 photos the phone made, one after another

PortLine
0.00 s
MacDroid
0.00 s

Real time. 1 ms vs 610 ms for each next photo.

Copy a 200 MB folder from the phone to the Mac

PortLine
0.0 s
MacDroid
0.0 s

Shown at 4× speed. 5.7 s vs 41.2 s.

A new photo on the phone

PortLine1.48 s
Summer 2026

Waiting…✓ ShownNot shown after 60 s

MacDroid> 60 s
Summer 2026

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

52 everyday tasks

Copies, renames, moves and deletes, checked on the phone.

PortLine52/52
  • 52 done
MacDroid28/52
  • 28 done
  • 13 failed
  • 11 blocked by an earlier failure

Why people switch

011 ms

The next file of a folder opens

MacDroid610 ms

025.7 s

A 200 MB folder copied off the phone

MacDroid41.2 s

031.5 s

A file made on the phone shows in Finder

MacDroid> 60 s

048/8

Names with : ? * | \ " < > copy

MacDroid0/8

052/2

Case-only renames and moves into folders

MacDroid0/2

063.4 s

A new 2,000-file folder appears

MacDroidNever appeared

Reading, opening, copying

Medians of three rounds. Lower is better.

PortLineMacDroidlower is better

Read 200 small files (16 KB) back from the phone

PortLine6.65 s
MacDroid24 s
3.6× faster

Copy a folder of 50 × 4 MiB files from the phone (ditto)

PortLine5.68 s
MacDroid41.17 s
7.2× faster

Read 50 × 4 MiB files, four at a time

PortLine5.4 s
MacDroid7.44 s
1.4× faster

Open the next file of a folder

PortLine1 ms
MacDroid609.5 ms
610× faster

Open one file of a 200-file folder

PortLine159 ms
MacDroid599 ms
3.8× faster

Open a file alone in its folder

PortLine133 ms
MacDroid864 ms
6.5× faster

Copy 200 small files (16 KB) to the phone

PortLine9.16 s
MacDroid9.39 s
level

Copy 50 × 4 MiB files to the phone

PortLine6.59 s
MacDroid6.62 s
level
Reading, opening, copying
TestPortLineMacDroid
Read 200 small files (16 KB) back from the phone6.65 s24 s
Copy a folder of 50 × 4 MiB files from the phone (ditto)5.68 s41.17 s
Read 50 × 4 MiB files, four at a time5.4 s7.44 s
Open the next file of a folder1 ms609.5 ms
Open one file of a 200-file folder159 ms599 ms
Open a file alone in its folder133 ms864 ms
Copy 200 small files (16 KB) to the phone9.16 s9.39 s
Copy 50 × 4 MiB files to the phone6.59 s6.62 s

Nothing Phone (3a) · Android 16 · USB

Why opens are faster

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.

Large files and large folders

PortLineMacDroid
Copy a 1 GiB file to the phone28.9 s · 37.2 MB/s35.4 s · 30.4 MB/s
Read a 1 GiB file back28.2 s · 38.1 MB/s29.5 s · 36.4 MB/s
List a new folder of 2,000 files3.44 sfolder never appeared

17 October 2026.

Nothing Phone (3a) · Android 16 · USB

How soon a change on the phone reaches Finder

FolderPortLineMacDroid (measured)
Open in Finder, or shown in the last 2 minutesAt once when opened; every 2 s for a minute after a change; then every 5 s18–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 minutesEvery 30 sNot re-read
Anything elseWhen Finder opens itWhen opened, or after a file check

55 everyday edge cases

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.

36PortLine ahead or alone
11within ±10 %
2MacDroid ahead
16MacDroid could not complete

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.

TestPortLineMacDroidBetter
create folder0.42 s0.34 stie
copy 64 KB file0.23 s0.96 sPortLine
overwrite existing file0.67 s0.59 stie
append to file0.63 s0.63 stie
zero-byte file0.14 s0.41 sPortLine
copy nested folder (30 files, 9 folders)1.52 s4.28 sPortLine
name: emoji0.73 s0.71 stie
name: accents (NFD from macOS)0.16 s0.77 s (written decomposed, NFD)PortLine
name: japanese0.69 s0.75 stie
name: spaces0.83 s0.84 stie
name: leading dot0.83 s0.83 stie
name: long (240 bytes)0.87 s0.72 sMacDroid
name: colon0.87 s (look-alike name)failsPortLine
name: question mark0.7 s (look-alike name)failsPortLine
name: asterisk0.84 s (look-alike name)failsPortLine
name: pipe0.13 s (look-alike name)failsPortLine
name: backslash0.78 s (look-alike name)failsPortLine
name: double quote0.82 s (look-alike name)failsPortLine
name: angle brackets0.76 s (look-alike name)failsPortLine
name: trailing space0.82 s0.71 sMacDroid
name: trailing dot0.79 s0.76 stie
Finder metadata files (.DS_Store, ._*)stays on the Macstays on the Mac
rename file0.53 s0.8 sPortLine
case-only rename0.58 sfailsPortLine
rename folder with 5 files0.36 s0.66 sPortLine
move file into folder0.47 sfailsPortLine
move folder into folder0.52 s0.9 sPortLine
move file to Trash0.29 s2.06 sPortLine
move folder to Trash0.37 s2.84 sPortLine
delete file (rm)1.85 s2.15 sPortLine
delete folder tree (rm -r, 10 files)2.82 s2.73 stie
paste a file (APFS clone, as Finder does)0.43 s0.51 stie
paste a folder (30 files, clone)1.95 s3.49 sPortLine
Duplicate a phone file0.4 s0.62 sPortLine
rename to a name with : and ?0.31 sfailsPortLine
copy a tagged file with extended attributes0.47 s0.84 sPortLine
copy a phone file to the Mac (not downloaded yet)0.19 sfails (never appeared)PortLine
p2-open: phone makes folder3.35 sfailsPortLine
p2-open: phone creates file1.48 s—PortLine
p2-open: read file made on phoneok—
p2-open: phone changes file6.23 s—PortLine
p2-open: read changed fileok—
p2-open: phone renames file6.64 s—PortLine
p2-open: phone deletes file3.11 s—PortLine
p2-open: phone makes subfolder3.03 s—PortLine
p2-open: change in a closed folder shows when Finder opens it7.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 folder3.44 sfails (folder never appeared)PortLine
list it again0.002 s—PortLine
copy 1 GiB file28.9 s, 37.2 MB/s35.4 s, 30.4 MB/sPortLine
read 1 GiB file back from the phone28.2 s, 38.1 MB/s29.5 s, 36.4 MB/stie
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)

What MacDroid could not do

  • Names with : ? * | \ " < or > fail; PortLine writes look-alike characters the phone accepts.
  • A case-only rename (photo.jpg → Photo.jpg) fails.
  • Moving a file into a folder fails.
  • A file created on the phone never appeared in its Finder location, even after a file check, so nothing made on the phone could be read.
  • A new folder of 2,000 files never appeared.

Where MacDroid is level or ahead

  • Over the USB debugging cable, ten large videos copy at the phone's USB 2.0 limit in both apps, so PortLine's lead there is 4 to 7 percent.
  • Copying 50 files of 4 MiB to the phone takes about the same time in both apps.
  • Two small-name tests, a 240-byte name and a trailing space, ran about 0.1 s faster in MacDroid, within the noise.
  • Single small writes are a close race: PortLine spends about 50 ms more on its crash-safe rename, so a half-written file never shows under your name.
  • MacDroid keeps its own cache on the Mac. Files it uploaded itself read back quickly from that cache; the numbers here use files the phone made, which neither app had seen.

How we measured

  1. The twelve races were recorded on 24 and 25 October 2026. Each app copied the same 200 photos (100 MB) and ten videos (2.45 GB) through its own Finder location, one app at a time, over USB debugging (PortLine's Advanced USB, MacDroid's ADB mode), File transfer (Standard USB, MTP mode) and Wi-Fi.
  2. An upload is over when macOS's File Provider log records the last file as created on the phone with its full size; a download is over when the last byte is on the Mac. Every file was checked on the phone or on disk, and the clocks in the recordings run on the same events.
  3. For the Wi-Fi upload of ten videos, the two apps were recorded alternately twice, and each app's better take is shown, a rule fixed before the first take. PortLine was faster in both pairs.
  4. Every test went through the app's own Finder location under ~/Library/CloudStorage, with the calls Finder makes: copyfile, rename, open and read.
  5. Before each read, the local copies were removed and the harness waited until macOS's file provider had been idle for three seconds, so files really came from the phone.
  6. Sets alternated ABBA: PortLine, MacDroid, MacDroid, PortLine, three rounds each, on a quiet Mac. Sets that ran under load from other work are listed and left out.
  7. Every byte read back was compared with its source (SHA-256). All 80 timed runs of both apps finished.
  8. The alternating rounds ran over USB debugging, in MacDroid's ADB mode, which is its fastest. The recorded races cover all three connections.

The harness, the raw results and the recordings behind every figure are kept with the project.

Coming from Android File Transfer or OpenMTP?

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.