Skip to content

Is there any CLI option to exclude packages from analysis? #861

@r1pu5u

Description

@r1pu5u

Hi FlowDroid team,

I’m currently analyzing a large Android application (Kotlin + Jetpack Compose) and I’m running into severe performance and memory issues. The analysis appears to fully process framework and third-party libraries such as androidx, kotlin, com.google, and other large SDKs.

I’m wondering whether there is any way to exclude packages via the CLI when using soot-infoflow-cmd.

This is the command I’m currently using:

java -Xmx13g -jar soot-infoflow-cmd/target/soot-infoflow-cmd-jar-with-dependencies.jar \
  -a app.apk \
  -p ~/Android/Sdk/platforms \
  -s DeeplinkWebview.txt \
  -cg CHA \
  -tw NONE \
  -aa NONE \
  -ds FLOWINSENSITIVE \
  -nc \
  -ns \
  -l NONE

Despite disabling callbacks, static tracking, and using a flow-insensitive solver, memory usage still grows very large. Below is a shortened excerpt of the output:

[Low memory monitor] INFO soot.jimple.infoflow.memory.MemoryWarningSystem -
Triggering memory warning at 12621 MB (13958 MB max, 12566 in watched memory pool)...
...
[Low memory monitor] WARN soot.jimple.infoflow.memory.FlowDroidMemoryWatcher -
Running out of memory, solvers terminated
...
[main] INFO soot.jimple.infoflow.android.SetupApplication -
Data flow solver took 1158 seconds. Maximum memory consumption: 12674 MB
[main] INFO soot.jimple.infoflow.android.SetupApplication - Found 2 leaks from 2 sources

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions