Ngừng sử dụng SDCardFS

SDCardFS không được dùng nữa trên các thiết bị khởi chạy Android 11 trở lên và chạy phiên bản kernel 5.4 trở lên. Trên các thiết bị như vậy, thử nghiệm VTS không cho phép hệ thống tệp được gắn được liệt kê dưới dạng SDCardFS. Các thiết bị chạy Android 11 trở lên nhưng chạy phiên bản kernel 4.19 trở xuống có thể tiếp tục sử dụng SDCardFS nhưng Google không cung cấp hỗ trợ bổ sung.

Trước khi ngừng sử dụng, SDCardFS đã cung cấp một cách để kiểm soát quyền truy cập vào bộ nhớ trong được mô phỏng và thẻ SD bên ngoài, cho phép các ứng dụng chỉ truy cập vào dữ liệu liên quan đến chúng. Ngoài ra, nó còn cung cấp một lớp không phân biệt chữ hoa chữ thường cũng như một số tính năng theo dõi lưu trữ bổ sung.

Chức năng thay thế SDCardFS

Việc thay thế SDCardFS sử dụng một số tính năng của hệ thống tệp nhân Linux để đạt được kết quả tương tự. Việc không phân biệt chữ hoa chữ thường được xử lý trực tiếp bởi hệ thống tập tin; điều này dẫn đến thời gian tra cứu gần như giống hệt nhau trong các thư mục phân biệt chữ hoa chữ thường và không phân biệt chữ hoa chữ thường, loại bỏ hiện tượng làm chậm thư mục lớn khỏi SDCardFS. Tính năng theo dõi hạn ngạch mà SDCardFS đang thực hiện để nhanh chóng thu thập dữ liệu lưu trữ cho các cài đặt hiện đã được định cấu hình từ không gian người dùng bằng cách sử dụng hạn ngạch dự án. Trong một số bối cảnh nhạy cảm với hiệu suất, các thư mục được gắn kết tại chỗ. Việc triển khai FUSE mới cung cấp bộ nhớ có phạm vi để truy cập trực tiếp vào hệ thống tệp, chủ yếu để hỗ trợ việc chỉnh sửa thông tin vị trí.

Định cấu hình chức năng thay thế SDCard

Để bật hạn ngạch dự án và gấp hộp cho bộ nhớ mô phỏng không có SDCardFS trên thiết bị chạy Android 11 trở lên, hãy kế thừa từ emulated_storage.mk trong tệp device.mk :

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

Cảnh báo: Không thực hiện việc này trên các thiết bị chạy Android 10 trở xuống vì tính không phân biệt chữ hoa chữ thường của hệ thống tệp không tương thích với cài đặt mã hóa dựa trên tệp được sử dụng trên các thiết bị đó. Cần tiếp tục sử dụng SDCardFS trên các thiết bị như vậy.

Lý do không dùng SDCardFS

Có nhiều lý do để ngừng sử dụng SDCardFS.

Sự ổn định

SDCardFS gặp phải một số tình trạng tương tranh liên quan đến phân biệt chữ hoa chữ thường cũng như một số vấn đề liên quan đến trường hợp bộ nhớ thấp. Việc tra cứu không phân biệt chữ hoa chữ thường có thể khá chậm trong các thư mục lớn vì việc tra cứu phải đi đến thư mục thấp hơn để tìm các trường hợp thay thế. Việc truy cập hệ thống tập tin trên và dưới cùng một lúc cũng có thể dẫn đến sự cố.

Tính chẵn lẻ ở thượng nguồn

SDCardFS yêu cầu các bản vá bổ sung cho VFS để hỗ trợ các tùy chọn thay đổi trên liên kết gắn kết. Các bản vá này khiến công việc bổ sung phải chấp nhận những thay đổi ngược dòng đối với các khu vực này. Các tính năng của SDCardFS có thể được sao chép bởi các thành phần ngược dòng, loại bỏ điểm yếu này.

Tính năng tương đương với API

Trong bản phát hành trước của Android, bộ nhớ có phạm vi hạn chế quyền truy cập vào các loại siêu dữ liệu cụ thể. Truy cập bộ nhớ trực tiếp thông qua SDCardFS không hỗ trợ các tính năng lưu trữ có phạm vi này.