Guide

MTP, le protocole derrière le mode Transfert de fichiers, expliqué

Chaque fois que vous choisissez « Transfert de fichiers » sur un téléphone Android, vous activez MTP. Voici ce que c’est, pourquoi il se comporte ainsi, et pourquoi un Mac ne l’a jamais compris tout seul.

MTP, le Media Transfer Protocol, est ce que parle un téléphone Android en USB quand vous appuyez sur la notification « Recharge de cet appareil via USB » et choisissez Transfert de fichiers (sur un Pixel, Transfert de fichiers / Android Auto, en anglais File transfer / Android Auto). Ce n’est pas un disque. Le téléphone garde la main sur son propre stockage et remet les fichiers à l’ordinateur une requête à la fois, sous forme d’objets numérotés et non de blocs sur un disque.

Windows comprend MTP depuis des années, donc sur un PC le téléphone apparaît dans l’Explorateur de fichiers. macOS n’a jamais eu de prise en charge de MTP. C’est pourquoi un Mac a toujours eu besoin d’une app pour atteindre les fichiers d’un téléphone Android, et pourquoi ces fichiers vivent en général dans la fenêtre de cette app plutôt que dans le Finder.

D’où vient MTP

MTP est né de PTP, le Picture Transfer Protocol qu’utilisent les appareils photo numériques, normalisé sous le nom ISO 15740. PTP était conçu pour les photos. Microsoft l’a étendu au début des années 2000 pour les baladeurs et autres appareils multimédias, et un blog de Microsoft a même plaisanté un jour que le nom voulait dire « More Than PTP ». Windows Media Player 10 a apporté un pilote de classe pour les appareils MTP, et les nouveaux baladeurs vendus sous le label PlaysForSure de Microsoft devaient le prendre en charge.

En mai 2008, l’USB Implementers Forum a adopté MTP comme classe d’appareil USB à part entière, et il a cessé d’être le protocole d’une seule entreprise. Android l’a repris en 2011. Les tablettes sous Honeycomb, comme la Motorola Xoom, ont été les premières à utiliser MTP au lieu de présenter leur stockage comme un disque USB, et Google a proposé Android File Transfer pour Mac dès le départ, car macOS ne pouvait pas leur parler autrement.

Comment fonctionne MTP

MTP a deux rôles. L’ordinateur est l’initiateur, qui demande ; le téléphone est le répondeur, qui répond. Rien ne se passe si l’ordinateur ne demande pas, à part de petits messages d’événement que le téléphone peut envoyer, comme « un fichier a été ajouté ».

Objets et handles

Chaque fichier et dossier du téléphone est un objet avec un numéro, son handle. Pour vous montrer un dossier, une app MTP demande au téléphone les handles qu’il contient, puis demande les détails de chaque objet : son nom, sa taille, son format et le handle de son parent. Les dossiers sont aussi des objets, d’un type que MTP appelle une association. Le protocole lui-même n’a pas de chemins. Une app qui veut afficher DCIM/Camera doit y arriver en allant de handle en handle.

Une opération à la fois

Chaque échange est une transaction : une requête, un bloc de données facultatif et une réponse. La spécification les rend synchrones, donc une nouvelle opération ne peut pas commencer avant la fin de la précédente. Le serveur MTP d’Android lit une requête, y répond, et seulement ensuite lit la suivante, et il n’accepte qu’une seule session. En pratique, un seul programme à la fois peut parler au téléphone en MTP, et une longue copie bloque tout le reste, y compris l’affichage du dossier suivant.

Lecture et écriture

Envoyer un fichier au téléphone se fait en deux temps dans le protocole de base : décrire le nouvel objet, puis envoyer tous ses octets. Il n’existe pas de moyen standard de modifier une partie d’un fichier déjà présent. La lecture est plus souple : MTP 1.1 comprend GetPartialObject, qui récupère une plage d’octets, même si son décalage est un nombre de 32 bits. Google a ajouté ses propres extensions au MTP d’Android, dont GetPartialObject64, SendPartialObject, TruncateObject et une paire pour modifier un objet sur place. Que vous en profitiez ou non dépend de l’app sur l’ordinateur, car chacune choisit les opérations qu’elle utilise.

Un dernier détail compte pour la suite. L’enregistrement qui décrit un objet stocke sa taille dans un champ de 32 bits, qui plafonne juste sous 4,3 GB. Les fichiers plus gros demandent une propriété distincte sur 64 bits, obtenue par une requête distincte, et toutes les apps ne la demandent pas. C’est la raison probable de la limite de 4 GB d’Android File Transfer.

Pourquoi un Mac ne peut pas le monter tout seul

Un disque dans le Finder est un système de fichiers. macOS s’attend à demander un fichier par son chemin, à lire n’importe quelle plage d’octets, à écrire au milieu, à le renommer sur place, à régler ses dates, et à faire plusieurs de ces choses à la fois pour différentes apps. MTP a été conçu pour quelque chose de plus étroit : une bibliothèque musicale sur ordinateur qui remet des chansons entières à un baladeur. Il propose des objets par numéro, une transaction à la fois, avec une modification sur place possible seulement grâce aux extensions d’Android.

macOS ne fournit rien qui fasse la traduction entre les deux. Transfert d’images parle PTP, le protocole des appareils photo dont MTP est issu, donc il peut importer les photos et vidéos d’un téléphone réglé sur PTP dans ses paramètres USB. Il ne peut pas parcourir le reste du stockage du téléphone, et il ne parle pas MTP.

Chaque outil MTP sur Mac apporte donc sa propre traduction. La plupart affichent le téléphone dans leur propre fenêtre : c’était le cas d’Android File Transfer, et c’est toujours celui d’OpenMTP, gratuit et open source. Quelques-uns vont plus loin et construisent un volume dans le Finder par-dessus MTP, en transformant chaque requête du système de fichiers en opérations MTP : MacDroid, payant au-delà d’une offre gratuite, qui peut aussi utiliser adb, et le nouveau mtpfs pour macOS 26, gratuit. Bâtir un système de fichiers complet sur un protocole qui travaille un objet à la fois demande un vrai travail, et c’est pourquoi ils sont bien moins nombreux que les apps MTP.

Ce que cela change au quotidien

MTPStockage de masse USBadb
Ce que voit l’ordinateurUne liste d’objets numérotésUn disque brutUn shell et un service de copie de fichiers
Le téléphone continue d’utiliser son stockage pendant ce tempsOuiNon, il doit le céderOui
Proposé par Android aujourd’huiOui, « Transfert de fichiers »NonOui, avec le débogage USB
Compris par macOS lui-mêmeNonOuiNon
Fichiers ouverts sur place depuis n’importe quelle app du MacSeulement via une app qui construit un volumeOuiSeulement via une app qui construit un volume
Les trois façons dont un téléphone Android a proposé ses fichiers par un câble USB.

Dans la fenêtre d’une app MTP, vous parcourez, vous faites glisser des fichiers vers le Mac et vers le téléphone. Ce que vous ne pouvez pas faire, c’est traiter le téléphone comme un endroit où vivent des fichiers :

La vitesse n’est pas le problème qu’on décrit souvent. Sur un téléphone récent avec un câble USB 3, MTP copie vite les gros fichiers. Un téléphone ou un câble USB 2 limite toute méthode à environ 20 à 40 MB/s. Les limites de MTP sont dans son modèle, pas dans son débit.

L’autre voie, par le même câble

Android a une deuxième façon de transférer des fichiers en USB : adb, l’Android Debug Bridge, qu’utilisent ses outils de développement. Il faut activer une fois le débogage USB, et en échange l’ordinateur obtient un service de copie de fichiers et un shell au lieu d’une liste d’objets. adb ou MTP compare les deux en détail.

SideMount prend cette voie. Il parle lui-même adb par le câble et présente le téléphone grâce à FSKit comme un volume dans le Finder, donc n’importe quelle app du Mac peut ouvrir, enregistrer et copier des fichiers sur le téléphone, sur place. Il faut macOS 26 ou ultérieur et le débogage USB ; le guide de configuration couvre les deux.

Questions

MTP, est-ce la même chose que PTP ?

Non, mais il repose dessus. PTP est le Picture Transfer Protocol des appareils photo, conçu pour les photos. MTP l’étend à tous les types de fichiers. Sur un téléphone Android, « PTP » dans les paramètres USB ne propose que les photos et les vidéos, et « Transfert de fichiers » propose MTP.

MTP est-il lent ?

Pas sur un téléphone moderne. Avec un câble USB 3, MTP copie vite les gros fichiers. Ses vraies limites sont qu’un Mac ne peut pas le monter tout seul, qu’il travaille une opération à la fois, et qu’un seul programme peut utiliser le téléphone à la fois. Un téléphone ou un câble USB 2 plafonne toute méthode à environ 20 à 40 MB/s.

Pourquoi mon Mac n’affiche-t-il pas le téléphone quand je le branche ?

macOS n’a pas de prise en charge de MTP, donc un téléphone en mode Transfert de fichiers n’apparaît nulle part tant qu’aucune app qui parle MTP ou adb n’est ouverte. Voir téléphone Android non reconnu sur Mac pour les vérifications à faire.

MTP peut-il ouvrir un fichier sur le téléphone sans le copier d’abord ?

Le protocole sait lire une partie d’un fichier, et Android ajoute des opérations pour en modifier un sur place. Pouvoir ouvrir un fichier sur place dépend de l’app sur le Mac. Une app avec sa propre fenêtre copie les fichiers vers le Mac ; une app qui construit un volume dans le Finder laisse les autres apps les ouvrir là où ils sont.

Votre téléphone Android, dans le Finder.

Gratuit pendant sept jours, sans carte bancaire. macOS 26 ou ultérieur.

Télécharger pour macOS