Skip to content
Soot - A Java optimization framework
Java TeX HTML XSLT Shell Limbo
Latest commit 8858f8a Jun 24, 2016 @StevenArzt StevenArzt removed a Java warning
Failed to load latest commit information.
doc fixed the default option of the new sort-locals Jun 1, 2016
eclipse fixed the default option of the new sort-locals Jun 1, 2016
generated fixed the default option of the new sort-locals Jun 1, 2016
libs updated ASM Jun 16, 2016
src removed a Java warning Jun 24, 2016
systests - new test case for string constants wih null literals Nov 4, 2005
tests and the test case for the fix Jun 1, 2016
tutorial fixing documentation issue, fixes #359 Apr 10, 2015
.classpath updated ASM Jun 15, 2016
.gitignore Added descriptions to build.xml tasks, added Eclipse .settings to .gi… Feb 7, 2016
.project project name = soot Dec 14, 2012
COPYING-LESSER.txt Changed from Library General Public License 2 to Lesser General Publi… Jun 3, 2003
README.coding_rules Update README.coding_rules to reflect switch from make to ant, Jun 20, 2004 Update Dec 25, 2015
Release_Notice No commit message Jan 22, 2012
TODO - made nop eliminator run before jb phase for java to jimple Nov 17, 2003
TODO.txt updated web page; Jan 22, 2012
ant.settings.jenkins updated ASM Jun 15, 2016
ant.settings.template updated ASM Jun 15, 2016
background6.gif prcs Oct 4, 2000
build.xml Added a missing period (.) in sourcejar target description in build.xml Feb 8, 2016
credits docs Aug 18, 2014
index.html git Jun 22, 2012
ivy.xml Added ant task to publish soot to local maven repo using ivy Jan 16, 2016
ivysettings.xml Added ant task to publish soot to local maven repo using ivy Jan 16, 2016
local-nightly-build Add self-contained nightly build script "local-nightly-build". Jan 1, 2015
nightly No commit message Jan 22, 2012
soot.psf Corrected github project references in soot.psf Apr 1, 2014
soot_download.html No commit message Jan 22, 2012
soot_in_eclipse_howto.html Improve the wording of the previous change Apr 5, 2006

What is Soot?

Soot is a Java optimization framework. It provides four intermediate representations for analyzing and transforming Java bytecode:

  • Baf: a streamlined representation of bytecode which is simple to manipulate.
  • Jimple: a typed 3-address intermediate representation suitable for optimization.
  • Shimple: an SSA variation of Jimple.
  • Grimp: an aggregated version of Jimple suitable for decompilation and code inspection.

See for details.

How do I get started with Soot?

We have some documentation on Soot in the wiki and also a large range of tutorials on Soot.

How do I obtain the nightly builds

Note that the nightly build server has moved

Nightly builds of soot can be obtained from nightly build. The "soot-trunk.jar" file is an all-in-one file that also contains all the required libraries. The "sootclasses-trunk.jar" file contains only Soot, allowing you to use manually pick dependencies as you need them.

About Soot's source code

Soot follows the git-flow convention. Releases and hotfixes are maintained in the master branch. Development happens in the develop branch. To catch the bleeding edge of Soot, check out the latter. You will also need the projects jasmin and heros. In case of any questions, please consult the Soot mailing list at:

Something went wrong with that request. Please try again.