Logcat – Was ist das?

Das Logcat (Systemlog) des Android Smartphones
Das Logcat der Android Smartphones ist ein s.g. System Logger, der zu jeder Zeit im Android Betriebssystem aktiv ist. Jede App und jeder Prozess, der auf dem Smartphone aktiv ist, hat die Möglichkeit verschiedene Arten von Meldungen in dieses Log hineinzuschreiben.
Normalerweise sind die dort zu lesenden Meldungen sehr technisch und für den normalen Benutzer eigentlich nicht von Belang und tragen auch in keiner Weise zur Funktion einer App bei. Sie dienen im Normalfall nur den Entwicklern von Apps um Fehler, die während des Betriebes auftreten, besser analysieren zu können.

Man kann das Logcat theoretisch mit einer Überwachungskamera auf einer Autobahn vergleichen. Diese Kameras zeichnen einen gewissen Zeitraum lang alle Fahrzeuge auf, welche die Kamera passieren. Dabei werden eben die Dinge aufgezeichnet, die ein Auto von sich preisgibt, Kennzeichen, Farbe, Typ des Fahrzeugs, Anzahl der Fenster usw. Schreibt nun ein Fahrzeugbesitzer auf sein Autodach mit weißer Farbe: “Mein Name ist Franz Müller”, so wäre das vergleichbar damit mit einer Programmzeile wie :

Log.i(“Name des Besitzers”, “Mein Name ist Franz Müller”);

Also einem Eintrag ins Logcat.

Zunächst, welche Arten von Meldungen kann das Log enthalten?
Es gibt die sogenannten LogLevel: Debug, Error, Info, Warn. Im Normalfall bestimmt der Entwickler selber, ob und was er mit welchem dieser Loglevel in das Log schreibt. Der Loglevel Debug bspw. enthält normalerweise nur Ausgaben, die dem Entwickler während der Entwicklung Informationen darüber liefern ob sich sein Applikations-Code so verhält wie er es sich gedacht hat.
Der Loglevel Error dagegen sollte nur dann verwendet werden, wenn wirklich ein Fehler im Programmablauf passiert. Mit dem Loglevel Warn werden Meldungen klassifiziert die zwar nicht unbedingt positiv sind, aber den Ablauf der Applikation im Normalfall nicht weiter stören.
Der Loglevel Info wird in der Regel verwendet, um Dinge zu informativen Zwecken im Logfile auszugeben, die auch anderen von Nutzen sein könnten. Zu Beispiel wie lange der Download einer Datei gedauert hat o.ä.

Wie groß kann so ein Log werden?
Die Größe eines Logs ist beschränkt und kann auf verschiedenen Geräten variieren. Auf dem Samsung Galaxy Note bspw. ist das Logcat etwa 800 Kb groß. Auf anderen Geräten kann das um einiges kleiner sein. (Standard ist laut Google 64 Kb)
Als Anhaltspunkt: In den etwa 800Kb Logcat des Samsung Galaxy Note befinden sich etwa 7900 Logzeilen.
(Die maximale Länge einer Logzeile ist auf etwa 4Kb begrenzt)

Wie funktioniert das mit der Größenbeschränkung?
Die Größenbeschränkung rührt daher, dass das Logcat eigentlich ein sogenannter Ringpuffer ist. Stellt Euch einen zum Ring geformten Schlauch vor. An einem Ende beginnt man Wasser hineinzuschütten und wenn der Ring voll ist, strömt das Wasser am anderen Ende wieder heraus. Dabei wird genau der Tropfen, der als erstes in den Schlauch gelangte, diesen auch als erster wieder verlassen. Aus diesem Grund bezeichnet man solche Konstruktionen auch als FIFO (First in, First out) wobei in einem Ringpuffer eigentlich nie etwas den Ringpuffer verlässt, sondern im Gegensatz dazu bei Erreichen des Füllgrades das älteste Element überschrieben wird und dann das nächstälteste usw.

Warum ist diese Größenbeschränkung für uns interessant?
Die Größenbeschränkung des Logcat ist insofern interessant, als dass Ereignisse oder Logzeilen irgendwann wieder aus dem Logcat verschwinden. Wenn man beispielsweise um genau 0:00 Uhr eine App startet, die sagen wir mal 40 Zeilen ins Logcat schreibt und danach nichts mehr am Smartphone macht, sind die Chancen, dass diese 40 Zeilen um 0:30 Uhr noch im Logcat enthalten sind relativ hoch.
Habe ich in der Zwischenzeit jedoch mehrere Apps gestartet, die allesamt relativ viel ins Logcat schreiben oder das Betriebssystem veranlassen so etwas zu tun, dann kann es gut sein, dass die 40 Zeilen um 0:30 schon längst wieder im Ringpuffer überschrieben wurden und somit nicht mehr aufscheinen.

Was schreibt denn nun alles ins Logcat rein?
Im Grunde kann das zum einen jede App die aufgerufen wird, bzw. aktiv ist tun. Darüber hinaus schreiben aber auch Systemprozesse in das Logcat hinein. Um dieses besser trennen zu können, ist das Logcat eine zeitlich orientierte Zusammenfassung mindestens zweier Log-Kategorien.

  • main Log: Hier schreiben die Anwendungen hinein. 512 Kb
  • system Log: Hier schreiben Systemprozesse hinein. 256 Kb

Die restlichen 30 Kb die noch zu den ~800 Kb fehlen bestehen aus möglicherweise noch hinzugefügten Zeitangaben der jeweiligen Logs.

Ist das Logcat gefährlich?
Das Logcat selber ist nicht gefährlich. Lediglich dann, wenn unachtsame Entwickler oder Hersteller Dinge ins Logcat schreiben die dort nichts verloren haben, dann kann es gefährlich werden.
Gefährlich deswegen, weil dieses Logcat mit einer einzigen Berechtigung (READ_LOGS) durch wirklich jede App ausgelesen werden kann. Wenn nun also eine solche App das Log ausliest und im Log zufällig gerade Deine Telefonnummer und die IMEI Deines Handys enthalten sind, dann besteht die Möglichkeit, dass Deine privaten Daten absichtlich oder unabsichtlich in falsche Hände geraten.
Absichtlich schreibe ich hier, weil nicht jede App per se gute Absichten haben muss! Es gibt genug Malware (böswillig entwickelte Apps) die sich teilweise die Finger nach so mancher im Logcat aufscheinender Information abschlecken.
Mit unabsichtlich meine ich, wenn man in gutem Glauben ein Logcat an den Entwickler einer App oder einen Hersteller übermittelt, ohne zu ahnen, welche sensitiven Informationen man da unter Umständen weitergibt. Damit möchte ich allerdings keineswegs irgendwelche Entwickler der böswilligen Nutzung von sensitiven, an sie übermittelten Informationen, beschuldigen!

Kann ich mir ansehen ob in meinem Logcat sensible Daten enthalten sind?
Ja, das kann man sich ansehen. Entweder mit einer der zahlreichen Apps aus dem Market, die das Logcat einfach nur anzeigen (aLogcat ist da sehr beliebt) oder aber noch einfacher mit einer App, die ich speziell für diesen Zweck entwickelt habe.

LogMan Logcat Prüfung liest Dein Logcat aus und zeigt Dir lediglich die Zeilen aus dem Logcat Deines Smartphones, die sensible Daten enthalten.

Im wesentlichen können das folgende Dinge sein:

  • Deine IMEI [Farbe Orange]
  • Deine IMSI [Farbe Orange]
  • Deine Sim-Karten Seriennummer [Farbe Orange]
  • Deine Telefonnummer [Farbe Rot]
  • Deine Emailadresse(n) [Farbe Gelb]
  • Deine mögliche Position (Lokationsdaten) [Farbe Orange]

Werden in Deinem Logcat derartige Daten gefunden, so wird die App Dir diese Dinge entsprechend anzeigen und je nach Grad der Gefährdung einfärben.

7 Gedanken zu „Logcat – Was ist das?“

  1. Hallo Jörg
    zuerst mal dickes Danke für Deine Apps für Android. Ich wollte mir mal Dein LogCat und LogMan ansehen, doch leider konnte ich keinen Verweis auf die APK Dateien finden. Kann es sein, daß Du die nur proprietär auf Google anbietest und Leute ohne dortigen Zugang ausschließt? Oder habe ich was übersehen? Ich würde mich über die APKs freuen.
    Viele Grüße
    Sigi

    (Bei E-Mail Antwort bitte Text drin lassen und quoten. Danke)

  2. Alle meine Apps werden ausschließlich im Play Store von Google angeboten. Nur in Ausnahmefällen wird eine App von mir lokal zum Download angeboten. Ansonsten besteht keine Möglichkeit automatische Updates auszurollen.

  3. Schade. Ich brauche kein automatisches Update! Das ist die schlimmste Erfindung, die schon einigen Unfug und Unkosten angestellt hat. Wenn ich was Neues brauche, könnte ich ja wieder auf Deiner Webseite nachsehen, was Dir ja auch zu Gute käme, wenn denn da das APK zum Doownloaden wäre.

  4. Eine nützliche App, mit der ich schon Spyware entdecken konnte. Ausgerechnet die Super Tool Box 10 versendet IMEIs und weitere private Daten an dritte Werbepartner.

    Leider habe ich seit kurzem ein Problem mit dem SIP-Modus der eingebauten Telefon-App: com.android.phones. Die App verwendet als Profilnamen die Bezeichnung @ (siehe /data/data/com.android.phones/files/profiles/…)

    Sipgate steht in den Logs als @sipgate.de, was von Logcat als Mail-Adresse erkannt wird. Die Telefon-App müllt die Logs regelrecht voll. So um die 150 „Treffer“ sind normal.

    Gibt es eine Möglichkeit bestimmte Suchbegriffe auszublenden? Regex oder Whitelist?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.