Android - Since which Android version is exFat supported?
It seems that, according to here, It's been supported since KitKat (whether using apps or not) But (as always) it's down to The OEM's discretion if a device can Run it. Chances are, If a device supports SD cards bigger than 32Gb, It supports SDXC, which has a exFAT filesystem (First Graph here)
As of today (03-Apr-2020), exFAT is not yet officially supported in AOSP.
exFAT
- a filesystem developed by Microsoft - was (is?) not open-source, so it was never a part of Linux (and hence Android) kernel over patent issues. However a FUSE-based driver (exFAT-FUSE) has been around since long. But it's not a proper in-kernel driver, so lags in performance. Also there are properly licensed commercial-grade and for home users exFAT implementations from authorized Microsoft partners like Tuxera and Paragon.
Following a leaked release of exFAT filesystem source code, Samsung properly open-sources an exFAT driver back in 2013. It's available as exFAT-nofuse Linux kernel module. In 2018 another exFAT driver was released as part of Samsung Galaxy S8+ source. It's available as exFAT-Linux out-of-tree kernel module.
However none of the above drivers were ever merged to mainline Linux tree because of license issues. The other answer correctly states that it's up to OEM's discretion if they include exFAT driver in their kernel (and executables in userspace) after having an agreement with Microsoft or their partners. But almost every custom ROM includes one or more of the above drivers. exFAT-FUSE
support is also available as a Magisk module: vold-posix
which can be used almost with any ROM (at least after some modifications). With Android 9, a very basic support was also added to AOSP:
"Android doesn't natively support exFAT, but we're at least willing to try mounting an exFAT filesystem if we detect the Linux kernel supports it, and if helper binaries are present."
There came a big news from MS in 2019:
"Microsoft ♥ Linux – we say that a lot, and we mean it! Today we’re pleased to announce that Microsoft is supporting the addition of Microsoft’s exFAT technology to the Linux kernel."
And with that a community user (who already developed an exFAT driver for Linux based on 2013 release) made the initial commits to staging (unofficial, going to be part of mainline kernel) tree. After getting into "real" shape, it's being merged to Linux kernel v5.7-rc1 (test release). Hopefully exFAT
is going to be a part of future Linux/Android kernel stable/LTS releases. It can possibly be backported to current Android LTS releases (3.18 or 4.*) but there can be license issues, I'm not sure of, as Paragon states: "Microsoft’s statement is related to future versions of the Linux Kernel."