Seven Square – Afficher l’écran d’un smartphone Android en miroir sur un PC GNU/Linux
Comment afficher facilement, ou presque, l’écran de son smartphone Android sur son ordinateur GNU/Linux et interagir avec celui-ci ?
Une des solutions libres sous licence GPL-v2 (GNU General Public License) est d’installer et d’utiliser le logiciel Seven Square de Yang Hong disponible sur le GitHub, un service web d’hébergement et de gestion de développement de logiciels.
Seven Square est outil libre écrit en QT (un framework en C++ utilisé pour concevoir des interfaces graphiques) qui permet d’afficher un écran miroir de son appareil Android sur son PC GNU/Linux. Il peut être utilisé pour faire des démonstrations (mon cas), du débogage, etc. Vous pouvez même cliquer sur l’écran miroir affiché sur votre ordinateur pour interagir avec votre smartphone. Les données entre votre smartphone et votre PC sont en lien direct par câble USB et ne passe donc pas par un serveur tiers au contraire d’autres solutions libres ou propriétaires.
Paramétrer son smartphone Android
Il n’y a aucun logiciel à installer, aucun besoin de « rooter » son appareil, il faut juste changer un réglage dans les Paramètres de votre téléphone Android. Paramètres -> Options pour développeurs -> Débogage -> Débogage USB. Le chemin, ici pour Android 7.0, peut être différent sur votre smartphone. Reportez-vous à la documentation de celui-ci.
Seven Square sous GNU/Linux est supposé fonctionner avec tous les appareils Android depuis au moins la version 4.0 (Ice Cream Sandwich – 19/10/2011) jusqu’à la 7.0 (Nougat – 22/08/2016). Son fonctionnement sous Android 8.0 (Oreo – 21/08/2017) est à confirmer. Pour ma part, j’ai fait les tests sous Android 7.0 (mise à niveau depuis la 6.0) / Honor 5c pour les braves (version française) à moins de 200 €.
Pourquoi vouloir jeter par la fenêtre près de 500 à 1.000 € et se faire quand même espionner et fliquer en bonne et due forme par Android de Big Brother Google, membre de l’infâme secte technologique GAFAM, et les applications dans son Play Store ? Alors que vous pouvez simplement débourser 5 fois moins pour le même résultat ! 😉
Installation de Seven Square sur PC GNU/Linux
Ici, je ne traiterai que du système d’exploitation libre Linux MINT. Mais cette démarche peut aussi s’appliquer, avec ou sans modification, à Debian et à Ubuntu ainsi qu’à leurs variantes et dérivées. Pour les autres distributions GNU/Linux, il faudra se reporter à la documentation de la distribution concernée.
1. Pour Linux MINT 18.2, il faut d’abord remplir quelques prérequis ; à savoir installer 4 groupes de paquets logiciels.
a- Depuis la Logithèque (Gestionnaire de logiciels) de Linux MINT, installez les 3 paquets suivants. S’ils sont déjà installés, la Logithèque vous le signalera comme Installé(s) avec un √.
- Android-tools-adb (ADB = Android Debug Bridge) – un outil permettant de dialoguer nativement avec un périphérique Android.
- Build-essential – ce paquet est nécessaire pour construire des paquets Debian.
- Git – un logiciel de gestion de versions décentralisé.
b- Pour le 4ème groupe de paquets, dans un Terminal (Ctrl+Alt+T), faites un copier-coller de la ligne suivante et suivez bien les instructions à l’écran :
sudo apt-get install qt4-qmake libqt4-dev libqtcore4 libqtgui4
2. Téléchargement de Seven Square
Dans un Terminal (Ctrl+Alt+T)
a- Pour télécharger Seven Square sur votre PC, faites un copier-coller de la ligne suivante et suivez bien les instructions à l’écran :
git clone https://github.com/yangh/sevensquare.git
b- Pour aller dans le répertoire de Seven Square (/home/user-name/sevensquare), faites un copier-coller de la ligne suivante :
cd sevensquare
3. Compilation de Seven Square
En clonant le Git ci-dessus de ce logiciel sur son ordinateur, nous avons en fait téléchargé le code source libre de l’application, qui en tant que tel n’est pas directement exécutable. Il faut d’abord le compiler pour/sous sa distribution GNU/Linux, ici Linux Mint 18.2, pour le rendre exécutable par celle-ci.
Dans un Terminal (Ctrl+Alt+T), faites un copier-coller de la ligne suivante et suivez bien les instructions à l’écran. La compilation d’un programme source libre GPL-v2 en toute simplicité sous GNU/Linux ! Facile, n’est-ce pas ?
make && sudo make install
Lancer et utiliser Seven Square
Connectez votre appareil Android allumé à votre ordinateur GNU/Linux allumé avec un câble USB en vous assurant que le Mode Debug est bien activé dans les Paramètres de votre smartphone (voir plus haut).
a- Pour lancer Seven Square sur votre PC GNU/Linux, faites un copier-coller de la ligne suivante dans un Terminal (Ctrl+Alt+T) :
seven-square &
b- Pour vous faciliter la vie, vous pouvez aussi créer un Lanceur Seven Square
- Faites un clic droit sur un endroit vide du bureau de Linux MINT -> Créer un nouveau lanceur
- Dans la fenêtre qui s’affiche, remplissez les champs :
- Name : Seven Square – un √ valide votre entrée
- Command : seven-square & – un √ valide votre entrée
- Comment : par exemple, Lancer l’image miroir Android vers GNU/Linux
- Launch in a Terminal? : cliquez sur la case à sa gauche – une croix x apparaît
- Finissez en cliquant sur le bouton Valider.
- Name : Seven Square – un √ valide votre entrée
- Une nouvelle fenêtre s’ouvre vous demandant si vous voulez aussi placer ou pas ce nouveau lanceur dans le Menu (catégorie Autre par défaut) de Mint. Répondez Oui.
c- Maintenant, vous pouvez lancer Seven Square, soit depuis un Terminal, soit directement avec son icône Lanceur sur le bureau ou depuis le Menu -> Autre -> Seven Square.
À vous de jouer. À ce stade, vous pouvez agir directement sur votre smartphone Android et chaque nouvel écran s’affichera, mais avec un délai d’environ +/- 1,5 secondes (qui peut être amélioré, voir plus loin dans l’article), dans la fenêtre Seven Square sur le bureau de votre PC GNU/Linux. Vous pouvez aussi prendre le contrôle de votre téléphone Android avec le clavier et la souris de votre ordinateur.
Pour effectuer une capture d’écran de la fenêtre Seven Square, utilisez l’utilitaire Capture d’écran de votre distribution GNU/Linux. Si vous voulez enregistrer une vidéo de cette fenêtre, installez un enregistreur vidéo qui permet de sélectionner la région, comme Kazam, Gtk-recordmydesktop ou Vokoscreen, depuis la Logithèque de Linux Mint.
Dans la capture d’écran (montage) ci-dessus des fenêtres Seven Square sur le bureau de Linux Mint, nous avons :
- À gauche : Seven Square (7S) attend qu’un appareil Android soit connecté (ADB Wait for device est affiché dans un Terminal) avec le logo Android qui se déplace.
- 2ème image : 7S affiche l’écran principal de mon smartphone Honor 5c sous Android 7.0. Un souci de gestion graphique – des couleurs est visible avec les 2 barres horizontales. À investiguer ultérieurement.
- 3ème image : 7S affiche l’écran des notifications d’Android.
- À droite : 7S affiche la section Débogage des Options pour développeurs des Paramètres Android.
Raccourcis claviers sur PC GNU/Linux vers Android
- F1 : HOME (AKEYCODE_HOME)
- F2 : RETOUR (AKEYCODE_BACK)
- F3 : APPEL (AKEYCODE_CALL)
- F4 : FIN d’APPEL (AKEYCODE_ENDCALL)
Raccourci clavier sur PC GNU/Linux
- F12 : Rotation de l’écran Android en miroir sur PC (Portrait -> Paysage (-90°) -> Portrait (+90°))
Temps de capture (screencap) trop long !
Comme mentionné plus haut, chaque nouvelle capture de mon écran Android sur mon PC GNU/Linux demande un délai d’environ +/- 1,5 secondes, ce qui bien trop long. Est-ce un bug ou autre chose ?
Ce n’est pas un bug et la réponse est double. Mon smartphone Honor 5c sous Android 7 a un écran IPS LCD de 5,2 pouces avec une définition Full HD de 1.920 x 1.080 pixels (424 ppp), soit 8,3 Millions de bits à transmettre, et un port micro-USB v.2.0, et mon PC GNU/Linux a des ports USB 2.0.
Full HD et USB 2 <=> USB 2 ne font pas bon ménage. Vu la quantité d’information à transmettre, la vitesse de transmission est donc limitée par les ports USB ! Avec du Full HD ou supérieure, il faudrait de l’USB 3.0 de part et d’autre pour avoir une fluidité convenable. Du côté des USB, il n’y a rien à faire.
Et côté résolution de mon smartphone Android ? Il n’y a pas grand-chose à faire non plus pour diminuer sa définition !
Alors, est-ce sans aucune solution pour les smartphones Android Full HD et supérieure avec de l’USB 2 ? Non, les développeurs de Square Seven proposent une rustine, qui divise par 2 le temps de capture, sous la forme d’un binaire appelé minigzip (x86_64) qui est pré-compilé dans le répertoire /home/user-name/sevensquare/contributes.
Dans un Terminal (Ctrl+Alt+T), pour copier le fichier minigzip dans le répertoire système des exécutables, il suffit de copier-coller la ligne suivante (en remplaçant user-name par votre nom d’utilisateur) et de suivre les instructions à l’écran :
sudo cp /home/user-name/sevensquare/contributes/minigzip /usr/bin
Par contre, en augmentant la réactivité des captures, on augmente aussi l’instabilité potentielle de Seven Square.
D’autres options existent. Pour les découvrir, parcourez la documentation de Seven Square ci-dessous.
Pour en savoir plus sur ce logiciel libre
- Consultez la page Seven Square (en anglais) de Yang Hong sur le GitHub.
- Ces informations sont aussi disponibles sur votre PC GNU/Linux dans le fichier README.md qui est stocké dans le dossier de l’application à l’adresse /home/user-name/sevensquare.