গ্রহণযোগ্য স্টোরেজ

অ্যান্ড্রয়েড সর্বদা বাহ্যিক স্টোরেজ আনুষাঙ্গিক (যেমন SD কার্ড) সমর্থন করে, তবে এই আনুষাঙ্গিকগুলি ঐতিহাসিকভাবে সাধারণ ফাইল স্টোরেজের মধ্যে সীমাবদ্ধ ছিল, কারণ তাদের প্রত্যাশিত অস্থিরতা এবং ঐতিহ্যগত বাহ্যিক সঞ্চয়স্থানে দেওয়া ন্যূনতম ডেটা সুরক্ষার কারণে। অ্যান্ড্রয়েড 6.0 অভ্যন্তরীণ স্টোরেজের মতো কাজ করার জন্য বাহ্যিক স্টোরেজ মিডিয়া গ্রহণ করার ক্ষমতা চালু করেছে।

যখন বাহ্যিক স্টোরেজ মিডিয়া গৃহীত হয়, তখন এটিকে ফরম্যাট করা হয় এবং এনক্রিপ্ট করা হয় যাতে একটি সময়ে শুধুমাত্র একটি Android ডিভাইসের সাথে কাজ করা যায়। যেহেতু মিডিয়া দৃঢ়ভাবে Android ডিভাইসের সাথে আবদ্ধ যেটি এটি গ্রহণ করেছে, এটি সমস্ত ব্যবহারকারীর জন্য অ্যাপ এবং ব্যক্তিগত ডেটা উভয়ই নিরাপদে সংরক্ষণ করতে পারে।

যখন ব্যবহারকারীরা একটি গ্রহণযোগ্য স্থানে নতুন স্টোরেজ মিডিয়া (যেমন একটি SD কার্ড) সন্নিবেশ করান, তখন Android তাদের জিজ্ঞাসা করে কিভাবে তারা মিডিয়া ব্যবহার করতে চান। তারা মিডিয়া গ্রহণ করতে বেছে নিতে পারে, যা এটিকে ফর্ম্যাট করে এবং এনক্রিপ্ট করে, অথবা তারা সাধারণ ফাইল স্টোরেজের জন্য এটি ব্যবহার চালিয়ে যেতে পারে। যদি তারা গ্রহণ করতে পছন্দ করে, প্ল্যাটফর্মটি অভ্যন্তরীণ সঞ্চয়স্থানে মূল্যবান স্থান খালি করে, নতুন গৃহীত মিডিয়াতে প্রাথমিক ভাগ করা স্টোরেজ বিষয়বস্তু (সাধারণত /sdcard এ মাউন্ট করা) স্থানান্তর করার প্রস্তাব দেয়। ঐতিহ্যগত স্টোরেজের বিপরীতে, যা MBR ব্যবহারের কারণে 2TB-তে সীমাবদ্ধ, গ্রহণযোগ্য স্টোরেজ GPT ব্যবহার করে এবং তাই ফাইল স্টোরেজ সীমা ~9ZB।

অ্যাপগুলিকে গৃহীত স্টোরেজ মিডিয়াতে তখনই স্থাপন করা যেতে পারে যখন ডেভেলপার android:installLocation অ্যাট্রিবিউটের মাধ্যমে সমর্থন নির্দেশ করে। সমর্থিত অ্যাপগুলির নতুন ইনস্টলগুলি স্বয়ংক্রিয়ভাবে স্টোরেজ ডিভাইসে সর্বাধিক খালি জায়গা সহ স্থাপন করা হয় এবং ব্যবহারকারীরা সেটিংস অ্যাপে স্টোরেজ ডিভাইসগুলির মধ্যে সমর্থিত অ্যাপগুলি সরাতে পারেন। গৃহীত মিডিয়াতে সরানো অ্যাপগুলি মিডিয়া বের করার সময় মনে রাখা হয় এবং মিডিয়া পুনরায় প্রবেশ করানো হলে ফিরে আসে।

নিরাপত্তা

প্ল্যাটফর্মটি এলোমেলোভাবে প্রতিটি গৃহীত ডিভাইসের জন্য এনক্রিপশন কী তৈরি করে এবং সেগুলিকে Android ডিভাইসের অভ্যন্তরীণ সঞ্চয়স্থানে সংরক্ষণ করে। এটি কার্যকরভাবে গৃহীত মিডিয়াকে অভ্যন্তরীণ স্টোরেজের মতো নিরাপদ করে তোলে। গৃহীত পার্টিশন GUID-এর উপর ভিত্তি করে গৃহীত ডিভাইসগুলির সাথে কীগুলি যুক্ত করা হয়।

যদি ডিভাইসটি তার অভ্যন্তরীণ সঞ্চয়স্থানে ফাইল-ভিত্তিক এনক্রিপশন (FBE) ব্যবহার করার জন্য কনফিগার করা হয়, তাহলে গ্রহণযোগ্য স্টোরেজ FBE এবং মেটাডেটা এনক্রিপশন উভয়ই ব্যবহার করে। অন্যথায়, গ্রহণযোগ্য স্টোরেজ ফুল-ডিস্ক এনক্রিপশন (FDE) ব্যবহার করে।

গৃহীত ডিভাইসের অন-ডিস্ক বিন্যাসটি SELinux লেবেল ইত্যাদি সহ অভ্যন্তরীণ ডেটা পার্টিশনকে ঘনিষ্ঠভাবে প্রতিফলিত করে। যখন অ্যান্ড্রয়েড ডিভাইসে মাল্টি-ইউজার সমর্থিত হয়, তখন গৃহীত স্টোরেজ ডিভাইসটি অভ্যন্তরীণ হিসাবে একই স্তরের বিচ্ছিন্নতা সহ বহু-ব্যবহারকারীকে সমর্থন করে। স্টোরেজ

যেহেতু একটি গৃহীত স্টোরেজ ডিভাইসের বিষয়বস্তু দৃঢ়ভাবে Android ডিভাইসের সাথে আবদ্ধ যেটি এটি গ্রহণ করেছে, এনক্রিপশন কীগুলি মূল ডিভাইস থেকে নিষ্কাশনযোগ্য হওয়া উচিত নয় এবং তাই স্টোরেজ ডিভাইসটি অন্য কোথাও মাউন্ট করা যাবে না।

যদি আপনার ডিভাইস FBE ব্যবহার করে, তাহলে FBE ডকুমেন্টেশন এবং মেটাডেটা এনক্রিপশন ডকুমেন্টেশন দেখুন কিভাবে গ্রহণযোগ্য স্টোরেজে FBE এবং মেটাডেটা এনক্রিপশন কনফিগার করতে হয়।

কর্মক্ষমতা এবং স্থিতিশীলতা

স্থিতিশীল অবস্থানে শুধুমাত্র বহিরাগত স্টোরেজ মিডিয়া, যেমন ব্যাটারি কম্পার্টমেন্টের ভিতরে বা একটি প্রতিরক্ষামূলক কভারের পিছনে একটি স্লট, দুর্ঘটনাজনিত ডেটা ক্ষতি বা দুর্নীতি এড়াতে সহায়তা করার জন্য গ্রহণের জন্য বিবেচনা করা উচিত। বিশেষ করে, একটি ফোন বা ট্যাবলেটের সাথে সংযুক্ত USB ডিভাইসগুলিকে কখনই গ্রহণের জন্য বিবেচনা করা উচিত নয়৷ একটি সাধারণ ব্যতিক্রম একটি টিভি-স্টাইল ডিভাইসের সাথে সংযুক্ত একটি বাহ্যিক USB ড্রাইভ হবে, কারণ সমগ্র টিভি সাধারণত একটি স্থিতিশীল অবস্থানে ইনস্টল করা হয়।

যখন একজন ব্যবহারকারী একটি নতুন স্টোরেজ ডিভাইস গ্রহণ করে, তখন প্ল্যাটফর্মটি একটি বেঞ্চমার্ক চালায় এবং অভ্যন্তরীণ স্টোরেজের সাথে এর কার্যকারিতা তুলনা করে। যদি গৃহীত ডিভাইসটি অভ্যন্তরীণ স্টোরেজের তুলনায় উল্লেখযোগ্যভাবে ধীর হয়, তাহলে প্ল্যাটফর্ম ব্যবহারকারীকে একটি সম্ভাব্য অবনমিত অভিজ্ঞতা সম্পর্কে সতর্ক করে। এই বেঞ্চমার্কটি জনপ্রিয় অ্যান্ড্রয়েড অ্যাপের প্রকৃত I/O আচরণ থেকে উদ্ভূত হয়েছে। বর্তমানে, AOSP বাস্তবায়ন শুধুমাত্র একটি একক থ্রেশহোল্ডের বাইরে ব্যবহারকারীদের সতর্ক করবে, কিন্তু ডিভাইস নির্মাতারা এটিকে আরও খাপ খাইয়ে নিতে পারে, যেমন কার্ডটি অত্যন্ত ধীর হলে গ্রহণ সম্পূর্ণরূপে প্রত্যাখ্যান করা।

গৃহীত ডিভাইসগুলি অবশ্যই একটি ফাইল সিস্টেমের সাথে ফর্ম্যাট করা উচিত যা POSIX অনুমতি এবং বর্ধিত বৈশিষ্ট্যগুলিকে সমর্থন করে, যেমন ext4 বা f2fs । সর্বোত্তম কর্মক্ষমতার জন্য, f2fs ফাইল সিস্টেম ফ্ল্যাশ-ভিত্তিক স্টোরেজ ডিভাইসের জন্য সুপারিশ করা হয়।

পর্যায়ক্রমিক নিষ্ক্রিয় রক্ষণাবেক্ষণ সম্পাদন করার সময়, প্ল্যাটফর্মটি অভ্যন্তরীণ স্টোরেজের মতোই গৃহীত মিডিয়াতে FI_TRIM ইস্যু করে। বর্তমান SD কার্ড স্পেসিফিকেশন DISCARD কমান্ড সমর্থন করে না; কিন্তু কার্নেল পরিবর্তে ERASE কমান্ডে ফিরে আসে, যা SD কার্ড ফার্মওয়্যার অপ্টিমাইজেশান উদ্দেশ্যে ব্যবহার করতে বেছে নিতে পারে।

টেস্টিং

গ্রহণযোগ্য স্টোরেজ কাজ করছে তা পরীক্ষা করতে, এই CTS পরীক্ষাটি চালান:

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

USB ড্রাইভ এবং SD কার্ডের আচরণ যাচাই করতে যখন একটি ডিভাইসে বিল্ট-ইন স্লট থাকে না বা যখন একটি সক্রিয় adb সংযোগের জন্য USB সংযোগকারী ব্যবহার করা হয়, তখন ব্যবহার করুন:

adb shell sm set-virtual-disk true