Skip to main content

An Operational Semantics for Android Applications

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9790))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Dalvik bytecode. https://source.android.com/devices/tech/dalvik/dalvik-bytecode.html. Accessed 1 Feb 2016

  2. Dalvik docs mirror. http://www.milk.com/kodebase/dalvik-docs-mirror/. Accessed Feb 2016

  3. 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)

    Chapter  Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. Crussell, J., Gibler, C., Chen, H.: Scalable semantics-based detection of similar android applications. In: Proceedings of ESORICS, vol. 13. Citeseer (2013)

    Google Scholar 

  7. El-Zawawy, M.A.: A type system for Android applications. In: Computational Science and Its Applications-ICCSA (2016)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. Fuchs, A.P., Chaudhuri, A., Foster, J.S.: Scandroid: automated security certification of android (2009)

    Google Scholar 

  12. Gelfond, M., Lifschitz, V.: The stable model semantics for logic programming. In: ICLP/SLP, vol. 88, pp. 1070–1080 (1988)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Heim, I., Kratzer, A.: Semantics in Generative Grammar, vol. 13. Blackwell, Oxford (1998)

    Google Scholar 

  15. Karlsen, H.S., Wognsen, E.R.: Static analysis of Dalvik bytecode and reflection in android. Master’s thesis, Aalborg University, June 2012

    Google Scholar 

  16. Yuanyang, H.: Proof-of-concepts of distributed detection with privacy (2014)

    Google Scholar 

  17. Maiya, P., Kanade, A., Majumdar, R.: Race detection for android applications. In: ACM SIGPLAN Notices, vol. 49, pp. 316–325. ACM (2014)

    Google Scholar 

  18. Mednieks, Z., Laird Dornin, B., Nakamura, M.: Programming Android. O’Reilly Media, Inc., Sebastopol (2012)

    Google Scholar 

  19. Milette, G., Stroud, A.: Professional Android Sensor Programming. Wiley, New York (2012)

    Google Scholar 

  20. Newcomer, K.E., Hatry, H.P., Wholey, J.S.: Handbook of Practical Program Evaluation. Wiley, New York (2015)

    Book  Google Scholar 

  21. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, Heidelberg (2015)

    Google Scholar 

  22. 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

    Google Scholar 

  23. 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)

    Google Scholar 

  24. Rogers, R., Lombardo, J., Mednieks, Z., Meike, B.: Android Application Development: Programming with the Google SDK. O’Reilly Media Inc., Sebastopol (2009)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. Schmidt, D.A.: Denotational semantics. A methodology for language development (1997)

    Google Scholar 

  27. Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge (1977)

    MATH  Google Scholar 

  28. Wegbreit, B.: Mechanical program analysis. Commun. ACM 18(9), 528–539 (1975)

    Article  MathSciNet  MATH  Google Scholar 

  29. 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)

    Google Scholar 

  30. 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)

    Article  Google Scholar 

  31. 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)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. 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)

    Google Scholar 

  34. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohamed A. El-Zawawy .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics