EROFS

EROFS, Linux 4.19'da kullanıma sunulan salt okunur bir dosya sistemidir. Sıkıştırma ve tekilleştirme işlemlerini destekler ve okuma performansı için optimize edilmiştir.

EROFS ile diğer sıkıştırılmış dosya sistemleri arasındaki temel fark, yerinde sıkıştırmayı desteklemesidir. Sıkıştırılmış veriler, aynı sayfada sıkıştırması açılabilmesi için blokların sonunda saklanır. Bir EROFS görüntüsünde blokların% 99'undan fazlası bu şemayı kullanabilir. Böylece okuma işlemleri sırasında ek sayfalar ayırmaya gerek kalmaz.

EROFS resimlerinin sıkıştırılması gerekmez. Ancak sıkıştırma kullanıldığında resimler ortalama% 25 daha küçüktür. En yüksek sıkıştırma seviyelerinde, resimler% 45'e kadar daha küçük olabilir.

EROFS, sıkıştırma kullanılsın veya kullanılmasın, hem rastgele hem de sıralı erişim sürelerinde diğer dosya sistemlerinden daha iyi performans gösterir.

Derleme değişiklikleri

EROFS'u etkinleştirmek için BoardConfig.mk içinde erofs dosya sistemi türünü kullanın. Örneğin:

BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs
BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs

fstab değişiklikleri

fstab türü erofs ve gereken tek bağlama seçeneği ro'dir. EXT4 tabanlı GSI görüntülerini test etme özelliğini korumak için /system. için iki fstab girişi kullanabilirsiniz.

Örneğin:

system    /system    erofs   ro              wait,slotselect,avb=vbmeta_system,logical,first_stage_mount
system    /system    ext4    ro,barrier=1    wait,slotselect,avb=vbmeta_system,logical,first_stage_mount

Sıkıştırma ayarı

EROFS, varsayılan olarak sabit boyutlu bloklar halinde sıkıştırır. Değişken uzunluklu bloklar etkinleştirilerek sıkıştırma etkinliği önemli ölçüde artırılabilir. Bu, aşağıdaki işaretle yapılandırılabilir:

BOARD_EROFS_PCLUSTER_SIZE := 262144

Bu ayar, maksimum PCLUSTER veya değişken uzunluklu blok boyutunu 262144 bayt olarak ayarlar. Sayı, 4096'nın katı olmalıdır. Daha yüksek değerlerde azalan getiri vardır ve daha yüksek değerler, cihaz donanımına bağlı olarak okuma performansını düşürebilir.

Sıkıştırmayı devre dışı bırakma

Varsayılan olarak, sıkıştırma şeması lz4hc'dır. Sıkıştırmayı devre dışı bırakmak için:

BOARD_EROFS_COMPRESSOR := none

Bu ayar, bölüm bazında da değiştirilebilir. Örneğin:

BOARD_SYSTEMIMAGE_EROFS_COMPRESSOR := none

Tekilleştirme

EROFS, aşağıdaki işaretle yinelenen blokları paylaşabilir:

BOARD_EROFS_SHARE_DUP_BLOCKS := true

Android 13'ten itibaren bu işareti kullanmak için sıkıştırma devre dışı bırakılmalıdır.

Online seyahat acenteleri üzerindeki etkisi

Android 13'ten itibaren EROFS, sanal A/B ile tam olarak desteklenir. OTA paketi oluşturucu, dosya sistemindeki LZ4 akışlarını akıllıca açarak delta oluşturabilir. Hem kaynak hem de hedef derlemeler aynı LZ4 kitaplığını kullandığı sürece, OTA paketi, EXT4 tabanlı bir OTA ile karşılaştırılabilir boyuttadır. src veya dst derlemeleri aynı LZ4 kitaplığını kullanmasa bile bu durum, OTA boyutunu yalnızca küçük bir oranda etkiler.