mobile debugging make and readme

This commit is contained in:
2026-10-13 15:11:26 +02:00
parent e16fe66472
commit 2c2e6f7b84
3 changed files with 172 additions and 15 deletions
+69 -14
View File
@@ -85,18 +85,73 @@ exec_mysql:
dump_db:
docker exec leshed-mysql-1 sh -c 'exec mariadb-dump -uroot -pleshed leshed' > ./ressources/leshed-$(DATE_NOW)-local.sql
# Test sur mobile : connexion ADB sans fil + tunnel vers le serveur Vite (HMR).
# Le port du débogage sans fil change à chaque activation : on le passe
# (make mobile MOBILE=192.168.1.101:37495) ou on le laisse trouver par nmap.
# L'appareil doit avoir été associé une fois (adb pair IP:PORT CODE).
MOBILE ?= 192.168.1.101
# --- Mobile : associer puis inspecter ----------------------------------------
# Le port de débogage sans fil change à chaque activation : le relire sur
# l'écran du téléphone avant chaque commande.
#
# 1. Association (une seule fois ; ou si la connexion refuse ensuite) :
# téléphone : « Débogage sans fil » > « Associer l'appareil avec un code
# d'appairage », noter le port affiché, puis :
# make mobile_associate ADDR=192.168.1.101:PORT
# et saisir le code à 6 chiffres demandé par adb.
#
# 2. Inspection : relier l'adresse de la ligne « Adresse IP et port » :
# make mobile_inspect ADDR=192.168.1.101:PORT
# Ça connecte l'appareil et pose deux tunnels :
# - reverse 5173 : le localhost:5173 du téléphone (assets Vite en dev,
# librairie leshed/vitehmr) pointe vers le laptop. Sans lui : page
# sans styles ni JS, aucune erreur visible.
# - forward 9223 : socket de débogage Firefox du téléphone exposé en
# local (inspecteur : about:debugging). Pas 9222 : réservé au
# --remote-debugging-port du Firefox desktop (WebDriver BiDi).
# Après connexion : recharger la page sur le téléphone.
#
# Piège connu : tout changement de transport (câble, reboot, réactivation du
# sans fil) tue les tunnels en silence — les requêtes restent en attente,
# plus rien ne charge. Relancer mobile_inspect, recharger la page.
mobile:
@target="$(MOBILE)"; \
case "$$target" in *:*) ;; *) \
port=$$(nmap -Pn -p 30000-50000 --min-rate 3000 -T4 "$$target" | awk -F/ '/open/ {print $$1; exit}'); \
[ -n "$$port" ] || { echo "Aucun port ADB trouvé sur $$target (débogage sans fil actif ?)"; exit 1; }; \
target="$$target:$$port";; \
esac; \
adb connect "$$target" && adb -s "$$target" reverse tcp:5173 tcp:5173 && \
echo "OK : $$target, localhost:5173 du mobile -> Vite du laptop. Firefox : about:debugging"
mobile_associate:
@case "$(ADDR)" in *:*) ;; *) echo "Usage : make mobile_associate ADDR=IP:PORT"; exit 1;; esac; \
adb pair "$(ADDR)"
mobile_inspect:
@case "$(ADDR)" in *:*) ;; *) echo "Usage : make mobile_inspect ADDR=IP:PORT"; exit 1;; esac; \
adb connect "$(ADDR)" || exit 1; \
adb reverse --remove tcp:5173 2>/dev/null; \
adb forward --remove tcp:9223 2>/dev/null; \
adb -s "$(ADDR)" reverse tcp:5173 tcp:5173 && \
adb -s "$(ADDR)" forward tcp:9223 localabstract:org.mozilla.firefox/firefox-debugger-socket && \
echo "OK : tunnels posés ($(ADDR)). Recharger la page sur le téléphone."
# --- Mobile USB : associer puis inspecter ------------------------------------
# Plus simple que le sans fil : pas de code, pas de port à lire.
# L'« association » USB est l'autorisation donnée sur le téléphone à la
# première connexion (popup empreinte de l'ordinateur).
#
# 1. [Téléphone] Brancher le câble, activer « Débogage USB » dans les Options
# pour développeurs. À la première connexion, une popup demande
# d'autoriser l'ordinateur : cocher « Toujours autoriser depuis cet
# ordinateur », valider.
# 2. [Ordinateur] make mobile_associate_usb — vérifie que l'appareil est vu
# et autorisé. Si « unauthorized », revalider la popup sur le téléphone.
# 3. [Ordinateur] make mobile_inspect_usb — pose les mêmes tunnels que
# mobile_inspect (reverse 5173, forward 9223) sur l'appareil USB.
# Ensuite : recharger la page sur le téléphone, puis étapes 6 à 8 de la
# procédure sans fil du README (inspection about:debugging, HMR).
mobile_associate_usb:
@state=$$(adb devices | awk 'NR>1 && $$1 !~ /:/ && NF {print $$2; exit}'); \
case "$$state" in \
device) echo "OK : appareil USB vu et autorisé.";; \
unauthorized) echo "Non autorisé : valider la popup sur le téléphone."; exit 1;; \
*) echo "Aucun appareil USB (câble branché ? « Débogage USB » actif ?)."; exit 1;; \
esac
mobile_inspect_usb:
@serial=$$(adb devices | awk 'NR>1 && $$2=="device" && $$1 !~ /:/ {print $$1; exit}'); \
[ -n "$$serial" ] || { echo "Aucun appareil USB vu — lancer d'abord make mobile_associate_usb."; exit 1; }; \
adb reverse --remove tcp:5173 2>/dev/null; \
adb forward --remove tcp:9223 2>/dev/null; \
adb -s "$$serial" reverse tcp:5173 tcp:5173 && \
adb -s "$$serial" forward tcp:9223 localabstract:org.mozilla.firefox/firefox-debugger-socket && \
echo "OK : tunnels posés ($$serial, USB). Recharger la page sur le téléphone."