Tuesday, March 12, 2013

Android: Jellybean does not allocate READ_LOGS to apps anymore

I just realized in JellyBean, apps cannot get READ_LOGS permission any more, even if you declare it in your mainfest.xml file. It's not a good news for researchers or developers because some useful tools cannot be used in JellyBean, e.g., alogcat, an app to print out system logs, now only can print its own logs which is useless.

This thread has a heated discussion on this issue
https://groups.google.com/forum/m/?fromgroups#!topic/android-developers/6U4A5irWang
It's fun to read it.

BTW, I found that we actually can partially solve this issue by using adb shell. For example, system can grant the permission in this way:

adb shell pm MyPkg android.permission.READ_LOGS

I tried it on a rooted Galaxy Nexus, it works well. But if you disconnect your phone with your PC, your permission is gone.

I guess the reason is that the protectionLevel for READ_LOGS is now "signature|system|development". 

Currently I have no idea how to solve this problem in Jelly Bean.