Rapport technique suite au mail pour le service technique.
Ce document est destiné à faciliter le travail du service technique et à faire avancer les recherches éventuelles qui devraient suivre.
Configuration technique :
J'ai deux téléphones, un fonctionnant avec une rom alternative (un Oneplus N10 5 G sous e/OS) et maintenant un Oppo Find X 5G Pro.
Le premier laisse fonctionner l'application Panodyssey sans souci, le second est impossible à rooter, débloquer le système) et donc il est débloaté suprression de tout ce qui le relie à Google et accessoirement à Oppo. Seul le système d'origine (ColorOS vierge de toutes les autres m...) est présent.
Donc le sujet concerné, Oppo Find X5g Pro :
✅ Téléphone débloaté et fonctionnel (Google + HeyTap/OPPO supprimés)
✅ Fennec 151 + uBlock Origin uniquement (navigateur alternatif issu de Firefox mais sans plus rien de factuel vers des sociétés du web, quelles qu'elles soient)
✅ DuckDuckGo comme moteur par défaut
✅ Aurora Store pour le magasin d'application (dont L'appli Panodyssey provient)
✅NetGuard configurés (VPN)
✅ Panodyssey identifié comme incompatible côté app (bug Cronet/GMS), contournement via le site web dans Fennec, signalement envoyé aux développeurs
Copie du mail :
Subject: Bug application mobile : échec de toutes les requêtes réseau sans Google Play Services
Bonjour,
Je souhaite signaler un bug dans l'application mobile Android Panodyssey (version 1.9.6, package com.panodyssey.app) : sur un appareil sans Google Play Services installé, l'application ne parvient à effectuer aucune requête réseau, y compris la connexion au compte.
Détail technique :
Les logs (adb logcat) montrent que l'application utilise Dio (client HTTP Flutter) configuré pour passer par Cronet comme moteur de transport réseau. Le seul fournisseur Cronet disponible pour l'app semble être celui fourni par Google Play Services ("Google-Play-Services-Cronet-Provider"). En son absence, toutes les requêtes échouent avec l'erreur suivante :
java.lang.RuntimeException: All available Cronet providers are disabled. A provider should be enabled before it can be used.
at org.chromium.net.CronetEngine$Builder.getEnabledCronetProviders
Cela touche même les appels les plus basiques faits au lancement de l'app (/api/v1/directory/countries, /api/v1/directory/timezones, /api/v1/directory/locales), avant même toute tentative de connexion. Le symptôme côté utilisateur : l'écran de connexion reste inerte (le menu et les boutons ne répondent plus), sans message d'erreur visible.
Suggestion : prévoir un fournisseur Cronet de repli n'exigeant pas Google Play Services (par exemple le client HTTP natif Dart, ou un provider Cronet embarqué indépendant de GMS), afin que l'app fonctionne aussi sur les appareils dégooglisés ou sans Play Services actifs.
Je reste disponible si vous souhaitez plus de détails ou les logs complets.
Cordialement,
Harold Cath
Copie du relevé d'erreur via ADB (commande : adb logcat -d | grep -i -A 15 "panodyssey\|FATAL\|okhttp\|firebase\|gms" ):
272.41 Ko •2 030 lignes•
Diagnostique de Claude Sonnet 5 élevé :
Voilà, log en main : cause identifiée avec certitude, pas une hypothèse cette fois.
La cause exacte, ligne par ligne :
Explication : Panodyssey est une application Flutter qui utilise Dio (bibliothèque réseau) configurée pour passer par Cronet (le moteur réseau HTTP de Google/Chromium) comme moteur de transport. Le seul fournisseur Cronet que l'app sait utiliser est celui de Google Play Services. Sans GMS installé, Cronet se retrouve avec zéro fournisseur disponible → toute requête réseau de l'app échoue, pas seulement la connexion. C'est visible dès le lancement : les appels à /directory/countries, /directory/timezones, /directory/locales échouaient déjà tous avec la même erreur avant même que vous ne tentiez de vous connecter — c'est pour ça que le menu entier restait inerte.
Ce n'est donc ni NetGuard, ni le DNS, ni un souci de compte : c'est un choix d'architecture de l'app elle-même, qui n'a apparemment pas de solution de repli (comme le client HTTP natif Dart/HttpClient) si Cronet-via-GMS est indisponible.
Options réalistes, dans l'ordre que je recommande :
- Utiliser Panodyssey via le site web dans Fennec plutôt que l'app — on a déjà confirmé que ça fonctionne parfaitement (connexion, navigation, tout). C'est la solution immédiate et sans compromis sur le reste du projet.
- Signaler le bug aux développeurs de Panodyssey (info@panodyssey.com, visible sur leur fiche Play Store) — leur app dépend en dur de Google Play Services pour toute requête réseau, ce qui est probablement un oversight de configuration Flutter plutôt qu'un choix voulu. Vu que vous connaissez l'équipe (votre compte y publie), ça peut valoir le coup de le signaler.
- Réinstaller Google Play Services romprait tout le travail de dégooglisation fait aujourd'hui — je ne le recommande pas, ça irait à l'encontre de l'objectif du projet pour une seule app.
Pourquoi la rom alternative fonctionne-t-elle ?
Bonne question, et la réponse confirme exactement la contrainte de départ plutôt que de la contredire.
Pourquoi ça marche sur le téléphone e/OS :
e/OS intègre microG — un ersatz libre de Google Play Services. Mais microG a une exigence technique stricte pour fonctionner : le système doit supporter le "signature spoofing", un mécanisme qui permet à microG de se faire passer pour le vrai com.google.android.gms avec la signature officielle de Google, faute de quoi les applications (comme Panodyssey) le rejettent en le détectant comme illégitime.
Source : GitHub microg/GmsCore Wiki, « Signature Spoofing » — https://github.com/microg/GmsCore/wiki/Signature-Spoofing
Ce support de signature spoofing n'existe que sur les ROM personnalisées conçues pour ça (LineageOS-based, e/OS, etc.) — c'est intégré nativement dans leur code, précisément parce que ce sont des ROM alternatives compilées avec ce patch.
Pourquoi ça ne peut pas marcher sur le Find X5 Pro débloaté :
Le Find X5 Pro tourne toujours sur ColorOS d'origine (juste débarrassé de ses paquets Google/HeyTap) — ce n'est pas une ROM personnalisée, elle n'a jamais été compilée avec le patch de signature spoofing. Sans lui, même en installant microG, l'app détecterait une signature invalide et refuserait de le considérer comme "Google Play Services" — donc même problème qu'avant, ou pire, un blocage explicite.
Une source technique confirme qu'il existe bien une variante de microG qui copie la vraie signature binaire de Google pour contourner ce problème (microG_no_sigspoof) — mais elle précise explicitement qu'elle ne peut être installée qu'en tant qu'application système, ce qui nécessite d'écrire dans la partition système, donc du root.
Source : GitHub IsHacker003/microG_no_sigspoof — https://github.com/IsHacker003/microG_no_sigspoof
Donc ça boucle exactement sur la même contrainte de départ : bootloader verrouillé → pas de root → pas de ROM personnalisée → pas de signature spoofing → pas de microG fonctionnel → Panodyssey (et toute app dépendant du vrai GMS) restera cassée en tant qu'app native sur ce téléphone précis. Le site web via Fennec reste la seule solution durable ici.
J'espère que cela pourra servir ;-)
non-commercial use only
Ceci étant posé, pas touche aux textes, aux idées, aux images, tout cela ne t'appartient pas, le droit d'auteur est une réalité dont tu dois tenir compte.
Tu as envie d'en utiliser tout ou partie, prends contact, demande.
Une demande vaut une réponse et il y a toujours moyen de trouver un terrain d'entente.
Viens, je ne mords pas ;-)
Contribute
You can support your favorite writers


Comments (0)