Congratulations! Your support has been successfully sent to the author
avatar
Rapport technique suite au mail pour le  service technique.
Non-fiction
Technology
calendar Published Jul 12, 2026
calendar Updated Jul 12, 2026
time 12 min
Creative Transparency Label
All audiences
Image / Human image
Text / Hybrid - by humans and AI

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•



07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.755 4271 4280 W System : A resource failed to call release.
07-12 17:22:34.756 4271 4280 W System : A resource failed to call release.
--
07-12 17:22:34.989 3234 3266 D ActivityTaskManager: after skip size:4,pre-Filtered:com.anthropic.claude # com.panodyssey.app # eu.faircode.netguard # com.oppo.quicksearchbox #
07-12 17:22:34.988 4613 4728 V SystemSensorManagerExtImpl: RegisterListener icm4x6xx Accelerometer Non-wakeup type:1 delay:200000us by android.view.OrientationEventListener$CompatSensorEventListenerImpl@3203cd6 from com.android.launcher
07-12 17:22:34.991 3234 3266 D SensorService: createSensorEventConnection packageName = android.view.OrientationEventListener, opPackageName = com.android.launcher, mCurrentOperatingMode = 0, requestedMode = 0
07-12 17:22:34.992 3234 3769 W VibrationScaler: Got unexpected vibration intensity: 2400
07-12 17:22:34.992 3234 3266 D SensorService: SensorEventConnection type = 3, client = com.android.launcher, listener = android.view.OrientationEventListener
07-12 17:22:34.992 3234 3769 D VibrationThread: Perform OplusPrebakedSegment{mWaveformId=2, mDuration=45, mEffectStrength=2400, mDefaultUsage=TOUCH} on vibrator 0
07-12 17:22:34.993 3234 3266 W SensorService: SensorEventConnection sensor handle=11, package = android.view.OrientationEventListener enable
07-12 17:22:34.993 3234 3266 E SensorService: Required app android.view.OrientationEventListener, uid 10253, pid 4613
07-12 17:22:34.993 3234 3266 D SensorService: Calling batch handle==11 flags=0rate=200000000 timeout== 0
07-12 17:22:34.993 3234 3266 D SensorService: SensorDevice::batch: ident=0xb40000758834a400, handle=0x0000000b, flags=0, period_ns=200000000 timeout=0
07-12 17:22:34.993 3234 3266 D SensorService: >>> actuating h/w BATCH 0x0000000b 200000000 0
07-12 17:22:34.993 1747 1747 D vendor.qti.vibrator: Vibrator set amplitude: 2.000000
07-12 17:22:34.993 1747 1747 D vendor.qti.vibrator: Vibrator set fifo amplitude: 2.000000
07-12 17:22:34.993 3234 3769 E VibratorController: Vibrator HAL setAmplitude failed:
07-12 17:22:34.995 4613 4613 D InsetsController: hide(ime(), fromIme=false)
07-12 17:22:34.995 1658 1658 I sensors-hal: batch:223, android.sensor.accelerometer/11, period=200000000, max_latency=0
--
07-12 17:22:36.017 3234 4908 D ActivityTaskManager: after skip size:4,pre-Filtered:com.anthropic.claude # com.panodyssey.app # eu.faircode.netguard # com.oppo.quicksearchbox #
07-12 17:22:36.017 3234 4908 I Athena : SwipeUpClearAction: stop type is 1
07-12 17:22:36.017 3234 4908 I Athena : SwipeUpClearAction: current is exp rom, skip to kill
07-12 17:22:36.018 3234 4908 I FlexibleTaskController: destroyFlexibleTaskSurface() called with: transaction = [Task{4cff320 #72 type=standard A=10365:com.anthropic.claude}], reason = [RemoveTask]
07-12 17:22:36.018 3234 4908 D ActivityTaskManager: notifyTaskRemoved, task: Task{4cff320 #72 type=standard A=10365:com.anthropic.claude} trace:com.android.server.wm.RecentTasks.notifyTaskRemoved:566 com.android.server.wm.RecentTasks.remove:1512 com.android.server.wm.ActivityTaskSupervisor.cleanUpRemovedTask:2162 com.android.server.wm.ActivityTaskSupervisor.removeTask:2126 com.android.server.wm.ActivityTaskSupervisor.removeTask:2041
07-12 17:22:36.019 3234 4908 D SnapshotCache: removeRunningEntry id: 72, callers=com.android.server.wm.SnapshotCache.onIdRemoved:107 com.android.server.wm.TaskSnapshotController.removeAndDeleteSnapshot:398 com.android.server.wm.Task.removedFromRecents:1460
07-12 17:22:36.019 956 956 I hwservicemanager: getTransport: Cannot find entry vendor.qti.hardware.iop@2.0::IIop/default in either framework or device VINTF manifest.
07-12 17:22:36.020 3234 4908 I Athena : SwipeUpClearAction: remove task, taskId: 72
07-12 17:22:36.022 3234 3294 I ActivityManager: Killing 23230:com.anthropic.claude/u0a365 (adj 900): remove task
07-12 17:22:36.024 956 956 I hwservicemanager: getTransport: Cannot find entry vendor.qti.hardware.iop@2.0::IIop/default in either framework or device VINTF manifest.
07-12 17:22:36.025 3234 3294 I ActivityManager: Killing 7739:com.google.android.webview:js_sandboxed_process0:org.chromium.android_webview.js_sandbox.service.JsSandboxService0/u0a365i5 (adj 905): remove task
07-12 17:22:36.026 956 956 I hwservicemanager: getTransport: Cannot find entry vendor.qti.hardware.iop@2.0::IIop/default in either framework or device VINTF manifest.
07-12 17:22:36.026 3234 3294 I ActivityManager: Killing 24089:com.google.android.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0/u0a365i2 (adj 905): remove task
07-12 17:22:36.027 956 956 I hwservicemanager: getTransport: Cannot find entry vendor.qti.hardware.iop@2.0::IIop/default in either framework or device VINTF manifest.
07-12 17:22:36.030 3234 4176 I [UAH_CLIENT]: UahEventAcquire, cmdid:68, pkg:none, identity:OplusUAwareInputHelper
07-12 17:22:36.032 4613 4728 V SystemSensorManagerExtImpl: unRegisterListener by android.view.OrientationEventListener$CompatSensorEventListenerImpl@3203cd6
--
07-12 17:22:36.096 3234 3622 D ActivityTaskManager: after skip size:3,pre-Filtered:com.panodyssey.app # eu.faircode.netguard # com.oppo.quicksearchbox #
07-12 17:22:36.097 4271 4322 D ShellTaskOrganizer: Task vanished taskId=72
07-12 17:22:36.097 4271 4322 D ShellTaskOrganizerExt: visibleFlexibleTaskInfos delete:72
07-12 17:22:36.097 4271 4322 D ShellTaskOrganizerExt: isOnCanvas size:0
07-12 17:22:36.097 4271 4322 D ShellTaskOrganizerExt: isOnThreeFlexibleCanvas size:0
07-12 17:22:36.097 4271 4322 D FlexibleSeekBarManager: removeAlpha for taskId=72


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 :


POST https://panodyssey.com/api/v1/login_check
...
GooglePlayServicesUtil: com.panodyssey.app requires Google Play services, but they are missing.
GooglePlayServicesUtil: GooglePlayServices not available due to error 18
PlayServicesCronet: Google-Play-Services-Cronet-Provider is unavailable.
DioException [unknown]: null
Error: java.lang.RuntimeException: All available Cronet providers are disabled.
at org.chromium.net.CronetEngine$Builder.getEnabledCronetProviders



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 :

  1. 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.
  2. 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.
  3. 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 ;-)




Transparency around creation, AI use
Main text Claude Sonnet 5 élevé
Intellectual property & credits
© Cover Image Wal178219 @https://www.pexels.com/fr-fr/@wal_-172619-2156618639/
© Author's name / pen name Harold Cath
Sources, citations, co-authors Travail communautaire avec Claude Sonnet 5 élevé afin de "dégoogleiser" un téléphone non rootable.
Creative Commons license
cc_by_nc_nd
Attribution required, no modifications,
non-commercial use only
CC BY-NC-ND
The Kitty clause
Harold Cath verified
Ce contenu te plait, j'en suis heureux, partage-le, ramène du monde ici.
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 ;-)

Comments (0)

You must be logged in to comment Sign in
Prolong your journey in this universe Technology

donate You can support your favorite writers

promo

Download the Panodyssey mobile app