L'accès à logcat doit-il être root?


9

Mon appareil est déjà enraciné, c'est pourquoi je demande.

Avez-vous besoin de root pour surveiller le flux logcat sur le téléphone? Si j'exécutais la commande logcat à partir d'un terminal sur le téléphone, cela fonctionnerait-il?

Réponses:


15

Ces applications gratuites sur le marché prétendent pouvoir afficher votre logcat et ne font aucune mention de root. Cela ne devrait vous prendre que quelques minutes pour les essayer:

EDIT: Merci à @mente de m'avoir rappelé que ces applications ne vous permettront d'afficher le fichier journal complet que dans les anciennes versions d'Android. Android 4.1 a introduit un nouveau modèle de sécurité autour des fichiers journaux qui signifiait que les applications ne pouvaient lire que leurs propres fichiers journaux et entrées de fichier journal, et ne pouvaient pas lire les entrées de fichier journal écrites par le système ou d'autres applications.

Il existe cependant à la fois un moyen pour l'utilisateur d'une application de générer un fichier journal des entrées de journal récentes de l'application à envoyer à un développeur, et pour le propriétaire d'un téléphone d'accorder des autorisations pour permettre à une application de lire le fichier journal sans racine complète, mais cela vous oblige à utiliser une commande ADB, ce qui la rend malheureusement hors de portée de la plupart des utilisateurs de téléphones normaux:

Si vous souhaitez que l'utilisateur vous donne des informations de débogage, vous pouvez lui demander de générer un rapport de bogue avec power + volume down + volume up qui inclut les journaux et de nombreuses autres données, et affiche automatiquement son application de messagerie pour tout envoyer (plus une capture d'écran). Nous étions en train de discuter que nous devrions également avoir un moyen plus facile de les générer, je vais regarder ajouter quelque chose à l'application des paramètres.

J'ai également commencé à introduire le concept d'une autorisation de «développement», qui lit les journaux est classé comme. Cela permet à l'application de demander l'autorisation, mais pas de l'obtenir lors de l'installation. Vous pouvez cependant lui accorder une commande shell adb une fois qu'il est installé. À un moment donné plus tard, je m'attends à avoir une interface utilisateur dans le système pour le faire, mais nous allons nous en tenir à cela pour faire attention à la façon dont nous présentons cela.

Extrait d'une publication sur Google Groupes par Dianne Hackborn, ingénieur cadre Android. Mon accent.

La commande ADB mentionnée pour accorder à une application l'autorisation de lire les journaux est:

adb shell pm grant <pkg> android.permission.READ_LOGS

Ce paramètre devrait survivre aux redémarrages et mises à niveau de l'application (mais pas aux désinstallations / réinstallations).


À partir d'Android 4.1, vous avez besoin d'un accès root pour lire les journaux des autres applications. Le développeur de CatLog a posté une explication . Supposons que ces applications fonctionnent pour les versions <4.1
mente

1
Ce raccourci ne fonctionne pas sur le mien Android 4.1.2
mente

J'ai créé un utilitaire pour collecter les journaux à partir d'un PC: gist.github.com/hrj/5983971
HRJ

4

Vous n'avez pas besoin de rooter votre téléphone pour exécuter adb logcatle SDK Android, mais je viens de le tester dans mon émulateur de terminal et je devais être root (utilisé lesu commande - mon téléphone est déjà rooté) pour exécuter logcat dans le terminal sur mon téléphone.

Alors oui: si vous avez root sur votre téléphone, vous pouvez exécuter logcat à partir d'un terminal sur votre téléphone.


1

Non, vous n'avez pas besoin de root pour obtenir des informations sur logcat.

Pour ce faire, vous souhaiterez probablement télécharger le SDK Android et exécuter "adb logcat", à l'aide de l'outil adb fourni avec le SDK. Alternativement, vous pouvez installer le plugin ADT Eclipse et utiliser sa visionneuse Logcat en streaming pratique.


je veux le faire depuis le téléphone, pas depuis une machine distante avec le SDK
Wulfbane

1

Non, vous n'avez pas besoin de root pour accéder à logcat. Mon appareil (Samsung Galaxy Note, Gingerbread 2.3.6 avec ROM d'origine) n'est pas (encore!) Enraciné et j'ai utilisé les moyens suivants pour accéder au journal sur mon appareil:

  • Application CatLog
  • aLogcat app
  • Application SSHDroid activée et connectée au terminal de l'appareil à l'aide d'un client SSH
  • Utilisation du SDK Android et exécution adb logcat

Cependant, l'application Terminal ne vous permet pas d'exécuter logcat et vous donne une "autorisation refusée". Je ne sais pas pourquoi.


oui, le pain d' épice ... mais Android d'aujourd'hui ne nécessitent racine.
NH.

1

Il semble que vous ne puissiez pas exécuter logcat à partir de l'émulateur de terminal sans avoir root sur votre téléphone. Dans ce cas, vous devez en premier. AFAIK, il vient des autorisations Android: l'émulateur de terminal n'a tout simplement pas assez d'autorisations pour afficher le journal de l'appareil. Donc, le système dit l'autorisation refusée.

D'autre part, comme d'autres l'ont dit, il existe de nombreuses applications qui vous permettent d'afficher le journal de l'appareil simplement parce qu'ils demandent la permission.



0

Logcat n'a pas besoin de root. Simples - c'est une norme de facto à tous les niveaux en ce qui concerne les différentes versions d'Android et fait partie d'Android, que vous soyez enraciné ou non, et est un moyen standard de diagnostiquer les problèmes comme par exemple - vous installez une application, la fermeture forcée de l'application, vous vous plaignez auprès du développeur de ladite application, les chances sont assez élevées que le développeur demandera "envoyer le logcat", que vous soyez rooté ou non!

aLogCat est un moyen de collecter les informations, avec la possibilité de se connecter à la mise en page de la page Web ou au texte brut, gardez à l'esprit que si vous le planifiez pour vous connecter à une certaine fréquence, comme toutes les 15 minutes, la carte SD se remplira assez rapidement.

Un autre aspect, l'utilisation de logcat dépendra du noyau en termes de quantité qu'il peut stocker - dans tout noyau utilisé par la ROM, la source de la journalisation au niveau du noyau, où il réserve la mémoire pour le service logcat peut être trouvé en drivers/staging/android/logger.cutilisant les définitions appropriées, par exemple:

DEFINE_LOGGER_DEVICE (log_main, LOGGER_LOG_MAIN, 64 * 1024) DEFINE_LOGGER_DEVICE (log_events, LOGGER_LOG_EVENTS, 256 * 1024) DEFINE_LOGGER_DEVICE (log_radio, LOGGER_LOG_RADIO, 64 * 1024) DEFINE_LOGGER_DEV_SYS

Encore une fois, le kilométrage variera, certains développeurs de telles ROM choisiront de minimiser la consommation pour réduire les frais de mémoire ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.