EROFS هو نظام ملفات للقراءة فقط تم تقديمه في الإصدار 4.19 من Linux. وهو يتيح ميزة الضغط وإزالة تكرار البيانات، كما تم تحسينه لتحسين أداء القراءة.
يكمن الاختلاف الأساسي بين EROFS وأنظمة الملفات المضغوطة الأخرى في أنّه يتوافق مع فك الضغط في مكانه. يتم تخزين البيانات المضغوطة في نهاية الوحدات، حتى يمكن فك ضغطها في الصفحة نفسها. في صورة EROFS، يمكن لأكثر من% 99 من الكتل استخدام هذا المخطط، وبالتالي لا حاجة إلى تخصيص صفحات إضافية أثناء عمليات القراءة.
لا يلزم ضغط صور EROFS. ومع ذلك، عند استخدام ميزة الضغط، يكون حجم الصور أصغر بنسبة% 25 في المتوسّط. وفي أعلى مستويات الضغط، يمكن أن يصل حجم الصور إلى 45%.
سواءً كان يتم استخدام ميزة الضغط أم لا، تبيّن أنّ نظام EROFS يتفوق على أنظمة الملفات الأخرى في أوقات الوصول العشوائي والتسلسلي.
تغييرات الإصدار
لتفعيل نظام EROFS، استخدِم نوع نظام الملفات erofs
في BoardConfig.mk
.
مثلاً:
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
نوع fstab هو erofs
، وخيار التثبيت الوحيد المطلوب هو ro
. للحفاظ على
إمكانية اختبار صور GSI المستندة إلى EXT4، يمكنك استخدام إدخالَين في fstab لملف
/system.
مثلاً:
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
ضبط الضغط
يُضغط تنسيق EROFS تلقائيًا إلى وحدات بحجم ثابت. يمكن زيادة فعالية الضغط بشكل كبير من خلال تفعيل الكتل ذات الطول المتغير. يمكن تعديل ذلك باستخدام العلامة التالية:
BOARD_EROFS_PCLUSTER_SIZE := 262144
يؤدي ذلك إلى ضبط الحد الأقصى لـ PCLUSTER
أو حجم الكتلة ذات الطول المتغير على 262144
بايت. يجب أن يكون الرقم من مضاعفات 4096. هناك تراجع في العائدات عند القيم الأعلى،
وقد تؤدي القيم الأعلى إلى خفض أداء القراءة اعتمادًا على
جهاز الجهاز.
إيقاف الضغط
يكون مخطّط الضغط تلقائيًا هو lz4hc
. لإيقاف الضغط، استخدِم:
BOARD_EROFS_COMPRESSOR := none
يمكن تغيير ذلك على أساس كل قسم أيضًا، على سبيل المثال:
BOARD_SYSTEMIMAGE_EROFS_COMPRESSOR := none
إزالة التكرار
يمكن لنظام EROFS مشاركة الكتل المكرّرة باستخدام العلامة التالية:
BOARD_EROFS_SHARE_DUP_BLOCKS := true
اعتبارًا من الإصدار Android 13، يجب إيقاف ميزة الضغط لاستخدام هذا الخيار.
التأثير على المواقع الإلكترونية لحجز الفنادق
اعتبارًا من Android 13، أصبح نظام EROFS متوافقًا بالكامل مع ميزة "التحديث الثنائي الافتراضي". يمكن لأداة إنشاء حزم OTA
إنشاء بيانات دلالية من خلال فك ضغط LZ4
المتدفّق داخل نظام الملفات بشكل ذكي. ما دامت كلتا الإصدارتَين المصدر والوجهة تستخدمان
مكتبة LZ4 نفسها، يكون حجم حزمة OTA مشابهًا لحزمة OTA المستندة إلى EXT4. حتى إذا كانت الإصدارات src
أو dst
لا تستخدم مكتبة LZ4
المعروفة نفسها، من المفترض ألا يكون لذلك سوى تأثير بسيط في حجم التحديث عبر الهواء.