Markii
Android/Java Static Analysis Library
Install / Use
/learn @izgzhen/MarkiiREADME
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
*.factoutput 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
eis trigger on viewv, the handlercbwill run
- When event
layoutWidth(dim: Dimension, v: ViewID)- The layout width of view
visdim(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
visn
- 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
- http://web.cse.ohio-state.edu/presto/software/gator/
Contributors
- Luxi Wang
