有时候我们需要看某个app是否有某个权限,下面我们有两个方法可以确定该应用是否有该权限
方法一:
比如:我们想看文件浏览器是否有media_rw的权限,我们就先看ps,找到文件浏览器的pid
u0_a31 6653 217 702776 60112 SyS_epoll_ b6d21408 S com.android.fileexplorer
root 6681 1 786596 26748 futex_wait b6d065ec S app_process
root 6683 1 786596 26700 futex_wait b6ca85ec S app_process
root 6685 1 786596 26724 futex_wait b6d185ec S app_process
然后再去proc/pid下面看,这里的话就是proc/6653,然后可以cat status:
root@lte26007:/proc/6653 # cat status
cat status
Name: id.fileexplorer
State: S (sleeping)
Tgid: 6653
Pid: 6653
PPid: 217
TracerPid: 0
Uid: 10031 10031 10031 10031
Gid: 10031 10031 10031 10031
FDSize: 256
Groups: 1015 1023 9997 50031
VmPeak: 991756 kB
VmSize: 702776 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 60640 kB
VmRSS: 60112 kB
我们看到有Groups这项,media_rw应该是1023
我们可以使用id命令确认下:
id media_rw
uid=1023(media_rw) gid=1023(media_rw) groups=1023(media_rw), context=u:r:su:s0
确实是1023,这样就确定文件浏览器应用确实有media_rw的权限。
root@lte26007:/mnt/media_rw # ls -l
ls -l
drwxrwx--- media_rw media_rw 1970-01-01 08:00 5F39-14EA
我们再看上面这个目录,比如如果是otg插存储卡,那么只会将路径挂载在mnt/media_rw 不会进行fuse操作,这样只能拥有media_rw权限才能对该文件操作。
方法二:
我们可以去/system/etc/permissions目录的platform.xml查看media_rw对应的权限
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="media_rw" />
<group gid="sdcard_rw" />
</permission>
然后再去文件浏览器源码中的的AndroidManifest.xml文件,如下代码,就知道有该权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>