공부/안드로이드

안드로이드의 저장공간에 대해

B612 2023. 12. 3. 22:17

안드로이드 취약점 분석을 하며 SharedPreferences에 대해 알게 되었고, 안드로이드는 어떻게 저장 공간이 이루어져 있는 지 궁금해 오늘 공부했다.

내가 이해한 것을 바탕으로 이를 정리해보겠다.

 

안드로이드는 내부 저장소(Internal Storage)외부 저장소(External Storage)를 제공한다.

 

  • Internal Storage (시스템에 의해서 보호됨)
  • External Storage (공유될 수 있음)
    • Built in non-removable storage (내장 메모리에 박혀있음)
    • SD card

빨간색 내장 메모리, 파란색 → 외장 메모리

 

 

내부 저장소

  • 다른 앱의 공간에 접근이 불가능한 샌드박스 공간
  • 앱 삭제 시 앱 개별공간에 존재하는 앱 개별 파일들이 모두 제거

(ex) SharedPreferences → Datastore

간단한 데이터들을 저장하기 위해

  • Key-Value 형태로 저장
  • 어플리케이션이 삭제되기 전까지 내부에 보관됨

/data/data/(package_name)/shared_prefs/SharedPreference ← 저장되는 파일 위치

 

외부 저장소

  • 다른 앱에 의해서 접근 되어야 하는 내 앱의 파일들을 저장하는 공간이 필요
  • 내 앱이 제거 되더라도 지워지지 말아야 할 데이터가 존재하기 때문

 

android 10부터 Scoped Storage 도입. android 9까지는 Legacy Storage.

내부 저장소의 구조는 변하지 않고, 외부 저장소의 구조만 변함.

내부저장소

 

Scoped Storage (외부 저장소)

외부 저장소에서 유의해야 될점은 사진 및 동영상에 각각의 앱 데이터가 들어가는 것이지, 앱의 디렉토리가 생기는 것이 아니다.

 

Android Developers에 가면 앱별 저장소 라는 단어가 있는데, 내부 저장소와 개별 공간을 말하는 것 같다.

 

 

 

출처)

https://hellose7.tistory.com/96

 

[Storage] 안드로이드 저장소 정리

목차 이글은 안드로이드 11 변경사항에 대해 정리하지 않았습니다. 1. 외부저장소 vs 내부저장소 vs 내장메모리 2. 앱 개별파일과 앱 개별공간, 외부저장소 공유공간이란? 3. 내부저장소 앱 개별공

hellose7.tistory.com

https://developer.android.com/guide/topics/data?hl=ko

 

앱 데이터 및 파일  |  Android 개발자  |  Android Developers

앱 데이터 및 파일 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱 및 사용자 데이터를 기기의 파일, 키-값 쌍, 데이터베이스 또는 기타 데이터 유형으로

developer.android.com

https://developer.android.com/topic/libraries/architecture/datastore?hl=ko#groovy

 

앱 아키텍처: 데이터 영역 - Datastore - Android 개발자  |  Android Developers

데이터 영역 라이브러리에 관한 이 앱 아키텍처 가이드를 통해 Preferences DataStore 및 Proto DataStore, 설정 등을 알아보세요.

developer.android.com

 

'공부 > 안드로이드' 카테고리의 다른 글

Frida-Labs 0x1  (0) 2024.05.13
안드로이드 생명주기  (0) 2024.02.04
Hooking (w. frida)  (0) 2023.12.03
frida 설치  (2) 2023.11.24
Magisk 루팅 (삽질2)  (2) 2023.10.31