Android의 저장소 권한 모델은 최신 버전에서 크게 변경되었으며 업데이트할 때마다 파일 관리자가 액세스할 수 있는 항목과 액세스할 수 없는 항목이 변경됩니다.파일 관리자를 열어서 폴더가 비어 있거나, 경로에 액세스할 수 없거나, 권한 대화 상자가 반복적으로 나타나는 것을 본 적이 있다면 이러한 정책 변경이 실제로 미치는 영향을 경험하고 있는 것입니다.각 버전에서 정확히 변경된 사항과 전체 파일 시스템 액세스를 유지하기 위해 AnExplorer을 구성하는 방법은 다음과 같습니다.
짧은 답변
Android 11 이상에서는 설정 → 앱 → AnExplorer → 권한 → 파일 및 미디어 → 모든 파일 관리 허용으로 이동하세요.이는 전체 탐색 기능을 복원하는 MANAGE_EXTERNAL_STORAGE 권한을 부여합니다.그것이 없으면 파일 관리자는 다른 모든 앱처럼 샌드박스 처리됩니다.
Android 저장소 권한 타임라인
Android 9 이하 - 개방형 시대
Android 10 이전에는 저장이 간단했습니다.앱은 설치 또는 런타임 시 READ_EXTERNAL_STORAGE 또는 WRITE_EXTERNAL_STORAGE 권한을 요청했으며, 일단 부여되면 모든 폴더, 모든 파일 형식, 모든 경로 등 전체 공유 저장소에 대한 완전한 읽기/쓰기 액세스 권한을 가졌습니다.파일 관리자는 데스크톱 파일 탐색기가 작동할 것으로 기대하는 것과 똑같이 작동했습니다.
이는 강력했지만 보안 문제가 발생했습니다.저장 권한이 있는 모든 앱은 사진, 문서, 다운로드 및 기타 앱에서 내보낸 파일을 제한 없이 읽을 수 있습니다.
Android 10 — 범위 지정 저장소 도입(선택사항)
Android 10에서는 범위 지정 저장소를 개념으로 도입했지만 개발자가 이를 선택할 수 있도록 했습니다.API 29를 대상으로 하는 앱은 매니페스트에 requestLegacyExternalStorage=true을 추가하여 이전 동작을 유지할 수 있습니다.대부분의 파일 관리자는 이 플래그를 사용했기 때문에 사용자는 실질적인 차이를 느끼지 못했습니다.
도입된 주요 변경 사항:
- "앱별 외부 저장소"(
Android/data/[package]/) 개념이 공식적으로 샌드박스화되었습니다. - MediaStore API가 미디어 파일에 액세스하는 데 권장되는 방법이 되었습니다.
- SAF(Storage Access Framework)는 문서 액세스에 있어 중요성이 높아졌습니다.
- 직접 파일 경로 액세스는 기술적으로 더 이상 사용되지 않지만 여전히 레거시 플래그로 작동했습니다.
Android 11 — 범위 지정 저장소 시행
Android 11은 한계점이었습니다.requestLegacyExternalStorage 플래그는 API 30 이상을 대상으로 하는 앱에서 작동이 중지되었습니다.이제 모든 앱의 범위가 기본적으로 지정되었습니다.그러나 Google은 파일 관리자, 백업 도구 및 바이러스 백신 앱에 광범위한 액세스가 필요하다는 것을 인식하여 새로운 권한을 만들었습니다.
MANAGE_EXTERNAL_STORAGE — "모든 파일 액세스" 권한.이는 다음과 같은 특별 허가입니다.
- 앱 매니페스트에 선언해야 합니다.
- 권한을 부여하려면 사용자가 수동으로 설정으로 이동해야 합니다(간단한 런타임 대화 상자를 통해서는 부여할 수 없음).
- Play 스토어 검토 중 Google에 정당성을 입증해야 합니다.
Android/data/및Android/obb/디렉터리를 제외한 모든 공유 저장소에 대한 액세스 권한을 부여합니다.
AnExplorer이 이 권한을 요청하면 '모든 파일 관리 허용'을 전환하라는 시스템 화면이 표시됩니다.이는 버그나 과도한 접근이 아닙니다. Android 11 이상에서 파일 관리자가 제대로 작동할 수 있는 유일한 방법입니다.
Android 12 — 사소한 개선
Android 12에서는 저장소 권한이 크게 변경되지 않았지만 다음이 추가되었습니다.
- 파일 전송 기능에 영향을 미치는 주변 장치 권한
- 사진 선택기 작동 방식이 약간 변경되었습니다.
- 패키지 가시성 규칙 강화(앱은 쿼리 선언 없이 설치된 다른 앱을 볼 수 없음)
파일 관리자 기능의 경우 Android 12는 Android 11과 동일하게 작동했습니다.
Android 13 — 세분화된 미디어 권한
Android 13에서는 이전 READ_EXTERNAL_STORAGE을 세 가지 개별 권한으로 분할했습니다.
READ_MEDIA_IMAGES— 사진 및 이미지에 액세스READ_MEDIA_VIDEO— 비디오 파일에 액세스READ_MEDIA_AUDIO— 음악 및 오디오 파일에 액세스
이제 앱은 실제로 필요한 미디어 유형만 요청합니다.음악 플레이어는 오디오만 요청합니다.사진 편집자는 이미지만 요청합니다.MANAGE_EXTERNAL_STORAGE가 이미 모든 것을 다루기 때문에 모든 파일 액세스 권한이 있는 파일 관리자는 이러한 세분화된 권한을 완전히 무시합니다.
또한 Android 13은 저장소 액세스 프레임워크를 통해 Android/data/에 대한 타사 액세스를 완전히 차단했습니다.이전에는 SAF를 사용하여 Android/data/에 폴더 액세스 권한을 부여할 수 있었지만 해당 해결 방법은 종료되었습니다.
Android 14 — 일부 사진 액세스
Android 14에서는 사용자에게 가장 큰 변화를 가져왔습니다. 즉, 앱이 사진 액세스를 요청할 때 이제 사용자는 모든 미디어에 대한 액세스 권한을 부여하는 대신 '사진 및 동영상 선택'을 선택할 수 있습니다.이는 다음을 의미합니다.
- 앱은 사용자가 선택한 특정 파일만 볼 수 있습니다.
- 사용자는 나중에 설정에서 선택 사항을 수정할 수 있습니다.
- 앱은 부분 액세스를 정상적으로 처리해야 합니다.
모든 파일 액세스 권한이 있는 파일 관리자의 경우 이는 적용되지 않습니다. MANAGE_EXTERNAL_STORAGE는 여전히 전체 미디어 가시성을 제공합니다.그러나 모든 파일 액세스 권한을 부여하지 않은 경우 AnExplorer에서는 명시적으로 선택한 파일만 볼 수 있습니다.
Android 14에는 다음도 도입되었습니다.
- 기업 관리 파일에 대한 자격 증명 기반 액세스
- 클라우드 공급자 통합을 통한 사진 선택기 개선
- 백그라운드 파일 접근에 대한 제한이 더욱 엄격해졌습니다.
SAF(저장소 액세스 프레임워크) 작동 방식
파일 관리자에 모든 파일 액세스가 없으면 저장소 액세스 프레임워크가 대체 메커니즘이 됩니다.SAF는 시스템 수준 문서 선택기를 통해 작동합니다.
- 앱이
ACTION_OPEN_DOCUMENT_TREE을 호출하여 폴더에 대한 액세스를 요청합니다. - Android는 원하는 폴더로 이동할 수 있는 시스템 파일 선택기를 표시합니다.
- "이 폴더 사용"을 누르고 "허용"을 확인합니다.
- 앱은 특정 폴더와 해당 폴더의 모든 콘텐츠에 대해 영구 URI 부여를 받습니다.
- 이 부여는 앱을 다시 시작하고 전화를 재부팅해도 유지됩니다.
SAF 부여는 강력하지만 지루합니다. 각 폴더를 별도로 수동으로 부여해야 합니다.AnExplorer은 모든 파일 액세스를 사용할 수 없거나 특정 보호 경로에 액세스할 때 대체 수단으로 SAF를 사용합니다.
SAF 제한 사항
- Android 13 이상에서는 내부 저장소 루트에 대한 액세스 권한을 부여할 수 없습니다.
- Android 13 이상에서는
Android/data/에 액세스할 수 없습니다. - Android 13 이상에서는
Android/obb/에 액세스할 수 없습니다. - 직접 파일 액세스에 비해 성능이 현저히 느립니다(작업은 콘텐츠 제공자를 통해 이루어짐).
- 일부 작업(예: 재귀 폴더 작업)은 SAF를 통해 훨씬 느립니다.
최대 액세스를 위해 AnExplorer 구성
모든 Android 버전에서 최고의 경험을 얻으려면 다음을 수행하세요.
- 모든 파일 접근 권한 부여: 설정 → 앱 → AnExplorer → 권한 → 파일 및 미디어 → 모든 파일 관리 허용
- 알림 권한 부여 (Android 13+): 전송 진행 상황을 표시하는 데 필요합니다.
- 배터리 최적화 비활성화: 설정 → 앱 → AnExplorer → 배터리 → 무제한(OS가 백그라운드 작업을 종료하는 것을 방지)
- Android/데이터에 대한 SAF 액세스 권한 부여(Android 11-12만 해당): AnExplorer에서 Android/데이터에 대한 폴더 액세스를 묻는 메시지가 표시되면 "이 폴더 사용" → "허용"을 탭하세요.
루트 없이는 액세스할 수 없는 상태로 남아 있는 것
모든 파일 액세스가 허용된 경우에도 특정 경로는 Android 보안 모델에 의해 차단된 상태로 유지됩니다.
| 경로 | 차단된 이유 | 대안 |
|---|---|---|
/data/data/ | 앱 샌드박스(커널 적용) | ADB 또는 루트 액세스 |
/data/user/0/ | 위와 동일, 다중 사용자 형식 | ADB 또는 루트 액세스 |
Android/data/(안드로이드 13+) | OS 정책 블록 | PC, ADB 또는 루트의 USB MTP |
Android/obb/(안드로이드 13+) | OS 정책 블록 | PC, ADB 또는 루트의 USB MTP |
/system/ | 읽기 전용 파티션 | 다시 마운트하여 루트 |
권한 문제 해결
모든 파일 액세스 권한이 부여되었음에도 불구하고 "권한이 거부되었습니다"
- AnExplorer을 강제 중지하고 다시 엽니다.
- 권한 취소 후 다시 부여
- "미디어 전용"뿐만 아니라 "모든 파일"을 허용했는지 확인하세요(일부 장치에는 두 옵션이 모두 표시됨).
- 휴대폰을 다시 시작하세요. 일부 권한 부여는 재부팅이 필요합니다.
권한이 며칠 후에도 계속 재설정됩니다.
Android 12 이상에서는 최근(보통 3개월) 사용하지 않은 앱의 권한을 자동으로 취소합니다.이를 방지하려면:
- 설정 → 앱 → AnExplorer → 권한 → '앱을 사용하지 않을 경우 권한 제거'를 꺼주세요.
- 또는 AnExplorer을 가끔씩 열어 "활성" 상태로 유지하세요.
앱에 권한이 있음에도 불구하고 빈 폴더가 표시됩니다.
이는 일반적으로 앱이 캐시된/오래된 디렉터리 목록을 읽고 있음을 나타냅니다.아래로 당겨 새로 고치거나 폴더 밖으로 이동했다가 다시 폴더로 돌아갑니다.문제가 지속되면 AnExplorer의 캐시를 삭제하세요(설정 → 앱 → AnExplorer → 저장소 → 캐시 삭제).
관련 가이드
- Android 14 저장소 변경 사항 — 최신 제한 사항에 대한 자세한 분석
- 파일 관리자가 열리지 않음 — 권한 재설정과 관련된 충돌 수정
- 내부 및 외부 저장소 — Android의 저장소 아키텍처 이해
- 파일을 삭제할 수 없습니다 — 권한 관련 삭제 실패