다음은 다양한 기기 유형의 외부 저장소 구성 예입니다. 여기에서는 구성 파일의 관련 부분만 포함합니다.
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