I read here that Microsoft makes $5 to $15 on every Android device sold because Android can read the FAT filesystem. Ubuntu can also read the FAT filesystem but no payment history to Microsoft exists. What is the difference?


This is more of an issue with exFAT, not FAT.

  • exFAT is the Microsoft-owned proprietary filesystem that Android (and any other device) need to license from Microsoft in order to support.

  • FAT (eg FAT32 + VFAT) is free to implement and implemented pretty much universally, including in Ubuntu.

One of the notable benefits of exFAT over FAT is its support for individual files larger than 4GB, an essential feature for video recording applications.

The most notable drawback, obviously, is its proprietary nature, giving a Microsoft tax to every device that implements the standard. It is an essential part of the SDXC standard, meaning that devices that support SD cards over 32GB have to pay money to Microsoft.

Edit: after reading the actual article, I realise now that the article itself suggests that vendors are paying to use even FAT (not exFAT). Sorry for assuming that was your own confusion.

However, the point muru made in his answer still stands: the free software implementations of FAT (including the implementation in Linux, the kernel used in Android) are not subject to Microsoft patents because they don't implement the patented algorithm for maintaining long filenames and 8/3 letter filenames side by side.

The article even admits it can only speculate, and I think it's probably wrong, for the above reasons. Or, at least, perhaps it does not have the full story: it's possible that these vendors are licensing other technology from Microsoft and the contract they have with Microsoft just happens to also bundle in some FAT technology even though they don't need a license for this.

  • 1
    How can Linux/FOSS not maintain long filename and short filenames side by side? The long filename entries do not contain any information about the size, date, or starting cluster of the file. Long filename matching works by scanning for a sequence of long filename fragments, which are followed by a short filename for the same file which contains all of the metadata and a short version of the filename. – doug65536 Jul 9 '18 at 14:36
  • Microsoft's implementation keeps the short and long filenames in sync, so the short filename is based on a truncated form of the long one. However, the short filename is not used anymore except in obsolete operating systems so the Linux implementation simply does not generate meaningful short filenames. I don't know if this means they leave the short filename blank or put a meaningless code there. – thomasrutter Jul 11 '18 at 1:35

More specifically, the exFAT filesystem. That's because exFAT is part of the SDXC standard, and device vendors have to support it if they are going to allow external memory. The FAT patent that the article talks of only ever came into play against TomTom, IIRC. Linux in general is able to avoid the FAT patent on a technicality, according to this linux.com article.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.