EROFS

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.