关于APP权限列表的收集整理

针对目前越来越验证的app隐私条款政策,收集app授权列表,并对的app授权进行验证,应该是目前需要人防面临的一个问题。
验证app权限的使用,计划三步完成:

  1. 收集app有关的权限列表
  2. 收集app调用的第三方的权限列表
  3. 收集app操作各阶段的权限列表

先分享第一步的实现:
基本思路:

  • 使用ADB链接的设备
  • 使用dumpsys package xxx,筛选软件包权限相关的信息
  • 使用excel保存app的权限列表

Python脚本的实现:

# coding:utf-8
"""
@note:APP使用权限收集
@author: Qred
@file: PermissionList.py
@time: 2019/12/22
"""
import argparse
import os
import re
import time

import xlwt


class baseClass(object):
	def __init__(self, phone_id, PACKAGE_NAME):
		self.phone_id = phone_id
		self.PACKAGE_NAME = PACKAGE_NAME

		self.MAX_INVALID_LINE = 5
		self.DECLARED_PERMISSIONS = 'declared permissions'
		self.REQUESTED_PERMISSIONS = 'requested permissions'
		self.INSTALL_PERMISSIONS = 'install permissions'
		self.RUNTIME_PERMISSIONS = 'runtime permissions'
		self.STOP_KEY = 'Package Changes:'

	def dump_get_perminfo_line(self):
		'''获取授权列表'''
		titles = []
		locked = 0
		Dict = {}
		ret = self.dump_execute_perminfo()
		for title in ret.readlines():
			if len(title) == 0:
				break

			if locked != 0 and 'permission' in title:
				title = re.sub(r"[:|,]", " ", title)
				title = re.sub(r"(\[ | \])", "", title)
				line = title.split()
				titles.append(line)

			if self.DECLARED_PERMISSIONS in title:
				locked = 1
			elif self.REQUESTED_PERMISSIONS in title:
				Dict.update({self.DECLARED_PERMISSIONS: titles[:-1]})
				titles = []
				locked = 2
			elif self.INSTALL_PERMISSIONS in title:
				Dict.update({self.REQUESTED_PERMISSIONS: titles[:-1]})
				titles = []
				locked = 3
			elif self.RUNTIME_PERMISSIONS in title:
				Dict.update({self.INSTALL_PERMISSIONS: titles[:-1]})
				titles = []
				locked = 4
			elif self.STOP_KEY in title:
				Dict.update({self.RUNTIME_PERMISSIONS: titles[:-2]})
				titles = []
				locked = 5

		return Dict

	def dump_execute_perminfo(self):
		'''获取命令行所有数据'''
		ret = 0
		if self.phone_id != '':
			cmd = "adb -s " + self.phone_id + " shell dumpsys package " + self.PACKAGE_NAME
			ret = os.popen(cmd)
		else:
			cmd = "adb shell dumpsys package " + self.PACKAGE_NAME
			ret = os.popen(cmd)
		# print(cmd)
		return ret

	def write_info_excel(self):
		'''将数据写入excel'''
		Dict = self.dump_get_perminfo_line()
		time_stamp = time.strftime(time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()))
		if self.phone_id != '' :
			phone_id = self.phone_id[0:3] + '_p'
		else:
			phone_id = 'P'
		path = os.getcwd() + '\\' + phone_id + "ermissionList_" + time_stamp + ".xlsx"
		Excel = xlwt.Workbook()
		WorkSheet = Excel.add_sheet("permission_list")

		i = 0
		for key in Dict.keys():
			j = 0
			WorkSheet.write(i, j, key)
			j += 1
			for values in Dict[key]:
				k = j
				for val in values:
					WorkSheet.write(i, k, val)
					k += 1
				i += 1
		Excel.save(path)  # 保存文件


def arg():
	# 命令行解析器
	# -d 设备id
	# -p 测试应用包名,默认值:com.kascend.chushou
	# -h 帮助文档
	parse = argparse.ArgumentParser(usage='This script is mainly used to get performance data \n 此脚本主要用于获取权限数据',
	                                description='Devices is required, and the package name (the default is Baidu APP) \n 需传参设备devices,包名(默认是boss直聘APP)')
	parse.add_argument('-d', help='devices', type=str, nargs='?', default=None)
	parse.add_argument('-p', help='package name', type=str, nargs='?', default=None)
	args = parse.parse_args()
	# print vars(args)
	return args


def initParameters():
	global DEVICE_ID, PACKAGE_NAME, PRINT_OR_WRITE

	args = arg()

	if args.d != None:  # devices
		DEVICE_ID = args.d
	else:
		DEVICE_ID = ''

	if args.p != None:  # 包名
		PACKAGE_NAME = args.p
	if args.p == None:  # 包名
		PACKAGE_NAME = 'com.hpbr.bosszhipin' 


if __name__ == '__main__':
	initParameters()
	# 指定DEVICE_ID, PACKAGE_NAME后,可直接运行脚本
	tmp = baseClass(DEVICE_ID, PACKAGE_NAME)  # '', 'com.hpbr.bosszhipin'
	tmp.write_info_excel()
	

脚本的使用:
1.查看已连接的设备:

adb devices

在这里插入图片描述
2.在脚本所在的路径下,调用脚本

python PermissionList.py -d device_id  -p com.xxx.xxx

在这里插入图片描述
3.在同级的目录下会有对应的含有“permissions”名称的excel生成。
————供大家参考——————

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关注 | 工信部组织发布18项关于APP个人信息保护团体标准 APP个人信息保护关乎人民群众获得感、幸福感和安全感,广大用户高度关注。推动标准化是加强个人信息保护工作的关键环节,对规范企业经营行为,提升监管检测的自动化、智能化水平具有重要意义。 2020年7月,工业和信息化部发布《关于开展纵深推进APP侵害用户权益专项整治行动的通知》,提出四方面十项要求。此后,工业和信息化部组织中国信息通信研究院、电信终端产业协会(TAF),有针对性地制定了《APP用户权益保护测评规范》10项标准;对于广大用户特别关心的“最小必要”等收集使用用户个人信息原则,也制定了《APP收集使用个人信息最小必要评估规范》8项系列标准,涉及图片、通信录、设备信息、人脸、位置、录像、软件列表等信息收集使用规范。上述18项标准于11月27日在全国APP个人信息保护监管会上以电信终端产业协会(TAF)团标形式发布,为APP侵害用户权益专项整治工作提供依据和支撑,为企业合规经营明确规范要求。标准凝聚了产业智慧,汇集了企业力量,美团、华为、OPPO、滴滴、字节跳动、拼多多、vivo、百度、阿里、腾讯、小米、360、贝壳、每日互动等终端厂商、互联网企业、安全企业积极参与了制定工作。 下一步,工业和信息化部将组织行业力量,继续推动制定《APP收集使用个人信息最小必要评估规范》剩余9项标准,涵盖录音信息、短信信息、房产信息、通话信息、身份信息、传感器信息、日志信息、交易和消费记录、好友列表等个人信息的收集使用规范要求,力争于今年底前发布。工业和信息化部还将积极总结经验,根据实践不断完善标准,推动将团体标准提升为行业标准、国家标准。 APP用户权益保护测评规范系列标准 1.T/TAF 078.1-2020 APP用户权益保护测评规范 超范围收集个人信息 2.T/TAF 078.2-2020 APP用户权益保护测评规范 定向推送 3.T/TAF 078.3-2020 APP用户权益保护测评规范 个人信息获取行为 4.T/TAF 078.4-2020 APP用户权益保护测评规范 权限索取行为 5.T/TAF 078.5-2020 APP用户权益保护测评规范 违规使用个人信息 6.T/TAF 078.6-2020 APP用户权益保护测评规范 违规收集个人信息 7.T/TAF 078.7-2020 APP用户权益保护测评规范 下载分发行为 8.T/TAF 078.8-2020 APP用户权益保护测评规范 移动应用分发平台管理 9.T/TAF 078.9-2020 APP用户权益保护测评规范 移动应用分发平台信息展示 10.T/TAF 078.10-2020 APP用户权益保护测评规范 自启动和关联启动行为 APP收集使用个人信息最小必要评估规范系列标准 1.T/TAF 077.1-2020 APP收集使用个人信息最小必要评估规范 总则 2.T/TAF 077.2-2020 APP收集使用个人信息最小必要评估规范 位置信息 3.T/TAF 077.3-2020 APP收集使用个人信息最小必要评估规范 图片信息 4.T/TAF 077.4-2020 APP收集使用个人信息最小必要评估规范 终端通讯录 5.T/TAF 077.5-2020 APP收集使用个人信息最小必要评估规范 设备信息 6.T/TAF 077.6-2020 APP收集使用个人信息最小必要评估规范 软件列表 7.T/TAF 077.7-2020 APP收集使用个人信息最小必要评估规范 人脸信息 8.T/TAF 077.8-2020 APP收集使用个人信息最小必要评估规范 录像信息
关注 | 工信部组织发布18项关于APP个人信息保护团体标准 APP个人信息保护关乎人民群众获得感、幸福感和安全感,广大用户高度关注。推动标准化是加强个人信息保护工作的关键环节,对规范企业经营行为,提升监管检测的自动化、智能化水平具有重要意义。 2020年7月,工业和信息化部发布《关于开展纵深推进APP侵害用户权益专项整治行动的通知》,提出四方面十项要求。此后,工业和信息化部组织中国信息通信研究院、电信终端产业协会(TAF),有针对性地制定了《APP用户权益保护测评规范》10项标准;对于广大用户特别关心的“最小必要”等收集使用用户个人信息原则,也制定了《APP收集使用个人信息最小必要评估规范》8项系列标准,涉及图片、通信录、设备信息、人脸、位置、录像、软件列表等信息收集使用规范。上述18项标准于11月27日在全国APP个人信息保护监管会上以电信终端产业协会(TAF)团标形式发布,为APP侵害用户权益专项整治工作提供依据和支撑,为企业合规经营明确规范要求。标准凝聚了产业智慧,汇集了企业力量,美团、华为、OPPO、滴滴、字节跳动、拼多多、vivo、百度、阿里、腾讯、小米、360、贝壳、每日互动等终端厂商、互联网企业、安全企业积极参与了制定工作。 下一步,工业和信息化部将组织行业力量,继续推动制定《APP收集使用个人信息最小必要评估规范》剩余9项标准,涵盖录音信息、短信信息、房产信息、通话信息、身份信息、传感器信息、日志信息、交易和消费记录、好友列表等个人信息的收集使用规范要求,力争于今年底前发布。工业和信息化部还将积极总结经验,根据实践不断完善标准,推动将团体标准提升为行业标准、国家标准。 APP用户权益保护测评规范系列标准 1.T/TAF 078.1-2020 APP用户权益保护测评规范 超范围收集个人信息 2.T/TAF 078.2-2020 APP用户权益保护测评规范 定向推送 3.T/TAF 078.3-2020 APP用户权益保护测评规范 个人信息获取行为 4.T/TAF 078.4-2020 APP用户权益保护测评规范 权限索取行为 5.T/TAF 078.5-2020 APP用户权益保护测评规范 违规使用个人信息 6.T/TAF 078.6-2020 APP用户权益保护测评规范 违规收集个人信息 7.T/TAF 078.7-2020 APP用户权益保护测评规范 下载分发行为 8.T/TAF 078.8-2020 APP用户权益保护测评规范 移动应用分发平台管理 9.T/TAF 078.9-2020 APP用户权益保护测评规范 移动应用分发平台信息展示 10.T/TAF 078.10-2020 APP用户权益保护测评规范 自启动和关联启动行为 APP收集使用个人信息最小必要评估规范系列标准 1.T/TAF 077.1-2020 APP收集使用个人信息最小必要评估规范 总则 2.T/TAF 077.2-2020 APP收集使用个人信息最小必要评估规范 位置信息 3.T/TAF 077.3-2020 APP收集使用个人信息最小必要评估规范 图片信息 4.T/TAF 077.4-2020 APP收集使用个人信息最小必要评估规范 终端通讯录 5.T/TAF 077.5-2020 APP收集使用个人信息最小必要评估规范 设备信息 6.T/TAF 077.6-2020 APP收集使用个人信息最小必要评估规范 软件列表 7.T/TAF 077.7-2020 APP收集使用个人信息最小必要评估规范 人脸信息 8.T/TAF 077.8-2020 APP收集使用个人信息最小必要评估规范 录像信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值