1 votes

Quel processus est responsable de la capture des données d'utilisation (mobile/WiFi) ?

Le problème est qu'il est cassé pour moi. J'ai personnalisé assez fortement, en particulier en installant un pare-feu qui utilise root et en désactivant les récepteurs de diffusion et les services dans de nombreuses applications Huawei et Google préinstallées. Je suppose que l'un d'entre eux doit être responsable de capturer la quantité de données qui circule sur chaque interface et à partir de quelle application elle provient, puisque la fonctionnalité est cassée.

Quel processus (sur n'importe quel téléphone Android, je peux probablement trouver l'équivalent une fois que je sais où chercher) est responsable de cela?

0 votes

Ainsi, vos "< settings -> data >" ne sont pas suivis correctement?

0 votes

@rogerdpack Oui

4voto

Irfan Latif Points 16863

DataUsageController (un composant de l'application Paramètres) collecte des données à partir de NetworkStatsService (1) qui fait partie du framework Android, c'est-à-dire system_server et dépend de (2) TrafficController (un composant du service natif netd) qui utilise à son tour libqtaguid pour taguer les sockets réseau sur une base par application/UID. Auparavant, le module kernel qtaguid était utilisé pour suivre les sockets tagués (en lisant "/proc/net/xt_qtaguid/stats" (3)) qui est remplacé par le framework eBPF désormais. Désormais, l'utilisation des données sera disponible dans un système de fichiers virtuel ("/sys/fs/bpf/traffic_uid_stats_map" (4)).

Les restrictions de politique réseau (Données/Économiseur de batterie et Données d'arrière-plan (5)) et Limitation/Alerte de données sont principalement mises en œuvre par NetworkPolicyManager et NetworkManagementService. En arrière-plan, netd insère/supprime des règles iptables (6) pour imposer des restrictions dans l'espace du noyau.

Les modules qtaguid (7) et quota2 font partie uniquement du noyau Android (8) tandis que owner fait partie du noyau Linux principal.

LIÉ: Comment visualiser le trafic réseau demandé par une application spécifique ?


RÉFÉRENCES:

1. Celui auquel nous pouvons accéder avec dumpsys netstats
2. À travers NetworkStatsManager / TrafficStats / SocketTagger, JNI NetworkManagementSocketTagger, libcutils (qtaguid), NetdClient, le serveur FwmarkServer de Netd et éventuellement d'autres
5. Peut être lu / défini par dumpsys netpolicy et cmd netpolicy
6. En utilisant les modules owner et quota2
7. Basé sur le module owner et dépend du module socket

1 votes

Woa, je ne m'attendais pas à une réponse aussi détaillée étant donné que c'est très spécialisé. Très content d'avoir décidé de poser la question quand même. Merci beaucoup! Je vais me plonger dans cela, mais en regardant simplement /proc/net/xt_qtaguid/stats, il semble que ce sont les données d'utilisation que je recherche et ce n'est que l'écran des paramètres de données d'utilisation qui est cassé (je peux analyser manuellement les fichiers csv, aucun problème). Je dois juste comprendre sur quelle période se fait ce suivi et ce que signifient toutes les colonnes (comme cnt_set). Je vais me pencher sur cela quand j'aurai un peu de temps dans quelques heures :)

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X