منسوخ شدن SDCardFS

SDCardFS در دستگاه‌هایی که با اندروید ۱۱ یا بالاتر راه‌اندازی می‌شوند و کرنل نسخه ۵.۴ یا بالاتر را اجرا می‌کنند، منسوخ شده است. در چنین دستگاه‌هایی، آزمایش VTS اجازه نصب سیستم‌فایل‌های ذکر شده به عنوان SDCardFS را نمی‌دهد. دستگاه‌هایی که با اندروید ۱۱ یا بالاتر راه‌اندازی می‌شوند اما کرنل نسخه ۴.۱۹ یا پایین‌تر را اجرا می‌کنند، می‌توانند به استفاده از SDCardFS ادامه دهند، اما گوگل پشتیبانی بیشتری ارائه نمی‌دهد.

قبل از منسوخ شدن، SDCardFS راهی برای کنترل دسترسی به حافظه داخلی شبیه‌سازی‌شده و کارت‌های SD خارجی ارائه می‌داد و به برنامه‌ها اجازه می‌داد فقط به داده‌های مربوط به خود دسترسی داشته باشند. علاوه بر این، لایه‌ای از عدم حساسیت به حروف کوچک و بزرگ و همچنین برخی ردیابی‌های اضافی در فضای ذخیره‌سازی ارائه می‌داد.

قابلیت جایگزینی SDCardFS

جایگزینی برای SDCardFS از چندین ویژگی سیستم فایل هسته لینوکس برای دستیابی به نتایج مشابه استفاده می‌کند. عدم حساسیت به حروف بزرگ و کوچک مستقیماً توسط سیستم فایل مدیریت می‌شود. این امر منجر به زمان‌های جستجو تقریباً یکسان در پوشه‌های حساس به حروف بزرگ و کوچک می‌شود و کندی پوشه‌های بزرگ را از SDCardFS حذف می‌کند. ردیابی سهمیه‌ای که SDCardFS برای جمع‌آوری سریع داده‌های ذخیره‌سازی برای تنظیمات انجام می‌داد، اکنون از فضای کاربر با استفاده از سهمیه‌های پروژه پیکربندی شده است. در برخی از زمینه‌های حساس به عملکرد، دایرکتوری‌ها در جای خود متصل می‌شوند. پیاده‌سازی جدید FUSE، ذخیره‌سازی محدود را برای دسترسی مستقیم به سیستم فایل فراهم می‌کند، که عمدتاً برای پشتیبانی از ویرایش اطلاعات مکان است.

پیکربندی قابلیت جایگزینی کارت حافظه

برای فعال کردن سهمیه‌بندی پروژه و قابلیت تا کردن کیس برای فضای ذخیره‌سازی شبیه‌سازی‌شده بدون SDCardFS در دستگاهی که با اندروید ۱۱ یا بالاتر راه‌اندازی شده است، از emulated_storage.mk در فایل device.mk ارث‌بری کنید:

$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)

هشدار: این کار را روی دستگاه‌هایی که با اندروید ۱۰ یا پایین‌تر راه‌اندازی شده‌اند انجام ندهید ، زیرا عدم حساسیت به حروف بزرگ و کوچک در سیستم فایل با تنظیمات رمزگذاری مبتنی بر فایل مورد استفاده در چنین دستگاه‌هایی سازگار نیست. لازم است که در چنین دستگاه‌هایی به استفاده از SDCardFS ادامه دهید.

دلایل منسوخ شدن SDCardFS

دلایل مختلفی برای منسوخ شدن SDCardFS وجود دارد.

پایداری

SDCardFS از چندین مشکل مربوط به حساسیت به حروف کوچک و بزرگ و همچنین برخی مشکلات مربوط به کمبود حافظه رنج می‌برد. جستجوهای غیرحساس به حروف کوچک و بزرگ در دایرکتوری‌های بزرگ می‌تواند نسبتاً کند باشد زیرا جستجوها باید دایرکتوری پایین‌تر را برای یافتن موارد جایگزین طی کنند. دسترسی همزمان به سیستم فایل بالا و پایین نیز می‌تواند منجر به مشکلاتی شود.

برابری بالادستی

SDCardFS برای پشتیبانی از گزینه‌های در حال تغییر در bind mountها، به وصله‌های اضافی برای VFS نیاز دارد. این وصله‌ها باعث می‌شوند کار بیشتری برای پذیرش تغییرات بالادستی در این حوزه‌ها انجام شود. ویژگی‌های SDCardFS را می‌توان توسط اجزای بالادستی تکثیر کرد و این نقطه ضعف را از بین برد.

برابری ویژگی با API

در نسخه قبلی اندروید، فضای ذخیره‌سازی محدود (scoped storage) دسترسی به انواع خاصی از فراداده‌ها را محدود می‌کرد. دسترسی مستقیم به فضای ذخیره‌سازی از طریق SDCardFS از این ویژگی‌های فضای ذخیره‌سازی محدود پشتیبانی نمی‌کند.