SD CardFS का इस्तेमाल बंद होना

SDCardFS, Android 11 या इसके बाद के वर्शन और 5.4 या इसके बाद के वर्शन वाले कर्नेल पर काम नहीं करता. ऐसे डिवाइसों पर, VTS जांच में, SDCardFS के तौर पर सूची में शामिल माउंट किए गए फ़ाइल सिस्टम का इस्तेमाल नहीं किया जा सकता. ऐसे डिवाइस जो Android 11 या उसके बाद के वर्शन के साथ लॉन्च होते हैं, लेकिन कर्नेल वर्शन 4.19 या इससे पहले के वर्शन पर काम करते हैं, वे SDcardFS का इस्तेमाल जारी रख सकते हैं. हालांकि, Google इसके लिए अतिरिक्त सहायता नहीं देता है.

इस सुविधा के बंद होने से पहले, एसडीकार्डएफ़एस ने एम्युलेट किए गए इंटरनल स्टोरेज और बाहरी एसडी कार्ड के ऐक्सेस को कंट्रोल करने का तरीका उपलब्ध कराया था. इससे ऐप्लिकेशन सिर्फ़ अपना काम का डेटा ऐक्सेस कर पाते थे. इसके अलावा, यह केस-इनसेंसिटिविटी की सुविधा देता है. साथ ही, स्टोरेज को ट्रैक करने की कुछ अन्य सुविधाएं भी देता है.

SDCardFS की जगह लेने वाली सुविधा

SDcardFS की जगह, मिलते-जुलते नतीजे पाने के लिए, Linux कर्नेल के फ़ाइल सिस्टम की कई सुविधाओं का इस्तेमाल किया जाता है. केस-इनसेंसिटिव फ़ाइल सिस्टम, केस-सेंसिटिव और केस-इनसेंसिटिव फ़ोल्डर में फ़ाइलों को खोजने में लगने वाले समय में ज़्यादा अंतर नहीं होने देता. इससे, SDCardFS में बड़े फ़ोल्डर को खोजने में लगने वाला समय कम हो जाता है. सेटिंग के लिए स्टोरेज डेटा को तुरंत इकट्ठा करने के लिए, SDCardFS जो कोटा ट्रैकिंग कर रहा था उसे अब प्रोजेक्ट कोटा का इस्तेमाल करके, उपयोगकर्ता स्पेस से कॉन्फ़िगर किया गया है. परफ़ॉर्मेंस पर असर डालने वाली कुछ स्थितियों में, डायरेक्ट्री अपनी जगह पर माउंट की जाती हैं. FUSE के नए वर्शन में, फ़ाइल सिस्टम को सीधे ऐक्सेस करने के लिए, स्कोप वाला स्टोरेज उपलब्ध कराया जाता है. इसका मकसद, मुख्य रूप से जगह की जानकारी हटाने की सुविधा को बेहतर बनाना है.

एसडी कार्ड बदलने की सुविधा कॉन्फ़िगर करना

Android 11 या उसके बाद के वर्शन वाले डिवाइस पर, एमुलेट किए गए स्टोरेज के लिए प्रोजेक्ट कोटा और केस फ़ोल्डिंग की सुविधा चालू करने के लिए, 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 की मदद से, स्टोरेज को सीधे ऐक्सेस करने की सुविधा, स्टोरेज के दायरे से जुड़ी इन सुविधाओं के साथ काम नहीं करती.