Come posso usare il mio Galaxy Nexus come unità di archiviazione USB esterna?


29

Ho appena ricevuto il Galaxy Nexus e ho imparato che non supporta la modalità di archiviazione di massa USB. Supporta solo MTP e PTP. Uso regolarmente il mio telefono come unità flash USB al lavoro, quindi questo è un problema. Posso trasferire file avanti e indietro con MTP, tuttavia ho bisogno di modificare i file direttamente sul mio telefono .

Vorrei trovare un modo per continuare a utilizzare il telefono come unità esterna e poter accedere ai file sulla memoria del mio telefono direttamente senza trasferire i file avanti e indietro, tuttavia ho diversi vincoli: La rete al mio lavoro non è t connesso a internet, non ha wifi, e i computer non hanno Bluetooth e questo non cambierà. Idealmente non dovrei installare nulla sul computer, ma se non ci fossero altre opzioni lo prenderei in considerazione.

Esistono hack o soluzioni alternative che mi consentiranno di utilizzare il mio Galaxy Nexus come unità flash esterna nel modo descritto?

Posso creare una partizione FAT montabile separata sulla memoria del telefono a cui posso accedere da un computer Windows XP e tramite il sistema operativo Android nel modo possibile con altri dispositivi che hanno schede di memoria esterne?

Il telefono: è un Galaxy Nexus con root e sbloccato su VZW e attualmente in esecuzione CM9.


Non ne sono sicuro al 100% ma penso che il kernel stock non sia nemmeno in grado di farlo. hai bisogno di un kernel aftermarket o solo di una ROM personalizzata per farlo. G Nexus GSM: guida completa per l'aggiornamento di Cyanogenmod9 (4.0.4 atm, 4.1 CM10 è ancora in una fase molto precoce). Ecco un apk che potrebbe aiutare anche. ha bisogno di root.
Ce4,

Grazie, quel thread sembra promettente tranne questo . Spero non sia vero, altrimenti avrò un GN in vendita.
Matt,

2
Non credo che si necessariamente bisogno di una scheda SD separata per uso UMS, ma penso che non bisogno di una partizione separata (FAT formattato) per farlo funzionare, a la il Kindle Fire che non ha uno slot per schede SD esterna.
eldarerathis,

1
Penso che devi espandere un po 'il motivo per cui MTP / PTP non è adatto al tuo utilizzo. Nonostante il nome, MTP può effettivamente trasferire qualsiasi file arbitrario, non solo file multimediali. Le uniche operazioni che non è possibile eseguire in MTP sono quelle che richiedono l'accesso a livello di blocco, ad es. Deframmentazione, riformattazione, partizionamento, ecc.
Lie Ryan,

Non voglio trasferire file, voglio modificarli nella loro posizione sul mio telefono proprio come se fosse un'unità flash. Non credo che tu possa farlo con mtp, sbaglio?
Matt

Risposte:


28

Risposta breve:

Attualmente, non puoi utilizzare il tuo dispositivo (qualsiasi dispositivo che si basa su MTP) per agire come un MSC, a causa delle specifiche del protocollo!

Elaborare

Per chiarire, Galaxy Nexus utilizza una partizione enorme per l'intero dispositivo, è come dire che: sistema, dati e sdcard sono tutti insieme.

MTP è stato selezionato per Galaxy Nexus perché consente l'utilizzo di questa vasta area di archiviazione, che dal punto di vista del sistema, assicura una migliore comunicazione con i file, fornisce un file system più sicuro e offre meno problemi di manutenzione.

Perché non puoi farlo nel modo desiderato:

Non ci sono partizioni separate in Galaxy Nexus, solo una grande area di archiviazione. Anche emulando un file system fat32, si dovrebbe comunque essere in grado di tradurre tra fat32 ed ext4 a un livello basso. Questo è praticamente impossibile.

Se il Galaxy Nexus avesse una partizione, potresti avere accesso a livello di blocco e quindi avere accesso alla memoria di massa.


Versione lunga e noiosa:


Sfondo breve

La Mass Storage Class (MSC), comunemente nota come USB Mass Storage (UMS), che siamo tutti abituati a utilizzare sui nostri dispositivi, è un protocollo che consente a un dispositivo USB (Universal Serial Bus) di diventare accessibile a un dispositivo di elaborazione host , per abilitare i trasferimenti di file tra i due. Nei giorni d'oro, bastava collegare il telefono, premere "Modalità USB" e iniziare a spostare file, modificare file, ecc ...


Media Transfer Protocol (MTP)

Le cose sono cambiate molto, quando parliamo del nuovo metodo di trasferimento utilizzato sul tuo dispositivo, il Media Transfer Protocol (MTP):

1 Introduzione vedi pagina 15 zip sotto

Media Transfer Protocol, o MTP, è un protocollo progettato per lo scambio di contenuti e il comando e il controllo di dispositivi di archiviazione transitori. È stato sviluppato come estensione di PTP o Picture Transfer Protocol ed è destinato principalmente a fotocamere digitali, lettori multimediali portatili e telefoni cellulari.

Mentre l'introduzione lascia ancora margine di dubbio, questo protocollo è stato sviluppato e implementato con uno scopo molto specifico: facilitare il trasferimento di file multimediali e metadati associati tra dispositivi:

1.1 Scopo vedi pagina 15 zip sotto

Lo scopo principale di questo protocollo è facilitare la comunicazione tra dispositivi multimediali con connettività transitoria e capacità di archiviazione significativa. Ciò include lo scambio di oggetti binari e l'enumerazione dei contenuti di quel dispositivo collegato.


Tipi di file supportati?

A questo punto, sappiamo già che si tratta di file multimediali e dispositivi basati su supporti, ma rimane una domanda che ho visto nei commenti: possiamo copiare file diversi dai file multimediali (audio / video)? Sì possiamo:

1.3 Modello di oggetto MTP vedi pagina 15 zip sotto

Il termine "media" in "Media Transfer Protocol" viene utilizzato per identificare qualsiasi dato binario e non è limitato ai formati audio / video a cui viene comunemente applicato. Alcuni esempi di oggetti non audio / video includono contatti, programmi, eventi programmati e file di testo.


Che dire di "modifica dal vivo"?

La tua domanda riguarda in particolare l'uso del tuo dispositivo (Galaxy Nexus) come unità di archiviazione USB esterna. Perché non si può fare? Il protocollo MTP limita i dati a un'operazione unidirezionale, inoltre ha spiegato che l'archiviazione del dispositivo è utilizzata dal computer come file locale:

4.2 Flusso di dati unidirezionale vedere pagina 29 zip di seguito

Il flusso di dati in MTP è sempre unidirezionale. Quando si avvia un'operazione, i dati fluiscono solo dall'iniziatore al risponditore. Quando si risponde all'operazione richiesta, i dati fluiscono solo dal risponditore all'iniziatore. Durante la fase di scambio binario di dati, i dati possono fluire dal risponditore all'iniziatore o dall'iniziatore al risponditore, ma mai entrambi. Lo scambio binario di dati bidirezionale deve essere eseguito da più operazioni.


Vantaggi rispetto agli svantaggi

vantaggi

L'MTP comporta alcuni vantaggi, principalmente per quanto riguarda la sicurezza e l'integrità dei dati dell'utente:

Panoramica sull'implementazione di Microsoft MTP

Quando un computer host USB ha montato una partizione MSC, assume il controllo assoluto della memoria, consentendo ad esempio al file system di corrompersi o riformattarsi su un tipo non supportato.

Nel frattempo, l'MTP lo supera trasformando l'unità di archiviazione gestita in un file locale che può essere scritto o letto.

svantaggi

L'MTP non è trattato come un'unità rimovibile tradizionale, quindi non è possibile utilizzare strumenti di recupero per salvare la situazione.

Il supporto è ancora in corso, alcuni sistemi operativi richiedono ancora software di terze parti.

Gli standard MTP (come menzionato in precedenza) non consentono la modifica diretta degli oggetti. Invece, gli oggetti modificati devono essere ricaricati nella loro interezza.


Riferimenti:

Spero che questo chiarisca il motivo per cui MTP è buono (miglioramento) , ma OTOH cattivo (l'utente dovrà cambiare abitudini) .

Ecco il materiale di lettura utilizzato per sintetizzare la risposta:

La risposta sopra è accreditata ai contenuti e agli autori di questi collegamenti di riferimento.


3
Apprezzo la descrizione molto dettagliata di mtp, tuttavia ho già accettato il fatto che non posso usare mtp nel modo che desidero. Quello che mi interessa è trovare un modo per aggirare la limitazione. Ad esempio, ripartizionare la memoria interna per creare una partizione montabile separata. Qualche suggerimento su come posso aggirare le limitazioni mtp?
Matt,

@Matt Il commento stava diventando troppo ampio, ho aggiunto un chiarimento nella sezione "risposta breve". Scusa se non mi sono chiarito prima.
Zuul,

Grazie per le informazioni aggiunte, ma ancora una volta ne ero già a conoscenza. Quello che mi interessa sapere è che, a parte altre soluzioni, è possibile ripartizionare il telefono con una partizione FAT separata che supporti UMS? Se é cosi, come?
Matt,

Ho finito per assegnare il premio a ce4 perché il suo codice era la cosa più vicina a una soluzione, ma grazie per le informazioni dettagliate e l'aiuto che hai fornito.
Matt,

7

Potrebbe essere possibile esportare un file di immagine in loopback tramite USB come UMS / MSC.

Avrai sicuramente bisogno di:

  • radice
  • supporto kernel : loopback (/ dev / block / loop0) e UMS (/ sys / devices / platform / usb_mass_storage /)
  • app personalizzata per abilitare / disabilitare questo o uno script init personalizzato per esportare sempre il file di immagine
    Ecco un esempio per un'app facile da hackerare, un piccolo sviluppo necessario però ... Bisogna cambiare il dispositivo a blocchi predefinito (/ dev / block / mmcblk0pX ) al loop0 e anche a perdere il loop0 in anticipo, quindi compilare. Inoltre, potrebbe non essere possibile montarlo sul dispositivo Android se non viene esportato, ad esempio su / sdcard / fat

Ecco un breve test sul mio Galaxy Nexus (in modalità di recupero):

#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:~$

Non ho un dispositivo di test (GNexus) a portata di mano in questo momento, qualcuno sarebbe così gentile e darebbe un'occhiata se UMS fosse incluso in CM9? Verifica se è disponibile: / sys / devices / platform / usb_mass_storage / lun0 / file
ce4

1
All'inizio CM10 non sembra, quindi immagino che neanche CM9.
eldarerathis,

@eldarerathis: grazie per lo sguardo! Potrebbe essere compilato in un kernel diverso o si dovrebbe consentire a se stesso di farlo funzionare.
Ce4,

@ ce4 Sembra promettente, ma mi piacerebbe vedere maggiori dettagli che spiegano come ottenere questo risultato. Stai ripartizionando definitivamente l'archiviazione del telefono o si tratta di un diverso tipo di soluzione? Ci sono degli svantaggi di questo metodo come comprendere l'integrità del file system?
Matt,

Uso il mio telefono come unità flash. Lo collego a un computer condiviso al lavoro, modifico un documento, poi lo salvo e vado. Trasferire il file sul computer e viceversa non funziona davvero per me. Vado in chat un po 'più tardi.
Matt,

3

Questa è la versione TL; DR.

Spiacenti, l'archiviazione di massa USB è semplicemente impossibile con il Galaxy Nexus.

La ragione di ciò è che l'archiviazione di massa USB offre al PC l'accesso a livello di blocco al filesystem e, per mantenere l'integrità del filesystem, deve essere un accesso esclusivo. Ecco perché i telefoni Android smontano la scheda SD e le app non possono utilizzare i dati sulla scheda SD mentre il telefono è in modalità di archiviazione di massa USB.

Il Galaxy Nexus, tuttavia, non ha una scheda SD. È la voluminosa memoria interna del telefono a cui si accede.

MTP (vedi l'eccellente spiegazione di @ Zuul) aggira questo e consente sia al telefono che al PC di accedere ai file senza che il telefono debba essere bloccato. Il lato negativo è che non si ottiene l'accesso esclusivo a livello di blocco e il supporto del sistema operativo per MTP non è ancora del tutto presente.

Se questa è una funzione senza la quale non puoi vivere, la soluzione migliore è utilizzare un telefono diverso. Non a caso, questo è uno dei motivi per cui mi sono liberato del Galaxy Nexus e ho ottenuto un DROID RAZR MAXX.


1
"Questo è il motivo per cui i telefoni Android smontano la scheda SD ..." E le app che consentono il doppio montaggio di sd (e memoria interna) sul computer e sul sistema operativo Android contemporaneamente? Avevo una simile app sul mio Rezound e ha funzionato abbastanza bene.
Matt,

Non ho mai sentito parlare di nessuna app del genere. Hai prove della sua esistenza?
Michael Hampton,

Sembrava davvero duro! google.hu/…
RR

1
E non hai mai perso alcun dato? Sei molto fortunato, quindi.
Michael Hampton,

3
Sì, questo è esattamente il motivo per cui il sistema non lo consente in primo luogo.
Michael Hampton,


0

Puoi provare questa app XDA-Developers :

Nota: questa app è stata sviluppata nei primi giorni di Ice Cream Sandwich Ports. Al momento, nessuna delle porte disponeva del supporto di archiviazione di massa USB nativo e questa app era intesa come soluzione temporanea per utilizzare UMS. Quindi questa App non sarà interessante per te, a meno che la porta ICS o JB che usi non supporti ancora UMS in modo nativo. Se è così, ecco che arriva aiuto:

L'app si avvia automaticamente dopo l'avvio del dispositivo e rileva automaticamente quando il dispositivo viene collegato tramite USB a un computer. Quindi viene visualizzata una notifica nella barra delle notifiche e toccando la notifica si aprirà una GUI per abilitare / disabilitare l'archiviazione di massa USB; proprio / quasi come la funzione UMS originale.

Finora sembra abbastanza buono: solo il tuo Galaxy Nexus non è esplicitamente menzionato nell'elenco dei dispositivi supportati noti. Questo non significa necessariamente che non funzionerà, ma al momento non è noto. Vale la pena provare.


Questo è già stato discusso, vedere i commenti del PO. Ahimè, è anche un vicolo cieco. :(
ce4

Non sono riuscito a trovare i commenti a cui ti riferisci, ma se questa è già un'opzione nota, mi scuso. E "vicolo cieco" significa che non funziona più? Oh cavolo, credo di saltare i prossimi aggiornamenti;)
Izzy

Senza offesa! :) era più inteso come "FYI". "Here an a apk" si riferisce allo stesso thread del tuo link XDA.
4

Abbiamo avuto una conversazione piuttosto lunga nella principale chat di Android su questo. Non so se c'è una storia abbastanza lunga ma ci sono alcune informazioni in più se puoi ancora accedervi
ce4

Grazie per le informazioni, ce4 - sfortunatamente al momento mi manca il tempo di approfondire. Vedo solo che MTP non è ancora completo come dovrebbe essere per spegnere completamente UMS, quindi ero abbastanza sicuro che ci fosse ancora una soluzione disponibile. E ho ricordato alcuni thread su come abilitare nuovamente UMS su ICS e versioni successive. Spero che ci sia qualcosa in giro abbastanza presto - poiché MTP non sembra essere la risposta per tutti.
Izzy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.