Skip to content

Commit c4b3ff0

Browse files
committed
removed option for merging dex files - it makes no sense to not merge and Soot now does it always
1 parent 2165852 commit c4b3ff0

16 files changed

Lines changed: 15 additions & 53 deletions

File tree

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
55
<artifactId>parent</artifactId>
6-
<version>2.15.0</version>
6+
<version>2.16.0-SNAPSHOT</version>
77
<name>FlowDroid Parent Module</name>
88
<description>Parent module for the FlowDroid data flow tracker</description>
99
<url>https://github.com/secure-software-engineering/FlowDroid</url>
1010
<packaging>pom</packaging>
1111

1212
<properties>
13-
<revision>2.15.0</revision>
13+
<revision>2.16.0-SNAPSHOT</revision>
1414

1515
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1616

@@ -35,7 +35,7 @@
3535

3636
<apache-commons-cli.version>1.11.0</apache-commons-cli.version>
3737

38-
<soot.version>4.7.0</soot.version>
38+
<soot.version>4.8.0-SNAPSHOT</soot.version>
3939
</properties>
4040

4141
<developers>

soot-infoflow-android/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<parent>
1111
<groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
1212
<artifactId>parent</artifactId>
13-
<version>2.15.0</version>
13+
<version>2.16.0-SNAPSHOT</version>
1414
<relativePath>../pom.xml</relativePath>
1515
</parent>
1616

soot-infoflow-android/schema/FlowDroidConfiguration.xsd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@
8989
<xs:element name="maxCallbacksPerComponent" type="xs:int" minOccurs="0" />
9090
<xs:element name="maxCallbackDepth" type="xs:int" minOccurs="0" />
9191
<xs:element name="layoutMatchingMode" type="layoutMatchingModeType" minOccurs="0" />
92-
<xs:element name="mergeDexFiles" type="xs:boolean" minOccurs="0" />
9392
<xs:element name="callbackSourceMode" type="callbackSourceModeType" minOccurs="0" />
9493
<xs:element name="callbackAnalysisTimeout" type="xs:int" minOccurs="0" />
9594
</xs:all>

soot-infoflow-android/src/soot/jimple/infoflow/android/InfoflowAndroidConfiguration.java

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -723,8 +723,6 @@ public static enum CallbackAnalyzer {
723723
private final IccConfiguration iccConfig = new IccConfiguration();
724724
private final AnalysisFileConfiguration analysisFileConfig = new AnalysisFileConfiguration();
725725

726-
private boolean mergeDexFiles = true;
727-
728726
private boolean performConstantPropagation;
729727
private static boolean createActivityEntryMethods = true;
730728

@@ -749,8 +747,6 @@ public void merge(InfoflowConfiguration config) {
749747
this.sourceSinkConfig.merge(androidConfig.sourceSinkConfig);
750748
this.iccConfig.merge(androidConfig.iccConfig);
751749
this.analysisFileConfig.merge(androidConfig.analysisFileConfig);
752-
753-
this.mergeDexFiles = androidConfig.mergeDexFiles;
754750
}
755751
}
756752

@@ -813,28 +809,6 @@ public boolean getOneComponentAtATime() {
813809
return this.oneComponentAtATime;
814810
}
815811

816-
/**
817-
* Gets whether FlowDroid shall merge all dex files in the APK to get a full
818-
* picture of the app
819-
*
820-
* @return True if FlowDroid shall merge all dex files in the APK, otherwise
821-
* false
822-
*/
823-
public boolean getMergeDexFiles() {
824-
return this.mergeDexFiles;
825-
}
826-
827-
/**
828-
* Sets whether FlowDroid shall merge all dex files in the APK to get a full
829-
* picture of the app
830-
*
831-
* @param mergeDexFiles True if FlowDroid shall merge all dex files in the APK,
832-
* otherwise false
833-
*/
834-
public void setMergeDexFiles(boolean mergeDexFiles) {
835-
this.mergeDexFiles = mergeDexFiles;
836-
}
837-
838812
/**
839813
* Gets if Flowdroid should create new Methods when creating the Activity Entry
840814
* point
@@ -863,7 +837,6 @@ public int hashCode() {
863837
result = prime * result + ((analysisFileConfig == null) ? 0 : analysisFileConfig.hashCode());
864838
result = prime * result + ((callbackConfig == null) ? 0 : callbackConfig.hashCode());
865839
result = prime * result + ((iccConfig == null) ? 0 : iccConfig.hashCode());
866-
result = prime * result + (mergeDexFiles ? 1231 : 1237);
867840
result = prime * result + (oneComponentAtATime ? 1231 : 1237);
868841
result = prime * result + ((sourceSinkConfig == null) ? 0 : sourceSinkConfig.hashCode());
869842
return result;
@@ -893,8 +866,6 @@ public boolean equals(Object obj) {
893866
return false;
894867
} else if (!iccConfig.equals(other.iccConfig))
895868
return false;
896-
if (mergeDexFiles != other.mergeDexFiles)
897-
return false;
898869
if (oneComponentAtATime != other.oneComponentAtATime)
899870
return false;
900871
if (sourceSinkConfig == null) {

soot-infoflow-android/src/soot/jimple/infoflow/android/SetupApplication.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1257,7 +1257,6 @@ private void initializeSoot() {
12571257
Options.v().set_keep_offset(false);
12581258
Options.v().set_keep_line_number(config.getEnableLineNumbers());
12591259
Options.v().set_throw_analysis(Options.throw_analysis_dalvik);
1260-
Options.v().set_process_multiple_dex(config.getMergeDexFiles());
12611260
Options.v().set_ignore_resolution_errors(true);
12621261

12631262
// Set soot phase option if original names should be used

soot-infoflow-android/src/soot/jimple/infoflow/android/config/XMLConfigurationParser.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,6 @@ else if (currentElement.equals(XMLConstants.TAG_MAX_CALLBACK_DEPTH))
173173
callbackConfig.setMaxAnalysisCallbackDepth(Integer.valueOf(data));
174174
else if (currentElement.equals(XMLConstants.TAG_LAYOUT_MATCHING_MODE))
175175
sourceSinkConfig.setLayoutMatchingMode(LayoutMatchingMode.valueOf(data));
176-
else if (currentElement.equals(XMLConstants.TAG_MERGE_DEX_FILES))
177-
config.setMergeDexFiles(Boolean.valueOf(data));
178176
else if (currentElement.equals(XMLConstants.TAG_CALLBACK_SOURCE_MODE))
179177
sourceSinkConfig.setCallbackSourceMode(CallbackSourceMode.valueOf(data));
180178
else if (currentElement.equals(XMLConstants.TAG_CALLBACK_ANALYSIS_TIMEOUT))

soot-infoflow-android/src/soot/jimple/infoflow/android/config/XMLConfigurationWriter.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,6 @@ private void writeAndroidConfig(Document document, Element parentElement) {
184184
Integer.toString(callbackConfig.getMaxAnalysisCallbackDepth()));
185185
appendSimpleTag(document, androidConfigTag, XMLConstants.TAG_LAYOUT_MATCHING_MODE,
186186
sourceSinkConfig.getLayoutMatchingMode().toString());
187-
appendSimpleTag(document, androidConfigTag, XMLConstants.TAG_MERGE_DEX_FILES,
188-
Boolean.toString(config.getMergeDexFiles()));
189187
appendSimpleTag(document, androidConfigTag, XMLConstants.TAG_CALLBACK_SOURCE_MODE,
190188
sourceSinkConfig.getCallbackSourceMode().toString());
191189
appendSimpleTag(document, androidConfigTag, XMLConstants.TAG_CALLBACK_ANALYSIS_TIMEOUT,

soot-infoflow-android/src/soot/jimple/infoflow/android/config/XMLConstants.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ class XMLConstants {
2929
public static final String TAG_MAX_CALLBACKS_PER_COMPONENT = "maxCallbacksPerComponent";
3030
public static final String TAG_MAX_CALLBACK_DEPTH = "maxCallbackDepth";
3131

32-
public static final String TAG_MERGE_DEX_FILES = "mergeDexFiles";
3332
public static final String TAG_CALLBACK_SOURCE_MODE = "callbackSourceMode";
3433
public static final String TAG_CALLBACK_ANALYSIS_TIMEOUT = "callbackAnalysisTimeout";
3534

@@ -65,5 +64,5 @@ class XMLConstants {
6564
public static final String ATTR_ID = "id";
6665
public static final String ATTR_MODE = "mode";
6766

68-
public static final String TAG_PATH_RECONSTRUCTION_TOTAL_TIME = "pathReconstructionTotalTime";
67+
public static final String TAG_PATH_RECONSTRUCTION_TOTAL_TIME = "pathReconstructionTotalTime";
6968
}

soot-infoflow-cmd/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<parent>
1111
<groupId>de.fraunhofer.sit.sse.flowdroid</groupId>
1212
<artifactId>parent</artifactId>
13-
<version>2.15.0</version>
13+
<version>2.16.0-SNAPSHOT</version>
1414
<relativePath>../pom.xml</relativePath>
1515
</parent>
1616

soot-infoflow-cmd/src/soot/jimple/infoflow/cmd/MainClass.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ public class MainClass {
9898
private static final String OPTION_ONE_COMPONENT = "ot";
9999
private static final String OPTION_SEQUENTIAL_PATHS = "sp";
100100
private static final String OPTION_LOG_SOURCES_SINKS = "ls";
101-
private static final String OPTION_MERGE_DEX_FILES = "d";
102101
private static final String OPTION_SINGLE_JOIN_POINT = "sa";
103102
private static final String OPTION_MAX_CALLBACKS_COMPONENT = "mc";
104103
private static final String OPTION_MAX_CALLBACKS_DEPTH = "md";
@@ -204,8 +203,6 @@ private void initializeCommandLineOptions() {
204203
"Eliminate Android components that have more than the given number of callbacks");
205204
options.addOption(OPTION_MAX_CALLBACKS_DEPTH, "maxcallbacksdepth", true,
206205
"Only analyze callback chains up to the given depth");
207-
options.addOption(OPTION_MERGE_DEX_FILES, "mergedexfiles", false,
208-
"Merge all dex files in the given APK file into one analysis target");
209206
options.addOption(OPTION_PATH_SPECIFIC_RESULTS, "pathspecificresults", false,
210207
"Report different results for same source/sink pairs if they differ in their propagation paths");
211208

@@ -779,8 +776,6 @@ private void parseCommandLineOptions(CommandLine cmd, InfoflowAndroidConfigurati
779776
config.getPathConfiguration().setSequentialPathProcessing(true);
780777
if (cmd.hasOption(OPTION_LOG_SOURCES_SINKS))
781778
config.setLogSourcesAndSinks(true);
782-
if (cmd.hasOption(OPTION_MERGE_DEX_FILES))
783-
config.setMergeDexFiles(true);
784779
if (cmd.hasOption(OPTION_PATH_SPECIFIC_RESULTS))
785780
config.setPathAgnosticResults(false);
786781
if (cmd.hasOption(OPTION_SINGLE_JOIN_POINT))

0 commit comments

Comments
 (0)