有时候我们需要看某个app是否有某个权限,下面我们有两个方法可以确定该应用是否有该权限
方法一:
比如:我们想看文件浏览器是否有media_rw的权限,我们就先看ps,找到文件浏览器的pid
[html] view plain copy print ? 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 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:
[html] view plain copy print ? 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 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命令确认下:
[html] view plain copy print ? id media_rw uid=1023(media_rw) gid=1023(media_rw) groups=1023(media_rw), context=u:r:su:s0 id media_rw uid=1023(media_rw) gid=1023(media_rw) groups=1023(media_rw), context=u:r:su:s0确实是1023,这样就确定文件浏览器应用确实有media_rw的权限。
[html] view plain copy print ? root@lte26007:/mnt/media_rw # ls -l ls -l drwxrwx--- media_rw media_rw 1970-01-01 08:00 5F39-14EA 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对应的权限
[html] view plain copy print ? <permission name="android.permission.WRITE_MEDIA_STORAGE" > <group gid="media_rw" /> <group gid="sdcard_rw" /> </permission> <permission name="android.permission.WRITE_MEDIA_STORAGE" > <group gid="media_rw" /> <group gid="sdcard_rw" /> </permission>然后再去文件浏览器源码中的的AndroidManifest.xml文件,如下代码,就知道有该权限
[html] view plain copy print ? <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"/>