EROFS, Linux 4.19'da kullanıma sunulan salt okunur bir dosya sistemidir. Sıkıştırma ve tekilleştirmeyi 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 depresyonu destekler. Sıkıştırılmış veriler, aynı sayfada sıkıştırılmadan açılabilmeleri için blokların sonunda depolanır. EROFS görüntüsünde, blokların %99'undan fazlası bu şemayı kullanabilir. Bu sayede, okuma işlemleri sırasında ek sayfa ayırma ihtiyacı ortadan kalkar.
EROFS resimlerinin sıkıştırılması gerekmez. Ancak sıkıştırma kullanıldığında resimler ortalama %25 daha küçük olur. En yüksek sıkıştırma seviyelerinde resimler %45'e varan oranda küçültülebilir.
Sıkıştırma kullansanız da kullanmasa da, EROFS'nin diğerlerine göre daha iyi performans gösterdiği görüldü. erişim süreleriyle çalışır.
Derleme değişiklikleri
EROFS'yi etkinleştirmek için BoardConfig.mk
ürününde erofs
dosya sistemi türünü kullanın.
Örnek:
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
'tür ve gereken tek bağlama seçeneği ro
'tür. To
ve EXT4 tabanlı GSI görüntülerini test edebildiğinizde, her bir dosya için iki fstab girişi
/system.
.
Örnek:
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ılır. Değişken uzunluktaki bloklar etkinleştirilerek sıkıştırma verimliliği önemli ölçüde artırılabilir. Bu, aşağıdaki işaretle yapılandırılabilir:
BOARD_EROFS_PCLUSTER_SIZE := 262144
Bu, maksimum PCLUSTER
veya değişken uzunluktaki blok boyutunu 262144 olarak ayarlar
bayt olarak kabul edilir. Sayı 4096'nın katı olmalıdır. Yatırım getirisinde azalma var
daha yüksek değerlere ve yüksek değerler,
cihaz donanımı kullanıyor.
Sıkıştırmayı devre dışı bırakma
Varsayılan olarak, sıkıştırma şeması lz4hc
şeklindedir. Sıkıştırmayı devre dışı bırakmak için şunu kullanın:
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, yinelenen blokları aşağıdaki işaretle paylaşabilir:
BOARD_EROFS_SHARE_DUP_BLOCKS := true
Android 13'ten itibaren bu işaretin kullanılabilmesi için sıkıştırma devre dışı bırakılmalıdır.
OTA'lar üzerindeki etkisi
EROFS, Android 13 sürümünden itibaren Sanal A/B ile tamamen desteklenmektedir. OTA paketi oluşturucu, dosya sistemindeki LZ4 akışlarını akıllıca sıkıştırarak delta oluşturabilir. Hem kaynak hem de hedef derlemeler
OTA paketinin boyutu, LZ4 kitaplığınınkiyle
EXT4 tabanlı OTA. src
veya dst
derlemeleri aynı LZ4'ü kullanmıyor olsa bile
OTA boyutu üzerinde küçük bir etkisi olur.