Skip to content

Instantly share code, notes, and snippets.

@Forgo7ten
Last active November 9, 2021 07:05
Show Gist options
  • Save Forgo7ten/d6caf73452b5e08e062d8c5b99bd6908 to your computer and use it in GitHub Desktop.
Save Forgo7ten/d6caf73452b5e08e062d8c5b99bd6908 to your computer and use it in GitHub Desktop.
检查应用需动态申请的危险权限并打印到控制台
# coding=utf-8
# @File : CheckDangerousPermissions.py
# @Desc : 检查应用需动态申请的危险权限并打印到控制台
# @Author : Forgo7ten
# @Time : 2021/11/3
# 预存危险权限列表
permissions_list = []
# 输入文件
inputFile = "./original.txt"
# 检测到的危险权限集合
dengerous_permissions = set()
def main():
init_permissions()
with open(inputFile, "r", encoding="utf-8") as f:
# 取文件的每一行
for line in f:
# 遍历权限列表
for permission in permissions_list:
# 如果该权限在这一行内,就存入set集合
if permission in line:
dengerous_permissions.add(permission)
print_danger_permissions()
print_java_code()
### 打印java代码 配合动态申请权限工具类食用 ###
def print_java_code():
print("\n===== Start Java Code =====\n")
print("String[] permissions = {", end="")
permissions_len = len(dengerous_permissions)
i = 0
for p in dengerous_permissions:
if i == permissions_len-1:
print(f"Manifest{p[7:]}", end="")
else:
print(f"Manifest{p[7:]},", end="")
i += 1
print("};")
print("\n===== End Java Code =====\n")
### 打印找到的危险权限 ###
def print_danger_permissions():
print("\n===== Start =====\n")
for per in dengerous_permissions:
print(per)
print("\n===== Done =====\n")
### 初始化权限列表 ###
def init_permissions():
# 允许呼叫应用继续在另一个应用中启动的呼叫
permissions_list.append("android.permission.ACCEPT_HANDOVER")
# 允许应用程序在后台访问位置
permissions_list.append("android.permission.ACCESS_BACKGROUND_LOCATION")
# 允许一个程序访问CellID或WiFi热点来获取粗略的位置
permissions_list.append("android.permission.ACCESS_COARSE_LOCATION")
# 允许一个程序访问精良位置(如GPS)
permissions_list.append("android.permission.ACCESS_FINE_LOCATION")
# 一些照片在其数据中会包含位置信息,允许用户查看拍摄照片的位置
permissions_list.append("android.permission.ACCESS_MEDIA_LOCATION")
# 允许应用程序识别存在的活动
permissions_list.append("android.permission.ACTIVITY_RECOGNITION")
# 允许应用程序添加系统中的语音邮件。
permissions_list.append("com.android.voicemail.permission.ADD_VOICEMAIL")
# 允许应用程序接听手机来电。
permissions_list.append("android.permission.ANSWER_PHONE_CALLS")
# 允许应用程序向附近的蓝牙设备展示自己的存在。
permissions_list.append("android.permission.BLUETOOTH_ADVERTISE")
# 允许连接蓝牙设备进行配对
permissions_list.append("android.permission.BLUETOOTH_CONNECT")
# 允许应用程序发现和配对附近的蓝牙设备。
permissions_list.append("android.permission.BLUETOOTH_SCAN")
# 允许应用程序访问数据从用户使用的传感器, 用于测量身体内部发生了什么, 比如心率。
permissions_list.append("android.permission.BODY_SENSORS")
# 允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认
permissions_list.append("android.permission.CALL_PHONE")
# 允许访问摄像头进行拍照
permissions_list.append("android.permission.CAMERA")
# 访问一个帐户列表在Accounts Service中
permissions_list.append("android.permission.GET_ACCOUNTS")
permissions_list.append(
"android.permission.PROCESS_OUTGOING_CALLS") # 将在API29被弃用
# 允许程序读取用户日历数据
permissions_list.append("android.permission.READ_CALENDAR")
# 允许应用程序读取用户的通话记录。
permissions_list.append("android.permission.READ_CALL_LOG")
# 允许程序读取用户联系人数据
permissions_list.append("android.permission.READ_CONTACTS")
# 允许程序可以读取设备外部存储空间
permissions_list.append("android.permission.READ_EXTERNAL_STORAGE")
# 允许程序读取设备的电话号码
permissions_list.append("android.permission.READ_PHONE_NUMBERS")
# 允许程序访问电话状态
permissions_list.append("android.permission.READ_PHONE_STATE")
# 允许程序读取短信
permissions_list.append("android.permission.READ_SMS")
# 允许应用程序监控传入的MMS消息。
permissions_list.append("android.permission.RECEIVE_MMS")
# 允许一个应用程序接收短信。
permissions_list.append("android.permission.RECEIVE_SMS")
# 允许一个应用程序接收WAP推送消息。
permissions_list.append("android.permission.RECEIVE_WAP_PUSH")
# 允许程序录制音频
permissions_list.append("android.permission.RECORD_AUDIO")
# 允许一个应用程序发送短信
permissions_list.append("android.permission.SEND_SMS")
# 允许一个应用程序使用SIP服务。
permissions_list.append("android.permission.USE_SIP")
# 允许使用超宽频范围的设备。
permissions_list.append("android.permission.UWB_RANGING")
# 允许一个程序写入但不读取用户日历数据
permissions_list.append("android.permission.WRITE_CALENDAR")
# 允许一个应用程序写入(但不是读)用户的通话记录数据。
permissions_list.append("android.permission.WRITE_CALL_LOG")
# 允许程序写入但不读取用户联系人数据
permissions_list.append("android.permission.WRITE_CONTACTS")
# 允许应用程序写入外部存储
permissions_list.append("android.permission.WRITE_EXTERNAL_STORAGE")
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment