SDCardFS เลิกใช้งานแล้วในอุปกรณ์ที่เปิดตัวด้วย Android 11 ขึ้นไป และใช้เคอร์เนลเวอร์ชัน 5.4 ขึ้นไป บนอุปกรณ์ดังกล่าว การทดสอบ VTS ไม่อนุญาตให้ระบบไฟล์ที่เมาท์แสดงเป็น SDCardFS อุปกรณ์ที่เปิดตัวด้วย Android 11 ขึ้นไปแต่ใช้เคอร์เนลเวอร์ชัน 4.19 หรือต่ำกว่าจะยังใช้ SDCardFS ต่อไปได้ แต่ Google ไม่มีการสนับสนุนเพิ่มเติม
ก่อนที่จะเลิกใช้งาน SDCardFS ได้จัดเตรียมวิธีการควบคุมการเข้าถึงที่เก็บข้อมูลภายในและการ์ด SD ภายนอกที่จำลอง ซึ่งช่วยให้แอปเข้าถึงเฉพาะข้อมูลที่เกี่ยวข้องเท่านั้น นอกจากนี้ยังให้ชั้นของความไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ รวมถึงการติดตามพื้นที่จัดเก็บเพิ่มเติมบางส่วน
ฟังก์ชั่นการเปลี่ยน SDCardFS
การแทนที่ SDCardFS จะใช้คุณสมบัติระบบไฟล์เคอร์เนล Linux หลายประการเพื่อให้ได้ผลลัพธ์ที่คล้ายคลึงกัน ความไม่คำนึงถึงขนาดตัวพิมพ์จะถูกจัดการโดยตรงโดยระบบไฟล์ ส่งผลให้เวลาในการค้นหาเกือบจะเหมือนกันในโฟลเดอร์ที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ โดยลบการชะลอตัวของโฟลเดอร์ขนาดใหญ่ออกจาก SDCardFS การติดตามโควต้าที่ SDCardFS ทำเพื่อรวบรวมข้อมูลการจัดเก็บสำหรับการตั้งค่าอย่างรวดเร็วได้รับการกำหนดค่าจากพื้นที่ผู้ใช้โดยใช้โควต้าโครงการ ในบริบทที่คำนึงถึงประสิทธิภาพการทำงานบางอย่าง ไดเร็กทอรีจะถูกผูกเข้าที่ การใช้งาน FUSE ใหม่ให้พื้นที่จัดเก็บข้อมูลที่กำหนดขอบเขตสำหรับการเข้าถึงระบบไฟล์โดยตรง โดยหลักแล้วเพื่อรองรับการแก้ไขข้อมูลตำแหน่ง
กำหนดค่าฟังก์ชันการเปลี่ยน SDCard
หากต้องการเปิดใช้งานโควต้าโปรเจ็กต์และการพับเคสสำหรับพื้นที่เก็บข้อมูลจำลองโดยไม่มี 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 ไม่รองรับคุณสมบัติการจัดเก็บข้อมูลที่กำหนดขอบเขตเหล่านี้