Abstract
The most common operating system for smart phones, which are among the most common forms of computers today, is the Android operating system. The Android applications are executed on Dalvik Virtual Machines (DVMs) which are register-based, rather than stack-based such as Java Virtual Machines (JVMs). The differences between DVMs and JVMs make tools of programm analysis of JVMs are not directly applicable to DVMs. Operational semantics is a main tool to study, verify, and analyze Android applications.
This paper presents an accurate operational semantics Android \(\mathcal {S}\) for Android programming. The set of Dalvik instruction considered in the semantics is designed carefully to capture main functionalities of Android programming and to enable the use of semantics to evaluate method of Application analysis. The semantics also simulates the interaction between users and applications during application executions. The semantics also respects constrains of state changes imposed by the life cycle of Android applications.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Dalvik bytecode. https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html. Accessed 1 Feb 2016
Dalvik docs mirror. http://www.milk.com/kodebase/dalvik-docs-mirror/. Accessed Feb 2016
Bauer, A., Küster, J.-C., Vegliach, G.: Runtime verification meets android security. In: Goodloe, A.E., Person, S. (eds.) NFM 2012. LNCS, vol. 7226, pp. 174–180. Springer, Heidelberg (2012)
Chaudhuri, A.: Language-based security on android. In: Proceedings of ACM SIGPLAN 4th Workshop on Programming Languages and Analysis for Security, pp. 1–7. ACM (2009)
Cousot, P.: Semantic foundations of program analysis. In: Muchnick, S.S., Jones, N. (eds.) Program Flow Analysis: Theory and Application. Prentice Hall, Englewood Cliffs (1981)
Crussell, J., Gibler, C., Chen, H.: Scalable semantics-based detection of similar android applications. In: Proceedings of ESORICS, vol. 13. Citeseer (2013)
El-Zawawy, M.A.: A type system for Android applications. In: Computational Science and Its Applications-ICCSA (2016)
El-Zawawy, M.A.: Abstraction analysis and certified flow and context sensitive points-to relation for distributed programs. In: Murgante, B., Gervasi, O., Misra, S., Nedjah, N., Rocha, A.M.A.C., Taniar, D., Apduhan, B.O. (eds.) ICCSA 2012, Part IV. LNCS, vol. 7336, pp. 83–99. Springer, Heidelberg (2012)
El-Zawawy, M.A.: Novel designs for memory checkers using semantics and digital sequential circuits. In: Murgante, B., Gervasi, O., Misra, S., Nedjah, N., Rocha, A.M.A.C., Taniar, D., Apduhan, B.O. (eds.) ICCSA 2015. LNCS, vol. 9158, pp. 597–611. Springer, Heidelberg (2012)
Feng, Y., Anand, S., Dillig, I., Aiken, A.: Apposcopy: semantics-based detection of android malware through static analysis. In: Proceedings of 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 576–587. ACM (2014)
Fuchs, A.P., Chaudhuri, A., Foster, J.S.: Scandroid: automated security certification of android (2009)
Gelfond, M., Lifschitz, V.: The stable model semantics for logic programming. In: ICLP/SLP, vol. 88, pp. 1070–1080 (1988)
Gordon, M.I., Kim, D., Perkins, J.H., Gilham, L., Nguyen, N., Rinard, M.C.: Information flow analysis of android applications in droidsafe. In: NDSS (2015)
Heim, I., Kratzer, A.: Semantics in Generative Grammar, vol. 13. Blackwell, Oxford (1998)
Karlsen, H.S., Wognsen, E.R.: Static analysis of Dalvik bytecode and reflection in android. Master’s thesis, Aalborg University, June 2012
Yuanyang, H.: Proof-of-concepts of distributed detection with privacy (2014)
Maiya, P., Kanade, A., Majumdar, R.: Race detection for android applications. In: ACM SIGPLAN Notices, vol. 49, pp. 316–325. ACM (2014)
Mednieks, Z., Laird Dornin, B., Nakamura, M.: Programming Android. O’Reilly Media, Inc., Sebastopol (2012)
Milette, G., Stroud, A.: Professional Android Sensor Programming. Wiley, New York (2012)
Newcomer, K.E., Hatry, H.P., Wholey, J.S.: Handbook of Practical Program Evaluation. Wiley, New York (2015)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (2015)
Payet, É., Spoto, F.: An operational semantics for android activities. In: Chin, W.-N., Hage, J. (eds.) Proceedings of ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation, PEPM, San Diego, California, USA, pp. 121–132. ACM, 20–21 January 2014
Rasthofer, S., Arzt, S., Miltenberger, M., Bodden, E.: Harvesting runtime data in android applications for identifying malware and enhancing code analysis. Technical report, TUD-CS-2015-0031, EC SPRIDE (2015)
Rogers, R., Lombardo, J., Mednieks, Z., Meike, B.: Android Application Development: Programming with the Google SDK. O’Reilly Media Inc., Sebastopol (2009)
Rountev, A., Yan, D.: Static reference analysis for GUI objects in android software. In Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization, p. 143. ACM (2014)
Schmidt, D.A.: Denotational semantics. A methodology for language development (1997)
Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge (1977)
Wegbreit, B.: Mechanical program analysis. Commun. ACM 18(9), 528–539 (1975)
Wognsen, E.R., Karlsen, H.S.: Static analysis of Dalvik bytecode and reflection in android. Master’s thesis, Department of Computer Science, Aalborg University, Aalborg, Denmark (2012)
Wognsen, E.R., Karlsen, H.S., Olesen, M.C., Hansen, R.R.: Formalisation and analysis of Dalvik bytecode. Sci. Comput. Program. 92, 25–55 (2014)
Yang, S., Yan, D., Haowei, W., Wang, Y., Rountev, A.: Static control-flow analysis of user-driven callbacks in android applications. In: Proceedings of 37th International Conference on Software Engineering, vol. 1, pp. 89–99. IEEE Press (2015)
You, W., Liang, B., Li, J., Shi, W., Zhang, X.: Android implicit information flow demystified. In: Proceedings of 10th ACM Symposium on Information, Computer and Communications Security, pp. 585–590. ACM (2015)
Zhang, M., Duan, Y., Yin, H., Zhao, Z.: Semantics-aware android Malware classification using weighted contextual API dependency graphs. In: Proceedings of 2014 ACM SIGSAC Conference on Computer and Communications Security, pp. 1105–1116. ACM (2014)
Zhang, Y., Yang, M., Bingquan, X., Yang, Z., Guofei, G., Peng Ning, X., Wang, S., Zang, B.: Vetting undesirable behaviors in android apps with permission use analysis. In: Proceedings of 2013 ACM SIGSAC Conference on Computer and Communications Security, pp. 611–622. ACM (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
El-Zawawy, M.A. (2016). An Operational Semantics for Android Applications. In: Gervasi, O., et al. Computational Science and Its Applications – ICCSA 2016. ICCSA 2016. Lecture Notes in Computer Science(), vol 9790. Springer, Cham. https://doi.org/10.1007/978-3-319-42092-9_9
Download citation
DOI: https://doi.org/10.1007/978-3-319-42092-9_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-42091-2
Online ISBN: 978-3-319-42092-9
eBook Packages: Computer ScienceComputer Science (R0)