Skip to content

Commit b37d019

Browse files
committed
Introduce flag for writing jimple files during summary generation
1 parent d82a025 commit b37d019

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

soot-infoflow-summaries/src/soot/jimple/infoflow/methodSummary/DefaultSummaryConfig.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ public void setSootOptions(Options options, InfoflowConfiguration config) {
4040
options.set_no_bodies_for_excluded(true);
4141
options.set_allow_phantom_refs(true);
4242
options.set_include(includeList);
43-
options.set_output_format(Options.output_format_none);
43+
if (summaryConfig.getWriteOutputFiles())
44+
options.set_output_format(Options.output_format_jimple);
45+
else
46+
options.set_output_format(Options.output_format_none);
47+
4448
options.setPhaseOption("jb", "use-original-names:true");
4549
options.set_ignore_classpath_errors(true);
4650

soot-infoflow-summaries/src/soot/jimple/infoflow/methodSummary/Main.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class Main {
4747
private static final String OPTION_CLASS_TIMEOUT = "ct";
4848
private static final String OPTION_ANALYZE_HASHCODE_EQUALS = "he";
4949
private static final String OPTION_ANDROID_PLATFORMS = "p";
50+
private static final String OPTION_WRITE_JIMPLE_FILES = "wj";
5051

5152
public static void main(final String[] args) throws FileNotFoundException, XMLStreamException {
5253
Main main = new Main();
@@ -79,6 +80,7 @@ private void initializeCommandLineOptions() {
7980
"Also analyze hashCode() and equals() methods");
8081
options.addOption(OPTION_ANDROID_PLATFORMS, "platformsdir", true,
8182
"Path to the platforms directory from the Android SDK");
83+
options.addOption(OPTION_WRITE_JIMPLE_FILES, "writejimplefiles", false, "Write out the Jimple files");
8284
}
8385

8486
public void run(final String[] args) throws FileNotFoundException, XMLStreamException {
@@ -201,6 +203,11 @@ protected void configureOptionalSettings(CommandLine cmd, SummaryGenerator gener
201203
String platformsDir = cmd.getOptionValue(OPTION_ANDROID_PLATFORMS);
202204
generator.getConfig().setAndroidPlatformDir(platformsDir);
203205
}
206+
{
207+
boolean writeJimpleFiles = cmd.hasOption(OPTION_WRITE_JIMPLE_FILES);
208+
if (writeJimpleFiles)
209+
generator.getConfig().setWriteOutputFiles(true);
210+
}
204211
}
205212

206213
/**

soot-infoflow-summaries/src/soot/jimple/infoflow/methodSummary/generator/SummaryGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,10 @@ public ClassSummaries createMethodSummaries(String classpath, Collection<String>
267267
}
268268
}
269269

270-
Options.v().set_output_format(Options.output_format_none);
270+
if (config.getWriteOutputFiles())
271+
Options.v().set_output_format(Options.output_format_jimple);
272+
else
273+
Options.v().set_output_format(Options.output_format_none);
271274
if (hasWildcard || config.getLoadFullJAR() || config.getSummarizeFullJAR())
272275
Options.v().set_process_dir(Arrays.asList(classpath.split(File.pathSeparator)));
273276
else

0 commit comments

Comments
 (0)