Guide
Android File Transfer and the 4 GB wall
Smaller files copy, and the one long video fails. Android File Transfer never moved a file over 4 GB, and FAT32 SD cards have a 4 GB limit of their own. Here is why, and what works instead.
Android File Transfer, Google's old Mac app for Android phones, cannot copy a file larger than 4 GB. Everything smaller goes across; the long 4K video, the film, the disk image or the backup archive fails. Google never explained the limit. The likely cause is a 32-bit size field in MTP, the protocol the app spoke, and other tools that speak MTP or adb do not have it.
The way round it is a different tool: an MTP app that handles large files, adb, or the phone mounted in Finder. One case no tool fixes: if the file is going to an SD card formatted as FAT32, the card itself cannot hold a file of 4 GB or more.
How to recognise it
- One file fails and the rest copy. Copy a folder of clips and every one goes across except the largest.
- The size is just over the line. The limit is 4 GiB, 4,294,967,296 bytes. Finder counts in thousands, so it shows that as 4.29 GB. A file Finder lists as 4.2 GB is under it; one at 4.3 GB is over.
- It happens in Android File Transfer, or on a card. The same file goes across with other tools, unless the destination is a FAT32 SD card, which refuses it whatever you use.
Google no longer offers Android File Transfer. Its old page now points Windows users to Quick Share, and there is no Mac version of that. If you still have the app, the limit is one more reason to move on: what replaces Android File Transfer covers the options.
Why the limit is there
MTP describes every file on the phone with a small record, the ObjectInfo dataset, which carries the file's name, format, parent folder and size. The size field, "Object Compressed Size", is an unsigned 32-bit number. The largest value it can hold is 4,294,967,295, one byte short of 4 GiB.
MTP had to grow a fix for larger files. When a file is too big for the field, the field is set to 0xFFFFFFFF, the largest value it allows, and the real size is kept in a separate 64-bit property, "Object Size", which the computer has to ask for with another request. Android's own MTP code describes it the same way: the size in the object record is 32-bit, and anything over 4 GB comes from a property fetched by a different operation.
A tool that only reads the 32-bit field, or never sends the 64-bit one when it copies to the phone, cannot handle a file over 4 GB. Android File Transfer behaves exactly like such a tool. Google never said so, which is why this is the likely explanation rather than a documented one. More about how MTP works is in MTP explained.
FAT32 SD cards have their own 4 GB limit
FAT32 stores each file's size in 32 bits too, so no file on a FAT32 card can reach 4 GiB. That is a property of the card's format, not of the cable or the app. Android's MTP code checks it before anything moves: when the destination storage has a maximum file size, as a FAT32 card does, the phone refuses a file of 4 GB or more as too large.
exFAT stores sizes in 64 bits and has no such limit. When stock Android formats a card itself, on a phone that supports both formats, it chooses FAT32 for cards up to about 32 GB and exFAT for larger ones. So a small card is the one most likely to be FAT32.
To check, put the card in a card reader on the Mac and look at it in Disk Utility, or select it in Finder and choose File > Get Info. FAT32 appears as MS-DOS (FAT32). To change it you have to format the card, which erases it, so copy everything off first. If you format it as exFAT on the Mac, check the phone reads it before you fill it. Android SD cards on a Mac has more on cards, and if you fill one in a card reader, the Mac also leaves ._ files on it.
The ways round it
| Tool | Files over 4 GB | What the phone needs | Where you work |
|---|---|---|---|
| Android File Transfer | No | File Transfer mode | Its own window, and Google no longer offers it |
| OpenMTP | Yes | File Transfer mode | Its own two-pane window |
| adb push and pull | Yes | USB debugging | Terminal |
| SideMount | Yes | USB debugging | Finder and every Mac app |
| Splitting the file | Yes, in parts you join later | Whatever your tool needs | Terminal or an archive app |
An MTP app that handles large files
OpenMTP is free and open source, works with the phone in the same File Transfer mode Android File Transfer used, and says plainly that it transfers files over 4 GB. It shows the Mac and the phone in two panes of its own window. If you never want to turn on USB debugging, this is the closest replacement.
adb
adb, the Android Debug Bridge, copies files of any size. Install Google's Platform-Tools, turn on USB debugging (how to turn on USB debugging), allow the Mac on the phone, and copy from Terminal:
adb pull /sdcard/DCIM/Camera/VID_20261016_101500.mp4 ~/Movies/
adb push ~/Movies/film.mkv /sdcard/Movies/
The file name above is an example; adb shell ls /sdcard/DCIM/Camera lists the real ones. adb versus MTP explains what USB debugging allows and how to take it back.
The phone in Finder
SideMount speaks adb over the cable itself and mounts the phone as a volume in Finder, so a large file is an ordinary Finder copy, and other apps can open it on the phone without copying it first. There is no 4 GB limit; a 4.5 GB video is one of the files it is tested with. It needs macOS 26 or later and USB debugging, and the setup guide covers both.
Split the file
If you are stuck with a tool that has the limit, cut the file into parts below 4 GB, copy the parts, and join them on the other side. In Terminal on the Mac:
split -b 3900m film.mkv film.mkv.part-
cat film.mkv.part-* > film.mkv
The first line makes the parts; the second joins them again. Joining on the phone needs an app that can do it, and the joined file still needs storage that can hold it, which a FAT32 card cannot. It works, but it is the clumsiest of the options.
Questions
Is the 4 GB limit in Android or in the Mac app?
In Android File Transfer, as far as anyone can tell. Android's MTP can carry larger files to the phone's internal storage, and other Mac tools such as OpenMTP, adb and SideMount copy them. The exception is a FAT32 SD card, which cannot hold a file of 4 GB or more with any tool.
Why did Google limit it to 4 GB?
Google never said. The likely reason is MTP's object record, which stores a file's size in a 32-bit field that tops out just under 4 GiB. Larger sizes need a separate 64-bit property, and the app appears never to have used it.
Why does a big file fail to copy to my SD card even with another app?
The card is probably formatted as FAT32, which cannot store a file of 4 GiB or more. The phone refuses the file whatever app sends it. Copy it to internal storage instead, or back up the card and reformat it as exFAT.
Does exFAT have a file size limit?
Not one you will meet. exFAT stores file sizes in 64 bits. Stock Android uses it when it formats a card larger than about 32 GB, and FAT32 for smaller cards.