# FlowDroid Android 静态污点分析工具

> 面向 Android 应用和 Java 程序的静态数据流（污点）分析工具，基于 Soot 构建，可作为命令行工具使用，也可作为 Maven 库集成。输入 APK、Android SDK 的 platforms 目录以及源点和汇点定义后，它会对组件生命周期和回调建模以构建调用图，并报告从敏感源点流向汇点的数据流；随附的 SourcesAndSinks.txt 可作为分析隐私泄露的起点，StubDroid 摘要则用于对库方法建模。选项涵盖依据用户提供的 ICC 模型文件分析组件间数据流、路径重建、隐式流、反射，以及用精度和召回率换取速度的超时设置；其分析方法发表于 PLDI 2014 论文《FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps》。

- 类型：工具
- 目标：应用
- 类别：Android 工具
- 关联：基础工具
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/secure-software-engineering/FlowDroid>
- 一手来源：<https://github.com/secure-software-engineering/FlowDroid/blob/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/README.MD>
- 目录页面：<https://awesomerea.org/zh/resources/flowdroid/>
- 记录 JSON：<https://awesomerea.org/resources/flowdroid/record.json>
- 英文版：[English](https://awesomerea.org/resources/flowdroid/index.md)

## 使用条件与局限

- 审阅时最新版本为 v2.15.1，于 2026-02-23 打标签，并以 de.fraunhofer.sit.sse.flowdroid 发布到 Maven Central，其中包括供命令行使用的 soot-infoflow-cmd-2.15.1-jar-with-dependencies.jar。自 v2.14 起 GitHub 发行版不再附带文件，最后一个附带 JAR 的是 2024-04-02 发布的 v2.13；README 中的 Maven 示例仍写着 2.12.0。所审阅的 2026-09-28 develop 提交声明版本为 2.16.0-SNAPSHOT。
- 命令行需要 APK、Android SDK 的 platforms 目录和源点汇点定义文件，待分析的应用需由用户自备。README 称 FlowDroid 支持 Windows、macOS 和 Linux，并提醒分析大型应用可能耗时很长；可通过选项跳过静态字段流或异常流，数据流、回调收集和结果收集三个阶段的超时可叠加设置，超时后返回部分结果。
- 构建需要 Maven、JDK 和最新的 Soot 快照版本；README 要求 JDK 11 及以上，但所审阅的 pom.xml 以 Java 17 为编译目标，并依赖 Soot 4.8.0-SNAPSHOT。README 称完整测试套件约需 30 分钟，另外还需要 JDK 8 及其 rt.jar、ANDROID_JARS 环境变量，以及 DroidBench 子模块（一个单独的基准测试应用仓库）。
- 仓库提交了 25 个 APK 作为测试输入：soot-infoflow-android/testAPKs 和 soot-infoflow-integration/testAPKs 下以所测场景命名的测试应用（如 SourceToSink1.apk、ThreadRunnable.apk），故意留有漏洞的 InsecureBank.apk，以及一个以哈希值命名、清单显示属于其他开发者应用（com.RZStudio.cube）的 APK。soot-infoflow-android/lib 中包含 JUnit、Hamcrest 和 protobuf-java 的 JAR 文件。
- 采用 LGPL-2.1 许可；README 说明修改后的版本必须同样以 LGPL 公开。分析结果取决于配置以及所选的源点和汇点。

## 一手来源

1. <https://github.com/secure-software-engineering/FlowDroid/blob/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/README.MD>
2. <https://github.com/secure-software-engineering/FlowDroid/blob/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/pom.xml>
3. <https://github.com/secure-software-engineering/FlowDroid/blob/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/.gitmodules>
4. <https://github.com/secure-software-engineering/FlowDroid/blob/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/soot-infoflow-cmd/src/soot/jimple/infoflow/cmd/MainClass.java>
5. <https://github.com/secure-software-engineering/FlowDroid/blob/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/soot-infoflow-android/SourcesAndSinks.txt>
6. <https://github.com/secure-software-engineering/FlowDroid/tree/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/soot-infoflow-android/testAPKs>
7. <https://github.com/secure-software-engineering/FlowDroid/tree/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/soot-infoflow-integration/testAPKs>
8. <https://github.com/secure-software-engineering/FlowDroid/blob/9bf10349ec6fdceebbcfda2d261a1f23b9e2e439/LICENSE>
9. <https://github.com/secure-software-engineering/FlowDroid/releases/tag/v2.15.1>
10. <https://github.com/secure-software-engineering/FlowDroid/releases/tag/v2.13>
11. <https://repo1.maven.org/maven2/de/fraunhofer/sit/sse/flowdroid/soot-infoflow-cmd/2.15.1/>
12. <https://doi.org/10.1145/2594291.2594299>

## 同分区更多条目：应用

- [Enjarify Dalvik 转 Java 字节码工具](https://awesomerea.org/zh/resources/enjarify/index.md) · 工具
- [MagiskFrida 开机自启 frida-server 的 root 模块](https://awesomerea.org/zh/resources/magisk-frida/index.md) · 工具
- [de4dot .NET 反混淆与脱壳工具](https://awesomerea.org/zh/resources/de4dot/index.md) · 工具
- [ClassyShark Android 二进制浏览工具](https://awesomerea.org/zh/resources/classyshark/index.md) · 工具
- [JEB Decompiler Android 与原生代码逆向平台](https://awesomerea.org/zh/resources/jeb-decompiler/index.md) · 工具
- [Luyten Java 反编译器图形界面](https://awesomerea.org/zh/resources/luyten/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
