Affiliation:
1. University of Milano - Bicocca, Milan, MI, Italy
Abstract
Android applications are executed on smartphones equipped with a variety of resources that must be properly accessed and controlled, otherwise the correctness of the executions and the stability of the entire environment might be negatively affected. For example, apps must properly acquire, use, and release microphones, cameras, and other multimedia devices, otherwise the behavior of the apps that use the same resources might be compromised.
Unfortunately, several apps do not use resources correctly, for instance, due to faults and inaccurate design decisions. By interacting with these apps, users may experience unexpected behaviors, which in turn may cause instability and sporadic failures, especially when resources are accessed.
In this article, we present an approach that lets users
protect
their environment from the apps that use resources improperly by enforcing the correct usage protocol. This is achieved by using
software enforcers
that can observe executions and change them when necessary. For instance, enforcers can detect that a resource has been acquired but not released and automatically perform the release operation, thus giving the possibility to use that same resource to the other apps.
The main idea is that software libraries, in particular, the ones controlling access to resources, can be augmented with enforcers that can be activated and deactivated on demand by users to protect their environment from unwanted app behaviors. We call the software libraries augmented with one or more enforcers
proactive libraries
, because the activation of the enforcer decorates the library with
proactive behaviors
that can guarantee the correctness of the execution despite the invocation of the operations implemented by the library. For example, enforcers can detect that a resource has not been released on time and proactively release it.
Our experimental results with 27 possible misuses of resources in real Android apps reveal that proactive libraries are able to effectively correct library misuses with negligible runtime overheads.
Funder
Ministero dellðIstruzione, dellðUniversità e della Ricerca
European Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Software,Computer Science (miscellaneous),Control and Systems Engineering
Reference57 articles.
1. Android. 2019. The Activity Lifecycle. Retrieved from https://developer.android.com/guide/components/activities/activity-lifecycle.html. Android. 2019. The Activity Lifecycle. Retrieved from https://developer.android.com/guide/components/activities/activity-lifecycle.html.
2. Android. 2019. Android API. Retrieved from https://developer.android.com/guide/index.html. Android. 2019. Android API. Retrieved from https://developer.android.com/guide/index.html.
3. Android. 2019. Android Studio. Retrieved from https://developer.android.com/studio/index.html. Android. 2019. Android Studio. Retrieved from https://developer.android.com/studio/index.html.
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Automatic testing of runtime enforcers with Test4Enforcers;Journal of Systems and Software;2024-04
2. A component framework for the runtime enforcement of safety properties;Journal of Systems and Software;2023-04
3. Automatic Testing of Runtime Enforcers with Test4enforcers;2023
4. Proactive libraries;Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings;2022-05-21
5. Proactive Libraries: Enforcing Correct Behaviors in Android Apps;2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion);2022-05