Android 11 या इसके बाद के वर्शन के साथ लॉन्च होने वाले और कर्नेल वर्शन 5.4 या इसके बाद के वर्शन वाले डिवाइसों पर, SDCardFS की सुविधा काम नहीं करेगी. ऐसे डिवाइसों पर, VTS की जांच में SDCardFS के तौर पर लिस्ट किए गए माउंट किए गए फ़ाइल सिस्टम की अनुमति नहीं होती. Android 11 या इसके बाद के वर्शन के साथ लॉन्च होने वाले, लेकिन कर्नेल वर्शन 4.19 या इससे पहले के वर्शन वाले डिवाइसों पर SDCardFS का इस्तेमाल जारी रखा जा सकता है. हालांकि, Google इस सुविधा के लिए कोई अतिरिक्त सहायता उपलब्ध नहीं कराता.
SDCardFS की सुविधा बंद होने से पहले, यह इम्युलेटेड डिवाइस के स्टोरेज और बाहरी एसडी कार्ड को ऐक्सेस करने की सुविधा कंट्रोल करती थी. इससे ऐप्लिकेशन सिर्फ़ अपने काम का डेटा ऐक्सेस कर पाते थे. इसके अलावा, यह केस-इनसेंसिटिविटी की एक लेयर के साथ-साथ, स्टोरेज को ट्रैक करने की कुछ अतिरिक्त सुविधाएं भी उपलब्ध कराती थी.
SDCardFS की जगह इस्तेमाल की जाने वाली सुविधा
SDCardFS की जगह इस्तेमाल की जाने वाली सुविधा, एक जैसे नतीजे पाने के लिए Linux कर्नेल फ़ाइल सिस्टम की कई सुविधाओं का इस्तेमाल करती है. केस-इनसेंसिटिविटी को सीधे तौर पर फ़ाइल सिस्टम से मैनेज किया जाता है. इससे केस-सेंसिटिव और केस-इनसेंसिटिव फ़ोल्डर में लुकअप का समय लगभग एक जैसा होता है. साथ ही, SDCardFS में बड़े फ़ोल्डर के धीमे होने की समस्या भी खत्म हो जाती है. सेटिंग के लिए स्टोरेज का डेटा तेज़ी से इकट्ठा करने के लिए, SDCardFS अब कोटा ट्रैकिंग की सुविधा का इस्तेमाल करता है. इसे अब प्रोजेक्ट कोटा का इस्तेमाल करके, userspace से कॉन्फ़िगर किया जाता है. परफ़ॉर्मेंस के हिसाब से संवेदनशील कुछ कॉन्टेक्स्ट में, डायरेक्ट्री को बाइंड माउंट किया जाता है. FUSE के नए वर्शन से, सीधे तौर पर फ़ाइल सिस्टम को ऐक्सेस करने के लिए स्कोप्ड स्टोरेज की सुविधा मिलती है. इसका मुख्य मकसद, जगह की जानकारी को छिपाने में मदद करना है.
SDCardFS की जगह इस्तेमाल की जाने वाली सुविधा को कॉन्फ़िगर करना
Android 11 या इसके बाद के वर्शन के साथ लॉन्च होने वाले किसी डिवाइस पर, SDCardFS के बिना इम्युलेटेड स्टोरेज के लिए प्रोजेक्ट कोटा और केस फ़ोल्डिंग की सुविधा चालू करने के लिए, device.mk फ़ाइल में emulated_storage.mk से इनहेरिट करें:
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
चेतावनी: Android 10 या इससे पहले के वर्शन के साथ लॉन्च होने वाले डिवाइसों पर, ऐसा न करें. इसकी वजह यह है कि फ़ाइल सिस्टम की नेटिव केस-इनसेंसिटिविटी, ऐसे डिवाइसों पर इस्तेमाल की जाने वाली फ़ाइल-आधारित एन्क्रिप्ट की सेटिंग के साथ काम नहीं करती. ऐसे डिवाइसों पर SDCardFS का इस्तेमाल जारी रखना ज़रूरी है.
SDCardFS की सुविधा बंद करने की वजहें
SDCardFS की सुविधा बंद करने की कई वजहें हैं.
ऐप्लिकेशन को क्रैश या फ़्रीज़ होने जैसी समस्याओं से बचाना
SDCardFS में केस सेंसिटिविटी से जुड़ी कई रेस कंडीशन के साथ-साथ, कम मेमोरी की वजह से होने वाली कुछ समस्याएं भी हैं. बड़े डायरेक्ट्री में केस-इनसेंसिटिव लुकअप काफ़ी धीमे हो सकते हैं, क्योंकि वैकल्पिक केस ढूंढने के लिए लुकअप को निचली डायरेक्ट्री में जाना पड़ता है. ऊपरी और निचले फ़ाइल सिस्टम को एक साथ ऐक्सेस करने से भी समस्याएं हो सकती हैं.
अपस्ट्रीम पैरिटी
बाइंड माउंट पर विकल्प बदलने की सुविधा के लिए, SDCardFS को VFS में अतिरिक्त पैच की ज़रूरत होती है. इन पैच की वजह से, इन इलाकों में अपस्ट्रीम में किए गए बदलावों को स्वीकार करने के लिए अतिरिक्त काम करना पड़ता है. SDCardFS की सुविधाओं को अपस्ट्रीम कॉम्पोनेंट से दोहराया जा सकता है. इससे इस समस्या को हल किया जा सकता है.
एपीआई के साथ फ़ीचर पैरिटी
Android के पिछले वर्शन में, स्कोप्ड स्टोरेज की सुविधा से कुछ खास तरह के मेटाडेटा को ऐक्सेस करने की सुविधा सीमित थी. SDCardFS के ज़रिए सीधे तौर पर स्टोरेज को ऐक्सेस करने की सुविधा, डिवाइस के स्कोप किए गए स्टोरेज की इन सुविधाओं के साथ काम नहीं करती.