Statsd

Moduł Statsd obejmuje statsd, natywny serwis działający w tle, który zbiera dane, oraz usługę Java StatsCompanionService, która działa w procesie systemowym i łączy statsd z Java. Ten moduł można aktualizować, co oznacza, że może on otrzymywać aktualizacje funkcji (np. aktualizacje danych wykorzystywanych do zbierania danych) poza normalnym cyklem wydawania Androida.

Granica modułu

Statsd to główny punkt styczności platformy z zbieraniem danych dotyczących bezpieczeństwa wdrożenia. Moduł statsd zawiera ten kod:

  • statsd w: frameworks/base/cmds/statsd

  • StatsCompanionService w: frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java

  • Podzbiór struktur protobuf platformy, znajdujących się głównie w pliku frameworks/base/core/proto

Jako usługa natywnych, statsd może przetrwać dłużej niż framework i wykrywać awarie w system_server.

W Androidzie 12 kod modułu Statsd został przeniesiony z plików frameworks/base/cmds/StatsD, frameworks/base/apex/StatsDsystem/core/libstats.

Nowa struktura projektu

  • system/core/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/modules/StatsD/bin
  • frameworks/base/apex/StatsD
    • Kopiowanie najwyższego poziomu bez zmian
    • Przenieś jni do framework/jni
    • Przenieś pliki najwyższego poziomu do katalogu /apex
      • frameworks/base/apex/StatsD/\*packages/modules/StatsD/apex/\*
      • frameworks/base/apex/StatsD/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/modules/StatsD/tests

Przykładowe polecenia przenoszenia poprawki

Zastosuj zmiany w tych gałęziach:

  • goog/mainline-prod
  • goog/main
  • goog/\*-plus-aosp
  • aosp/main

Historia plików w Statsd powinna zostać zachowana.

Format modułu

Moduł statsd (com.android.os.statsd) jest w formacie APEX i jest dostępny na urządzeniach z Androidem 11 lub nowszym.

Zależności modułu

Moduł Statsd udostępnia zestaw interfejsów API @hide do rejestrowania zdarzeń z systemu. W przypadku kodu w Javie większość interfejsów @hide została przekształcona, aby opierała się na mniejszym zbiorze metod z etykietą @SystemApi, z uwzględnieniem niewielkiego wygenerowanego kodu łączącego. W przypadku kodu natywnego dotychczasowe funkcje natywne są przekształcane w oficjalne interfejsy API C VNDK za pomocą wygenerowanego kodu pośredniczącego.

Dostosowywanie

Moduł Statsd nie obsługuje dostosowywania.

Testowanie

Pakiet Compatibility Test Suite (CTS) sprawdza funkcjonalność statsd oraz atomów, od których zależy zarządzanie wersjami.