Soot program converts Android application file into Jimple code.
Jimple contains two general concepts
- Local – local variables
- Units – statements
IdentityStatements
- $r0 := @this: de.ecspride.RV2013;
- $r1 := @parameter(): android.view.View;
AssignStatements
- Assignments between locals, constants, and fields
CastExpr
- Right-hand side of the assignment is a typecast
- $r4 := (android.widget.EditText) $r1;
Four different expressions to call methods
- VirtualInvokeExpr
- Virtual dispatch invoke to an instance method
- StaticInvokeExpr
- Calling a static method
- InterfaceInvokeExpr
- Calling a method of an object of which only its interface type is known
- InvokeStmt
- Any invoke expression which can be part of standalone statement