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

29

Je viens de recevoir le Galaxy Nexus et j'ai appris qu'il ne prend pas en charge le mode de stockage de masse USB. Il ne prend en charge que MTP et PTP. J'utilise régulièrement mon téléphone comme clé USB au travail, c'est donc un problème. Je peux transférer des fichiers dans les deux sens avec MTP, mais je dois modifier les fichiers directement sur mon téléphone .

Je voudrais trouver un moyen de continuer à utiliser le téléphone comme un lecteur externe et pouvoir accéder directement aux fichiers sur le stockage de mon téléphone sans transférer les fichiers d'avant en arrière, mais j'ai plusieurs contraintes: le réseau à mon travail n'est pas '' t 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 n'aurais rien à installer sur l'ordinateur, mais s'il n'y a pas d'autres options, je considérerais cela.

Y a-t-il des hacks ou des solutions de contournement qui me permettront d'utiliser mon Galaxy Nexus comme un lecteur flash 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 peux accéder à partir d'un ordinateur Windows XP ainsi que via le système d'exploitation Android de la manière possible avec d'autres appareils dotés de cartes de stockage externes?

Le téléphone: il s'agit d'un Galaxy Nexus enraciné et déverrouillé sur VZW et exécutant actuellement CM9.

Mat
la source
Je ne suis pas sûr à 100% mais je pense que le noyau de stock n'est même pas en mesure de le faire. vous avez besoin d'un noyau de rechange ou simplement d'une ROM personnalisée pour ce faire. G Nexus GSM: guide complet de mise à jour pour Cyanogenmod9 (4.0.4 atm, 4.1 CM10 est encore à un stade très précoce). Voici un apk qui pourrait aussi aider. a besoin de racine.
ce4
Merci, ce fil semble prometteur sauf pour cela . J'espère que ce n'est pas vrai sinon j'aurai un GN à vendre.
Matt
2
Je ne pense que vous nécessairement besoin d' une carte SD séparée pour UMS d'utilisation, mais je pense pas que vous ne avez besoin d' une partition séparée (FAT formaté) pour que cela fonctionne, à la Kindle Fire qui ne dispose pas d' une fente pour carte SD externe.
eldarerathis
1
Je pense que vous devez développer un peu pourquoi MTP / PTP ne convient pas à votre utilisation. Malgré son nom, MTP peut réellement transférer n'importe quel fichier arbitraire, pas seulement les fichiers multimédias. Les seules opérations que vous ne pouvez pas faire dans MTP sont celles qui nécessitent un accès au niveau du bloc, par exemple la défragmentation, le reformatage, le partitionnement, etc.
Lie Ryan
Je ne veux pas transférer de fichiers, je veux les éditer à leur emplacement sur mon téléphone comme s'il s'agissait d'un lecteur flash. Je ne crois pas que vous puissiez faire ça avec mtp, je me trompe?
Matt

Réponses:

28

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!

Élaborer

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

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

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

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

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


Version longue ennuyeuse:


Contexte court

La classe de stockage de masse (MSC), communément appelée USB Mass Storage (UMS), que nous sommes tous habitués à utiliser sur nos appareils, est un protocole qui permet à un périphérique Universal Serial Bus (USB) de devenir accessible à un périphérique informatique hôte. , pour activer les transferts de fichiers entre les deux. Aux beaux jours, il suffisait de brancher le téléphone, d'appuyer sur "Mode USB" et de commencer à déplacer des fichiers, à éditer des fichiers, etc ...


Protocole de transfert de médias (MTP)

Les choses ont beaucoup changé, lorsque nous parlons de la nouvelle méthode de transfert utilisée sur votre appareil, le Media Transfer Protocol (MTP):

1 Introduction voir page 15 zip ci-dessous

Le protocole de transfert de médias, ou MTP, est un protocole conçu pour l'échange de contenu et la commande et le contrôle des périphériques de stockage transitoires. Il a été développé comme une extension de PTP, ou Picture Transfer Protocol, et est principalement destiné aux appareils photo numériques, aux lecteurs multimédias portables et aux téléphones cellulaires.

Bien que l'introduction laisse encore place au doute, ce protocole a été développé et mis en œuvre avec un objectif très spécifique: faciliter le transfert des fichiers multimédias et des métadonnées associées entre les appareils:

1.1 Objectif voir page 15 zip ci-dessous

Le principal objectif de ce protocole est de faciliter la communication entre les périphériques multimédias qui ont une connectivité transitoire et une capacité de stockage importante. Cela inclut l'échange d'objets binaires et l'énumération du contenu de cet appareil connecté.


Types de fichiers pris en charge?

À ce stade, nous savons déjà que cela concerne les fichiers multimédias et les appareils multimédias, mais une question que j'ai vue dans les commentaires demeure: pouvons-nous copier des fichiers autres que des fichiers multimédias (audio / vidéo)? Oui nous 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 toutes les données binaires et n'est pas limité aux formats audio / vidéo auxquels il est couramment appliqué. Certains exemples d'objets non audio / vidéo incluent les contacts, les programmes, les événements planifiés et les fichiers texte.


Qu'en est-il du "montage en direct"?

Votre question concerne particulièrement l'utilisation de votre appareil (Galaxy Nexus) comme lecteur de stockage USB externe. Pourquoi ça ne peut pas être fait? Le protocole MTP limite les données à une opération unidirectionnelle, ce dernier a également expliqué 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 dans MTP est toujours unidirectionnel. Lors du lancement d'une opération, les données ne circulent que de l'initiateur vers le répondeur. Lorsque vous répondez à l'opération demandée, les données ne circulent que du répondeur vers l'initiateur. Pendant la phase d'échange de données binaires, les données peuvent circuler du répondeur vers l'initiateur ou de l'initiateur vers le répondeur, mais jamais les deux. L'échange de données binaire bidirectionnel doit être effectué par plusieurs opérations.


Avantages vs inconvénients

Les avantages

Le MTP comporte certains avantages, principalement en ce qui concerne la sécurité et l'intégrité des données utilisateur:

Présentation de l'implémentation de Microsoft MTP

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

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

Désavantages

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 journée.

Le support est toujours en cours, certains systèmes d'exploitation nécessitent toujours 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 à nouveau téléchargés dans leur intégralité.


Les références:

J'espère que cela clarifie pourquoi MTP est bon (amélioration) , mais OTOH 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 attribuée au contenu et aux auteurs de ces liens de référence.

Zuul
la source
3
J'apprécie la description très détaillée de mtp, mais 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 distincte. Avez-vous des suggestions sur la façon de contourner les limitations du mtp?
Matt
@Matt Le commentaire devenait trop grand, j'ai ajouté une clarification dans la section "réponse courte". Désolé si je ne me suis pas expliqué plus tôt.
Zuul
Merci pour les informations ajoutées mais encore une fois, j'étais déjà au courant de la plupart de cela. Ce qui m'intéresse, c'est que, à part d'autres solutions, le téléphone peut-il être re-partitionné avec une partition FAT distincte qui prendrait en charge UMS? Si c'est le cas, comment?
Matt
J'ai fini par attribuer la prime à ce4 parce que son code était la chose la plus proche d'une solution mais merci pour les informations détaillées et l'aide que vous avez fournie.
Matt
7

Il peut être possible d'exporter un fichier image en boucle via USB au format UMS / MSC.

Vous aurez certainement besoin de:

  • racine
  • prise en charge du noyau : loopback (/ dev / block / loop0) et UMS (/ sys / devices / platform / usb_mass_storage /)
  • application personnalisée pour activer / désactiver cela ou un script d'initialisation personnalisé pour toujours exporter le fichier image
    Voici un exemple pour une application facile à pirater, un peu de développement nécessaire cependant ... ) à la boucle0 et perdez également la boucle0 au préalable, puis générez. De plus, il pourrait être possible de le monter sur l'appareil Android s'il n'est pas exporté, par exemple sur / sdcard / fat

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

#create a 10mb image file and format it with FAT, name it testFat:
me@workstation:~$ dd if=/dev/zero of=/tmp/fat.img count=10 bs=1M
10+0 records in
10+0 records out
10485760 Bytes (10 MB) copied, 0,00699535 s, 1,5 GB/s
me@workstation:~$ mkfs.vfat -n fatTest /tmp/fat.img 
mkfs.vfat 3.0.9 (31 Jan 2010)
me@workstation:~$ file /tmp/fat.img
/tmp/fat.img: x86 boot sector, [...], label: "fatTest    ", FAT (16 bit)

#Push it to my phone, create loop0 from it and export it via UMS
me@workstation:~$ adb push /tmp/fat.img /sdcard/fat.img
5215 KB/s (10485760 bytes in 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

#See that it works. Yay!
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 512-byte logical blocks: (10.4 MB/10.0 MiB)
[137805.010024] sd 27:0:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[137805.013446]  sdg:
me@workstation:~$
ce4
la source
Je n'ai pas de dispositif de test (GNexus) à portée de main en ce moment, est-ce que quelqu'un serait si gentil et aurait un regard si UMS est inclus dans CM9? Il suffit de voir si cela est disponible: / sys / devices / platform / usb_mass_storage / lun0 / file
ce4
1
Le début du CM10 ne semble pas, donc je suppose que le CM9 ne l'est pas non plus.
eldarerathis
@eldarerathis: Merci d'avoir regardé! Il pourrait être compilé dans un autre noyau ou il fallait l'activer lui-même pour le faire fonctionner.
ce4
@ ce4 Cela semble prometteur mais j'aimerais voir plus de détails expliquant comment y parvenir. Re-partitionnez-vous le stockage du téléphone de manière permanente ou s'agit-il d'un autre type de solution? Y a-t-il des inconvénients à cette méthode, comme le fait d'intégrer l'intégrité du système de fichiers?
Matt
J'utilise mon téléphone comme lecteur flash. Je le branche sur un ordinateur partagé au travail, édite un document puis l'enregistre et c'est parti. Le transfert du fichier sur l'ordinateur et vice-versa ne fonctionne pas vraiment pour moi. Je reprendrai le chat un peu plus tard.
Matt
3

Il s'agit de la version TL; DR.

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

La raison en est que le stockage de masse USB donne au PC un accès de niveau bloc au système de fichiers, et pour maintenir l'intégrité du système de fichiers, ce doit être un accès 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 de stockage de masse USB.

Cependant, le Galaxy Nexus, ne pas avoir une carte SD. C'est le volume de stockage interne volumineux du téléphone auquel on accède.

MTP (voir l'excellente explication de @ Zuul) contourne ce problème et permet au téléphone et au PC d'accéder aux fichiers sans que le téléphone soit verrouillé. Les inconvénients sont que vous n'obtenez pas un accès exclusif au niveau du bloc, et la prise en charge du système d'exploitation pour MTP n'est tout simplement pas encore là.

S'il s'agit d'une fonctionnalité dont vous ne pouvez tout simplement pas vous passer, alors le mieux est d'utiliser un autre téléphone. Pas par hasard, c'est l'une des raisons pour lesquelles je me suis débarrassé du Galaxy Nexus et j'ai obtenu un DROID RAZR MAXX.

Michael Hampton
la source
1
"C'est pourquoi les téléphones Android démontent la carte SD ..." Qu'en est-il des applications qui permettent de monter simultanément le SD (et le stockage interne) sur l'ordinateur et le système d'exploitation Android simultanément? J'avais une telle application sur mon Rezound et cela fonctionnait plutôt bien.
Matt
Je n'ai jamais entendu parler d'une telle application. Vous avez des preuves de son existence?
Michael Hampton
Cela sonnait vraiment dur! google.hu/…
RR
1
Et vous n'avez jamais perdu de données? Vous avez donc beaucoup de chance.
Michael Hampton
3
Oui, c'est exactement pourquoi le système ne le permet pas en premier lieu.
Michael Hampton
1

Il apparaît que AOKP JB build 4 a:

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

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

Ηλίας
la source
0

Vous pouvez essayer cette application XDA-Developers :

Remarque: Cette application a été développée au début des ports pour sandwiches à la crème glacée. À cette époque, aucun des ports n'avait de support de stockage de masse USB natif et cette application était néanmoins conçue comme une solution temporaire pour utiliser UMS. Cette appli ne sera donc pas intéressante pour vous, à moins que le port ICS ou JB que vous utilisez ne prenne toujours pas en charge UMS de manière native. Si tel est le cas, voici de l'aide:

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

Sonne assez bien jusqu'à présent - seul votre Galaxy Nexus n'est pas explicitement mentionné dans la liste des appareils pris en charge connus. Cela ne signifie pas nécessairement que cela ne fonctionnera pas, mais juste au moment où il n'est pas connu. Cela devrait valoir la peine d'essayer.

Izzy
la source
Cela a déjà été discuté, voir les commentaires du PO. Hélas, c'est aussi une impasse. :(
ce4
Je n'ai pas pu trouver les commentaires auxquels vous faites référence - mais si c'est déjà une option connue, je m'en excuse. Et «impasse» signifie que cela ne fonctionne plus? Oh mon Dieu, je suppose que je passe les prochaines mises à jour;)
Izzy
Sans vouloir vous offenser! :) était plus censé être "FYI". Le "voici un apk" fait référence au même fil que votre lien XDA.
ce4
Nous avons eu une conversation assez longue dans le chat Android principal à ce sujet. Je ne sais pas s'il y a une histoire assez longue mais elle
contient
Merci pour l'info, ce4 - malheureusement, je manque actuellement le temps de creuser plus profondément. Je vois juste que MTP n'est pas encore aussi complet qu'il devrait l'être pour désactiver complètement UMS, donc j'étais presque sûr qu'il devait y avoir une solution toujours disponible. Et je me suis souvenu de quelques discussions sur l'activation d'UMS à nouveau sur ICS et plus. Espérons qu'il y aura bientôt quelque chose - car le MTP ne semble pas être la réponse pour tout le monde.
Izzy