{
    "type": "dns_diagnostic",
    "version": "3.0",
    "timestamp": 1773060948150,
    "device": "TCL Smart TV Pro",
    "android": "11 (API 30)",
    "brand": "TCL",
    "product": "G03_4K_GB",
    "fingerprint": "TCL\/G03_4K_GB\/BeyondTV4:11\/RP1A.200622.001\/AR09:user\/release-keys",
    "summary": "== RÉSUMÉ PREUVES DIRECTES ==\n[PREF] dns_enabled: true (préférence utilisateur)\n[PREF] dns_autostart: true (démarrage automatique demandé)\n[PREF] dns_running: true (dernier état mémorisé)\n[PREF] dns_provider: quad9 (provider demandé)\n[PREF] dns_transport: auto (transport demandé)\n[API] vpn_permission: OK (autorisation Android du tunnel VPN)\n[API] active_network_present: true (réseau Android actif)\n[API] network_validated: true (Android confirme Internet réel)\n[API] running_dns_services: com.ericformation.tv.erictvinstaller.dnsstable.StableDnsVpnService (services visibles côté Android)\n[API] tun_interfaces: tun0 (interfaces tunnel visibles côté Android)\n[TRACE] dns_last_start_at: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_start_reason: stable:boot_v3:tcl_strict:16329521\n[TRACE] dns_last_established_at: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_ready_wall: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_packet_at: 09\/03\/2026 13:55:34 — il y a 12s\n[TRACE] dns_last_error: Non enregistré\n[TRACE] dns_queries_responses_errors: 6 \/ 6 \/ 0\n[DPREF] boot_profile: TCL_STRICT\n[DPREF] boot_state: ESTABLISHED\n[DPREF] boot_session_id: 16329521-69b1-4204-a604-5d28adbdce43\n[SERVICE] vpn_fd_exists: Non mesuré par le service\n[SERVICE] vpn_fd_valid: Non mesuré par le service\n[SERVICE] service_running_flag: Non mesuré par le service\n[SERVICE] io_thread_alive: Non mesuré par le service\n[SERVICE] current_provider: Non mesuré par le service\n[SERVICE] current_transport_pref: Non mesuré par le service\n[SERVICE] transport_active: Non mesuré par le service\n[SERVICE] watchdog_last_ok: Non mesuré par le service\n\n== CONSTATS BLOQUANTS CONFIRMÉS ==\nAucun blocage confirmé avec les données disponibles.\n",
    "diagnostic": "== RÉSUMÉ PREUVES DIRECTES ==\n[PREF] dns_enabled: true (préférence utilisateur)\n[PREF] dns_autostart: true (démarrage automatique demandé)\n[PREF] dns_running: true (dernier état mémorisé)\n[PREF] dns_provider: quad9 (provider demandé)\n[PREF] dns_transport: auto (transport demandé)\n[API] vpn_permission: OK (autorisation Android du tunnel VPN)\n[API] active_network_present: true (réseau Android actif)\n[API] network_validated: true (Android confirme Internet réel)\n[API] running_dns_services: com.ericformation.tv.erictvinstaller.dnsstable.StableDnsVpnService (services visibles côté Android)\n[API] tun_interfaces: tun0 (interfaces tunnel visibles côté Android)\n[TRACE] dns_last_start_at: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_start_reason: stable:boot_v3:tcl_strict:16329521\n[TRACE] dns_last_established_at: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_ready_wall: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_packet_at: 09\/03\/2026 13:55:34 — il y a 12s\n[TRACE] dns_last_error: Non enregistré\n[TRACE] dns_queries_responses_errors: 6 \/ 6 \/ 0\n[DPREF] boot_profile: TCL_STRICT\n[DPREF] boot_state: ESTABLISHED\n[DPREF] boot_session_id: 16329521-69b1-4204-a604-5d28adbdce43\n[SERVICE] vpn_fd_exists: Non mesuré par le service\n[SERVICE] vpn_fd_valid: Non mesuré par le service\n[SERVICE] service_running_flag: Non mesuré par le service\n[SERVICE] io_thread_alive: Non mesuré par le service\n[SERVICE] current_provider: Non mesuré par le service\n[SERVICE] current_transport_pref: Non mesuré par le service\n[SERVICE] transport_active: Non mesuré par le service\n[SERVICE] watchdog_last_ok: Non mesuré par le service\n\n== CONSTATS BLOQUANTS CONFIRMÉS ==\nAucun blocage confirmé avec les données disponibles.\n\n== PRINCIPE ==\nAucune supposition dans ce rapport : chaque ligne vient d'une vraie source [PREF], [DPREF], [TRACE], [API] ou [SERVICE].\nQuand une donnée manque, le rapport écrit \"Non enregistré\" ou \"Non mesuré\" au lieu d'inventer NON.\n\n== APPAREIL ==\n[API] manufacturer: TCL\n[API] model: Smart TV Pro\n[API] brand: TCL\n[API] product: G03_4K_GB\n[API] device: BeyondTV4\n[API] hardware: rtd288o\n[API] android_release: 11\n[API] android_api: 30\n[API] build_display: RP1A.200622.001 release-keys\n[API] fingerprint: TCL\/G03_4K_GB\/BeyondTV4:11\/RP1A.200622.001\/AR09:user\/release-keys\n[API] uptime_ms: 536576441 (temps depuis le dernier démarrage Android)\n\n== SYSTÈME \/ ÉNERGIE ==\n[API] ram_avail_mb: 459\n[API] ram_total_mb: 2048\n[API] ram_low_memory: false\n[API] is_interactive: true\n[API] is_device_idle_mode: false\n[API] is_power_save_mode: false\n[API] ignoring_battery_optimizations: false\n[API] storage_available_mb: 825\n[API] storage_total_mb: 10340\n\n== RÉSEAU ANDROID ==\n[API] active_network_present: true\n[API] transport_wifi: false\n[API] transport_ethernet: true\n[API] transport_vpn: true\n[API] capability_internet: true\n[API] capability_validated: true\n[API] interface_name: tun0\n[API] link_address: 10.55.0.2\/32\n[API] default_gateway: Non mesuré\n[API] mtu: 0\n[API] system_dns_0: 9.9.9.9\n[API] system_dns_1: 149.112.112.112\n[API] has_ipv4: true\n[API] has_ipv6: false\n[API] private_dns_mode: Non enregistré\n[API] private_dns_specifier: Non enregistré\n\n== INTERFACES TUN \/ VPN ==\n[API] running_dns_services: com.ericformation.tv.erictvinstaller.dnsstable.StableDnsVpnService\n[API] tun_interfaces: tun0 up=true mtu=1500 addrs=fe80::c88a:3247:a592:d455%tun0,10.55.0.2\n\n== PRÉFÉRENCES APP (erictv_installer) ==\n[PREF] dns_enabled: true\n[PREF] dns_autostart: true\n[PREF] dns_running: true\n[PREF] dns_provider: quad9\n[PREF] dns_transport: auto\n[PREF] device_type: ANDROID_TV\n[PREF] a8_last_boot_ts: Non enregistré\n[PREF] a8_boot_count: Non enregistré\n\n== TRACES DNS (DnsDiagnostics) ==\n[TRACE] dns_last_start_at: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_start_reason: stable:boot_v3:tcl_strict:16329521\n[TRACE] dns_last_established_at: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_established_wall: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_last_ready_wall: 09\/03\/2026 13:55:24 — il y a 21s\n[TRACE] dns_last_packet_at: 09\/03\/2026 13:55:34 — il y a 11s\n[TRACE] dns_last_error: Non enregistré\n[TRACE] dns_wd_last_check_at: 08\/03\/2026 22:06:37 — il y a 15h 49min\n[TRACE] dns_wd_last_ok_at: 08\/03\/2026 22:06:37 — il y a 15h 49min\n[TRACE] dns_wd_last_latency_ms: Non enregistré\n[TRACE] dns_wd_fail_streak: 0\n[TRACE] dns_auto_restart_count: 0\n[TRACE] dns_auto_restart_last_at: 07\/03\/2026 22:10:39 — il y a 1j\n[TRACE] dns_auto_restart_last_reason: survival:screen_on\n[TRACE] dns_transport_active: udp\n[TRACE] dns_stable_session_start_at: 09\/03\/2026 13:55:24 — il y a 22s\n[TRACE] dns_stable_tun_rx_packets: 13\n[TRACE] dns_stable_dns_queries: 6\n[TRACE] dns_stable_dns_responses: 6\n[TRACE] dns_stable_dns_errors: 0\n[TRACE] dns_stable_last_query_at: 09\/03\/2026 13:55:34 — il y a 11s\n[TRACE] dns_stable_last_response_at: 09\/03\/2026 13:55:34 — il y a 11s\n[TRACE] dns_stable_last_rtt_ms: 14\n[TRACE] dns_stable_avg_rtt_ms: 16\n[TRACE] dns_stable_non_dns_ignored: 7\n[TRACE] dns_stable_upstream_ip_last: 9.9.9.9\n[TRACE] dns_stable_upstream_ip_top: 9.9.9.9\n[TRACE] dns_stable_upstream_switches: 0\n[TRACE] dns_stable_upstream_ip_counts: 9.9.9.9=6\n[TRACE] dns_provider_diag_last_at: Non enregistré\n[TRACE] dns_provider_diag_json: Non enregistré\n[TRACE] dns_diag_last_run_at: Non enregistré\n\n== BOOT V3 (device-protected prefs: boot_v3_session) ==\n[DPREF] boot_session_id: 16329521-69b1-4204-a604-5d28adbdce43\n[DPREF] boot_profile: TCL_STRICT\n[DPREF] boot_state: ESTABLISHED\n[DPREF] boot_started_at_wall: 09\/03\/2026 13:55:17 — il y a 29s\n[DPREF] boot_started_at_elapsed: 536547103\n[DPREF] boot_deadline_wall: 09\/03\/2026 13:58:17 — il y a 0s\n[DPREF] boot_dispatch_count: 1\n[DPREF] boot_verify_count: 1\n[DPREF] boot_last_dispatch_wall: 09\/03\/2026 13:55:24 — il y a 22s\n[DPREF] boot_last_verify_wall: 09\/03\/2026 13:55:32 — il y a 14s\n[DPREF] boot_network_validated_wall: 09\/03\/2026 13:55:21 — il y a 25s\n[DPREF] boot_last_failure_code: Non enregistré\n[DPREF] boot_quarantine_until_wall: 0 \/ non observé\n[DPREF] boot_consecutive_failures: 0\n[DPREF] boot_last_success_wall: 09\/03\/2026 13:55:32 — il y a 14s\n\n== JOBS PLANIFIÉS ==\n[API] pending_dns_job_0: jobId=8 service=SystemJobService persisted=false minLatencyMs=32966844 deadlineMs=0\n[API] pending_dns_job_1: jobId=9 service=SystemJobService persisted=false minLatencyMs=7199876 deadlineMs=0\n[API] pending_dns_job_2: jobId=3 service=SystemJobService persisted=false minLatencyMs=32965961 deadlineMs=0\n[API] pending_dns_job_3: jobId=22002 service=DnsAutostartJobService persisted=true minLatencyMs=0 deadlineMs=0\n\n== APPS ==\n[API] app_ar.tvplayer.tv: true\n[API] app_ar.tvplayer.tv.beta: false\n[API] app_org.videolan.vlc: true\n[API] app_com.ericformation.tv.erictvinstaller: true\n\n== NOTE ==\nLes lignes ci-dessus sont uniquement des valeurs récupérées directement. Le service ajoutera ensuite ses propres mesures [SERVICE].\n\n== TESTS SERVICE (brut) ==\nENGINE=stable\nenabled=true\nrunning=true\nprovider=quad9\ntransport=udp\ntun_thread_alive=true\nvpn_interface=true\nstable_session_at=1773060924430\ntun_rx_packets=13\ndns_queries=6\ndns_responses=6\ndns_errors=0\nlast_query_at=1773060934912\nlast_response_at=1773060934931\nrtt_last_ms=14\nrtt_avg_ms=16\nlast_packet_at=1773060934912\nlast_error=\nnote=Diagnostic passif (aucun test réseau actif)\n"
}