1 votes

MTP change avec la mise à jour Android 12 sur le Pixel 5 ?

J'ai un Google Pixel 5 qui a récemment été mis à jour vers Android 12.

Depuis lors, il n'a pas pu se connecter à mon bureau Debian 11 Linux pour transférer des fichiers de la manière habituelle.

La "méthode habituelle" est la suivante : j'active le débogage USB, je connecte le périphérique à l'ordinateur par USB, je sélectionne "Utiliser l'USB pour" -> "Transfert de fichiers" dans la boîte de dialogue des préférences USB qui est disponible à partir des notifications. Ensuite, sur le bureau Linux, je fais jmtpfs et transférer des fichiers. (

Cela ne fonctionne plus. Le site jmtpfs rapports d'invocation :

$ jmptfs /mnt/android
Device 0 (VID=18d1 and PID=4ee2) is a Google Inc Nexus/Pixel (MTP+ADB).
error returned by libusb_claim_interface() = -6LIBMTP PANIC: Unable to initialize device
terminate called after throwing an instance of 'MtpErrorCantOpenDevice'
  what():  Can't open device
Aborted

Si je change la sélection de "Transfert de fichiers / Android Auto" dans les préférences USB, je n'obtiens que les résultats suivants No mtp devices found .

J'ai aussi un mtp-detect qui signale la même erreur :

$ mtp-detect
libmtp version: 1.1.17

Listing raw device(s)
Device 0 (VID=18d1 and PID=4ee2) is a Google Inc Nexus/Pixel (MTP+ADB).
   Found 1 device(s):
   Google Inc: Nexus/Pixel (MTP+ADB) (18d1:4ee2) @ bus 2, dev 92
Attempting to connect device(s)
error returned by libusb_claim_interface() = -6LIBMTP PANIC: Unable to initialize device
Unable to open raw device 0

I peut utiliser le adb outil. adb devices rapporte l'ID du dispositif et le "dispositif", et adb pull /path/to/file destination fonctionne, donc c'est toujours possible pour faire les opérations de fichiers que je veux faire, mais je suis mystifié par le changement de comportement.

Cette activité est un peu irrégulière, donc je ne peux pas prouver c'est la mise à jour Android 12 qui l'a provoqué, il y a également eu des mises à jour de paquets de routine sur le bureau, mais la mise à jour Android semble être le suspect logique, étant donné que les mises à jour de paquets Debian provoquent rarement des pannes.

Le fait que adb fonctionne suggère que les éléments fondamentaux (matériel, câbles, détection des périphériques, pilotes Linux) sont probablement corrects.

Peut-être une sorte de couche supplémentaire de permissions MTP dans Android 12 ? Un changement dans le protocole MTP qui a pris de l'avance sur les outils de la ligne de commande Linux ?

Toute aide est la bienvenue.

La version Android est #SP2A.220505.002.

jmtpfs est la version empaquetée de Debian-11, et les rapports :

$ jmtpfs --version
jmtpfs version: 0.5
FUSE library version: 2.9.9
fusermount3 version: 3.10.3
using FUSE kernel interface version 7.19

mtp-detect provient de la version Debian-11 mtp-tools version 1.1.17-3.

1voto

Milner Points 533

Bien que cela n'explique pas pourquoi jmtpfs a des problèmes ou comment les résoudre, supposons pour un moment qu'il s'agit d'une <a href="https://meta.stackoverflow.com/q/66377/192154">Le problème XY </a>et s'attaquer au vrai : Comment monter correctement votre téléphone pour qu'il soit accessible dans le système de fichiers Linux ?

Comme vous le dites adb pull y adb push fonctionnent bien, la première option qui vient à l'esprit est l'utilisation de adbfs - C'est ce que je fais avec succès depuis une dizaine d'années maintenant et j'en suis très satisfait. adbfs se trouve au-dessus d'ADB et utilise ADB pull/push pour les transferts de fichiers ainsi que d'autres commandes ADB (par ex. adb shell ls ) pour d'autres informations de base. Il fonctionne de manière fiable et stable, est transparent pour l'ensemble du système (vous pouvez donc accéder au périphérique depuis la ligne de commande ainsi que depuis les applications GUI), et les transferts sont beaucoup plus rapides que via MTP.

Pour la configuration, etc., veuillez vous référer à mes réponses ici , ici y ici . Une configuration avancée pour plusieurs appareils connectés en même temps plus l'intégration avec Midnight Commander que vous pouvez trouver en ma réponse ici .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X