SDCardFS को उन डिवाइसों पर बंद कर दिया गया है जो Android 11 या इसके बाद के वर्शन के साथ लॉन्च हुए हैं और जिनमें कर्नेल वर्शन 5.4 या इसके बाद का वर्शन है. ऐसे डिवाइसों पर, वीटीएस टेस्टिंग, SDCardFS के तौर पर लिस्ट किए गए माउंट किए गए फ़ाइल सिस्टम की अनुमति नहीं देती. Android 11 या इसके बाद के वर्शन के साथ लॉन्च होने वाले डिवाइसों में, कर्नेल वर्शन 4.19 या इससे पहले के वर्शन का इस्तेमाल किया जा सकता है. हालांकि, Google इसके लिए अतिरिक्त सहायता उपलब्ध नहीं कराता.
SDCardFS, एसडी कार्ड के बंद होने से पहले, डिवाइस की मेमोरी और एसडी कार्ड के ऐक्सेस को कंट्रोल करने का तरीका उपलब्ध कराता था. इससे ऐप्लिकेशन सिर्फ़ उस डेटा को ऐक्सेस कर पाते थे जो उनके लिए ज़रूरी होता था. इसके अलावा, इससे केस इनसेंसिटिविटी की एक लेयर मिलती है. साथ ही, स्टोरेज को ट्रैक करने की कुछ अतिरिक्त सुविधाएं भी मिलती हैं.
SDCardFS की जगह इस्तेमाल की जा सकने वाली सुविधा
SDCardFS की जगह इस्तेमाल होने वाला फ़ाइल सिस्टम, एक जैसे नतीजे पाने के लिए Linux कर्नल फ़ाइल सिस्टम की कई सुविधाओं का इस्तेमाल करता है. केस-इनसेंसिटिविटी को सीधे तौर पर फ़ाइल सिस्टम मैनेज करता है. इससे केस-सेंसिटिव और केस-इनसेंसिटिव फ़ोल्डर में फ़ाइलें ढूंढने में लगने वाला समय लगभग एक जैसा होता है. साथ ही, SDCardFS में बड़े फ़ोल्डर को लोड होने में लगने वाला समय कम हो जाता है. SDCardFS, सेटिंग के लिए स्टोरेज डेटा को तेज़ी से इकट्ठा करने के लिए कोटा ट्रैकिंग करता था. अब इसे प्रोजेक्ट कोटा का इस्तेमाल करके, userspace से कॉन्फ़िगर किया जाता है. परफ़ॉर्मेंस के लिहाज़ से अहम कुछ संदर्भों में, डायरेक्ट्री को बाइंड माउंट किया जाता है. FUSE को नए तरीके से लागू करने पर, फ़ाइल सिस्टम को सीधे तौर पर ऐक्सेस करने के लिए स्कोप किया गया स्टोरेज मिलता है. इसका मुख्य मकसद, जगह की जानकारी को हटाना है.
एसडी कार्ड बदलने की सुविधा को कॉन्फ़िगर करना
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 के ज़रिए डायरेक्ट स्टोरेज ऐक्सेस करने पर, स्कोप किए गए स्टोरेज की इन सुविधाओं का इस्तेमाल नहीं किया जा सकता.