29 votes

Comment puis-je utiliser mon Galaxy Nexus comme un lecteur de stockage USB externe?

Je viens juste d'obtenir le Galaxy Nexus et j'ai appris qu'il ne prend pas en charge le mode USB Stockage de Masse. Il prend uniquement en charge le MTP et le PTP. J'utilise régulièrement mon téléphone comme une clé USB au travail, donc c'est un problème. Je peux transférer des fichiers aller-retour avec le MTP cependant j'ai besoin de pouvoir éditer les fichiers directement sur mon téléphone.

J'aimerais trouver un moyen de continuer à utiliser le téléphone comme une clé USB externe et pouvoir accéder directement aux fichiers stockés sur mon téléphone sans avoir à transférer les fichiers aller-retour cependant j'ai plusieurs contraintes : Le réseau à mon travail n'est pas connecté à internet, il n'a pas de wifi, et les ordinateurs n'ont pas de Bluetooth et cela ne va pas changer. Idéalement, je ne voudrais pas avoir à installer quoi que ce soit sur l'ordinateur, mais si il n'y a pas d'autres options, je considérerais cela.

Y a-t-il des piratages ou des solutions de contournement qui me permettront d'utiliser mon Galaxy Nexus comme une clé USB externe de la manière que j'ai décrite ?

Puis-je créer une partition FAT montable séparée sur le stockage du téléphone à laquelle je pourrais accéder depuis un ordinateur Windows XP ainsi que via le système d'exploitation Android de la même manière que c'est possible avec d'autres appareils ayant des cartes de stockage externes?

Le Téléphone: C'est un Galaxy Nexus rooté et déverrouillé sur VZW et actuellement fonctionnant sous CM9.

0 votes

Je ne suis pas sûr à 100% mais je pense que le kernel d'origine n'est même pas capable de le faire. Vous avez besoin d'un kernel tiers ou simplement d'une ROM personnalisée pour le faire. Guide de mise à jour complète pour le G Nexus GSM pour Cyanogenmod9 (4.0.4 pour le moment, 4.1 CM10 est encore à un stade très précoce). Voici une apk qui pourrait vous aider aussi. nécessite un accès root.

0 votes

Merci, ce fil semble prometteur sauf pour ceci. J'espère que ce n'est pas vrai sinon j'aurai un GN à vendre.

2 votes

Je ne pense pas que vous ayez nécessairement besoin d'une carte SD distincte pour utiliser UMS, mais je pense que vous avez besoin d'une partition distincte (formatée FAT) pour que cela fonctionne, comme sur le Kindle Fire qui n'a pas de fente pour carte SD externe.

28voto

Zuul Points 8710

Réponse courte :

Actuellement, vous ne pouvez pas utiliser votre appareil (tout appareil qui repose sur MTP) pour agir en tant que MSC, en raison des spécifications du protocole !

Elaboration

Pour clarifier, le Galaxy Nexus utilise une seule partition massive pour l'ensemble de l'appareil, c'est comme dire que : le système, les données et la carte sd sont tous ensemble.

Le MTP a été sélectionné pour le Galaxy Nexus car il permet l'utilisation de cette grande zone de stockage, qui du point de vue du système, assure une meilleure communication avec les fichiers, fournit un système de fichiers plus sécurisé et pose moins de problèmes à maintenir.

Pourquoi vous ne pouvez pas le faire comme vous le souhaitez :

Il n'y a pas de partitions séparées dans le Galaxy Nexus, seulement une grande zone de stockage. Même en émulant un système de fichiers fat32, il faudrait encore être capable de traduire entre fat32 et ext4 au niveau le plus bas. C'est pratiquement impossible.

Si le Galaxy Nexus avait une partition, vous pourriez avoir un accès au niveau des blocs et donc un accès au stockage de masse.


Version longue ennuyeuse :

Brève introduction

La Classe de dispositif de stockage de masse (MSC), communément appelée Stockage de masse USB (UMS), que nous avons tous l'habitude d'utiliser sur nos appareils, est un protocole qui permet à un dispositif Universal Serial Bus (USB) de devenir accessible à un dispositif informatique hôte, afin de permettre des transferts de fichiers entre les deux. Autrefois, il suffisait de brancher le téléphone, de sélectionner le "mode USB" et de commencer à déplacer des fichiers, à éditer des fichiers, etc...

Protocole de transfert multimédia (MTP)

Les choses ont beaucoup changé, en parlant de la nouvelle méthode de transfert qui est utilisée sur votre appareil, le Protocole de transfert multimédia (MTP) :

1 Introduction voir page 15 zip ci-dessous

Le Protocole de transfert multimédia, ou MTP, est un protocole conçu pour l'échange de contenu avec et la commande et le contrôle de dispositifs de stockage transitoires. Il a été développé en tant qu'extension de PTP, ou Protocole de transfert d'images, et est principalement destiné aux appareils photos numériques, aux lecteurs multimédias portables et aux téléphones cellulaires.

Alors que l'introduction laisse encore place au doute, ce protocole a été développé et implémenté dans un but très spécifique : faciliter le transfert de fichiers multimédias et de métadonnées associées entre les appareils :

1.1 But voir page 15 zip ci-dessous

Le but principal de ce protocole est de faciliter la communication entre les appareils multimédias ayant une connectivité temporaire et une capacité de stockage significative. Cela inclut l'échange d'objets binaires et l'énumération du contenu de ce dispositif connecté.

Types de fichiers pris en charge ?

À ce stade, nous savons déjà que cela concerne les fichiers multimédias et les appareils basés sur les médias, mais une question que j'ai vue dans les commentaires persiste : Pouvons-nous copier des fichiers autres que des fichiers multimédias (audio/vidéo) ? Oui, nous le pouvons :

1.3 Modèle d'objet MTP voir page 15 zip ci-dessous

Le terme "média" dans "Media Transfer Protocol" est utilisé pour identifier n'importe quelle donnée binaire, et n'est pas limité aux formats audio/vidéo auxquels il est communément appliqué. Quelques exemples d'objets autres que audio/vidéo incluent les contacts, les programmes, les événements planifiés et les fichiers texte.

Et en ce qui concerne l' "édition en direct" ?

Votre question concerne particulièrement l'utilisation de votre appareil (Galaxy Nexus) en tant que lecteur de stockage USB externe. Pourquoi cela ne peut-il pas être fait ? Le protocole MTP limite les données à une opération unidirectionnelle, et explique également que le stockage de l'appareil est utilisé par l'ordinateur comme un fichier local :

4.2 Flux de données unidirectionnel voir page 29 zip ci-dessous

Le flux de données en MTP est toujours unidirectionnel. Lors de l'initialisation d'une opération, les données ne circulent que de l'Initiateur au Répondeur. Lors de la réponse à l'opération demandée, les données ne circulent que du Répondeur à l'Initiateur. Pendant la phase d'échange de données binaires, les données peuvent circuler du Répondeur à l'Initiateur ou de l'Initiateur au Répondeur, mais jamais les deux à la fois. L'échange de données binaires bidirectionnelles doit être effectué par plusieurs opérations.

Avantages vs Inconvénients

Avantages

Le MTP apporte certains avantages, principalement concernant la sécurité et l'intégrité des données de l'utilisateur :

Vue d'ensemble de l'implémentation MTP de Microsoft

Lorsqu'un ordinateur hôte USB a monté une partition MSC, il assume un contrôle absolu du stockage, permettant par exemple, le formatage du système de fichiers pour un type non pris en charge.

En revanche, le MTP surmonte cela en faisant de l'unité de stockage géré un fichier local qui peut être écrit ou lu.

Inconvénients

Le MTP n'est pas traité comme un lecteur amovible traditionnel, donc aucun outil de récupération ne peut être utilisé pour sauver la situation.

Le support est encore en cours, certains systèmes d'exploitation nécessitent encore des logiciels tiers.

Les normes MTP (comme mentionné précédemment) ne permettent pas la modification directe des objets. Au lieu de cela, les objets modifiés doivent être réimportés dans leur intégralité.


Références :

J'espère que cela clarifie pourquoi le MTP est bon (amélioration), mais d'autre part mauvais (l'utilisateur devra changer ses habitudes).

Voici le matériel de lecture utilisé pour synthétiser la réponse :

La réponse ci-dessus est créditée au contenu et aux auteurs de ces liens de référence.

3 votes

Je suis reconnaissant pour la description très détaillée de mtp, cependant j'ai déjà accepté le fait que je ne peux pas utiliser mtp comme je le souhaite. Ce qui m'intéresse, c'est de trouver un moyen de contourner la limitation. Par exemple, repartitionner le stockage interne pour créer une partition montable séparée. Des suggestions sur comment je peux contourner les limites de mtp ?

0 votes

@Matt Le commentaire devenait trop long, j'ai ajouté une clarification sous la section "réponse courte". Désolé si je ne me suis pas bien exprimé plus tôt.

0 votes

Merci pour les informations supplémentaires, mais je connaissais déjà la plupart de cela. Ce qui m'intéresse, c'est de savoir si, en dehors d'autres solutions, le téléphone peut être repartitionné avec une partition FAT distincte qui prend en charge UMS. Si oui, comment ?

7voto

ce4 Points 14264

Il est possible d'exporter un fichier image loopback via USB en tant que UMS/MSC.

Vous aurez certainement besoin de :

  • root
  • support du noyau : loopback (/dev/block/loop0) et UMS (/sys/devices/platform/usb_mass_storage/)
  • une application personnalisée pour activer/désactiver ceci ou un script init personnalisé pour toujours exporter le fichier image
    Voici un exemple d'une application facilement piratable, mais nécessitant un peu de développement... Il faut changer le périphérique de bloc par défaut (/dev/block/mmcblk0pX) en loop0 et également losetup le loop0 au préalable, puis compiler. De plus, il pourrait être possible de le monter sur l'appareil Android s'il n'est pas exporté, par exemple dans /sdcard/fat

Voici un petit test sur mon Galaxy Nexus (en mode récupération) :

#créer un fichier image de 10 Mo et le formater en FAT, le nommer testFat :
me@workstation:~$ dd if=/dev/zero of=/tmp/fat.img count=10 bs=1M
10+0 enregistrements lus
10+0 enregistrements écrits
10485760 octets (10 Mo) copiés, 0,00699535 s, 1,5 Go/s
me@workstation:~$ mkfs.vfat -n fatTest /tmp/fat.img 
mkfs.vfat 3.0.9 (31 janv. 2010)
me@workstation:~$ file /tmp/fat.img
/tmp/fat.img: secteur d'amorçage x86, [...], étiquette : "fatTest    ", FAT (16 bits)

#Pousser sur mon téléphone, créer loop0 à partir de celui-ci et l'exporter via UMS
me@workstation:~$ adb push /tmp/fat.img /sdcard/fat.img
5215 Ko/s (10485760 octets en 1,963s)
me@workstation:~$ adb shell
root@android # ls /sys/devices/platform/usb_mass_storage/lun0
file    power   ro      uevent
root@android # losetup /dev/block/loop0 /sdcard/fat.img
root@android # losetup
/dev/block/loop0: 0 /sdcard/fat.img
root@android # echo /dev/block/loop0 > /sys/devices/platform/usb_mass_storage/lun0/file 
root@android # exit

#Vérifier que cela fonctionne. Hourra !
me@workstation:~$ 
me@workstation:~$ mount
[...]
/dev/sdg on /media/fatTest type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks)
me@workstation:~$ dmesg
[137805.009285] sd 27:0:0:0: [sdg] 20480 blocs logiques de 512 octets: (10,4 Mo/10,0 Mio)
[137805.010024] sd 27:0:0:0: [sdg] Cache d'écriture : activé, cache de lecture : activé, ne prend pas en charge DPO ou FUA
[137805.013446]  sdg:
me@workstation:~$

0 votes

Je n'ai pas de dispositif de test (GNexus) sous la main en ce moment, est-ce que quelqu'un pourrait avoir la gentillesse de vérifier si UMS est inclus dans CM9 ? Veuillez juste voir si c'est disponible : /sys/devices/platform/usb_mass_storage/lun0/file

1 votes

La première version de CM10 ne semble pas avoir, donc je suppose que CM9 non plus.

0 votes

@eldarerathis: Merci d'avoir regardé! Il pourrait être compilé dans un noyau différent ou il faut l'activer soi-même pour que cela fonctionne.

3voto

Michael Hampton Points 2100

Ceci est la version TL;DR.

Désolé, le stockage de masse USB est simplement impossible avec le Galaxy Nexus.

La raison en est que le stockage de masse USB donne à l'ordinateur un accès au niveau du bloc au système de fichiers, et pour maintenir l'intégrité du système de fichiers, cet accès doit être exclusif. C'est pourquoi les téléphones Android démontent la carte SD et les applications ne peuvent pas utiliser les données sur la carte SD lorsque le téléphone est en mode stockage de masse USB.

Le Galaxy Nexus, cependant, n'a pas de carte SD. C'est le volumineux stockage interne du téléphone qui est utilisé.

Le MTP (voir l'excellente explication de @Zuul) contourne ce problème et permet à la fois au téléphone et à l'ordinateur d'accéder aux fichiers sans que le téléphone soit exclu. Les inconvénients sont que vous n'obtenez pas un accès exclusif au niveau du bloc et que le support du système d'exploitation pour le MTP n'est pas encore tout à fait à la hauteur.

Si c'est une fonctionnalité dont vous ne pouvez tout simplement pas vous passer, alors votre meilleure option est d'utiliser un autre téléphone. Ce n'est pas une coïncidence que c'est l'une des raisons pour lesquelles j'ai abandonné le Galaxy Nexus et me suis procuré un DROID RAZR MAXX.

1 votes

"C'est pourquoi les téléphones Android démontent la carte SD..." Que dire des applications qui permettent le double montage de la carte SD (et du stockage interne d'ailleurs) sur l'ordinateur et le système d'exploitation Android simultanément? J'avais une telle application sur mon Rezound et elle fonctionnait assez bien.

0 votes

Je n'ai jamais entendu parler d'une application comme ça. As-tu des preuves de son existence?

0 votes

Cela semblait vraiment dur! google.hu/…

1voto

Ηλίας Points 119

Il semble que AOKP JB build 4 ait :

"Émulation de stockage de masse USB pour certains appareils (i9*)"

Je ne l'ai pas encore utilisé moi-même.

0voto

Milner Points 533

Vous pourriez essayer cette application XDA-Developers :

Note : Cette application a été développée aux premiers jours des ports Ice Cream Sandwich. À cette époque, aucun des ports n'avait de support natif pour le stockage de masse USB et cette application était destinée comme solution temporaire pour utiliser UMS néanmoins. Donc, cette application ne sera pas intéressante pour vous, à moins que le port ICS ou JB que vous utilisez ne supporte toujours pas nativement UMS. Si c'est le cas, voici de l'aide :

L'application démarre automatiquement après le démarrage de l'appareil et détecte automatiquement quand l'appareil est connecté via USB à un ordinateur. Ensuite, une notification apparaît dans la barre de notifications et en tapant sur la notification, vous ouvrirez une interface graphique pour activer/désactiver le stockage de masse USB ; juste/presque comme la fonction UMS originale.

Jusqu'ici, ça semble plutôt bien -- seulement votre Galaxy Nexus n'est pas explicitement mentionné dans la liste des appareils pris en charge connus. Cela ne signifie pas forcément que ça ne fonctionnera pas, mais juste qu'à ce moment précis, ce n'est pas connu. Ça vaut la peine d'essayer.

0 votes

Ceci a déjà été discuté, voir les commentaires de l'OP. Hélas, c'est aussi une impasse. :(

0 votes

Je n'ai pas pu trouver les commentaires auxquels tu fais référence - mais si c'est déjà une option connue, je m'excuse. Et "dead end" signifie que cela ne fonctionne plus ? Oh là là, je suppose que je vais sauter les prochaines mises à jour ;)

0 votes

Pas d'offense! :) était plus destiné à être "pour information". Le "voici un apk" se réfère au même fil de discussion que votre lien XDA.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X