mercredi, 17 juillet 2019|

1 visiteurs en ce moment

 

Tuto : Installer adb sur Ubuntu OS pour utiliser phablet-shell et le ssh

Date de publication :
Mots clés :
  • Android Debug Bridge (adb)
  • Linux
  • Meizu
  • Ubuntu touch

  •   3

    L’un des intérêts majeurs des OS android et Ubuntu touch est d’être basé sur linux. Donc, on peut presque aussi facilement utiliser les outils classiques de communication de Linux sur ces OS. Si tant est qu’on ne les ferme pas petit à petit comme android le fait.
    Bref...

    Pour certaines tâches de mon Meizu Pro 5 sous Ubuntu touch, il me fallait causer avec lui en ssh, plus facile que de taper tout via le terminal [1]. Là, tout sera sur mon écran d’ordinateur, visible, avec un vrai clavier.

    Pour faire causer les deux bestioles, il faut installer le kit "phablet-tools". Voici le tutoriel qui m’a permis de l’installer, sachant que :
    - Je ne suis pas un expert
    - Je ne suis pas un expert
    - J’ai fait plein de sites pour comprendre et le faire
    - Je ne suis pas un expert
    - Je décline les dommages sur vos appareils si cela ne fonctionnait pas
    - Je vous ai dit que je n’étais pas un expert ?

    Je suis parti d’un mobile tout nu, càd que je l’avais juste remis en configuration d’usine avant.

    Mobile débranché de l’ordinateur (Ubuntu 14.04 LTS), on ouvre le terminal et on tape ceci [2]

    sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
    sudo add-apt-repository ppa:phablet-team/tools
    On installe les dépôts dans la liste...

    sudo apt-get update
    sudo apt-get dist-upgrade
    On met tous les dépôts à jour...

    sudo apt-get install libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9 ubuntu-sdk phablet-tools
    On installe le paquet phablet-tools. Cela prend un peu de temps car il y en a beaucoup à télécharger.

    Pendant ce temps là, on peut s’occuper du téléphone. On va le passer en mode "développeur", c’est à dire que vous allez autoriser l’utilisateur du téléphone à aller un peu plus loin dans les paramètres et la configuration du téléphone. Entre autres, aller dans le moteur par l’installation et la configuration du système. Pour cela, on va dans Paramètres / Mon téléphone et on décoche le mode développeur. Il faut impérativement choisir un mot de passe de verrouillage car c’est ce mot de passe qui deviendra le mot de passe pour se connecter en ssh [3] sur le téléphone.

    Maintenant, il va falloir faire que l’ordinateur reconnaisse tout seul le téléphone quand on le branche. Donc, on va utiliser une méthode : le jeu des différences. Appeler votre petit frère ou faites le vous même...

    Sur l’ordinateur (téléphone débranché), on va lister les appareils se connectant par USB

    $ lsusb  
    On va lister tous les "devices"

    Bus 002 Device 003 : ID 058f:6364 Alcor Micro Corp. AU6477 Card Reader Controller
    ../..
    Bus 005 Device 001 : ID 1d6b:0002 Linux Foundation 2.0 root hub
    ../..
    Bus 004 Device 001 : ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 002 : ID 03f0:8711 Hewlett-Packard Deskjet 2050 J510

    Même opération, mais téléphone branché sur un port USB...

    $ lsusb  
    On va lister tous les "devices"

    Bus 002 Device 003 : ID 058f:6364 Alcor Micro Corp. AU6477 Card Reader Controller
    ../..
    Bus 003 Device 004 : ID 2a45:0c02
    Bus 005 Device 001 : ID 1d6b:0002 Linux Foundation 2.0 root hub
    ../..
    Bus 004 Device 001 : ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 002 : ID 03f0:8711 Hewlett-Packard Deskjet 2050 J510

    La ligne Bus 003 Device 004 : ID 2a45:0c02 est apparue et doit correspondre à notre appareil (Et avec un peu de chance, vous avez les mêmes iD).
    On va maintenant paramétrer le téléphone pour qu’il puisse être "monté" par un autre utilisateur que le "root", et ainsi donc faire que l’ordinateur PC puisse le monter automatiquement.
    Débranchez le téléphone.

    export VENDORID="2a45"
    export MODELID="0c02

    On exporte l’identité du téléphone qu’on aura issu de la précédente manoeuvre (Bus 003 Device 004) et on utilise la commande ’fuse’ pour modifier la possibilité de ne monter la partition que par le ’root’.

    sudo sed -i 's/#user_allow_other/user_allow_other/' /etc/fuse.conf
    On décommente la ligne ’user_allow_other’ dans le fichier ’/etc/fuse.conf’

    Ensuite, on va déclarer le Meizu dans les règle ’udev’ en charge du MTP [4]

    sudo bash -c 'cat << EOF >> /etc/udev/rules.d/69-libmtp.rules
    # Meizu MX4
    ATTR{idVendor}=="2a45", ATTR{idProduct}=="0c02", SYMLINK+="MeizuMX4Ubuntu", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
    EOF'

    Branchez le téléphone, normalement, l’ordinateur monte automatiquement le Meizu et vous accédez aux fichiers du répertoire ’phablet’.

    Maintenant, il faut configurer ’adb’ (Android Debug Bridge [5]. Préalablement, il faut installer iDvendor (Cf plus haut) dans le fichier ’adb_usb.ini’.

    echo "0x2a45" >> $HOME/.android/adb_usb.ini
    L’iDvendor est copié dans le fichier de configuration d’adb.

    mkdir $HOME/.android
    Dans certains cas, il vous faudra recréer le répertoire

    adb kill-server
    On arrête puis redémarre le service ’adb’...

    Il faut tester voir si le téléphone est bien reconnu. On tape donc :

    adb devices

    Et il apparait :

    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached
    XXXXXXX device

    XXXXXXX est un ensemble de lettres et chiffres. Et si tout est ok, en tapant dans le terminal de l’ordinateur (Téléphone toujours branché hein !) :

    adb shell

    Le prompt du terminal devrait passer de

    UTILISATEUR@NOMDELORDINATEUR:

    à

    phablet@ubuntu-phablet:

    That’s it ! Vous êtes connecté à votre téléphone, via le terminal de votre ordinateur...

    Pour faire parler les deux bestioles en ssh, il faut procéder à l’échange de clés uniques entre les deux. On va utiliser l’un des outils du paquet ’phablet-tools’. On va donc lancer phablet-shell. La première fois, il va y avoir l’échange de clés. Ensuite, à l’invite du terminal, en lançant ’phablet-shell’, vous aurez la connexion suivante en place :

    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    /home/gchocteau/.ssh/known_hosts updated.
    Original contents retained as /home/gchocteau/.ssh/known_hosts.old
    Warning : Permanently added ’[localhost]:2222’ (RSA) to the list of known hosts.
    Welcome to Ubuntu 15.04 (GNU/Linux 3.10.100-user-01767-gf5aa556 aarch64)

    * Documentation : https://help.ubuntu.com/
    Last login : Thu Jun 9 10:29:27 2016 from localhost.localdomain
    phablet@ubuntu-phablet : $

    HAVE FUN !


    Mon flux RSS Mon compte twitter Mon compte diaspora* Mon compte instagram Mon compte pinterest Mon compte linkedin Mon compte viadeo Mon blog pro

    [1Même si je le maîtrise, tapoter des dizaines de caractères sur un tout ch’ti écran....

    [2On peut copier/coller également les codes ci dessous. Rappel : les copier/coller sur le terminal se font par CTRL+SHIFT+X ou C ou V

    [3En mode "super utilisateur"

    [4Media Transfer Protocol (MTP) est un protocole de transfert de fichiers destiné au monde du multimédia

    [5Le noyau d’Ubuntu touch est un noyau android, lui même noyau Linux


    3 Messages

    • Tuto : Installer adb sur Ubuntu OS pour utiliser phablet-shell et le ssh 12 octobre 2016 11:57, par Débureaux Charles

      Bonjour
      excellent tuto
      mais juste une question : comment se fait il que sous Ubuntu on soit obligé d’avoir un dossier android ?
      c’est quand même incroyable de devoir supporter ce virus sur une machine linux, ou alors j’ai pas tout compris.
      Je ne veux rien chez moi ce ces sociétés, et pourquoi par Cortana ?
      Merci

      repondre message

      • Tuto : Installer adb sur Ubuntu OS pour utiliser phablet-shell et le ssh 14 octobre 2016 15:06, par Guillaume Chocteau

        Salut Charles,

        Tu as 100% raison, il est dommage de voir du android sous notre ubuntu... On a l’impression de ne pas être allé jusqu’au bout de la démarche...

        J’ai cru comprendre que c’était pour la gestion du téléphone, c’est à dire le noyau pur qui permet la gestion de l’appareil. Ces fonctions sont (peut être) difficiles à développer sans coût important ?

        On peut se contenter en pensant qu’android est une base linux.. :-)

        repondre message

    • Bonjour,

      En suivant ton tuto mais avec un an de dstance (octobre 2017), et avec Ubuntu 16.04, voici quelques différences :

      sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt update && sudo apt dist-upgrade && sudo apt install ubuntu-sdk-ide

      J’ai comme réponse

      Ubuntu 15.04 and 15.10 have reached end of support, please upgrade to 16.04 LTS as soon as possible.

      == Older Ubuntu SDK ==

      The old style SDK with the name "ubuntu-sdk" is no longer in use. This PPA offers the new self-contained SDK "ubuntu-sdk-ide", and the old SDK package is no longer included atall in Ubuntu 16.10 and newer. The ubuntu-sdk version in 16.04/14.04 is outdated so ubuntu-sdk-ide from this PPA should always be used instead.

      Old Ubuntu 12.04 LTS Qt 5.0 packages have been moved to https://launchpad.net/~canonical-qt5-edgers/+archive/ubuntu/ubuntu120-qt5/
      Plus d’info : https://launchpad.net/~ubuntu-sdkteam/+archive/ubuntu/ppa

      Appuyez sur [ENTRÉE] pour continuer ou Ctrl-C pour annuler l’ajout »

      J’ai machinalement appuyé sur ENTREE et la commande s’est terminée sans erreur.... Je vais donc continuer pour voir si ça marche, sinon je reviendrai au début...

      gpg : le porte-clefs « /tmp/tmpa2diyuaz/secring.gpg » a été créé
      gpg : le porte-clefs « /tmp/tmpa2diyuaz/pubring.gpg » a été créé
      gpg : demande de la clef C7122F9B sur le serveur hkp keyserver.ubuntu.com
      gpg : /tmp/tmpa2diyuaz/trustdb.gpg : base de confiance créée
      gpg : clef C7122F9B : clef publique « Launchpad PPA for Ubuntu SDK team » importée
      gpg : Quantité totale traitée : 1
      gpg : importées : 1 (RSA : 1)
      OK

      J’ai suivi l’ensemble des instructions sans problèmes.. mais là où ça se gâte c’est déjà par rapport à mon téléphone HonorC de Huawei sous Android 7.0

      Pendant ce temps là, on peut s’occuper du téléphone. On va le passer en mode "développeur", c’est à dire que vous allez autoriser l’utilisateur du téléphone à aller un peu plus loin dans les paramètres et la configuration du téléphone. Entre autres, aller dans le moteur par l’installation et la configuration du système. Pour cela, on va dans Paramètres / Mon téléphone et on décoche le mode développeur. Il faut impérativement choisir un mot de passe de verrouillage car c’est ce mot de passe qui deviendra le mot de passe pour se connecter en ssh [3] sur le téléphone.

      J’ai été dans Paramètres/Sécurité

      J’ai décoché :

      Utilisation de HDB HDB vous permet de connecter votre appareil à un ordinateur (HiSuite) sans activer le débogage USB

      Dans les fichiers, je vois l’ensemble de mes fichier (cartes SD et Mémoire de stockage interne).

      Mais pour les commandes adb, je ne vois pas le téléphone :

      $ adb kill-server

      $ adb devices
      * daemon not running. starting it now on port 5037 *
      * daemon started successfully *
      List of devices attached

      $

      J’ai le message suivant qui apparait :

      Message d’erreur non géré : Impossible de trouver un périphérique udev correspondant.

      Contenu de mon fichier 56-libmtp.rules

      # Huawei Honor 5C
      ATTRidVendor=="12d1", ATTRidProduct=="107e", SYMLINK+="Honor5cUbuntu", ENVID_MTP_DEVICE="1", EN
      VID_MEDIA_PLAYER="1"

      Merci si tu peux me donner un coup de main

      _

      repondre message

    modération a priori

    Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

    Qui êtes-vous ?
    Votre message

    Pour créer des paragraphes, laissez simplement des lignes vides.

    Lien hypertexte

    (Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

     
    A propos de Le blog de Guillaume
    Ma formation initiale est un parcours supérieur dans les sciences humaines et le travail social, car je place l’humain au centre de toutes mes réflexions et souhaits d’agir.Retour ligne automatique Intéressé par l’insertion professionnelle à l’origine, mon intérêt pour le 19ième siècle et l’émergence (...)
    En savoir plus »