HATALAR

EROFS, Linux 4.19'da kullanıma sunulan salt okunur bir dosya sistemidir. Sıkıştırmayı 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 sıkıştırma işlemini desteklemesidir. Sıkıştırılmış veriler, aynı sayfada sıkıştırılmadan kullanılabilmesi 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 kullanılsa da kullanılmasa da EROFS'un hem rastgele hem de sıralı erişim sürelerinde diğer dosya sistemlerinden daha iyi performans gösterdiği gösterilmiştir.

Derleme değişiklikleri

EROFS'yi etkinleştirmek için BoardConfig.mk içinde 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, gereken tek ekleme seçeneği ise ro. EXT4 tabanlı GSI görüntülerini test etmeyi sürdürmek amacıyla /system. için iki fstab girişi kullanabilirsiniz

Ö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 bayt olarak ayarlar. Sayı 4096'nın katı olmalıdır. Daha yüksek değerlerde verim azalı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ırak

Varsayılan sıkıştırma şeması lz4hc'tü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, yinelenen blokları aşağıdaki işaretle 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.

OTA'lar ü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 sıkıştırarak delta oluşturabilir. Hem kaynak hem de hedef derlemeler aynı LZ4 kitaplığını kullandığı sürece OTA paketinin boyutu EXT4 tabanlı bir OTA ile karşılaştırılabilir. src veya dst derlemeleri aynı LZ4 kitaplığını kullanmasa bile bu durum OTA boyutu üzerinde yalnızca küçük bir etkiye sahip olacaktır.