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.