การเลิกใช้งาน SDCardFS

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 ไม่รองรับคุณสมบัติการจัดเก็บข้อมูลที่กำหนดขอบเขตเหล่านี้