Guida

MTP, il protocollo dietro il Trasferimento di file, spiegato

Ogni volta che scegli «Trasferimento di file» su un telefono Android, attivi MTP. Ecco cos'è, perché si comporta così, e perché un Mac non l'ha mai capito da solo.

MTP, il Media Transfer Protocol, è il protocollo che un telefono Android usa via USB quando tocchi la notifica «Dispositivo in carica tramite USB» e scegli Trasferimento di file (su un Pixel, Trasferimento di file / Android Auto, in inglese File transfer / Android Auto). Non è un disco. Il telefono mantiene il controllo della propria memoria e passa i file al computer una richiesta alla volta, come oggetti numerati e non come blocchi su un disco.

Windows comprende MTP da anni, quindi su un PC il telefono compare in Esplora file. macOS invece non ha mai avuto un supporto MTP proprio. Per questo un Mac ha sempre avuto bisogno di un'app per raggiungere i file di un telefono Android, e per questo quei file di solito stanno nella finestra di quell'app e non nel Finder.

Da dove viene MTP

MTP nasce da PTP, il Picture Transfer Protocol usato dalle fotocamere digitali, standardizzato come ISO 15740. PTP era pensato per le foto. Microsoft lo estese nei primi anni 2000 per i lettori musicali e altri dispositivi multimediali, e in un blog di Microsoft una volta si scherzò sul fatto che il nome stesse per «More Than PTP». Windows Media Player 10 introdusse un driver di classe per i dispositivi MTP, e i nuovi lettori venduti con il marchio PlaysForSure di Microsoft dovevano supportarlo.

Nel maggio 2008 lo USB Implementers Forum adottò MTP come classe di dispositivo USB a tutti gli effetti, e così smise di essere il protocollo di una sola azienda. Android lo adottò nel 2011. I tablet con Honeycomb, come il Motorola Xoom, furono i primi a usare MTP invece di presentare la propria memoria come un disco USB, e Google offrì Android File Transfer per Mac fin dall'inizio, perché altrimenti macOS non avrebbe potuto comunicare con loro.

Come funziona MTP

MTP ha due ruoli. Il computer è l'initiator, cioè chi chiede; il telefono è il responder, cioè chi risponde. Non succede nulla se il computer non chiede, a parte piccoli messaggi di evento che il telefono può inviare, come «è stato aggiunto un file».

Oggetti e handle

Ogni file e ogni cartella sul telefono è un oggetto con un numero, il suo handle. Per mostrarti una cartella, un'app MTP chiede al telefono gli handle che contiene, poi chiede i dettagli di ogni oggetto: nome, dimensione, formato e l'handle della cartella che lo contiene. Anche le cartelle sono oggetti, di un tipo che MTP chiama associazione. Nel protocollo non esistono percorsi. Un'app che vuole mostrare DCIM/Camera deve arrivarci passando da un handle all'altro.

Un'operazione alla volta

Ogni scambio è una transazione: una richiesta, un eventuale blocco di dati e una risposta. La specifica le rende sincrone, quindi una nuova operazione non può iniziare finché la precedente non è finita. Il server MTP di Android legge una richiesta, risponde, e solo allora legge la successiva, e accetta una sola sessione. In pratica significa che un solo programma alla volta può parlare con il telefono via MTP, e che una copia lunga blocca tutto il resto, compreso l'elenco della cartella successiva.

Lettura e scrittura

Inviare un file al telefono richiede due passaggi nel protocollo di base: descrivere il nuovo oggetto, poi inviarne tutti i byte. Non esiste un modo standard per modificare una parte di un file già presente. La lettura è più flessibile: MTP 1.1 include GetPartialObject, che recupera un intervallo di byte, anche se il suo offset è un numero a 32 bit. Google ha aggiunto all'MTP di Android delle estensioni proprie, tra cui GetPartialObject64, SendPartialObject, TruncateObject e una coppia di operazioni per modificare un oggetto sul posto. Che tu ne tragga vantaggio dipende dall'app sul computer, perché ognuna decide quali operazioni usare.

Un altro dettaglio conta più avanti. Il record che descrive un oggetto memorizza la sua dimensione in un campo a 32 bit, che arriva poco sotto i 4,3 GB. I file più grandi richiedono una proprietà a 64 bit separata, letta con una richiesta separata, e non tutte le app la chiedono. È probabilmente questo il motivo del limite di 4 GB di Android File Transfer.

Perché un Mac non può montarlo da solo

Un disco nel Finder è un file system. macOS si aspetta di poter chiedere un file tramite il suo percorso, leggerne qualsiasi intervallo di byte, scriverci nel mezzo, rinominarlo sul posto, impostarne le date, e fare diverse di queste cose insieme per app diverse. MTP è stato progettato per qualcosa di più limitato: una libreria musicale sul computer che passa brani interi a un lettore multimediale. Offre oggetti per numero, una transazione alla volta, e la modifica sul posto solo tramite le estensioni di Android.

macOS non include nulla che traduca tra i due. Acquisizione Immagine parla PTP, il protocollo delle fotocamere da cui è nato MTP, quindi può importare foto e video da un telefono impostato su PTP nelle impostazioni USB. Non può esplorare il resto della memoria del telefono, e non parla MTP.

Così ogni strumento MTP per Mac porta con sé la propria traduzione. La maggior parte mostra il telefono in una finestra tutta sua: lo faceva Android File Transfer, e lo fa ancora OpenMTP, gratuito e open source. Alcuni vanno oltre e costruiscono un volume del Finder sopra MTP, trasformando ogni richiesta al file system in operazioni MTP: MacDroid, a pagamento oltre una versione gratuita, che può usare anche adb, e il nuovo mtpfs per macOS 26, gratuito. Costruire un file system completo su un protocollo che lavora un oggetto alla volta è un lavoro impegnativo, ed è per questo che ce ne sono molti meno delle app MTP.

Cosa significa nella vita di tutti i giorni

MTPArchiviazione di massa USBadb
Cosa vede il computerUn elenco di oggetti numeratiUn disco grezzoUna shell e un servizio di copia dei file
Il telefono continua a usare la sua memoria nel frattempoSìNo, deve rilasciarlaSì
Offerto da Android oggiSì, «Trasferimento di file»NoSì, con il debug USB
Compreso da macOS stessoNoSìNo
I file si aprono sul posto da qualsiasi app del MacSolo tramite un'app che crea un volumeSìSolo tramite un'app che crea un volume
I tre modi in cui un telefono Android ha offerto i propri file attraverso un cavo USB.

Nella finestra di un'app MTP sfogli i file, li trascini verso il Mac e trascini dentro quelli da copiare sul telefono. Quello che non puoi fare è trattare il telefono come un posto in cui i file vivono:

La velocità non è il problema che spesso si dice. Su un telefono recente con un cavo USB 3, MTP sposta rapidamente i file grandi. Un telefono o un cavo USB 2 limita qualsiasi metodo a circa 20-40 MB/s. I limiti di MTP stanno nel suo modello, non nella sua velocità di trasferimento.

L'altra strada sullo stesso cavo

Android ha un secondo modo per spostare file via USB: adb, l'Android Debug Bridge, usato dai suoi strumenti per sviluppatori. Richiede di attivare il debug USB una volta, e in cambio il computer ottiene un servizio di copia dei file e una shell invece di un elenco di oggetti. adb e MTP a confronto mette a confronto i due nel dettaglio.

SideMount segue questa strada. Parla adb da sé attraverso il cavo e presenta il telefono tramite FSKit come volume nel Finder, così qualsiasi app del Mac può aprire, salvare e copiare file direttamente sul telefono. Richiede macOS 26 o successivo e il debug USB; la guida alla configurazione copre entrambi.

Domande

MTP è la stessa cosa di PTP?

No, ma è costruito su PTP. PTP è il Picture Transfer Protocol delle fotocamere, pensato per le foto. MTP lo estende a qualsiasi tipo di file. Su un telefono Android, «PTP» nelle impostazioni USB offre solo foto e video, mentre «Trasferimento di file» offre MTP.

MTP è lento?

Non su un telefono moderno. Con un cavo USB 3, MTP sposta rapidamente i file grandi. I suoi veri limiti sono che un Mac non può montarlo da solo, che lavora un'operazione alla volta e che un solo programma alla volta può usare il telefono. Un telefono o un cavo USB 2 limita qualsiasi metodo a circa 20-40 MB/s.

Perché il Mac non mostra il telefono quando lo collego?

macOS non ha un supporto MTP proprio, quindi un telefono in modalità Trasferimento di file non compare da nessuna parte finché non è aperta un'app che parla MTP o adb. Vedi Il telefono Android non compare sul Mac per i controlli da fare.

Con MTP si può aprire un file sul telefono senza copiarlo prima?

Il protocollo può leggere una parte di un file, e Android aggiunge operazioni per modificarlo sul posto. Se puoi aprire un file sul posto dipende dall'app sul Mac. Un'app con una finestra propria copia i file fuori; un'app che crea un volume del Finder permette alle altre app di aprirli dove sono.

Il tuo telefono Android, nel Finder.

Gratis per sette giorni, senza carta di credito. macOS 26 o successivo.

Scarica per macOS