Ниже приведены примеры конфигураций внешнего хранилища для различных типов устройств. Включены только соответствующие части файлов конфигурации.
Из-за изменений конфигурации в Android 6.0 (например, удаления наложения ресурса storage_list.xml
) примеры конфигурации разделены на две категории.
Android 5.x и более ранние версии
Только физический первичный
Это типичная конфигурация устройства с одним внешним накопителем, представляющим собой физическую SD-карту, например Nexus One.
Необработанное физическое устройство сначала должно быть смонтировано в /mnt/media_rw
где доступ к нему смогут получить только система и демон FUSE. Затем 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" />
Эмулируемая первичная, физическая вторичная
Это типичная конфигурация устройства с несколькими внешними устройствами хранения данных, где основное устройство поддерживается внутренней памятью устройства, а вторичное устройство представляет собой физическую SD-карту, например Xoom.
Необработанное физическое устройство сначала должно быть смонтировано в /mnt/media_rw
где доступ к нему смогут получить только система и демон FUSE. Затем 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" />
Андроид 6.0
Только физический первичный
Это типичная конфигурация устройства с одним внешним накопителем, представляющим собой физическую SD-карту, как в оригинальном Android One. Вторичного общего хранилища нет, и устройство не поддерживает многопользовательский режим.
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
Эмулируемая первичная, физическая вторичная
Это типичная конфигурация устройства с несколькими внешними устройствами хранения данных, где основное устройство поддерживается внутренней памятью устройства, а вторичное устройство представляет собой физическую SD-карту, например Xoom.
- Основное общее хранилище (
/sdcard
) эмулируется поверх внутреннего хранилища. - Вторичное хранилище — это физический слот для SD-карты, который можно использовать.
- Поддерживает многопользовательский режим.
fstab.device
/devices/platform/mtk-msdc.1/mmc_host* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata