3 votos

Cómo arreglar "dmesg: klogctl: Permiso denegado" para el usuario normal en Android?

Tengo un dispositivo Samsung rooteado (system-as-Root). Cuando abro adb shell y ejecutar el dmesg entonces se comporta de manera diferente para su y normal user . Lanza

dmesg: klogctl: Permiso denegado

error cuando lo ejecuto sin su concha.

Por favor, sugiera cómo puedo solucionarlo.

2voto

Jack Wade Puntos 231

dmesg llama a la biblioteca C klogctl función de envoltura para el kernel syslog syscall que lee el ring buffer del kernel accediendo a /dev/kmsg dispositivo de carácter. adb shell dmesg devuelve un error de permisos denegados porque adbd que se ejecuta con el contexto u:r:shell:s0 no está permitido por SELinux para leer el registro del kernel. Es necesario permitirlo explícitamente ( requiere de Root ):

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

Si la propiedad ro.logd.kernel se ajusta a true (por defecto en debuggable ), el demonio de registro de Android ( logd ) escribe los mensajes del kernel en un buffer separado llamado kernel que se puede leer con logcat ( no requiere Root ):

~$ logcat -b kernel

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X