Tutti i dispositivi che verranno lanciati sul mercato con a bordo Android 13 faranno uso di EROFS, un nuovo file system più efficiente utilizzato per la prima volta da Huawei. Sì, avete letto bene: nonostante la vicenda del ban degli USA abbia inciso pesantemente sulle vendite di Huawei a livello internazionale, a distanza di anni il produttore cinese continua ad influenzare in misura significativa l’intero mondo dei dispositivi Android.

La novità era passata un po’ sotto silenzio rispetto a quelle più evidenti della nuova versione del robottino, ma ora ci ha pensato il solito Mishaal Rahman a scavare più a fondo e portarla alla luce.

Da Huawei a Linux ad Android: ecco EROFS

EROFS (“Enhanced Read-Only File System”), un file system realizzato dall’ingegnere Xiang Gao quando lavorava per Huawei, verrà usato su ogni dispositivo lanciato con Android 13, o meglio su tutti quelli coi GMS (Google Mobile Services). A dirla tutta questo file system viene già utilizzato da alcuni OEM oltre a Huawei per via dei suoi benefici in termini di efficienza e performance. Ebbene. ora che EROFS è supportato da Linux 5.4, Google ha pensato bene di compiere il salto e farne il file system predefinito per le partizioni di sola lettura di Android.

Introdotto per la prima volta nella staging area del kernel Linux con la versione 4.14 a metà 2018 — quando l’autore Xiang Gao aveva presentato le prime patch per il driver —, EROFS differisce da altri file system read-only per il fatto di badare anche alle prestazioni e non solo all’efficienza in termini di risparmio di spazio. A dimostrazione di quanto dichiarato, Xiang aveva condiviso un promettente confronto tra i dati di lettura/scrittura sequenziale e casuale di uno smartphone Android con Kirin 970 con partizione formattata con EROFS e con EXT4.

Android 13 EROFS

Dopo un anno di sviluppo e altre patch, Xiang era riuscito a portare EROFS dalla staging area a quella mainline di Linux con la versione 5.4 nel 2019. Il file system era già sufficientemente stabile da trovare posto in 10 milioni di Huawei con EMUI 9.0.1 e il produttore cinese l’aveva presentato come una delle novità della EMUI 9.1.

Altri OEM e Google

Per via della nuova versione del kernel richiesta e della necessità di adattare l’infrastruttura degli aggiornamenti OTA, soltanto a metà 2021 altri OEM hanno abbracciato il cambiamento e si possono citare gli esempi di OPPO e Xiaomi.

Ma ora la novità è pronta a diffondersi grazie a Google: l’Android Common Kernel ha adottato EROFS da android11-5.4 e i dispositivi lanciati con Android 13 dovranno avere almeno android12-5.4, dunque ogni dispositivo con la nuova versione out of the box sarà quantomeno compatibile con EROFS; inoltre, Google ha portato il supporto a EROFS nell’update_engine di Android, aggiunto user space tools, aperto alla possibilità di realizzare GSI e cuttlefish AVD con EROFS. La strada sembra ormai tracciata: Google intende rimpiazzare EXT4 con il file system reso famoso da Huawei, quanto meno nelle partizioni di sola lettura di Android.

raven:/ $ mount
/dev/block/dm-7 on / type ext4 (ro,seclabel,relatime)
/dev/block/dm-8 on /system_dlkm type ext4 (ro,seclabel,relatime)
/dev/block/dm-9 on /system_ext type ext4 (ro,seclabel,relatime)
/dev/block/dm-10 on /product type ext4 (ro,seclabel,relatime)
/dev/block/dm-11 on /vendor type ext4 (ro,seclabel,relatime)
/dev/block/dm-12 on /vendor_dlkm type ext4 (ro,seclabel,relatime)

In precedenza si accennava ai benefici che hanno convinto altri OEM ad aderire alla novità, ebbene oltre a guardare alle prestazioni, questo file system è anche nettamente più efficiente, basti pensare che un’immagine cuttlefish con EROFS occupa 800 MB in meno di una con EXT4. Insomma, spazio in più da usare per app di sistema o da offrire agli utenti; senza dimenticare che un’aggiornamento OTA di dimensioni inferiori vuol dire anche un minor consumo di dati mobili.

Se volete addentrarvi nel discorso tecnico, potete dare un’occhiata al seguente PDF e a questi altri link, ma si tratta di un argomento piuttosto complesso.

La novità era nell’aria

Tornando a Google, la novità era nell’aria già dallo scorso dicembre, ma ora vuole rendere il tutto più chiaro. Il PackageManager nelle beta di Android 13 contiene due nuove feature declarations: android.software.erofs e android.software.erofs_legacy. Queste non compaiono ancora nell’AOSP, ma su Google Pixel 6 con EXT4 c’è già traccia di EROFS (si parla di supporto, non di formattazione).

Leggi anche: Google ha rilasciato la Beta 2 di Android 13 con una lista lunga di novità