MarkII
Android/Java Static Analysis Library.
Dependency
- SBT
- Java 8
Usage
./build-run-markii.sh $APK_PATH $OUTPUT_PATH
- Input
$APK_PATH
: path to input APK file - Output
$OUTPUT_PATH
: path to output directory- This directory will contain all
*.fact
output as well as other supporting files if any.
- This directory will contain all
Supported facts (partial, see com.research.nomad.markii.FactsWriter.Fact
for a complete list):
eventHandler(e: Event, cb: Method, v: ViewID)
- When event
e
is trigger on viewv
, the handlercb
will run
- When event
layoutWidth(dim: Dimension, v: ViewID)
- The layout width of view
v
isdim
(e.g.fill_parent
)
- The layout width of view
mainActivity(act: Class)
- The main activity of the APK is
act
- The main activity of the APK is
idName(n: String, v: ViewID)
- The id-name of view
v
isn
- The id-name of view
- ...
Algorithms
SPARK
is the default call graph and pointer analysis producer for Soot.
It is better than CHA though flow-insensitive and context-insensitive.
Also, older Soot library's SPARK
has some problems processing the latest versions of android apps.
Acknowledgements
Contributors
- Luxi Wang