DriveDroid, c'est une petite appli android qui permet de faire apparaître l'ordinateur comme une clef USB contenant une ISO/image quelconque. Sauf que pas sur f-droid (mais apk dispo) et nécessitant forcément les droits root on hésite à l'utiliser sans plus de confiance que cela…
Sur ce lien, l'auteur a dit grosso-modo ce que l'appli fait (deux coups de echo dans des dev en gros) et ça marche ! Donc j'ai vite-fait écrit un petit script qu'on peut poser dans /system/bin par exemple :
vim /system/bin/usbloadfile
<CONTENU>
FILE=$1
if [ "$FILE" = "-u" ]; then
echo > /sys/devices/virtual/android_usb/android0/f_mass_storage/lun0/file
else
if [ -r "$FILE" ]; then
echo "mass_storage" > /sys/devices/virtual/android_usb/android0/functions
echo "$FILE" > /sys/devices/virtual/android_usb/android0/f_mass_storage/lun0
/file
else
echo "Non-readable '$FILE'"
fi
fi
</CONTENU>
chmod 750 /system/bin/usbloadfile
… et zou on a moyen de faire apparaître une ISO d'une distro par exemple, ou encore l'image d'un chroot Debian.
En pratique chez moi, je peux même "monter" deux fichiers, car j'ai lun0 et lun1 disponibles. Je sais pas trop comment ça marche par contre, d'avoir adb et deux fichiers sur le même port USB, mais c'est sûr que ça marche.
Un peu de doc sur l'API gadget : http://www.linux-usb.org/gadget/
Un how-to un peu plus prolixe que le lien shaarlié : http://www.linuxembedded.fr/2013/02/how-to-android-mass-storage-usb-gadget/
La page du projet DriveDroid : http://softwarebakery.com/projects/drivedroid