Android 13 ще получи официална поддръжка за exFAT след години на ада на разработка

Много фина промяна позволи на Pixel 6 Pro да чете exFAT-форматирано устройство, но отне много, за да стигне до там

Android 13 ще даде възможност за устройство Pixel да обработва файлове, по-големи от 4 GB в дисковата памет за първи път. Но историята за това как файловият формат exFAT се поддържа на Pixel 6 е тази, която се събира, парче по парче, за дълъг период от време.

Трябва да благодарим на Мишаал Рахман, технически редактор в Esper ходене по градинската пътека след като установи, че поддръжката за exFAT (Extensible File Allocation Table) е налична само на неговия Pixel 6 Pro, след като го премести от Android 12L в Android 13 Beta. Като се има предвид, че поддръжката на exFAT е налична за версии на Android, работещи на версия 5.10 или по-нова на ядрото на Linux и че Android 12L беше на 5.10.81-android12-9 и че бета версията беше на 5.10.107-android13-4, нещо не беше наред място тук.

ANDROIDPOLICE ВИДЕО НА ДЕНЯ

Ако притежавате устройство с Android, което не е Google, и случайно използвате exFAT дискове с него, може да се чудите за какво е цялата тази суматоха. Оказва се, че те са плащали на Microsoft – създател на exFAT през 2006 г. и следователно на неговия собственик – да го поддържа, така че хардуерът им да може да работи с широкия набор от аксесоари, форматирани в exFAT. Samsung беше един от OEM производителите, които платиха за поддръжка и след това разработиха заден джоб exFAT драйвер. След като Microsoft пусна exFAT публично през 2019 г. и насърчи интегрирането му в Linux, общността на ядрото започна да работи по начини за това. Драйверът exFAT на Samsung беше преработен и в крайна сметка беше избран да бъде поставен в Linux 5.7.


Разработване на ядрото на Android и разработчици надолу по веригата не ми харесва да прескачам версиите толкова бързо, като предпочитат да поддържат дългосрочна поддръжка за всяка конкретна версия, за да гарантират по-стабилна платформа. В този момент поддържаното от Google Android Common Kernel беше базирано на Linux 5.4 и едва 5.10 щеше да образува нов клон. Във всеки случай устройствата с Android 12, базирани на ядрото 5.10, поддържат технически монтиране и демонтиране на exFAT. И така, какво пречеше на Pixel 6 Pro на 12L да чете exFAT устройство?

Оказва се, че услугата за монтиране на exFAT, известна като volume daemon или vold, проверява дали има достъп до няколко специфични “помощни” двоични файла. Ако не са там, услугата за монтаж се проваля на проверката и няма да работи. Изглежда, че компилациите на Android 12, на които работи Pixel 6 Pro, нямат тези двоични файлове, защото не са били извиквани от определената им библиотека. Предполага се, че това обаждане присъства в версиите на Android 13. И ето как Android 13 започна да поддържа exFAT … добре, официално казано – поне един персонализиран разработчик на ядрото очевидно е успял да закърпи двоичната проверка на exFAT драйвера, така че теоретично може да бъде обратно пренесен към по-стара версия на Android .


В даден момент други OEM производители ще могат да адаптират поддръжката на exFAT направо от AOSP, след като Google експортира промените си от Android 13.

Ако ви е харесала тази история, определено ще се насладите на друга заешка дупка, включваща Android, Huawei и новият файлов формат EROFS. И ако ви харесват и двете истории, добре, ние честно казано не можем да препоръчаме достатъчно високо колоната на Mishaal с Android Dessert Bytes.