Saturday, August 18, 2018

4.1 jelly bean - How can I access android log files on my Nexus 7 without root access?


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

samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...