Skip to content

Commit c744507

Browse files
committed
add get_app_permission.py
1 parent 323e2ef commit c744507

3 files changed

Lines changed: 927 additions & 8 deletions

File tree

README.md

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,43 @@ Android测试中常用到的脚本
55

66
###主要脚本功能
77

8-
批量安装应用(支持以中文命名的apk)、批量卸载、截屏、录制视频、获取当前应用的apk文件、包名、Activity名等。<br>
8+
批量安装应用(支持以中文命名的 apk)、批量卸载、截屏、录制视频、获取当前应用的 apk 文件、包名、Activity 名等。<br>
9+
10+
###2015.05.30
11+
增加 `get_app_permission.py`,获取设备当前应用的权限详情,windows 下会将结果写入 `permission.txt` 文件中,其他系统打印在控制台:
12+
13+
```
14+
[xuxu:...1/AndroidTestScripts/python]$ python get_app_permission.py (master✱)
15+
package: com.android.camera
16+
17+
android.permission.READ_PHONE_STATE:
18+
允许应用程序访问设备的手机功能。有此权限的应用程序可确定此手机的号码和序列号,是否正在通话,以及对方的号码等。
19+
android.permission.CAMERA:
20+
允许应用程序使用相机拍照,这样应用程序可随时收集进入相机镜头的图像。
21+
android.permission.WRITE_EXTERNAL_STORAGE:
22+
允许应用程序写入SD卡。
23+
android.permission.ACCESS_FINE_LOCATION:
24+
访问精准的位置源,例如手机上的全球定位系统(如果有)。恶意应用程序可能会借此确定您所处的位置,并可能消耗额外的电池电量。
25+
android.permission.ACCESS_WIFI_STATE:
26+
允许应用程序查看有关 WLAN 状态的信息。
27+
android.permission.ACCESS_NETWORK_STATE:
28+
允许应用程序查看所有网络的状态。
29+
android.permission.WAKE_LOCK:
30+
允许应用程序防止手机进入休眠状态。
31+
android.permission.RECORD_AUDIO:
32+
允许应用程序访问录音路径。
33+
android.permission.MODIFY_AUDIO_SETTINGS:
34+
允许应用程序修改整个系统的音频设置,如音量和路由。
35+
```
936

1037
###2015.02.12
11-
因日常工作需要,增加备份设备中安装的第三方应用的脚本backup_app.py。(区别于adb backup命令,只备份apk)<br>
38+
因日常工作需要,增加备份设备中安装的第三方应用的脚本 `backup_app.py`。(区别于adb backup命令,只备份apk)<br>
1239

1340
###2015.01.31
14-
修改screenrecord.py中的默认录制时间,默认最长录制时间为180秒<br>
41+
修改 `screenrecord.py` 中的默认录制时间,默认最长录制时间为 180 秒<br>
1542

1643
###2015.01.29
17-
新增脚本get_cpu_mem_info.py,获取设备当前运行的应用的cpu、memory信息,默认top times取值为20次,可自己修改脚本中的该参数
44+
新增脚本 `get_cpu_mem_info.py`,获取设备当前运行的应用的 cpu、memory 信息,默认 top times 取值为20次,可自己修改脚本中的该参数
1845

1946
脚本运行需要安装pychartdir模块,安装方法请参考 [http://blog.csdn.net/gb112211/article/details/43272049](http://blog.csdn.net/gb112211/article/details/43272049 "python pychartdir模块的安装及使用")<br>
2047
直接运行脚本,会生成线性图表存放于chart目录下,图表类似于:<br>
@@ -26,7 +53,7 @@ Android测试中常用到的脚本
2653

2754
###2015.01.26
2855

29-
1.改写python分类中的脚本结构,将大部分方法分装进了scriptUtils包中的utils模块中<br>
30-
2.新增screenrecord.py(录制视频,Android4.4新增功能)<br>
31-
3.使用时请直接在脚本目录下运行脚本(可以将脚本目录复制到桌面上,使用时很方便)<br>
32-
4.需要配置ANDROID_HOME,如果脚本执行失败,请在命令行模式下运行脚本,查看报错信息<br>
56+
1. 改写 python 分类中的脚本结构,将大部分方法分装进了 scriptUtils 包中的 utils 模块中<br>
57+
2. 新增 `screenrecord.py`(录制视频,Android4.4新增功能)<br>
58+
3. 使用时请直接在脚本目录下运行脚本(可以将脚本目录复制到桌面上,使用时很方便)<br>
59+
4. 需要配置 `ANDROID_HOME`,如果脚本执行失败,请在命令行模式下运行脚本,查看报错信息<br>

python/get_app_permission.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/bin/env python
2+
# -*- coding=utf-8 -*-
3+
4+
from scriptUtils import utils
5+
6+
import json
7+
import os
8+
import sys
9+
10+
reload(sys)
11+
sys.setdefaultencoding('utf8')
12+
13+
PATH = lambda p: os.path.abspath(p)
14+
15+
# 获取设备上当前应用的权限列表
16+
# Windows下会将结果写入permission.txt文件中,其他系统打印在控制台
17+
18+
def get_permission_list(package_name):
19+
20+
permission_list = []
21+
result_list = utils.shell("dumpsys package %s | %s android.permission" %(package_name, utils.find_util)).stdout.readlines()
22+
23+
for permission in result_list:
24+
permission_list.append(permission.strip())
25+
26+
return permission_list
27+
28+
if __name__ == '__main__':
29+
package_name = utils.get_current_package_name()
30+
permission_list = get_permission_list(package_name)
31+
permission_json_file = file("permission.json")
32+
file_content = json.load(permission_json_file)["PermissList"]
33+
34+
if utils.system is "Windows":
35+
f = open(PATH("%s/permission.txt" %os.getcwd()), "w")
36+
f.write("package: %s\n\n" %package_name)
37+
for permission in permission_list:
38+
for permission_dict in file_content:
39+
if permission == permission_dict["Key"]:
40+
f.write(permission_dict["Key"] + ":\n " + permission_dict["Memo"] + "\n")
41+
f.close
42+
else:
43+
print "package: %s\n" %package_name
44+
for permission in permission_list:
45+
for permission_dict in file_content:
46+
if permission == permission_dict["Key"]:
47+
print permission_dict["Key"] + ":"
48+
print " " + permission_dict["Memo"]

0 commit comments

Comments
 (0)