از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
منسوخ شدن SDCardFS
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
SDCardFS در دستگاههایی که با Android 11 یا بالاتر راهاندازی میشوند و هسته نسخه 5.4 یا بالاتر را اجرا میکنند منسوخ شده است. در چنین دستگاههایی، آزمایش VTS اجازه نمیدهد سیستمهای فایل نصب شده فهرستشده بهعنوان SDCardFS. دستگاههایی که با Android 11 یا بالاتر راهاندازی میشوند اما نسخه هسته 4.19 یا پایینتر را اجرا میکنند، میتوانند همچنان از SDCardFS استفاده کنند، اما Google پشتیبانی اضافی ارائه نمیکند.
قبل از منسوخ شدن، SDCardFS راهی برای کنترل دسترسی به حافظه داخلی شبیهسازی شده و کارتهای SD خارجی ارائه کرد که به برنامهها اجازه میداد فقط به دادههای مربوط به آنها دسترسی داشته باشند. علاوه بر این، لایه ای از حساسیت به حروف کوچک و همچنین مقداری ردیابی ذخیره سازی اضافی را ارائه می دهد.
قابلیت جایگزینی SDCardFS
جایگزینی برای SDCardFS از چندین ویژگی سیستم فایل هسته لینوکس برای دستیابی به نتایج مشابه استفاده می کند. عدم حساسیت به حروف به طور مستقیم توسط فایل سیستم مدیریت می شود. این باعث میشود زمانهای جستجو در پوشههای حساس به حروف کوچک و بزرگ تقریباً یکسان باشد و کاهش سرعت پوشه بزرگ از SDCardFS حذف شود. ردیابی سهمیهای که SDCardFS برای جمعآوری سریع دادههای ذخیرهسازی برای تنظیمات انجام میداد، اکنون از فضای کاربران با استفاده از سهمیههای پروژه پیکربندی شده است. در برخی زمینههای حساس به عملکرد، دایرکتوریها در محل نصب میشوند. یک پیادهسازی جدید FUSE، فضای ذخیرهسازی وسیعی را برای دسترسی مستقیم به سیستم فایل، در درجه اول برای پشتیبانی از ویرایش اطلاعات مکان، فراهم میکند.
عملکرد جایگزینی SDCard را پیکربندی کنید
برای فعال کردن سهمیههای پروژه و تاشو برای ذخیرهسازی شبیهسازی شده بدون SDCardFS در دستگاهی که با Android 11 یا بالاتر راهاندازی شده است، از emulated_storage.mk
در فایل device.mk
به ارث ببرید:
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
هشدار: این کار را در دستگاههایی که با Android 10 یا پایینتر راهاندازی شدهاند انجام ندهید ، زیرا عدم حساسیت به حروف کوچک و بزرگ سیستم فایل با تنظیمات رمزگذاری مبتنی بر فایل مورد استفاده در چنین دستگاههایی سازگار نیست. استفاده از SDCardFS در چنین دستگاه هایی ضروری است.
دلایل منسوخ شدن SDCardFS
دلایل مختلفی برای منسوخ کردن SDCardFS وجود دارد.
ثبات
SDCardFS از چندین شرایط مسابقه در مورد حساسیت حروف کوچک و همچنین برخی از مسائل مربوط به شرایط حافظه کم رنج می برد. جستجوهای حساس به حروف کوچک و بزرگ میتوانند در دایرکتوریهای بزرگ نسبتاً آهسته باشند، زیرا جستجوگرها برای یافتن موارد جایگزین باید در دایرکتوری پایینی حرکت کنند. دسترسی همزمان به فایل سیستم های بالا و پایین نیز می تواند منجر به مشکلاتی شود.
برابری بالادست
SDCardFS به وصلههای اضافی برای VFS برای پشتیبانی از تغییر گزینهها در پایههای bind نیاز دارد. این وصله ها باعث کار اضافی برای پذیرش تغییرات بالادستی در این مناطق می شود. ویژگیهای SDCardFS را میتوان توسط مؤلفههای بالادستی تکرار کرد و این نقطه درد را از بین برد.
برابری ویژگی با API
در نسخه قبلی اندروید، فضای ذخیرهسازی دامنه دسترسی به انواع خاصی از ابرداده را محدود میکرد. دسترسی مستقیم به فضای ذخیره سازی از طریق SDCardFS از این ویژگی های فضای ذخیره سازی پشتیبانی نمی کند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# SDCardFS deprecation\n\nSDCardFS is deprecated on devices that launch with Android 11 or higher and run kernel version 5.4 or higher. On such\ndevices, [VTS\ntesting](https://android.googlesource.com/platform/test/vts-testcase/kernel/+/refs/heads/android11-dev/sdcardfs/)\ndoesn't allow mounted file systems listed as SDCardFS. Devices that launch with\nAndroid 11 or higher but run kernel version 4.19 or\nlower can continue to use SDCardFS, but Google doesn't provide additional\nsupport.\n\nBefore its deprecation, SDCardFS provided a way to control access to emulated\ninternal storage and external SD cards, allowing apps to access only the data\nrelevant to them. Additionally, it provided a layer of case insensitivity, as\nwell as some additional storage tracking.\n\nSDCardFS replacement functionality\n----------------------------------\n\nThe replacement for SDCardFS uses several Linux kernel filesystem features to\nachieve similar results. Case insensitivity is handled directly by the\nfilesystem; this results in lookup times nearly identical in case-sensitive and\ncase-insensitive folders, removing the large folder slowdown from SDCardFS. The\nquota tracking that SDCardFS was doing to quickly gather storage data for\nsettings is now configured from userspace using project quotas. In some\nperformance-sensitive contexts, directories are bind mounted in place. A new\nFUSE implementation provides scoped storage for direct filesystem access,\nprimarily to support redaction of location information.\n\nConfigure SDCard replacement functionality\n------------------------------------------\n\nTo enable project quotas and case folding for emulated storage without SDCardFS\non a device that launched with Android 11 or higher,\ninherit from `emulated_storage.mk` in the `device.mk` file: \n\n $(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)\n\n**Warning:** Do *not* do this on devices\nthat launched with Android 10 or lower, since\nfilesystem native case-insensitivity is incompatible with the file-based\nencryption settings used on such devices. It is necessary to keep using SDCardFS\non such devices.\n\nReasons to deprecate SDCardFS\n-----------------------------\n\nThere are various reasons to deprecate SDCardFS.\n\n### Stability\n\nSDCardFS suffers from several race conditions concerning case sensitivity, as\nwell as some issues concerning low memory circumstances. Case-insensitive\nlookups can be rather slow in large directories because lookups have to walk the\nlower directory to find alternate cases. Accessing the upper and lower\nfilesystems at the same time can lead to issues as well.\n\n### Upstream parity\n\nSDCardFS requires additional patches to the VFS to support changing options on\nbind mounts. These patches cause additional work to accept upstream changes to\nthese areas. SDCardFS's features can be replicated by upstream components,\nremoving this pain point.\n\n### Feature parity with API\n\nIn the previous release of Android, scoped storage limited access to particular\ntypes of metadata. Direct storage access through SDCardFS doesn't support these\nscoped storage features."]]