Skip to content

Data-flow analysis on system services #388

@abdawoud

Description

@abdawoud

First, thank you for your valuable work and support:

Is it possible to run FlowDroid on binaries of system services, e.g., to taint one parameter across methods of the application framework and also across ICC?

A concrete example would be to trace the packageName parameter of the following API of the LocationManagerService and see whether it reaches a sink method of my choice:
public Location getLastLocation(LocationRequest request, String packageName, String featureId)

Specifically, I would like to be able to run:
java -jar soot-infoflow-cmd-2.9.0-jar-with-dependencies.jar -a services.jar -p android.jar -s SourcesAndSinks.txt and interpret the flow of the packageName across methods.

The services.jar is the binary of the application framework that hosts the LocationManagerService, and SourcesAndSinks.txt contains a dummy API that calls the getLastLocation as a source and another arbitrary sink method of my choice (e.g., checkPackagePermissions)

Currently, executing this command fails due to services.jar not containing an AndroidManifest.xml file, which makes sense., but how to go beyond this error and enable such analysis.

If this feature is not immediately available, how do you think this could be achieved using the FlowDroid tools-chain.

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