Wie kann ich mein Galaxy Nexus als externes USB-Speicherlaufwerk verwenden?

29

Ich habe gerade das Galaxy Nexus erhalten und festgestellt, dass es den USB-Massenspeichermodus nicht unterstützt. Es werden nur MTP und PTP unterstützt. Ich verwende mein Telefon bei der Arbeit regelmäßig als USB-Flash-Laufwerk, daher ist dies ein Problem. Ich kann mit MTP Dateien hin und her übertragen, muss diese jedoch direkt auf meinem Telefon bearbeiten .

Ich möchte eine Möglichkeit finden, das Telefon weiterhin als externes Laufwerk zu verwenden und direkt auf die Dateien im Speicher meines Telefons zuzugreifen, ohne die Dateien hin und her zu übertragen. Ich habe jedoch mehrere Einschränkungen: Das Netzwerk bei meiner Arbeit ist nicht in der Lage. Es ist nicht mit dem Internet verbunden, es hat kein WLAN und die Computer haben kein Bluetooth und dies wird sich nicht ändern. Im Idealfall müsste ich nichts auf dem Computer installieren, aber wenn es keine anderen Optionen gibt, würde ich dies in Betracht ziehen.

Gibt es irgendwelche Hacks oder Workarounds, mit denen ich mein Galaxy Nexus wie beschrieben als externes Flash-Laufwerk verwenden kann?

Kann ich auf dem Telefonspeicher eine separate anbringbare FAT-Partition erstellen, auf die ich von einem Windows XP-Computer sowie über das Android-Betriebssystem so zugreifen kann, wie dies mit anderen Geräten mit externen Speicherkarten möglich ist?

Das Telefon: Es ist ein gerootetes und freigeschaltetes Galaxy Nexus auf VZW, auf dem derzeit CM9 ausgeführt wird.

Matt
quelle
Ich bin mir nicht hundertprozentig sicher, aber ich glaube, der Aktienkernel kann das nicht einmal. Sie benötigen einen Aftermarket-Kernel oder nur ein benutzerdefiniertes ROM, um dies zu tun. G Nexus GSM: vollständige Update-Anleitung für Cyanogenmod9 (4.0.4 atm, 4.1 CM10 befindet sich noch in einem sehr frühen Stadium). Hier ist eine apk , die auch helfen könnte. braucht root.
Ce4
Danke, der Thread sieht bis auf diesen Punkt vielversprechend aus . Hoffentlich ist es nicht wahr, sonst werde ich ein GN zum Verkauf haben.
Matt
2
Ich glaube nicht , dass Sie unbedingt eine separate SD - Karte zu verwenden UM benötigen, aber ich glaube , Sie haben eine separate Partition benötigen (formatierte FAT) für sie zu arbeiten, a la das Feuer anzündet , die keinen externen SD - Kartenslot haben.
Eldarerathis
1
Ich denke, Sie müssen etwas näher darauf eingehen, warum MTP / PTP für Ihre Verwendung nicht geeignet ist. Trotz des Namens kann MTP tatsächlich jede beliebige Datei übertragen, nicht nur Mediendateien. Die einzigen Vorgänge, die Sie in MTP nicht ausführen können, sind Vorgänge, die Zugriff auf Blockebene erfordern, z. B. Defragmentieren, Neuformatieren, Partitionieren usw.
Lie Ryan,
Ich möchte keine Dateien übertragen, sondern sie an ihrem Speicherort auf meinem Telefon bearbeiten, als wäre es ein Flash-Laufwerk. Ich glaube nicht, dass du das mit mtp machen kannst, irre ich mich?
Matt

Antworten:

28

Kurze Antwort:

Derzeit können Sie Ihr Gerät (jedes Gerät, das auf MTP basiert) aufgrund der Protokollspezifikationen nicht als MSC verwenden!

Ausarbeiten

Zur Verdeutlichung verwendet das Galaxy Nexus eine massive Partition für das gesamte Gerät. Es ist wie gesagt: System, Daten und SD-Karte sind alle zusammen.

MTP wurde für Galaxy Nexus ausgewählt, weil es die Verwendung dieses großen Speicherbereichs ermöglicht, der aus Systemsicht eine bessere Kommunikation mit Dateien gewährleistet, ein sichereres Dateisystem bietet und weniger Wartungsprobleme verursacht.

Warum Sie es nicht so machen können, wie Sie es wollen:

In Galaxy Nexus gibt es keine getrennten Partitionen, nur einen großen Speicherbereich. Selbst wenn man ein fat32-Dateisystem emuliert, muss man in der Lage sein, auf einer niedrigen Ebene zwischen fat32 und ext4 zu übersetzen. Das ist praktisch unmöglich.

Wenn das Galaxy Nexus eine Partition hätte, könnten Sie Zugriff auf Blockebene und somit Massenspeicherzugriff haben.


Langweilige Version:


Kurzer Hintergrund

Die Massenspeicherklasse (MSC), die allgemein als USB-Massenspeicher (UMS) bezeichnet wird und die wir alle für unsere Geräte verwenden, ist ein Protokoll, mit dem ein USB-Gerät (Universal Serial Bus) für ein Host-Computergerät zugänglich gemacht werden kann , um Dateiübertragungen zwischen den beiden zu ermöglichen. An den goldenen Tagen musste man nur das Telefon anschließen, auf "USB-Modus" klicken und anfangen, Dateien zu verschieben, Dateien zu bearbeiten usw.


Media Transfer Protocol (MTP)

Die Dinge haben sich sehr verändert, als wir über die neue Übertragungsmethode sprechen, die auf Ihrem Gerät verwendet wird, das Media Transfer Protocol (MTP):

1 Einführung siehe Seite 15 zip unten

Das Media Transfer Protocol (MTP) ist ein Protokoll, das für den Austausch von Inhalten sowie die Steuerung und Steuerung von temporären Speichergeräten entwickelt wurde. Es wurde als Erweiterung zu PTP (Picture Transfer Protocol) entwickelt und richtet sich hauptsächlich an digitale Fotokameras, tragbare Mediaplayer und Mobiltelefone.

Während die Einführung noch Zweifel lässt, wurde dieses Protokoll mit einem ganz bestimmten Zweck entwickelt und implementiert: um die Übertragung von Mediendateien und zugehörigen Metadaten zwischen Geräten zu erleichtern:

1.1 Zweck siehe Seite 15 zip unten

Der Hauptzweck dieses Protokolls ist die Erleichterung der Kommunikation zwischen Mediengeräten mit vorübergehender Konnektivität und erheblicher Speicherkapazität. Dies beinhaltet den Austausch von binären Objekten und die Aufzählung der Inhalte des angeschlossenen Geräts.


Dateitypen unterstützt?

An diesem Punkt wissen wir bereits, dass dies für Mediendateien und medienbasierte Geräte gilt, aber eine Frage, die ich in den Kommentaren gesehen habe, bleibt: Können wir andere Dateien als Mediendateien (Audio / Video) kopieren? Ja wir können:

1.3 MTP-Objektmodell siehe Seite 15 zip unten

Der Begriff "Medien" in "Media Transfer Protocol" wird zum Identifizieren von Binärdaten verwendet und ist nicht auf Audio- / Videoformate beschränkt, auf die er üblicherweise angewendet wird. Einige Beispiele für Nicht-Audio- / Video-Objekte umfassen Kontakte, Programme, geplante Ereignisse und Textdateien.


Was ist mit "live edit"?

Ihre Frage betrifft insbesondere die Verwendung Ihres Geräts (Galaxy Nexus) als externes USB-Speicherlaufwerk. Warum geht das nicht? Das MTP-Protokoll beschränkt die Daten auf eine unidirektionale Operation. Letztere hat auch erklärt, dass der Gerätespeicher vom Computer als lokale Datei verwendet wird:

4.2 Unidirektionaler Datenfluss siehe Seite 29 zip unten

Der Datenfluss in MTP ist immer unidirektional. Beim Einleiten einer Operation fließen die Daten nur vom Initiator zum Responder. Wenn auf die angeforderte Operation geantwortet wird, fließen die Daten nur vom Responder zum Initiator. Während der binären Datenaustauschphase können Daten vom Responder zum Initiator oder vom Initiator zum Responder fließen, jedoch niemals von beiden. Der bidirektionale binäre Datenaustausch muss durch mehrere Operationen ausgeführt werden.


Vorteile gegenüber Nachteilen

Vorteile

Das MTP bringt einige Vorteile mit sich, insbesondere in Bezug auf die Sicherheit und Integrität der Benutzerdaten:

Übersicht über die Microsoft MTP-Implementierung

Wenn ein USB-Hostcomputer eine MSC-Partition eingehängt hat, übernimmt er die absolute Kontrolle über den Speicher, sodass beispielsweise das Dateisystem beschädigt oder auf einen nicht unterstützten Typ umformatiert werden kann.

In der Zwischenzeit überwindet der MTP dies, indem er die Einheit des verwalteten Speichers zu einer lokalen Datei macht, die entweder geschrieben oder gelesen werden kann.

Nachteile

Das MTP wird nicht als herkömmliches Wechsellaufwerk behandelt, sodass keine Wiederherstellungstools verwendet werden können, um den Tag zu retten.

Der Support ist noch nicht abgeschlossen. Einige Betriebssysteme erfordern noch Software von Drittanbietern.

MTP-Standards (wie bereits erwähnt) erlauben keine direkte Änderung von Objekten. Stattdessen müssen geänderte Objekte vollständig neu hochgeladen werden.


Verweise:

Ich hoffe, dies verdeutlicht, warum MTP gut ist (Verbesserung) , aber OTOH schlecht (Benutzer muss Gewohnheiten ändern) .

Hier ist das Lesematerial, das zur Synthese der Antwort verwendet wird:

Die obige Antwort wird den Inhalten und Autoren dieser Verweise gutgeschrieben.

Zuul
quelle
3
Ich schätze die sehr detaillierte Beschreibung von mtp, aber ich habe bereits die Tatsache akzeptiert, dass ich mtp nicht so verwenden kann, wie ich es möchte. Was mich interessiert, ist, einen Weg zu finden, um die Begrenzung zu umgehen. Partitionieren Sie beispielsweise den internen Speicher neu, um eine separate bereitstellbare Partition zu erstellen. Irgendwelche Vorschläge, wie ich die MTP-Einschränkungen umgehen kann?
Matt
@Matt Der Kommentar wurde zu groß, ich habe eine Klarstellung unter dem Abschnitt "Kurze Antwort" hinzugefügt. Tut mir leid, wenn ich mich nicht vorher klar ausgedrückt habe.
Zuul
Vielen Dank für die zusätzlichen Informationen, aber auch hier war mir das meiste bereits bewusst. Was ich wissen möchte, ist, dass, abgesehen von anderen Lösungen, das Telefon mit einer separaten FAT-Partition neu partitioniert werden kann, die UMS unterstützen würde? Wenn das so ist, wie?
Matt
Am Ende habe ich ce4 das Kopfgeld zugesprochen, weil sein Code der Lösung am nächsten kam, aber danke für die detaillierten Informationen und die Hilfe, die Sie geleistet haben.
Matt
7

Unter Umständen kann eine Loopback-Image-Datei über USB als UMS / MSC exportiert werden.

Sie werden auf jeden Fall brauchen:

  • Wurzel
  • Kernel-Unterstützung : Loopback (/ dev / block / loop0) und UMS (/ sys / devices / platform / usb_mass_storage /)
  • Benutzerdefinierte App zum Aktivieren / Deaktivieren dieses oder eines benutzerdefinierten Init-Skripts zum Exportieren der Bilddatei.
    Hier ist ein Beispiel für eine einfach zu hackende App, für die allerdings ein wenig Entwicklung erforderlich ist ... Sie müssen das Standardblockgerät (/ dev / block / mmcblk0pX) ändern ) auf die loop0 und auch vorher die loop0 losetupen, dann bauen. Zusätzlich könnte es möglich sein, es auf dem Android-Gerät zu mounten, wenn es nicht exportiert wird, z. B. unter / sdcard / fat

Hier ist ein kurzer Test auf meinem Galaxy Nexus (im Wiederherstellungsmodus):

#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
quelle
Ich habe gerade kein Testgerät (GNexus) zur Hand. Wäre jemand so nett und würde mal schauen, ob UMS in CM9 enthalten ist? Prüfen Sie, ob dies verfügbar ist: / sys / devices / platform / usb_mass_storage / lun0 / file
ce4
1
Frühe CM10 scheint nicht, also würde ich CM9 auch nicht raten.
Eldarerathis
@eldarerathis: Danke fürs schauen! Es könnte in einen anderen Kernel kompiliert werden, oder man muss es selbst ermöglichen, dass es funktioniert.
Ce4
@ ce4 Das sieht vielversprechend aus, aber ich würde gerne mehr Details sehen, um zu erklären, wie dies erreicht werden kann. Partitionieren Sie den Speicher des Telefons dauerhaft neu oder handelt es sich um eine andere Lösung? Gibt es Nachteile bei dieser Methode, beispielsweise die Integrität des Dateisystems?
Matt
Ich benutze mein Handy als Flash-Laufwerk. Ich schließe es bei der Arbeit an einen gemeinsam genutzten Computer an, bearbeite ein Dokument, speichere es und gehe. Das Übertragen der Datei auf den Computer und wieder zurück funktioniert bei mir nicht wirklich. Ich werde etwas später ins Gespräch kommen.
Matt
3

Dies ist die TL; DR-Version.

Entschuldigung, USB-Massenspeicher ist mit dem Galaxy Nexus einfach unmöglich.

Der Grund dafür ist, dass der USB-Massenspeicher dem PC Zugriff auf das Dateisystem auf Blockebene gewährt. Um die Integrität des Dateisystems zu gewährleisten, muss ausschließlich darauf zugegriffen werden. Dies ist der Grund, warum Android-Telefone die SD-Karte aushängen und Apps keine Daten auf der SD-Karte verwenden können, während sich das Telefon im USB-Massenspeichermodus befindet.

Das Galaxy Nexus verfügt jedoch nicht über eine SD-Karte. Es ist der umfangreiche interne Speicher des Telefons, auf den zugegriffen wird.

MTP (siehe @ Zuuls ausgezeichnete Erklärung) umgeht dies und ermöglicht sowohl dem Telefon als auch dem PC den Zugriff auf die Dateien, ohne dass das Telefon gesperrt werden muss. Die Nachteile sind, dass Sie keinen exklusiven Zugriff auf Blockebene erhalten und die Betriebssystemunterstützung für MTP noch nicht vollständig vorhanden ist.

Wenn dies eine Funktion ist, auf die Sie einfach nicht verzichten können, ist es am besten, ein anderes Telefon zu verwenden. Nicht zufällig, das ist einer der Gründe, warum ich das Galaxy Nexus losgeworden bin und einen DROID RAZR MAXX bekommen habe.

Michael Hampton
quelle
1
"Dies ist der Grund, warum Android-Telefone die SD-Karte aushängen ..." Was ist mit den Apps, mit denen die SD-Karte (und der interne Speicher) gleichzeitig auf dem Computer und dem Android-Betriebssystem eingebunden werden können? Ich hatte eine solche App auf meinem Rezound und es hat ziemlich gut funktioniert.
Matt
Ich habe noch nie von einer solchen App gehört. Haben Sie Beweise für seine Existenz?
Michael Hampton
Das klang wirklich hart! google.hu/…
RR
1
Und Sie haben noch nie Daten verloren? Sie haben also großes Glück.
Michael Hampton
3
Ja, das ist genau der Grund, warum das System dies überhaupt nicht zulässt.
Michael Hampton
1

Es scheint, dass AOKP JB Build 4 hat:

"USB-Massenspeicher-Emulation für bestimmte Geräte (i9 *)"

Ich habe es selbst noch nicht benutzt.

Ηλίας
quelle
0

Sie könnten diese XDA-Developers App ausprobieren:

Hinweis: Diese App wurde in den Anfängen von Ice Cream Sandwich Ports entwickelt. Zu diesem Zeitpunkt verfügte keiner der Ports über native USB-Massenspeicherunterstützung, und diese App war als vorübergehende Problemumgehung gedacht, um UMS dennoch zu verwenden. Daher wird diese App für Sie nicht interessant sein, es sei denn, der von Ihnen verwendete ICS- oder JB-Port unterstützt UMS noch nicht von Haus aus. Wenn dies der Fall ist, erhalten Sie hier Hilfe:

Die App startet automatisch nach dem Hochfahren des Geräts und erkennt automatisch, wenn das Gerät über USB an einen Computer angeschlossen wird. Anschließend wird eine Benachrichtigung in der Benachrichtigungsleiste angezeigt. Wenn Sie auf die Benachrichtigung tippen, wird eine grafische Benutzeroberfläche zum Aktivieren / Deaktivieren des USB-Massenspeichers geöffnet. gerade / fast wie die ursprüngliche UMS-Funktion.

Hört sich bis jetzt ganz gut an - nur Ihr Galaxy Nexus wird in der Liste der bekannten unterstützten Geräte nicht explizit erwähnt. Dies bedeutet nicht unbedingt, dass es nicht funktionieren wird, aber es ist im Moment noch nicht bekannt. Sollte einen Versuch wert sein.

Izzy
quelle
Dies wurde bereits diskutiert, siehe die OP-Kommentare. Leider ist es auch eine Sackgasse. :(
ce4
Ich konnte die Kommentare, auf die Sie sich beziehen, nicht finden - aber wenn dies bereits eine bekannte Option ist, entschuldige ich mich. Und "Sackgasse" heißt, es funktioniert nicht mehr? Oh mein Gott, ich denke, ich überspringe die nächsten Updates;)
Izzy
Nichts für ungut! :) war eher als "FYI" gemeint. Das "hier ist eine apk" verweist auf den gleichen Thread wie Ihr XDA-Link.
4.
Wir hatten ein ziemlich langes Gespräch darüber im Haupt-Android-Chat. Ich weiß nicht, ob die Vorgeschichte lang genug ist, aber es gibt weitere Informationen, wenn Sie noch darauf zugreifen können
ce4 30.07.12
Danke für die Info, ce4 - leider verpasse ich momentan die Zeit, mich tiefer damit zu beschäftigen. Ich sehe nur, dass MTP noch nicht so vollständig ist, wie es für das Ausschalten von UMS insgesamt sein sollte, daher war ich mir ziemlich sicher, dass es noch eine Lösung geben muss. Und ich erinnerte mich an einige Threads zum erneuten Aktivieren von UMS auf ICS und höher. Hoffentlich ist bald etwas in der Nähe - da MTP anscheinend nicht jedermanns Sache ist.
Izzy