SDCardFS 지원 중단

SDCardFS는 Android 11 이상으로 실행되고 커널 버전 5.4 이상을 실행하는 기기에서 더 이상 사용되지 않습니다. 이러한 장치에서 VTS 테스트 는 SDCardFS로 나열된 마운트된 파일 시스템을 허용하지 않습니다. Android 11 이상으로 실행되지만 커널 버전 4.19 이하를 실행하는 기기는 계속 SDCardFS를 사용할 수 있지만 Google은 추가 지원을 제공하지 않습니다.

사용 중단되기 전에 SDCardFS는 에뮬레이트된 내부 저장소 및 외부 SD 카드에 대한 액세스를 제어하는 ​​방법을 제공하여 앱이 관련 데이터에만 액세스할 수 있도록 했습니다. 또한 대소문자를 구분하지 않는 계층과 몇 가지 추가 저장소 추적 기능을 제공했습니다.

SDCardFS 교체 기능

SDCardFS를 대체하면 여러 Linux 커널 파일 시스템 기능을 사용하여 유사한 결과를 얻을 수 있습니다. 대소문자 구분은 파일 시스템에서 직접 처리됩니다. 그 결과 대소문자를 구분하는 폴더와 대소문자를 구분하지 않는 폴더에서 조회 시간이 거의 동일하여 SDCardFS에서 큰 폴더 속도 저하가 제거됩니다. SDCardFS가 설정에 대한 스토리지 데이터를 빠르게 수집하기 위해 수행하던 할당량 추적은 이제 프로젝트 할당량을 사용하여 사용자 공간에서 구성됩니다. 성능에 민감한 일부 컨텍스트에서 디렉토리는 제자리에 바인드 마운트됩니다. 새로운 FUSE 구현은 주로 위치 정보 수정을 지원하기 위해 직접 파일 시스템 액세스를 위한 범위 지정 저장소를 제공합니다.

SDCard 교체 기능 구성

SDCardFS 없이 에뮬레이트된 스토리지에 대한 프로젝트 할당량 및 케이스 접기를 활성화하려면 device.mk 파일의 emulated_storage.mk 에서 상속합니다.

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

Android 11 이상으로 실행되는 기기에만 이 작업을 수행하세요.

SDCardFS를 더 이상 사용하지 않는 이유는 무엇입니까?

SDCardFS를 사용하지 않는 데에는 여러 가지 이유가 있습니다.

안정

SDCardFS는 대소문자 구분과 관련된 몇 가지 경쟁 조건과 메모리 부족 상황과 관련된 몇 가지 문제를 겪고 있습니다. 대소문자를 구분하지 않는 조회는 조회가 대체 대소문자를 찾기 위해 하위 디렉토리를 탐색해야 하기 때문에 큰 디렉토리에서 다소 느릴 수 있습니다. 상위 및 하위 파일 시스템에 동시에 액세스하면 문제가 발생할 수도 있습니다.

업스트림 패리티

SDCardFS는 바인드 마운트에서 옵션 변경을 지원하기 위해 VFS에 대한 추가 패치가 필요합니다. 이러한 패치로 인해 이러한 영역에 대한 업스트림 변경 사항을 수용하기 위한 추가 작업이 발생합니다. SDCardFS의 기능은 업스트림 구성 요소에 의해 복제될 수 있으므로 이러한 문제점이 제거됩니다.

API와 기능 패리티

Android의 이전 릴리스에서는 범위 지정 저장소가 특정 유형의 메타데이터에 대한 액세스를 제한했습니다. SDCardFS를 통한 직접 저장소 액세스는 이러한 범위 지정 저장소 기능을 지원하지 않습니다.