Exemples de configuration

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

En raison de modifications apportées à la configuration d'Android 6.0 (comme la suppression du la superposition de ressources storage_list.xml), les exemples de configuration sont se divise en deux catégories.

Android 5.x et versions antérieures

Primaire physique uniquement

Il s'agit d'une configuration classique pour un appareil avec une seule mémoire de stockage externe qui est une carte SD physique, comme un Nexus One.

L'appareil physique brut doit d'abord être installé sous /mnt/media_rw, où seuls le daemon système et FUSE peuvent accéder vold gérera ensuite le service fuse_sdcard0 lors de l'insertion ou du retrait du contenu multimédia.

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

stockage_list.xml

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

Instance principale émulée uniquement

Il s'agit d'une configuration classique pour un appareil avec une seule mémoire de stockage externe appareil sauvegardé sur la mémoire de stockage interne de l’appareil, comme un 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

stockage_list.xml

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

Émulation principale, secondaire physique

Il s'agit d'une configuration type pour un appareil doté de plusieurs périphériques de stockage, où l'appareil principal repose sur une mémoire de stockage interne sur l'appareil, et où l'appareil secondaire est une carte SD physique, comme Xoom.

L'appareil physique brut doit d'abord être installé sous /mnt/media_rw, où seuls le daemon système et FUSE peuvent y accéder. vold gérera ensuite fuse_sdcard1 lorsque du contenu multimédia est inséré/supprimé.

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

stockage_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

Primaire physique uniquement

Il s'agit d'une configuration classique pour un appareil avec une seule mémoire de stockage externe qui est une carte SD physique, comme la première version d'Android One. Il n'y a aucun stockage partagé secondaire et l'appareil n'est pas compatible avec le mode multi-utilisateur.

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

Instance principale émulée uniquement

Il s'agit d'une configuration classique pour un appareil avec une seule mémoire de stockage externe appareil sauvegardé sur la mémoire de stockage interne de l’appareil, comme un Nexus 6.

  • Le stockage partagé principal (/sdcard) est émulé en plus de la mémoire de stockage interne.
  • Carte SD secondaire introuvable.
  • Périphériques de stockage USB OTG pris en charge.
  • Compatible avec le mode multi-utilisateur.

fstab.device

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

Émulation principale, secondaire physique

Il s'agit d'une configuration type pour un appareil avec plusieurs espaces de stockage externe appareils, où l’appareil principal est sauvegardé par la mémoire de stockage interne sur l’appareil, et où le périphérique secondaire est une carte SD physique, comme Xoom.

  • Le stockage partagé principal (/sdcard) est émulé en plus de la mémoire de stockage interne.
  • Le stockage secondaire est un emplacement physique pour carte SD qui peut être adopté.
  • Compatible avec le mode multi-utilisateur.

fstab.device

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