Android绕过授权方法实践(三)

*郑重声明:本文内容只为学习研究之用,如有人用于非法用途,产生的后果笔者不负任何责任。

找到一个方法,在PC端adb shell中执行pm grant com.android.xxx android.permission.READ_CONTACTS就可以授权成功,无需root。

实验结果如下表所示:

设备 系统版本 结果
Pixel/Pixel 2 Android 10 成功
一加6 Android 10 成功
小米max 2 Android 7.1 失败

小米手机由于厂商自定义了一系列安全措施,比原生系统更严格一些。

以Pixel为例,介绍获取权限的过程:

将设备的开发者选项打开,进入USB调试状态,连接至PC端。

然后,执行命令:

adb push getPermission.sh /storage/emulated/0/Download,

将shell脚本getPermission.sh拷贝至手机Download目录下。

脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 #!/bin/bash

pm grant com.android.xxx android.permission.READ_SMS

pm grant com.android.xxx android.permission.READ_CALENDAR

pm grant com.android.xxx android.permission.READ_CALL_LOG

pm grant com.android.xxx android.permission.ACCESS_FINE_LOCATION

pm grant com.android.xxx android.permission.RECEIVE_SMS

pm grant com.android.xxx android.permission.READ_EXTERNAL_STORAGE

pm grant com.android.xxx android.permission.READ_PHONE_STATE

pm grant com.android.xxx android.permission.SEND_SMS

pm grant com.android.xxx android.permission.CALL_PHONE

pm grant com.android.xxx android.permission.WRITE_CONTACTS

pm grant com.android.xxx android.permission.CAMERA

pm grant com.android.xxx android.permission.WRITE_CALENDAR

pm grant com.android.xxx android.permission.WRITE_EXTERNAL_STORAGE

pm grant com.android.xxx android.permission.RECORD_AUDIO

pm grant com.android.xxx android.permission.READ_CONTACTS

在cmd中执行命令:

adb shell

cd /storage/emulated/0/Download

sh getPermission.sh

到设置中查看,应用已被授予权限。


另外还尝试了在手机中安装终端Termux,在终端中执行pm命令,但是出现报错:

cmd: Failure calling service package: Failed transaction(2147483646)

参考这里的解释,需要开放selinux许可。

操作方法参考这里,需要刷入第三方Recovery,比较麻烦了。