다음은 다양한 기기 유형의 외부 저장소 구성 예입니다. 여기에서는 구성 파일의 관련 부분만 포함합니다.
Android 6.0의 구성 변경사항(예: storage_list.xml 리소스 오버레이 제거)으로 인해 구성 예는 두 가지 카테고리로 나누어집니다.
Android 5.x 이전
실제 기기만 기본으로 사용
이는 Nexus One과 같이 단일 외부 저장소 기기(실제 SD 카드)가 있는 기기의 일반적인 구성입니다.
실제 원시 기기는 먼저 시스템과 FUSE 데몬만 액세스할 수 있는 /mnt/media_rw 아래에 마운트되어야 합니다. 그러면 미디어가 삽입/제거될 때 vold에서 fuse_sdcard0 서비스를 관리합니다.
fstab.hardware
[physical device node] auto vfat defaults voldmanaged=sdcard0:auto,noemulatedsd
init.hardware.rc
on init
mkdir /mnt/media_rw/sdcard0 0700 media_rw media_rw
mkdir /storage/sdcard0 0700 root root
export EXTERNAL_STORAGE /storage/sdcard0
service fuse_sdcard0 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/sdcard0 /storage/sdcard0
class late_start
disabled
storage_list.xml
<storage
android:mountPoint="/storage/sdcard0"
android:storageDescription="@string/storage_sd_card"
android:removable="true"
android:primary="true"
android:maxFileSize="4096" />
에뮬레이션된 기기만 기본으로 사용
이는 Nexus 4와 같이 기기 내부 저장소에서 지원하는 단일 외부 저장소 기기가 있는 기기의 일반적인 구성입니다.
init.hardware.rc
on init
mkdir /mnt/shell/emulated 0700 shell shell
mkdir /storage/emulated 0555 root root
export EXTERNAL_STORAGE /storage/emulated/legacy
export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
export EMULATED_STORAGE_TARGET /storage/emulated
on fs
setprop ro.crypto.fuse_sdcard true
service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
class late_start
storage_list.xml
<storage
android:storageDescription="@string/storage_internal"
android:emulated="true"
android:mtpReserve="100" />
기본으로 에뮬레이션된 기기 사용, 보조로 실제 기기 사용
이는 Xoom과 같이 기기 내부 저장소에서 기본 기기를 지원하고 보조 기기로 실제 SD 카드를 사용하며 외부 저장소가 여러 개 있는 기기의 일반적인 구성입니다.
실제 원시 기기는 먼저 시스템과 FUSE 데몬만 액세스할 수 있는 /mnt/media_rw 아래에 마운트되어야 합니다. 그러면 미디어가 삽입/제거될 때 vold에서 fuse_sdcard1 서비스를 관리합니다.
fstab.hardware
[physical device node] auto vfat defaults voldmanaged=sdcard1:auto
init.hardware.rc
on init
mkdir /mnt/shell/emulated 0700 shell shell
mkdir /storage/emulated 0555 root root
mkdir /mnt/media_rw/sdcard1 0700 media_rw media_rw
mkdir /storage/sdcard1 0700 root root
export EXTERNAL_STORAGE /storage/emulated/legacy
export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
export EMULATED_STORAGE_TARGET /storage/emulated
export SECONDARY_STORAGE /storage/sdcard1
on fs
setprop ro.crypto.fuse_sdcard true
service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated
class late_start
service fuse_sdcard1 /system/bin/sdcard -u 1023 -g 1023 -w 1023 -d /mnt/media_rw/sdcard1 /storage/sdcard1
class late_start
disabled
storage_list.xml
<storage
android:storageDescription="@string/storage_internal"
android:emulated="true"
android:mtpReserve="100" />
<storage
android:mountPoint="/storage/sdcard1"
android:storageDescription="@string/storage_sd_card"
android:removable="true"
android:maxFileSize="4096" />
Android 6.0
실제 기기만 기본으로 사용
이는 원래 Android One과 같이 단일 외부 저장소 기기(실제 SD 카드)가 있는 기기의 일반적인 구성입니다. 보조 공유 저장소는 없으며 기기에서 멀티 사용자를 지원할 수 없습니다.
fstab.device
/devices/platform/mtk-msdc.1/mmc_host* auto auto defaults voldmanaged=sdcard0:auto,encryptable=userdata,noemulatedsd
init.device.rc
on init
# By default, primary storage is physical
setprop ro.vold.primary_physical 1
에뮬레이션된 기기만 기본으로 사용
이는 Nexus 6과 같이 기기 내부 저장소에서 지원하는 단일 외부 저장소 기기가 있는 기기의 일반적인 구성입니다.
- 기본 공유 저장소(
/sdcard)가 내부 저장소 위에 에뮬레이션됩니다. - 보조 SD 카드 저장소가 없습니다.
- USB OTG 저장소 기기가 지원됩니다.
- 멀티 사용자를 지원합니다.
fstab.device
/devices/*/xhci-hcd.0.auto/usb* auto auto defaults
voldmanaged=usb:auto
기본으로 에뮬레이션된 기기 사용, 보조로 실제 기기 사용
이는 Xoom과 같이 기기 내부 저장소에서 기본 기기를 지원하고 보조 기기로 실제 SD 카드를 사용하며 외부 저장소가 여러 개 있는 기기의 일반적인 구성입니다.
- 기본 공유 저장소(
/sdcard)가 내부 저장소 위에 에뮬레이션됩니다. - 보조 저장소는 채택 가능한 실제 SD 카드 슬롯입니다.
- 멀티 사용자를 지원합니다.
fstab.device
/devices/platform/mtk-msdc.1/mmc_host* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata