31 votos

¿Desde qué versión de Android está soportada exFat?

¿Qué versión de Android soporta exFat si es que lo hace? La web no parece tenerlo claro. ¡Gracias!

2 votos

Supongo que su verdadera pregunta es "¿Desde qué versión de Android es compatible con exFat?" - sólo así tiene sentido.

15voto

Dan B Puntos 31

Parece que, según aquí Ha sido soportado desde KitKat (ya sea que use aplicaciones o no) Pero (como siempre) depende de la discreción del OEM si un dispositivo puede funcionar. Lo más probable es que, si un dispositivo soporta tarjetas SD de más de 32Gb, soporta SDXC, que tiene un sistema de archivos exFAT (First Graph aquí )

0 votos

Eso tiene sentido, también la omisión de soporte del OEM si un dispositivo no tiene un lector de tarjetas SD.

0 votos

Me alegro de ser útil.

11 votos

He comprobado que mi Pixel en 2018 en Android 8.1 no soporta exFat.

14voto

Jack Wade Puntos 231

A día de hoy (03-Abr-2020), exFAT aún no está soportado oficialmente en AOSP.

exFAT - un sistema de archivos desarrollado por Microsoft, no era (es) de código abierto, por lo que nunca formó parte del núcleo de Linux (y por tanto de Android) por cuestiones de patentes. Sin embargo, un controlador basado en FUSE ( exFAT-FUSE ) existe desde hace mucho tiempo. Pero no es un controlador adecuado en el núcleo, por lo que tiene un rendimiento inferior. También hay implementaciones exFAT con licencia comercial y para usuarios domésticos de socios autorizados de Microsoft como Tuxera y Paragon .

Tras la filtración del código fuente del sistema de archivos exFAT, Samsung fuentes abiertas un controlador exFAT en 2013. Está disponible como exFAT-nofuse Módulo del núcleo de Linux. En 2018 otro controlador exFAT fue liberado como parte de la fuente del Samsung Galaxy S8+. Está disponible como exFAT-Linux módulo del núcleo fuera del árbol.

Sin embargo, ninguno de estos controladores se incorporó a la línea principal de Linux por problemas de licencia. El otra respuesta afirma correctamente que depende de la discreción de los OEM si incluyen el controlador exFAT en su kernel (y los ejecutables en el espacio de usuario) después de tener un acuerdo con Microsoft o sus socios. Pero casi todas las ROMs personalizadas incluyen uno o más de los controladores mencionados. exFAT-FUSE también está disponible como módulo Magisk: vold-posix que se puede utilizar casi con cualquier ROM (al menos después de algunas modificaciones). Con Android 9, un soporte muy básico también fue añadido a AOSP :

"Android no soporta de forma nativa exFAT, pero al menos estamos dispuestos a intentar montar un sistema de archivos exFAT si detectamos que el kernel de Linux lo soporta, y si los binarios de ayuda están presentes."

Llegó un grandes noticias de la EM en 2019:

"Microsoft ♥ Linux" - lo decimos mucho, ¡y lo decimos en serio! Hoy nos complace anunciar que Microsoft apoya la incorporación de la tecnología exFAT de Microsoft al núcleo de Linux."

Y con ello un usuario comunitario (que ya desarrollado un controlador exFAT para Linux basado en la versión 2013) hizo que el compromisos iniciales a puesta en escena (no oficial, que formará parte del núcleo principal). Después de ponerse en forma "de verdad" , está siendo fusionado con el núcleo de Linux v5.7-rc1 (lanzamiento de prueba). Esperemos que exFAT va a formar parte de las futuras versiones estables/LTS del kernel de Linux/Android. Es posible que se pueda retroceder a versiones actuales de Android LTS (3.18 o 4.*) pero puede haber problemas de licencia, no estoy seguro, ya que Paragon afirma : "La declaración de Microsoft está relacionada con futuras versiones del Kernel de Linux".

3voto

exFAT es compatible de forma nativa desde A13.


¿Por qué no antes?

En agosto de 2019, Microsoft publicó la especificación técnica de exFAT y respaldó su incorporación al núcleo de Linux. Aunque Microsoft sigue teniendo patentes sobre exFAT, su anuncio significa que los miles de miembros de la Open Invention Network (Red de Invención Abierta), de la que Microsoft forma parte, pueden utilizar libremente la tecnología en sus productos basados en Linux, ya que está cubierta por la definición de sistema Linux de la OIN.

Inmediatamente después del anuncio de Microsoft, una versión antigua del controlador Linux exFAT de Samsung que estuvo en el limbo legal durante años fue enviada a la zona de pruebas de Linux 5.4. Sin embargo, muchos mantenedores del kernel no estaban satisfechos con la calidad del código del antiguo controlador, por lo que empezaron a aparecer varias implementaciones alternativas, una de ellas de Paragon Software. Finalmente, la comunidad del kernel de Linux se decantó por un nuevo controlador exFAT desarrollado por Samsung, el mismo que ya ha estado distribuyendo en sus propios productos. La implementación de Samsung de la exFAT de Microsoft aterrizó oficialmente en Linux 5.7.


¿Cómo?

Con un controlador exFAT aprobado por Microsoft finalmente disponible en el kernel de Linux, la compatibilidad con exFAT en Android se ha vuelto mucho menos complicada para Google y los fabricantes de equipos originales. Dado que no existe una bifurcación de Android Common Kernel de Linux kernel 5.7, la primera rama ACK para incluir el nuevo controlador exFAT se basó en Linux 5.10, de ahí la línea mencionada al principio del artículo acerca de que exFAT es compatible con el kernel 5.10 y posteriores. CONFIG_EXFAT_FS se ha establecido en las compilaciones de GKI desde hace más de un año, incluidos los kernels basados en la rama android12-5.10, razón por la cual el kernel de mi Pixel 6 Pro que ejecuta Android 12L informa soporte para exFAT. Sin embargo, falta una pieza del rompecabezas para que Android monte unidades exFAT, y tiene que ver con vold.

Vold es la abreviatura de "volume daemon", y es el servicio que se encarga de montar y desmontar los soportes de almacenamiento. Vold en realidad agregó soporte básico para exFAT todo el camino de regreso a principios de 2018, siempre que detecte que el kernel lo soporta y los "binarios de ayuda" están presentes. Esos "binarios de ayuda" son mkfs.exfat y fsck.exfat, herramientas que respectivamente construyen y comprueban la consistencia de los sistemas de archivos exFAT. Se incluyen como parte de exfatprogs, un conjunto de utilidades de espacio de usuario para crear, reparar y depurar sistemas de archivos exFAT. Si no se detectan estos binarios de ayuda, la comprobación del sistema de archivos fallará y el volumen no se montará.


¿Por qué no A12?

Por si aún no lo has adivinado, esos binarios de ayuda no están presentes en ninguna build estable de Android 12L para el Pixel 6 Pro, pero sí en las builds beta de Android 13.

El Manifiesto de la Plataforma Android, que la herramienta de repositorios de Google utiliza para encontrar los distintos repositorios en AOSP cuando se comprueba una rama específica, añadió external/exfatprogs al manifiesto por defecto en la rama maestra de AOSP el año pasado. Esto significa que cualquiera que compruebe la rama principal de AOSP durante su proceso de compilación habrá incluido los binarios de ayuda necesarios para pasar la comprobación del sistema de archivos de vold para exFAT. El manifiesto por defecto en la rama Android-12.1.0_r8, sin embargo, no extrae external/exfatprogs, por lo que esas compilaciones carecerán de los binarios de ayuda.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X