通过运行时强制控制 Android 应用中与库的交互
软件工程
2019-11-22 v1
摘要
Android 应用在执行时所在的智能手机配备有多种资源,必须被正确访问和控制,否则执行的正确性和整个环境的稳定性可能会受到负面影响。例如,应用必须正确获取、使用和释放麦克风、摄像头和其他多媒体设备,否则使用相同资源的应用的行为可能会受到损害。不幸的是,一些应用未能正确使用资源,例如由于故障和不准确的设计决策。与这些应用交互时,用户可能会遇到意外行为,这反过来可能导致不稳定和偶发故障,尤其是在访问资源时。在本文中,我们提出了一种方法,让用户通过强制正确的使用协议来保护其环境免受不当使用资源的应用的影响。这是通过使用可以观察执行并在必要时更改它们的软件强制器实现的。例如,强制器可以检测到资源已被获取但未释放,并自动执行释放操作,从而将该相同资源的使用可能性提供给其他应用。主要思想是,软件库,特别是控制资源访问的库,可以增补强制器,用户可按需激活和停用这些强制器,以保护其环境免受不良应用行为的影响。我们将增补了一个或多个强制器的软件库称为主动库(proactive libraries),因为强制器的激活用主动行为装饰了库,这些行为可以保证执行的正确性,尽管调用了库实现的操作。
引用
@article{arxiv.1911.09357,
title = {Controlling Interactions with Libraries in Android Apps Through Runtime Enforcement},
author = {Oliviero Riganelli and Daniela Micucci and Leonardo Mariani},
journal= {arXiv preprint arXiv:1911.09357},
year = {2019}
}
备注
accepted for publication in ACM Transactions on Autonomous and Adaptive Systems (TAAS). Special Section on Best Papers from SEAMS 2017 (The conference paper is arXiv:1703.08005)