Exemples de configuration

Vous trouverez ci-dessous des exemples de configurations de stockage externe pour différents types d'appareils. Seules les parties pertinentes des fichiers de configuration sont incluses.

En raison des modifications de configuration dans Android 6.0 (comme la suppression de la superposition de ressources storage_list.xml ), les exemples de configuration sont divisés en deux catégories.

Android 5.x et versions antérieures

Primaire physique uniquement

Il s'agit d'une configuration typique pour un appareil doté d'un seul périphérique de stockage externe qui est une carte SD physique, comme le Nexus One.

Le périphérique physique brut doit d'abord être monté sous /mnt/media_rw où seuls le système et le démon FUSE peuvent y accéder. vold gérera alors le service fuse_sdcard0 lorsque le média sera inséré/supprimé.

fstab.matériel

[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

liste_de stockage.xml

<storage
    android:mountPoint="/storage/sdcard0"
    android:storageDescription="@string/storage_sd_card"
    android:removable="true"
    android:primary="true"
    android:maxFileSize="4096" />

Primaire émulé uniquement

Il s'agit d'une configuration typique pour un appareil doté d'un seul périphérique de stockage externe soutenu par un stockage interne sur l'appareil, comme le 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

liste_de stockage.xml

<storage
    android:storageDescription="@string/storage_internal"
    android:emulated="true"
    android:mtpReserve="100" />

Primaire émulé, secondaire physique

Il s'agit d'une configuration typique pour un appareil doté de plusieurs périphériques de stockage externes, où le périphérique principal est sauvegardé par le stockage interne de l'appareil et où le périphérique secondaire est une carte SD physique, comme Xoom.

Le périphérique physique brut doit d'abord être monté sous /mnt/media_rw où seuls le système et le démon FUSE peuvent y accéder. vold gérera alors le service fuse_sdcard1 lorsque le média sera inséré/supprimé.

fstab.matériel

[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

liste_de stockage.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

Primaire physique uniquement

Il s'agit d'une configuration typique pour un appareil doté d'un seul périphérique de stockage externe qui est une carte SD physique, comme l'Android One d'origine. Il n'y a pas de stockage partagé secondaire et l'appareil ne peut pas prendre en charge plusieurs utilisateurs.

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

Primaire émulé uniquement

Il s'agit d'une configuration typique pour un appareil doté d'un seul périphérique de stockage externe soutenu par un stockage interne sur l'appareil, comme le Nexus 6.

  • Le stockage partagé principal ( /sdcard ) est émulé au-dessus du stockage interne.
  • Pas de stockage secondaire sur carte SD.
  • Périphériques de stockage USB OTG pris en charge.
  • Prend en charge plusieurs utilisateurs.

fstab.device

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

Primaire émulé, secondaire physique

Il s'agit d'une configuration typique pour un appareil doté de plusieurs périphériques de stockage externes, où le périphérique principal est sauvegardé par le stockage interne de l'appareil et où le périphérique secondaire est une carte SD physique, comme Xoom.

  • Le stockage partagé principal ( /sdcard ) est émulé au-dessus du stockage interne.
  • Le stockage secondaire est un emplacement pour carte SD physique qui peut être adopté.
  • Prend en charge plusieurs utilisateurs.

fstab.device

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