Esempi di configurazione

Di seguito sono riportati alcuni esempi di configurazioni di archiviazione esterna per vari tipi di dispositivi. Sono incluse solo le parti pertinenti dei file di configurazione.

A causa delle modifiche alla configurazione in Android 6.0 (ad esempio la rimozione dell'overlay della risorsa storage_list.xml), gli esempi di configurazione sono suddivisi in due categorie.

Android 5.x e versioni precedenti

Solo principale fisico

Questa è una configurazione tipica per un dispositivo con un singolo dispositivo di archiviazione esterno, ovvero una scheda SD fisica, come Nexus One.

Il dispositivo fisico non elaborato deve prima essere montato in /mnt/media_rw, dove solo il sistema e il demone FUSE possono accedervi. vold gestirà quindi il servizio fuse_sdcard0 quando i contenuti multimediali vengono inseriti/rimossi.

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" />

Solo principale emulato

Questa è una configurazione tipica per un dispositivo con un singolo dispositivo di archiviazione esterno supportato dall'archiviazione interna del dispositivo, come 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" />

Principale emulato, secondario fisico

Questa è una configurazione tipica per un dispositivo con più dispositivi di archiviazione esterni, in cui il dispositivo principale è supportato dalla memoria interna del dispositivo e il dispositivo secondario è una scheda SD fisica, come Xoom.

Il dispositivo fisico non elaborato deve prima essere montato in /mnt/media_rw, dove solo il sistema e il demone FUSE possono accedervi. vold gestirà quindi il servizio fuse_sdcard1 quando i contenuti multimediali vengono inseriti/rimossi.

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

Solo principale fisico

Questa è una configurazione tipica per un dispositivo con un unico dispositivo di archiviazione esterno, ovvero una scheda SD fisica, come l'Android One originale. Non è presente uno spazio di archiviazione condiviso secondario e il dispositivo non supporta il multiutente.

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

Solo principale emulato

Questa è una configurazione tipica per un dispositivo con un singolo dispositivo di archiviazione esterno supportato dall'archiviazione interna del dispositivo, come Nexus 6.

  • Lo spazio di archiviazione condiviso principale (/sdcard) viene emulato sopra lo spazio di archiviazione interno.
  • Nessuno spazio di archiviazione aggiuntivo sulla scheda SD.
  • Sono supportati i dispositivi di archiviazione USB OTG.
  • Supporta più utenti.

fstab.device

/devices/*/xhci-hcd.0.auto/usb*             auto            auto    defaults
                                                    voldmanaged=usb:auto

Principale emulato, secondario fisico

Questa è una configurazione tipica per un dispositivo con più dispositivi di archiviazione esterni, in cui il dispositivo principale è supportato dalla memoria interna del dispositivo e il dispositivo secondario è una scheda SD fisica, come Xoom.

  • Lo spazio di archiviazione condiviso principale (/sdcard) viene emulato sopra lo spazio di archiviazione interno.
  • Lo spazio di archiviazione secondario è uno slot per schede SD fisico che può essere adottato.
  • Supporta più utenti.

fstab.device

/devices/platform/mtk-msdc.1/mmc_host*           auto      auto     defaults
voldmanaged=sdcard1:auto,encryptable=userdata