Git Product home page Git Product logo

Comments (4)

StevenArzt avatar StevenArzt commented on August 16, 2024 1

Agreed. Unfortunately, we don't have spare capacity to write documentation.

I have added the simple example to the README (5683c50).

from flowdroid.

StevenArzt avatar StevenArzt commented on August 16, 2024

The code has JavaDoc on almost all methods, even on the private ones. The main class of the command-line tool is fairly simple, so you can just look into the MainClass and see how it uses the FlowDroid API classes.

There are even some writeups for specific tasks, e.g., call graph generation: https://medium.com/geekculture/generating-call-graphs-in-android-using-flowdroid-pointsto-analysis-7b2e296e6697

In short, if you want to run a data flow analysis, have a look at the SetupApplication class and its computeInfoflow method. You may want to set a taint wrapper as well:

SetupApplication app = new SetupApplication(androidJarFolder, apkPath);
app.setTaintWrapper(new SummaryTaintWrapper(new LazySummaryProvider("summariesManual")));
InfoflowResults results = app.runInfoflow();

That should be the most basic configuration.

from flowdroid.

yamin8000 avatar yamin8000 commented on August 16, 2024

The code has JavaDoc on almost all methods, even on the private ones. The main class of the command-line tool is fairly simple, so you can just look into the MainClass and see how it uses the FlowDroid API classes.

There are even some writeups for specific tasks, e.g., call graph generation: https://medium.com/geekculture/generating-call-graphs-in-android-using-flowdroid-pointsto-analysis-7b2e296e6697

In short, if you want to run a data flow analysis, have a look at the SetupApplication class and its computeInfoflow method. You may want to set a taint wrapper as well:

SetupApplication app = new SetupApplication(androidJarFolder, apkPath);
app.setTaintWrapper(new SummaryTaintWrapper(new LazySummaryProvider("summariesManual")));
InfoflowResults results = app.runInfoflow();

That should be the most basic configuration.

Right.
This is a very useful tool and I'm very thankful to you and other contributors. This is helping me and my fellow researchers.
Yeah, I missed the JavaDoc because by default my IDE showed decompiled sources instead of real sources and that's on me.
Medium articles aside from being behind paywalls most of the time, however, not in this case are prone to be outdated so a more dependable source is always the project repository's readme or even wiki.
I think the very same three-line code you provided here should be added to the readme as a first clue for people to know where to start, I don't see why this is not in the readme maybe this tool is more command-line centric or some other reasons.
The problem with Javadoc is that when someone just tries to use your Library/API, its architecture is unknown to them so they may have difficulties where to start and this even slows down seasoned programmers. Javadoc is better suited for someone already familiar with the tool's architecture.
That's just my two cents.

from flowdroid.

yamin8000 avatar yamin8000 commented on August 16, 2024

Agreed. Unfortunately, we don't have spare capacity to write documentation.

I have added the simple example to the README (5683c50).

Thank you.

from flowdroid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.