Skip to content

Commit 13c7c2e

Browse files
authored
Create README.MD
1 parent c1f6cd9 commit 13c7c2e

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

README.MD

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# FlowDroid Data Flow Analysis Tool
2+
3+
This repository hosts the FlowDroid data flow analysis tool. FlowDroid statically computes data flows in Android apps and Java programs.
4+
Its goal is to provide researchers and practitioners with a tool and library on which they can base their own research projects and
5+
product implementations. We are happy to see that FlowDroid is now widely used in academia as well as industry.
6+
7+
## Using The Data Flow Tracker
8+
9+
You can use FlowDroid either through its command-line interface (module soot-infoflow-cmd) or as a library. In general, if you would
10+
like to implement something and need a data flow tracker as a component, you are better off by integrating the FlowDroid modules as
11+
JAR files. If you just need the results quickly, simply run the command-line interface.
12+
13+
FlowDroid is supported on Windows, Mac OS, and Linux.
14+
15+
## Building The Tool
16+
17+
From version 2.5 on, FlowDroid is built using Maven. Use
18+
19+
```
20+
EXPORT ANDROID_JARS=<Android JAR folder>
21+
EXPORT DROIDBENCH=<DroidBench folder>
22+
mvn install
23+
```
24+
25+
to build the tool and run all unit tests. The Android JAR folder is the "platforms" directory inside your Android SDK installation
26+
folder. The DroidBench folder is the location of DroidBench, our micro-benchmark suite. These two environment variables are only
27+
required for running the unit tests.
28+
29+
If you do want DroidBench, or are in a hurry and just want to build the tool without the tests (they can take
30+
quite some time to complete, we have more than 400 of them), try
31+
32+
```
33+
mvn -DskipTests install
34+
```
35+
36+
Either way, you will find the built JAR files in the "target" folder of the respective modules. Maven should take care of all
37+
dependencies that are required for the build. Unless you need to build FlowDroid on a machine without an Internet connection,
38+
thing should be pretty easy.
39+
40+
## Publications
41+
42+
If you want to read the details on how FlowDroid works, <a href="http://tuprints.ulb.tu-darmstadt.de/5937/">the PhD thesis of
43+
Steven Arzt</a> is a good place to start.
44+
45+
## Contributing to FlowDroid
46+
47+
Contributions are always welcome. FlowDroid is an open source project that we published in the hope that it will be useful to
48+
the research community as a whole. If you have a new feature of a bug fix that you would like to see in the official code
49+
repository, please open a merge request here on Github and contact us (see below) with a short description of what you have
50+
done.
51+
52+
## License
53+
54+
FlowDroid is licensed
55+
under the LGPL license, see LICENSE file. This basically means that you are free to use the tool (even in commercial, closed-source
56+
projects). However, if you extend or modify the tool, you must make your changes available under the LGPL as well. This ensures that
57+
we can continue to improve the tool as a community effort.
58+
59+
## Contact
60+
61+
If you experience any issues, you can ask for help on the Soot mailing list. You can also contact us at [email protected].

0 commit comments

Comments
 (0)