ระบบเลิกใช้งาน 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 เพื่อรองรับตัวเลือกการเปลี่ยนแปลงใน การต่อเชื่อมการเชื่อมโยง การแก้ไขเหล่านี้ทำให้ต้องทํางานเพิ่มเติมเพื่อยอมรับการเปลี่ยนแปลงจาก upstream ในพื้นที่เหล่านี้ คอมโพเนนต์ต้นทางสามารถจำลองฟีเจอร์ของ SDCardFS ได้ ซึ่งจะช่วยลดปัญหานี้
ฟีเจอร์ที่เทียบเท่ากับ API
ใน Android รุ่นก่อนหน้า พื้นที่เก็บข้อมูลที่กำหนดขอบเขตจะเข้าถึงได้อย่างจำกัด ประเภทต่างๆ การเข้าถึงพื้นที่เก็บข้อมูลโดยตรงผ่าน SDCardFS ไม่รองรับการตั้งค่าเหล่านี้ พื้นที่เก็บข้อมูลที่กำหนดขอบเขต