एडॉप्टेबल स्टोरेज

एंड्रॉइड ने हमेशा बाहरी भंडारण सामान (जैसे एसडी कार्ड) का समर्थन किया है, लेकिन ये सामान ऐतिहासिक फ़ाइल भंडारण तक सीमित थे, उनके अपेक्षित असमानता और पारंपरिक बाहरी भंडारण के लिए न्यूनतम डेटा सुरक्षा के कारण। एंड्रॉइड 6.0 ने आंतरिक भंडारण की तरह कार्य करने के लिए बाहरी भंडारण मीडिया को अपनाने की क्षमता पेश की।

जब बाहरी संग्रहण मीडिया को अपनाया जाता है, तो यह एक समय में एक ही एंड्रॉइड डिवाइस के साथ काम करने के लिए स्वरूपित और एन्क्रिप्टेड होता है। क्योंकि मीडिया दृढ़ता से उस Android डिवाइस से जुड़ा हुआ है जिसने इसे अपनाया, यह सभी उपयोगकर्ताओं के लिए सुरक्षित रूप से ऐप और निजी डेटा दोनों को संग्रहीत कर सकता है।

जब उपयोगकर्ता एक अपनाने योग्य स्थान में नए संग्रहण मीडिया (जैसे एसडी कार्ड) डालते हैं, तो एंड्रॉइड उनसे पूछता है कि वे मीडिया का उपयोग कैसे करना चाहते हैं। वे मीडिया को अपनाने का विकल्प चुन सकते हैं, जो इसे प्रारूपित करता है और इसे एन्क्रिप्ट करता है, या वे इसे सरल फ़ाइल संग्रहण के लिए उपयोग करना जारी रख सकते हैं। यदि वे अपनाना चुनते हैं, तो प्लेटफ़ॉर्म प्राथमिक साझा संग्रहण सामग्री (आमतौर पर /sdcard पर मुहिम शुरू करने) को नव-स्वीकृत मीडिया में स्थानांतरित करने की पेशकश करता है, जो आंतरिक भंडारण पर मूल्यवान स्थान को मुक्त करता है। पारंपरिक भंडारण के विपरीत, जो एमबीआर के उपयोग के कारण 2TB तक सीमित है, गोद लेने योग्य भंडारण GPT का उपयोग करता है और इसलिए इसकी फ़ाइल भंडारण सीमा ~ 9ZB है।

एप्लिकेशन को तभी अपनाया गया स्टोरेज मीडिया पर रखा जा सकता है, जब डेवलपर ने android:installLocation माध्यम से समर्थन का संकेत दिया हो android:installLocation विशेषता। समर्थित ऐप्स की नई इंस्टॉल स्वचालित रूप से सबसे खाली स्थान के साथ स्टोरेज डिवाइस पर रखी जाती हैं, और उपयोगकर्ता सेटिंग्स एप्लिकेशन में स्टोरेज डिवाइस के बीच समर्थित ऐप्स को स्थानांतरित कर सकते हैं। मीडिया को हटाए जाने के दौरान अपनाए गए मीडिया में एप्स को याद किया जाता है और जब मीडिया को फिर से शुरू किया जाता है, तो उसे वापस कर दिया जाता है।

सुरक्षा

प्लेटफ़ॉर्म बेतरतीब ढंग से प्रत्येक अपनाया डिवाइस के लिए एन्क्रिप्शन कुंजी उत्पन्न करता है और उन्हें एंड्रॉइड डिवाइस के आंतरिक भंडारण पर संग्रहीत करता है। यह प्रभावी रूप से अपनाया मीडिया आंतरिक भंडारण के रूप में सुरक्षित बनाता है। कुंजी गोद लिए गए विभाजन GUID के आधार पर अपनाए गए उपकरणों से संबद्ध हैं।

यदि डिवाइस को आंतरिक भंडारण पर फ़ाइल-आधारित एन्क्रिप्शन (FBE) का उपयोग करने के लिए कॉन्फ़िगर किया गया है, तो गोद लेने योग्य भंडारण FBE और मेटाडेटा एन्क्रिप्शन दोनों का उपयोग करता है । अन्यथा, गोद लेने योग्य भंडारण पूर्ण डिस्क एन्क्रिप्शन (FDE) का उपयोग करता है।

दत्तक उपकरण का ऑन-डिस्क लेआउट आंतरिक डेटा विभाजन को बारीकी से दर्शाता है, जिसमें SELinux लेबल, आदि शामिल हैं। जब बहु-उपयोगकर्ता Android डिवाइस पर समर्थित होता है, तो अपनाया गया स्टोरेज डिवाइस भी आंतरिक के समान अलगाव के साथ बहु-उपयोगकर्ता का समर्थन करता है। भंडारण।

क्योंकि अपनाई गई स्टोरेज डिवाइस की सामग्री एंड्रॉइड डिवाइस के लिए दृढ़ता से बंधी हुई है, जिसने इसे अपनाया है, एन्क्रिप्शन कुंजियों को मूल डिवाइस से निकाला नहीं जा सकता है, और इसलिए स्टोरेज डिवाइस को कहीं और माउंट नहीं किया जा सकता है।

यदि आपका डिवाइस FBE का उपयोग करता है, तो FBE दस्तावेज़ और मेटाडेटा एन्क्रिप्शन दस्तावेज़ देखें , ताकि गोद लेने योग्य भंडारण पर FBE और मेटाडेटा एन्क्रिप्शन को कैसे कॉन्फ़िगर किया जा सके।

प्रदर्शन और स्थिरता

स्थिर स्थानों में केवल बाहरी भंडारण मीडिया, जैसे कि बैटरी डिब्बे के अंदर एक स्लॉट या एक सुरक्षात्मक आवरण के पीछे, आकस्मिक डेटा हानि या भ्रष्टाचार से बचने में मदद के लिए गोद लेने पर विचार किया जाना चाहिए। विशेष रूप से, फोन या टैबलेट से जुड़े यूएसबी उपकरणों को कभी भी गोद लेने पर विचार नहीं किया जाना चाहिए। एक सामान्य अपवाद एक टीवी-शैली डिवाइस से जुड़ा एक बाहरी यूएसबी ड्राइव होगा, क्योंकि पूरे टीवी को आमतौर पर एक स्थिर स्थान पर स्थापित किया जाता है।

जब कोई उपयोगकर्ता एक नया संग्रहण उपकरण अपनाता है, तो प्लेटफ़ॉर्म एक बेंचमार्क चलाता है और आंतरिक भंडारण के खिलाफ उसके प्रदर्शन की तुलना करता है। यदि अपनाया गया डिवाइस आंतरिक भंडारण की तुलना में काफी धीमा है, तो मंच उपयोगकर्ता को संभवतः अपमानित अनुभव के बारे में चेतावनी देता है। यह बेंचमार्क लोकप्रिय Android ऐप्स के वास्तविक I / O व्यवहार से लिया गया था। वर्तमान में, एओएसपी कार्यान्वयन केवल एक सीमा से परे उपयोगकर्ताओं को चेतावनी देगा, लेकिन डिवाइस निर्माता इसे आगे भी अनुकूलित कर सकते हैं, जैसे कि गोद लेने को पूरी तरह से अस्वीकार करना अगर कार्ड बेहद धीमा है।

अपनाया उपकरणों को एक फाइलसिस्टम के साथ स्वरूपित किया जाना चाहिए जो POSIX अनुमतियों और विस्तारित विशेषताओं का समर्थन करता है, जैसे ext4 या f2fs । इष्टतम प्रदर्शन के लिए, फ्लैश आधारित भंडारण उपकरणों के लिए f2fs फाइलसिस्टम की सिफारिश की जाती है।

आवधिक निष्क्रिय रखरखाव करते समय, प्लेटफॉर्म FI_TRIM को मीडिया को उसी तरह से जारी करता है, जैसे यह आंतरिक भंडारण के लिए करता है। वर्तमान एसडी कार्ड विनिर्देश DISCARD कमांड का समर्थन नहीं करता है; लेकिन कर्नेल इसके बजाय ERASE कमांड पर वापस आ जाता है, जिसे एसडी कार्ड फर्मवेयर अनुकूलन उद्देश्यों के लिए उपयोग कर सकता है।

परिक्षण

यह समझने के लिए कि गोद लेने योग्य संग्रहण काम कर रहा है, इस CTS परीक्षण को चलाएं:

cts-tradefed run commandAndExit cts-dev \
    -m CtsAppSecurityHostTestCases \
    -t android.appsecurity.cts.AdoptableHostTest

USB ड्राइव और SD कार्ड के व्यवहार को सत्यापित करने के लिए जब किसी डिवाइस में बिल्ट-इन स्लॉट नहीं होता है या जब USB कनेक्टर का उपयोग एक सक्रिय एडीबी कनेक्शन के लिए किया जा रहा हो, तो उपयोग करें:

02 बी 4080 सी 30