Ngừng sử dụng SDCardFS

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

Trước khi ngừng hoạt độ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 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, lớp này 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 bộ nhớ bổ sung.

Chức năng thay thế SDCardFS

Phương thức thay thế cho SDCardFS sử dụng một số tính năng hệ thống tệp hạt nhân Linux để đạt được kết quả tương tự. Hệ thống tệp sẽ trực tiếp xử lý việc không phân biệt chữ hoa chữ thường; điều này dẫn đến thời gian tra cứu gần như giống 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ỏ tình trạng thư mục lớn bị chậm lại trên SDCardFS. Tính năng theo dõi hạn mức mà SDCardFS đang thực hiện để nhanh chóng thu thập dữ liệu bộ nhớ cho các chế độ 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 mức dự án. Trong một số ngữ cảnh nhạy cảm về hiệu suất, các thư mục được liên kết gắn tại chỗ. Một phương thức triển khai FUSE mới cung cấp bộ nhớ có giới hạn để truy cập trực tiếp vào hệ thống tệp, chủ yếu là để hỗ trợ việc loại bỏ thông tin vị trí.

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

Để bật hạn mức dự án và gộp trường hợp cho bộ nhớ được mô phỏng mà không có SDCardFS trên một 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: Đừng không làm việc này trên các thiết bị chạy Android 10 trở xuống, vì tính năng không phân biệt chữ hoa chữ thường gốc của hệ thống tệp không tương thích với chế độ cài đặt mã hoá dựa trên tệp được sử dụng trên các thiết bị như vậy. Bạn cần tiếp tục sử dụng SDCardFS trên các thiết bị như vậy.

Lý do ngừng sử dụng SDCardFS

Có nhiều lý do khiến bạn nên ngừng sử dụng SDCardFS.

Độ ổn định

SDCardFS gặp phải một số điều kiện tương tranh liên quan đến độ nhạy cảm về 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. Các lượt 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ì các lượt tra cứu phải duyệt qua thư mục thấp hơn để tìm các trường hợp thay thế. Việc truy cập vào hệ thống tệp trên và dưới cùng một lúc cũng có thể dẫn đến sự cố.

Tương đương ngược dòng

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

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

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