เราเลิกใช้งาน SDCardFS ในอุปกรณ์ที่เปิดตัวด้วย Android 11 ขึ้นไปและใช้เคอร์เนลเวอร์ชัน 5.4 ขึ้นไป ในอุปกรณ์ดังกล่าว การทดสอบ VTS ไม่อนุญาตให้ใช้ระบบไฟล์ที่ติดตั้งซึ่งแสดงเป็น SDCardFS อุปกรณ์ที่เปิดตัวด้วย Android 11 ขึ้นไปแต่ใช้เคอร์เนลเวอร์ชัน 4.19 หรือต่ำกว่าจะใช้ SDCardFS ต่อไปได้ แต่ Google จะไม่ให้การสนับสนุนเพิ่มเติม
ก่อนที่จะเลิกใช้งาน SDCardFS ได้มีวิธีควบคุมการเข้าถึงที่จัดเก็บข้อมูลภายในที่จำลองและการ์ด SD ภายนอก ซึ่งอนุญาตให้แอปเข้าถึงได้เฉพาะข้อมูลที่เกี่ยวข้องกับแอปเท่านั้น นอกจากนี้ ยังมีเลเยอร์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ รวมถึงการติดตามพื้นที่เก็บข้อมูลเพิ่มเติมบางอย่าง
ฟังก์ชันการทำงานแทน SDCardFS
ส่วนทดแทน SDCardFS ใช้ฟีเจอร์ระบบไฟล์ของเคอร์เนล Linux หลายอย่างเพื่อ ให้ได้ผลลัพธ์ที่คล้ายกัน ระบบไฟล์จะจัดการการไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยตรง ซึ่งจะส่งผลให้เวลาในการค้นหาในโฟลเดอร์ที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และโฟลเดอร์ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แทบจะเหมือนกัน และนำการชะลอการทำงานของโฟลเดอร์ขนาดใหญ่ออกจาก SDCardFS ตอนนี้การติดตามโควต้าที่ SDCardFS ใช้เพื่อรวบรวมข้อมูลพื้นที่เก็บข้อมูลอย่างรวดเร็วสำหรับ การตั้งค่าได้รับการกำหนดค่าจากพื้นที่ผู้ใช้โดยใช้โควต้าโปรเจ็กต์แล้ว ในบริบทที่คำนึงถึงประสิทธิภาพเป็นหลัก ระบบจะเชื่อมโยงไดเรกทอรีในตำแหน่งเดิม การใช้งาน FUSE ใหม่มีพื้นที่เก็บข้อมูลที่จำกัดขอบเขตสำหรับการเข้าถึงระบบไฟล์โดยตรง โดยมีวัตถุประสงค์หลักเพื่อรองรับการปกปิดข้อมูลตำแหน่ง
กำหนดค่าฟังก์ชันการทำงานของการเปลี่ยนการ์ด SD
หากต้องการเปิดใช้โควต้าโปรเจ็กต์และการพับเคสสำหรับพื้นที่เก็บข้อมูลที่จำลองโดยไม่มี SDCardFS
ในอุปกรณ์ที่เปิดตัวด้วย Android 11 ขึ้นไป
ให้รับค่าจาก emulated_storage.mk
ในไฟล์ device.mk
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
คำเตือน: อย่าทำเช่นนี้ในอุปกรณ์ที่เปิดตัวด้วย Android 10 หรือต่ำกว่า เนื่องจากความไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ของระบบไฟล์ดั้งเดิมไม่สามารถใช้ร่วมกับการตั้งค่าการเข้ารหัสที่อิงตามไฟล์ที่ใช้ในอุปกรณ์ดังกล่าวได้ คุณจำเป็นต้องใช้ SDCardFS ในอุปกรณ์ดังกล่าวต่อไป
เหตุผลในการเลิกใช้งาน SDCardFS
มีหลายสาเหตุที่ทำให้ต้องเลิกใช้งาน SDCardFS
ความเสถียร
SDCardFS มีปัญหาหลายอย่างเกี่ยวกับการแข่งขันที่เกี่ยวข้องกับการคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ รวมถึงปัญหาบางอย่างที่เกี่ยวข้องกับสถานการณ์ที่หน่วยความจำเหลือน้อย การค้นหาแบบไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่อาจค่อนข้างช้าในไดเรกทอรีขนาดใหญ่เนื่องจากการค้นหาต้องไปที่ไดเรกทอรีที่ต่ำกว่าเพื่อค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่อื่น การเข้าถึงระบบไฟล์บนและล่างพร้อมกันอาจทำให้เกิดปัญหาได้เช่นกัน
ความเท่าเทียมของอัปสตรีม
SDCardFS ต้องใช้แพตช์เพิ่มเติมกับ VFS เพื่อรองรับการเปลี่ยนตัวเลือกใน การเชื่อมโยง แพตช์เหล่านี้ทำให้ต้องทำงานเพิ่มเติมเพื่อยอมรับการเปลี่ยนแปลงต้นทางในส่วนต่างๆ เหล่านี้ ฟีเจอร์ของ SDCardFS สามารถจำลองได้โดยคอมโพเนนต์ต้นทาง ซึ่งจะช่วยขจัดปัญหาจุดนี้
ความเท่าเทียมของฟีเจอร์กับ API
ใน Android เวอร์ชันก่อนหน้า ที่เก็บข้อมูลที่จำกัดขอบเขตจะจำกัดการเข้าถึงข้อมูลเมตาบางประเภท การเข้าถึงพื้นที่เก็บข้อมูลโดยตรงผ่าน SDCardFS ไม่รองรับฟีเจอร์พื้นที่เก็บข้อมูลที่จำกัดขอบเขตเหล่านี้