{
    "type": "dns_diagnostic",
    "version": "3.0",
    "timestamp": 1773036714240,
    "device": "Amazon AFTKM",
    "android": "11 (API 30)",
    "brand": "Amazon",
    "product": "karat",
    "fingerprint": "Amazon\/karat\/karat:11\/RS8166.3482N\/0030736751236:user\/amz-p,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 07:09:44 — il y a 2min 8s\n[TRACE] dns_last_start_reason: stable:boot:android.intent.action.MY_PACKAGE_REPLACED\n[TRACE] dns_last_established_at: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_last_ready_wall: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_last_packet_at: 09\/03\/2026 07:11:35 — il y a 18s\n[TRACE] dns_last_error: Non enregistré\n[TRACE] dns_queries_responses_errors: 21 \/ 21 \/ 0\n[DPREF] boot_profile: Non enregistré\n[DPREF] boot_state: Non enregistré\n[DPREF] boot_session_id: Non enregistré\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 07:09:44 — il y a 2min 8s\n[TRACE] dns_last_start_reason: stable:boot:android.intent.action.MY_PACKAGE_REPLACED\n[TRACE] dns_last_established_at: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_last_ready_wall: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_last_packet_at: 09\/03\/2026 07:11:35 — il y a 18s\n[TRACE] dns_last_error: Non enregistré\n[TRACE] dns_queries_responses_errors: 21 \/ 21 \/ 0\n[DPREF] boot_profile: Non enregistré\n[DPREF] boot_state: Non enregistré\n[DPREF] boot_session_id: Non enregistré\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: Amazon\n[API] model: AFTKM\n[API] brand: Amazon\n[API] product: karat\n[API] device: karat\n[API] hardware: mt8696\n[API] android_release: 11\n[API] android_api: 30\n[API] build_display: RS8166.3482N\n[API] fingerprint: Amazon\/karat\/karat:11\/RS8166.3482N\/0030736751236:user\/amz-p,release-keys\n[API] uptime_ms: 48890349 (temps depuis le dernier démarrage Android)\n\n== SYSTÈME \/ ÉNERGIE ==\n[API] ram_avail_mb: 573\n[API] ram_total_mb: 1669\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: 2361\n[API] storage_total_mb: 5040\n\n== RÉSEAU ANDROID ==\n[API] active_network_present: true\n[API] transport_wifi: true\n[API] transport_ethernet: false\n[API] transport_vpn: true\n[API] capability_internet: true\n[API] capability_validated: true\n[API] interface_name: tun0\n[API] wifi_ssid: <unknown ssid>\n[API] wifi_rssi_dbm: -38\n[API] wifi_link_speed_mbps: 1201\n[API] wifi_frequency_mhz: 5500\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::5935:e7a1:6189:b68f%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: FIRE_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 07:09:44 — il y a 2min 8s\n[TRACE] dns_last_start_reason: stable:boot:android.intent.action.MY_PACKAGE_REPLACED\n[TRACE] dns_last_established_at: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_last_established_wall: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_last_ready_wall: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_last_packet_at: 09\/03\/2026 07:11:35 — il y a 18s\n[TRACE] dns_last_error: Non enregistré\n[TRACE] dns_wd_last_check_at: Non enregistré\n[TRACE] dns_wd_last_ok_at: Non enregistré\n[TRACE] dns_wd_last_latency_ms: Non enregistré\n[TRACE] dns_wd_fail_streak: Non enregistré\n[TRACE] dns_auto_restart_count: Non enregistré\n[TRACE] dns_auto_restart_last_at: Non enregistré\n[TRACE] dns_auto_restart_last_reason: Non enregistré\n[TRACE] dns_transport_active: udp\n[TRACE] dns_stable_session_start_at: 09\/03\/2026 07:09:40 — il y a 2min 12s\n[TRACE] dns_stable_tun_rx_packets: 50\n[TRACE] dns_stable_dns_queries: 21\n[TRACE] dns_stable_dns_responses: 21\n[TRACE] dns_stable_dns_errors: 0\n[TRACE] dns_stable_last_query_at: 09\/03\/2026 07:11:35 — il y a 18s\n[TRACE] dns_stable_last_response_at: 09\/03\/2026 07:11:35 — il y a 18s\n[TRACE] dns_stable_last_rtt_ms: 32\n[TRACE] dns_stable_avg_rtt_ms: 23\n[TRACE] dns_stable_non_dns_ignored: 29\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=21\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: Non enregistré\n[DPREF] boot_profile: Non enregistré\n[DPREF] boot_state: Non enregistré\n[DPREF] boot_started_at_wall: Non enregistré\n[DPREF] boot_started_at_elapsed: Non enregistré\n[DPREF] boot_deadline_wall: Non enregistré\n[DPREF] boot_dispatch_count: Non enregistré\n[DPREF] boot_verify_count: Non enregistré\n[DPREF] boot_last_dispatch_wall: Non enregistré\n[DPREF] boot_last_verify_wall: Non enregistré\n[DPREF] boot_network_validated_wall: Non enregistré\n[DPREF] boot_last_failure_code: Non enregistré\n[DPREF] boot_quarantine_until_wall: Non enregistré\n[DPREF] boot_consecutive_failures: Non enregistré\n[DPREF] boot_last_success_wall: Non enregistré\n\n== JOBS PLANIFIÉS ==\n[API] pending_dns_job_0: jobId=10 service=SystemJobService persisted=false minLatencyMs=1092971 deadlineMs=0\n[API] pending_dns_job_1: jobId=3 service=SystemJobService persisted=false minLatencyMs=37092221 deadlineMs=0\n[API] pending_dns_job_2: jobId=22001 service=DnsAutostartJobService persisted=true minLatencyMs=5000 deadlineMs=30000\n[API] pending_dns_job_3: jobId=5 service=SystemJobService persisted=false minLatencyMs=37092252 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=1773036580863\ntun_rx_packets=50\ndns_queries=21\ndns_responses=21\ndns_errors=0\nlast_query_at=1773036695031\nlast_response_at=1773036695065\nrtt_last_ms=32\nrtt_avg_ms=23\nlast_packet_at=1773036695031\nlast_error=\nnote=Diagnostic passif (aucun test réseau actif)\n"
}