隐私权限
设计思路
- 整理隐私权限涉及的代码(类名及其属性名或方法名)
- 基于ApkAnalyzer收集方法堆栈, 检测是否存在”隐私权限涉及的代码”
- 使用POI生成Excel
- 每个隐私权限涉及的代码调用堆栈存放在一个Excel中
使用
应用插件
Using the plugins DSL:
plugins {
id "io.github.jingtuo.privacy-permission" version "0.0.3"
}
Using legacy plugin application:
buildscript {
repositories {
maven {
url = "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "io.github.jingtuo:privacy-permission:0.0.3"
}
}
配置
privacyPermission
privacyPermission {
//指定的目录必须存在
cmdlineToolsDir = file("C:/Android/Sdk/cmdline-tools/latest")
//指定的文件必须存在, 非加固包
apkFile = file("D:/apk/test/test.apk")
mappingFilePath = ""
permissionSpecsFile = file("D:\\Projects\\github\\jingtuo\\Codespaces\\privacy-permission\\permissionSpecs.json")
outputDir = file("D:\\apk\\test2")
}
permissionSpecsFile
[
{
"name": "应用进程",
"clsName": "android.app.ActivityManager",
"type": "field",
"methodName": "getRunningAppProcesses",
"methodReturnType": "java.util.List"
}
]
type可取值: init、method、field
版本
0.0.4
- 支持扫描构建函数
0.0.3
- 移除调试代码, 梳理几种常用三方库
0.0.2
- 移除对Kotlin序列化插件的依赖, 使用Gson解析permissionSpecsFile文件
0.0.1
- 基于Apk Analyzer收集隐私权限相关类的调用堆栈
问题
- 已知与其他插件依赖的commons-io版本冲突, 不兼容依赖commons-io低版本的插件
- 尽量使用最新版, 已在11.0版本中验证