# CGO18 nAdroid Artifact This repository contains the artifact for the [CGO'18] paper: *Xinwei Fu, Dongyoon Lee, and Changhee Jung. 2018. nAdroid: Statically Detecting Ordering Violations in Android Applications. In Proceedings of 2018 IEEE/ACM International Symposium on Code Generation and Optimization (CGO’18).* ### Dependency - java and javac 1.7 (1.8 doesn't work) - ant ### How to Run ```sh $ ./run-all.sh # run all the applications # (35 in total: 7 in train set, 20 in test set, 8 in injected set) $ ./run-all-test.sh # run 3 applications # (1 in train set, 1 in test set, 1 in injected set) ``` Comments: Running all the applications costs around 30 hours in a host desktop with an 8-core cpu. I strongly recommend to run ./run-all-test.sh first to test the environment. ### Folder Description | Folder | Description | |--------------------|-----------------------------------------------------------------------------------------| | AndroidJar | Contains google android libraries with different version | | APKModeling | Contains all the test applications (35 apks) and output files (java classes) of modeling| | DetectionFilterJar | Modified Chord tool for detection and filtering. | | ModelJar | Modified Soot tool (jar file) for modeling. | | Result | All the results from detection and filtering. | | ResultAnalysisJar | Jar for extracting results and generating a csv file. | | Licenses | Flowdroid license and Chord copyright. | ### Result Analysis After running ./run-all.sh or ./run-all-test.sh, a ResultAnalysis.csv file is generated in Result folder. It contains the data using in Figure 5 and Table 1 in the paper. The LOC information and manual inspection result in Table 1 are not provided in the ResultAnalysis.csv file. The data of Table 2 exists in the Result/Injected folder. The data of Table 3 exists in the Result/Train folder. However, they all require manual inspection. ### VM with dependency installed We also provide a VirtualBox image with all the dependency installed. Please check this [link]. [CGO'18]: <http://cgo.org/cgo2018/> [link]: <https://goo.gl/V12t34>