Skip to content

Pack and Phases in Soot

Reference:

  1. https://github.com/soot-oss/soot/wiki/Packs-and-phases-in-Soot#phase-options
  2. https://soot-build.cs.uni-paderborn.de/public/origin/master/soot/soot-master/3.0.0/options/soot_options.htm#phaseOptions

image.png

Whole-program packs

  1. jb: Jimple body creation
  2. wjpp: whole-jimple pre-processing pack
    1. before call-graph generation
  3. cg: call graph constructor
  4. wjtp: whole-jimple transformation pack
    1. insert inter-procedural/whole-program analysis
    2. compute call-graph
  5. wjop: while-jimple optimization pack
    1. implement code optimizations or other transformations of Jimple IR based on the whole-program analysis results.
  6. wjap: whole-jimple annotation pack
    1. annotate Jimple statements with additional metadata, and this metadata can be persisted in Java bytecode attributes.

Jimple packs

  1. jtp: jimple transformation pack -> intra-procedural analysis
  2. jop: jimple optimization pack -> optimization
  3. jap: jimple annotation pack

Packs bb and tag

  1. bb: jimple bodies -> Baf bodies
  2. tag: aggregate certain tags