Jak sprawdzić historię połączeń Bluetooth na Androidzie?

Pytanie

Android jak sprawdzić historię połączeń bluetooth

Odpowiedź Sztucznej Inteligencji


Bezpośrednia odpowiedź na pytanie

  • „Czysty” Android nie udostępnia użytkownikowi pełnej, chronologicznej historii połączeń Bluetooth.
  • Możesz jedynie:
    • sprawdzić listę sparowanych / ostatnio podłączonych urządzeń w Ustawieniach,
    • odczytać krótką listę ostatnich „Connection Events” poleceniem adb shell dumpsys bluetooth_manager,
    • zarejestrować przyszłe połączenia, włączając „Bluetooth HCI Snoop Log” w Opcjach Programisty lub korzystając z logcat/plików w /data/misc/bluetooth/.
  • Pełny wgląd w starsze zdarzenia wymagałby wcześniejszego włączenia logowania albo dostępu root do wewnętrznych plików logów.

Szczegółowa analiza problemu

  1. Dlaczego nie ma łatwo dostępnej historii
    • Android przechowuje tylko to, co jest niezbędne do ponownego łączenia (adres MAC, klucze parowania); szczegółowe daty i czasy nie są eksponowane z powodów prywatności i oszczędności zasobów.
    • Od Androida 12 obowiązują dodatkowe uprawnienia (BLUETOOTH_CONNECT, BLUETOOTH_SCAN), które ograniczają aplikacjom możliwość samodzielnego zbierania danych.

  2. Metody uzyskania informacji (od najprostszej)
    a) Ustawienia → Bluetooth/Połączone urządzenia
    • Widoczne: nazwa, ikonka typu urządzenia, czasem lakoniczne „Ostatnio”.
    • Brak osi czasu.

    b) ADB bez roota (wymaga aktywacji „Debugowanie USB”)

       adb shell dumpsys bluetooth_manager      # lista zdarzeń (sekcja Connection Events:)
       adb logcat | grep -i bluetooth           # bieżące logi

    dumpsys przechowuje zwykle 20–40 ostatnich zdarzeń z informacją „time = xx ms ago”.

    c) Bluetooth HCI Snoop Log (opcja programisty)
    • Włącz: Ustawienia → System → Opcje programisty → „Włącz dziennik śledzenia Bluetooth HCI”.
    • Plik btsnoop_hci.log zapisuje się w /sdcard/ lub /data/misc/bluetooth/.
    • Odczyt: adb pull /sdcard/btsnoop_hci.log i analiza w Wireshark (profil Bluetooth).
    • Loguje dopiero od chwili aktywacji; duża szczegółowość (adresy MAC, profile, znaczniki czasu).

    d) Funkcje/OEM-owe (Samsung)
    • Kod dialera *#9900#dumpstate/logcat → copy to sdcard tworzy plik dumpstate…txt, zawierający m.in. log Bluetooth.
    • Ustawienia → Połączenia → Bluetooth → „Ustawienia zaawansowane” → „Historia sterowania Bluetooth” – pokazuje tylko, która aplikacja włączyła/wyłączyła BT, nie historię urządzeń.

    e) Root / dostęp do plików systemowych
    /data/misc/bluedroid/bt_config.conf – dla każdego sparowanego urządzenia przechowuje LinkKey, Type, Address i Timestamp (Unix epoch); można odczytać ostatnią datę parowania.
    • Starsze logi w katalogach /data/log/bt/, /data/misc/bluetooth/logs/ (rotowane, wymagają roota).

    f) Aplikacje monitorujące (np. Bluetooth Log Collector, MatLog)
    • Działają od momentu instalacji, korzystają z uprawnień logcat lub Accessibility, mogą więc tworzyć własną historię; nie odzyskają przeszłości.

  3. Teoretyczne podstawy
    • Stos Bluetooth w Androidzie (Fluoride od A 8.0, wcześniej Bluedroid) udostępnia usługę BluetoothManagerService, która zapisuje wybrane zdarzenia do EventLogger.
    • Wydarzenia przechowywane są w RAM (bufor pierścieniowy) i mogą zostać wyczyszczone po restarcie lub rotacji logu.

  4. Praktyczne zastosowania
    • Diagnostyka zrywania połączeń (analiza HCI).
    • Audyty bezpieczeństwa – wykrywanie nieautoryzowanych urządzeń.
    • Tworzenie własnych aplikacji audytowych – nasłuch BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED.

Aktualne informacje i trendy

  • Android 14 wprowadza jeszcze agresywniejsze ograniczenia dostępu do logcat dla aplikacji produkcyjnych; analizę trzeba prowadzić za pomocą ADB lub roota.
  • Coraz więcej OEM-ów (Samsung, Xiaomi) oferuje własne „Device Diagnostics” z sekcją Bluetooth, ale wciąż bez pełnej chronologii.
  • LE Audio (Bluetooth 5.3) dodaje nowe role i strumienie; nowsze pliki HCI zawierają ramki Isochronous (ISOC). Narzędzia, takie jak najnowszy Wireshark 4.x, już je dekodują.

Wspierające wyjaśnienia i detale

Przykładowa procedura krok-po-kroku (bez roota)

  1. adb devices – upewnij się, że telefon jest widoczny.
  2. adb shell dumpsys bluetooth_manager > bt_events.txt
  3. Otwórz plik, wyszukaj sekcję:
    Connection Events:
       0: 2023-09-12 14:23:56   AA:BB:CC:DD:EE:FF  HEADSET      Connected
       1: 2023-09-12 13:05:21   11:22:33:44:55:66  A2DP         Disconnected
  4. Jeżeli potrzebujesz pakiet-po-pakiecie: włącz HCI, odtwórz problem, pobierz log, otwórz w Wireshark, filtr btatt || btl2cap.

Aspekty etyczne i prawne

  • Identyfikatory MAC i znaczniki czasu stanowią dane osobowe wg RODO; ich gromadzenie wymaga podstawy prawnej i poinformowania użytkownika.
  • Logi HCI mogą zawierać fragmenty danych użytkownika (np. metadane rozmów HFP); zabezpiecz pliki i usuń je po zakończeniu diagnostyki.
  • Rootowanie telefonu może naruszać warunki gwarancji i politykę SafetyNet.

Praktyczne wskazówki

  • Chcesz tylko sprawdzić, czy ktoś ostatnio podłączył się do Twojego telefonu? ⇒ dumpsys bluetooth_manager wystarczy.
  • Diagnostyka zrywania w samochodzie? ⇒ włącz HCI Snoop, przejedź trasę, wyłącz, analizuj w Wiresharku.
  • Monitorowanie długoterminowe ⇒ napisz własny serwis z BroadcastReceiverem + lokalna baza SQLite.
  • Unikaj pozostawiania HCI Snoop włączonego na stałe – plik rośnie i obciąża baterię.

Ewentualne zastrzeżenia lub uwagi dodatkowe

  • dumpsys nie jest standardowo udostępniany aplikacjom spoza ADB; zwykła aplikacja z Play Store nie odczyta tych danych bez uprawnień shell.
  • Bufor „Connection Events” jest ograniczony (zwykle 40 pozycji) i resetuje się po restarcie.
  • Niektóre urządzenia (Pixel) kompilowane w trybie userdebug mają szersze logi niż wersje produkcyjne.

Sugestie dalszych badań

  • Analiza bt_config.conf zmian wartości Timestamp = vs. realny czas systemowy.
  • Porównanie nowych funkcji logowania w Android 15 (Project Mainline — Bluetooth GKI).
  • Badania nad lokalizacją użytkownika na podstawie pasywnych logów Bluetooth i implikacje prywatności.
  • Narzędzia Open-Source: bluetoothdumper, reconbt, btmon (BlueZ) – adaptacja do Androida.

Krótkie podsumowanie

Android nie archiwizuje dla użytkownika pełnej historii połączeń Bluetooth. Możesz:

  1. Zobaczyć sparowane/ostatnio użyte urządzenia w Ustawieniach.
  2. Wyciągnąć kilkanaście ostatnich zdarzeń poleceniem adb shell dumpsys bluetooth_manager.
  3. Włączyć „Bluetooth HCI Snoop Log”, aby nagrywać przyszłe sesje i analizować je w Wiresharku.
    Pełna, wsteczna historia jest dostępna jedynie wtedy, gdy wcześniej aktywowałeś logowanie lub masz dostęp root do rotowanych logów systemowych.

Oceń odpowiedź:

Zadaj dodatkowe pytanie Sztucznej Inteligencji

Czekaj (1min)...
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.