การเลิกใช้ SDCardFS

การสนับสนุน SDCardFS เลิกใช้แล้วใน Android 11 สำหรับเคอร์เนลเวอร์ชัน 5.4 ขึ้นไป การทดสอบ VTS ไม่อนุญาตให้ระบบไฟล์ที่ต่อเชื่อมอยู่ในรายการ SDCardFS สำหรับเคอร์เนลเวอร์ชันเหล่านั้น เคอร์เนลเวอร์ชันก่อนหน้ายังคงใช้ SDCardFS สำหรับ Android 11 ได้ อย่างไรก็ตาม Google ไม่ได้ให้การสนับสนุนเพิ่มเติม

ใน Android เวอร์ชันก่อนหน้า SDCardFS มีวิธีควบคุมการเข้าถึงที่จัดเก็บข้อมูลภายในจำลองและการ์ด SD ภายนอก ทำให้แอปสามารถเข้าถึงเฉพาะข้อมูลที่เกี่ยวข้องเท่านั้น นอกจากนี้ยังจัดให้มีชั้นของความไม่ละเอียดอ่อนของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ เช่นเดียวกับการติดตามพื้นที่จัดเก็บเพิ่มเติมบางส่วน

ฟังก์ชันการแทนที่ SDCardFS

ใน Android 11 ระบบไฟล์จะจัดการความละเอียดอ่อนของตัวพิมพ์โดยตรง ส่งผลให้เวลาในการค้นหาเกือบจะเท่ากันในโฟลเดอร์ที่คำนึงถึงขนาดตัวพิมพ์และตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ซึ่งเป็นการลบการชะลอตัวของโฟลเดอร์ขนาดใหญ่ออกจาก SDCardFS การติดตามโควต้าที่ SDCardFS ดำเนินการเพื่อรวบรวมข้อมูลการจัดเก็บข้อมูลสำหรับการตั้งค่าอย่างรวดเร็วได้รับการกำหนดค่าจากพื้นที่ผู้ใช้โดยใช้โควต้าของโครงการแล้ว ในบริบทที่ไวต่อประสิทธิภาพบางอย่าง ไดเร็กทอรีจะถูกผูกไว้กับที่ การใช้งาน FUSE ใหม่ให้พื้นที่จัดเก็บแบบมีขอบเขตสำหรับการเข้าถึงระบบไฟล์โดยตรง เพื่อสนับสนุนการแก้ไขข้อมูลตำแหน่งเป็นหลัก

การกำหนดค่าฟังก์ชันการแทนที่ SDCard

เมื่อต้องการเปิดใช้โควต้าโครงการและกรณีพับสำหรับการจัดเก็บโดยไม่ต้องเทิดทูน SDCardFS, สืบทอดจาก emulated_storage.mk ใน device.mk ไฟล์:

$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)

การเข้ารหัสด้วยการสนับสนุน casefolding ต้องใช้นโยบาย v2 ต้องการเปิดใช้งานนี้ระบุ :v2 ภายในธง Vold ใน fstab ตัวอย่างเช่น:

fileencryption=aes-256-xts:aes-256-cts:v2+inlinecrypt_optimized

เหตุใดจึงเลิกใช้ SDCardFS

มีเหตุผลหลายประการที่จะเลิกใช้ SDCardFS

ความเสถียร

SDCardFS ประสบกับสภาวะการแข่งขันหลายอย่างที่เกี่ยวข้องกับความละเอียดอ่อนของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ รวมถึงปัญหาบางอย่างเกี่ยวกับสถานการณ์หน่วยความจำเหลือน้อย การค้นหาแบบไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่อาจค่อนข้างช้าในไดเร็กทอรีขนาดใหญ่ เนื่องจากการค้นหาต้องดำเนินการในไดเร็กทอรีด้านล่างเพื่อค้นหากรณีอื่น การเข้าถึงระบบไฟล์บนและล่างพร้อมกันอาจทำให้เกิดปัญหาได้เช่นกัน

ความเท่าเทียมกันต้นน้ำ

SDCardFS ต้องการแพตช์เพิ่มเติมสำหรับ VFS เพื่อรองรับการเปลี่ยนแปลงตัวเลือกในการต่อเชื่อม แพทช์เหล่านี้ทำให้เกิดการทำงานเพิ่มเติมเพื่อยอมรับการเปลี่ยนแปลงต้นน้ำในพื้นที่เหล่านี้ คุณสมบัติของ SDCardFS สามารถทำซ้ำได้โดยส่วนประกอบต้นน้ำ ลบจุดปวดนี้

ความเท่าเทียมกันของคุณลักษณะกับ API

ใน Android รุ่นก่อนหน้า พื้นที่จัดเก็บแบบมีขอบเขตจำกัดการเข้าถึงข้อมูลเมตาบางประเภท การเข้าถึงที่เก็บข้อมูลโดยตรงผ่าน SDCardFS ไม่รองรับคุณสมบัติการจัดเก็บข้อมูลที่มีขอบเขตเหล่านี้