5 votes

Comment corriger "dmesg : klogctl : Permission denied" pour un utilisateur normal sur Android ?

J'ai un appareil Samsung rooté (system-as-Root). Lorsque j'ouvre adb shell et exécuter le dmesg alors il se comporte différemment pour su y normal user . Il jette

dmesg : klogctl : Permission refusée

erreur lorsque je l'exécute sans su coquille.

Veuillez me suggérer comment résoudre ce problème.

4voto

Irfan Latif Points 16863

dmesg appelle la bibliothèque C klogctl pour la fonction d'encapsulation du noyau syslog syscall qui lit le tampon circulaire du noyau en accédant à /dev/kmsg dispositif de caractères. adb shell dmesg renvoie une erreur de type "permissions refusées" car adbd qui fonctionne avec le contexte u:r:shell:s0 n'est pas autorisé par SELinux à lire le journal du noyau. Vous devez l'autoriser explicitement ( nécessite une racine ):

~# supolicy --live 'allow shell kernel system syslog_read'

Si la propriété ro.logd.kernel est réglé sur true (par défaut sur debuggable ), le démon de journalisation d'Android ( logd ) écrit les messages du noyau dans un tampon séparé nommé kernel qui peut être lu en utilisant logcat ( ne nécessite pas de racine ):

~$ logcat -b kernel

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