Since aLogcat now no longer works with Jelly Bean, how can I access the system log files on my device without either root access or attaching it to a computer?
I have tried using adb logcat
from my PC and that worked fine, so I know that plenty of messages are being logged.
Using logcat
from Android Terminal Emulator on my Nexus 7 shows almost no output though and adb logcat
from Android Terminal Emulator, starts the daemon but then just says - waiting for device -
and nothing more appears.
So, is it possible to access android log files on my Nexus 7 without root access?
Answer
No, for security reasons it is not possible to access android log files on the Nexus 7 (or any other device running Jelly Bean or higher) without root access. Google changed that with Jelly Bean.
I'd suggest you wait until logcat readers like aLogCat and such get fixed (i.e. they will require root access to show all logs then).
From AISEC-TR-2012-001-Android-OS-Security.pdf - 3.3 Android Permission Model:
The READ_LOGS permission can substitute the following on many devices, depending on the Android version and thus the standard apps’ versions installed:
READ_CONTACTS
GET_TASKS – every started Activity is listed in the system’s logs
READ_HISTORY_BOOKMARKS – opening new web pages is a browser Activity and thus logged
READ_SMS
All solutions below require root access:
You need to either run logcat as root in a shell or manually grant it via the shell pm command (root required) works also (see XDA, exchange org.jtb.alogcat.donate with the app's pkg name):
pm grant org.jtb.alogcat.donate android.permission.READ_LOGS
This is for the lazy ones and not suggested: If you're desperate, careless and lazy, you can fix it by giving every app the READ_LOGS permission by applying this ugly and insecure hack (Chainfire via twitter):
chmod 04755 /system/bin/logcat
To quote CyanogenMod developer Koushik Dutta's G+ post:
Did the Android Log permissions/behavior change in JellyBean?
It seems that if an application runs "logcat" now, it can see only the log entries created by its UID. Log lines from other UIDs are not shown. Basically, it seems to be filtered now.
I have the same permissions as usual. Also confirmed the same thing is happening in other log collector apps.
No comments:
Post a Comment