Android มีการสนับสนุนอุปกรณ์เสริมในการจัดเก็บข้อมูลภายนอก (เช่น การ์ด SD) มาโดยตลอด แต่ ก่อนหน้านี้ อุปกรณ์เสริมเหล่านี้ถูกจำกัดไว้ที่พื้นที่เก็บข้อมูลไฟล์อย่างง่ายเนื่องจาก ความไม่แน่นอนที่คาดหวัง และการคุ้มครองข้อมูลที่น้อยที่สุดซึ่งจะมอบให้แก่ ที่จัดเก็บข้อมูลภายนอกแบบดั้งเดิม Android 6.0 เปิดตัวความสามารถในการ ใช้สื่อจัดเก็บข้อมูลภายนอกเพื่อดำเนินการเหมือนเป็นการภายใน พื้นที่เก็บข้อมูล
เมื่อมีการใช้สื่อจัดเก็บข้อมูลภายนอก สื่อดังกล่าวจะได้รับการจัดรูปแบบและเข้ารหัสเป็น ทำงานร่วมกับอุปกรณ์ Android เครื่องเดียวต่อครั้ง เนื่องจากสื่อเชื่อมโยงอย่างเหนียวแน่น กับอุปกรณ์ Android ที่ใช้งาน ทำให้สามารถจัดเก็บทั้งแอปและ ข้อมูลส่วนตัวของผู้ใช้ทั้งหมด
เมื่อผู้ใช้ใส่สื่อจัดเก็บข้อมูลใหม่ (เช่น การ์ด SD) ในอุปกรณ์แบบ Adable
Android จะถามผู้ใช้ว่าต้องการใช้สื่ออย่างไร โดยผู้ใช้สามารถเลือก
รับสื่อ ซึ่งใช้รูปแบบและเข้ารหัสสื่อดังกล่าว หรือไม่อาจใช้สื่อดังกล่าวต่อไป
ตามที่เป็นอยู่สำหรับการจัดเก็บไฟล์อย่างง่าย หากผู้ใช้เลือกนำไปใช้ แพลตฟอร์มจะเสนอให้
ย้ายเนื้อหาหลักของพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน (โดยปกติจะต่อเชื่อมที่
/sdcard
) ให้กับสื่อที่เพิ่งนำมาใช้ใหม่ ซึ่งช่วยเพิ่มพื้นที่ว่างใน
ที่จัดเก็บข้อมูลภายใน ซึ่งแตกต่างจากพื้นที่เก็บข้อมูลแบบเดิมที่จำกัดไว้ที่ 2 TB เนื่องจาก
การใช้
MBR
การใช้พื้นที่เก็บข้อมูลแบบ Adable
GPT
จึงมีขีดจำกัดพื้นที่เก็บข้อมูลไฟล์อยู่ที่ประมาณ 9ZB
วางแอปบนสื่อพื้นที่เก็บข้อมูลที่ใช้งานได้ก็ต่อเมื่อนักพัฒนาแอปมี
ระบุการสนับสนุนผ่านแอตทริบิวต์ android:installLocation
ระบบจะวางการติดตั้งแอปที่รองรับใหม่โดยอัตโนมัติบน
อุปกรณ์จัดเก็บข้อมูลที่มีพื้นที่ว่างมากที่สุด และผู้ใช้สามารถย้ายแอปที่สนับสนุน
ระหว่างอุปกรณ์จัดเก็บข้อมูลในแอปการตั้งค่าได้ด้วย ย้ายแอปไปใช้แล้ว
ระบบจะจดจำสื่อขณะที่ดีดสื่อออก
และย้อนกลับเมื่อเสียบสื่ออีกครั้ง
ความปลอดภัย
แพลตฟอร์มจะสร้างคีย์การเข้ารหัสแบบสุ่มสำหรับอุปกรณ์ที่ใช้งานแต่ละเครื่อง และจัดเก็บไว้ในที่จัดเก็บข้อมูลภายในของอุปกรณ์ Android ช่วงเวลานี้ ทำให้สื่อที่ใช้งานมีความปลอดภัยเหมือนที่จัดเก็บข้อมูลภายในได้อย่างมีประสิทธิภาพ คีย์คือ เชื่อมโยงกับอุปกรณ์ที่นำมาใช้โดยอิงตาม GUID ของพาร์ติชันที่รับมา
หากมีการกำหนดค่าอุปกรณ์ให้ใช้การเข้ารหัสตามไฟล์ (FBE) ที่จัดเก็บข้อมูลภายใน พื้นที่เก็บข้อมูลแบบนํามาใช้ได้จะใช้ทั้ง FBE และการเข้ารหัสข้อมูลเมตา หรือไม่เช่นนั้น การจัดเก็บข้อมูลแบบหน่วยความจำหลักใช้ Full-Disk Encryption (FDE)
เลย์เอาต์บนดิสก์ของอุปกรณ์ที่นำไปใช้สอดคล้องกับข้อมูลภายในของ รวมถึงป้ายกำกับ SELinux เป็นต้น เมื่อมีการรองรับผู้ใช้หลายคนใน อุปกรณ์ Android อุปกรณ์เก็บข้อมูลที่รับมานั้นยังรองรับการใช้งานแบบหลายผู้ใช้ด้วย แยกเป็นระดับเดียวกับที่จัดเก็บข้อมูลภายใน
เนื่องจากเนื้อหาของอุปกรณ์จัดเก็บข้อมูลที่นำมาใช้งานนั้นเกี่ยวข้องมากกับ อุปกรณ์ Android ที่ใช้คีย์ดังกล่าว คีย์การเข้ารหัสไม่สามารถแยกข้อมูลได้ จากอุปกรณ์ระดับบนสุด จึงไม่สามารถต่อเชื่อมอุปกรณ์จัดเก็บข้อมูล ในที่อื่นๆ
หากอุปกรณ์ของคุณใช้ FBE โปรดดู FBE และข้อมูลเมตา เอกสารประกอบเกี่ยวกับการเข้ารหัสสำหรับวิธีกำหนดค่า FBE และการเข้ารหัสข้อมูลเมตาใน พื้นที่เก็บข้อมูลแบบ Adable
ประสิทธิภาพและความเสถียร
เฉพาะสื่อจัดเก็บข้อมูลภายนอกในที่ที่มีความเสถียร เช่น ช่องโฆษณาภายใน ควรพิจารณาช่องใส่แบตเตอรี่หรือด้านหลังฝาครอบ เพื่อหลีกเลี่ยงการสูญหายหรือการเสียหายของข้อมูลโดยไม่ตั้งใจ โดยเฉพาะอย่างยิ่ง USB อุปกรณ์ที่เชื่อมต่อกับโทรศัพท์หรือแท็บเล็ตไม่ควรได้รับการพิจารณาว่าเป็นการใช้งาน ข้อยกเว้นทั่วไปอย่างหนึ่งคือไดรฟ์ USB ภายนอกที่เชื่อมต่อกับทีวีแบบ เพราะทีวีทั้งเครื่องมักจะติดตั้งในสถานที่ที่เสถียร
เมื่อผู้ใช้นำอุปกรณ์เก็บข้อมูลใหม่มาใช้ แพลตฟอร์มจะทำการเปรียบเทียบ เปรียบเทียบประสิทธิภาพของคอมพิวเตอร์กับที่จัดเก็บข้อมูลภายใน หากอุปกรณ์ที่รับไปใช้งานคือ ช้ากว่าที่จัดเก็บข้อมูลภายในอย่างมาก แพลตฟอร์มจะเตือนผู้ใช้เกี่ยวกับ ประสบการณ์ที่อาจแย่ลง การเปรียบเทียบนี้ได้มาจาก I/O จริง พฤติกรรมของแอป Android ยอดนิยม ในปัจจุบัน การปรับใช้ AOSP เตือนผู้ใช้เกินเกณฑ์ที่กำหนด แต่ผู้ผลิตอุปกรณ์อาจปรับเปลี่ยน เช่น ปฏิเสธการรับไปใช้งานโดยสิ้นเชิง หากบัตรทำงานช้ามาก
อุปกรณ์ที่นำมาใช้ต้องมีระบบไฟล์ที่รองรับ POSIX
สิทธิ์และแอตทริบิวต์เพิ่มเติม เช่น ext4
หรือ
f2fs
เพื่อประสิทธิภาพที่ดีที่สุด ระบบไฟล์ f2fs
คือ
ที่แนะนำสำหรับอุปกรณ์จัดเก็บข้อมูลแบบ Flash
เมื่อดำเนินการบำรุงรักษาเมื่อไม่มีความเคลื่อนไหว ปัญหาของแพลตฟอร์ม
FI_TRIM
เพื่อนำสื่อไปใช้งานเช่นเดียวกับที่ใช้สำหรับที่จัดเก็บข้อมูลภายใน
ข้อกำหนดการ์ด SD ปัจจุบันไม่รองรับ DISCARD
คำสั่ง; แต่เคอร์เนลจะกลับไปใช้คำสั่ง ERASE
เฟิร์มแวร์การ์ด SD ใดที่อาจเลือกใช้เพื่อวัตถุประสงค์ในการเพิ่มประสิทธิภาพ
การทดสอบ
หากต้องการทดสอบว่าพื้นที่เก็บข้อมูลแบบปรับได้ทำงานอยู่ ให้ทำการทดสอบ CTS นี้
cts-tradefed run commandAndExit cts-dev \ -m CtsAppSecurityHostTestCases \ -t android.appsecurity.cts.AdoptableHostTest
เพื่อยืนยันการทำงานของไดรฟ์ USB และการ์ด SD เมื่ออุปกรณ์ไม่มี ช่องในตัวหรือเมื่อมีการใช้เครื่องมือเชื่อมต่อ USB สำหรับ adb ที่แอ็กทีฟ การเชื่อมต่อ ให้ใช้
adb shell sm set-virtual-disk true