Automated Repair of Resource Leaks in Android Applications
本文提出PlumbDroid,通过静态分析识别可能泄漏资源的执行轨迹,并自动在合适位置插入释放操作;实验表明其可精确修复多种Android资源泄漏且修复更小、更快。
2022-06-28 cs.SE
Towards Automated Android App Collusion Detection
Android OS支持多种应用之间的通信方式。这为以协作方式实施威胁提供了可能性,参见。2011年的Soundcomber示例。在本文中,我们提供了一个简洁的定义,共谋和报告的自动检测方法,与英特尔安全合作开发。
2016-03-07 cs.CR cs.SE
Fully Automated Functional Fuzzing of Android Apps for Detecting Non-crashing Logic Bugs
Android应用程序是基于GUI的事件驱动软件,近年来变得无处不在。显然,功能正确性对于应用程序的成功至关重要。然而,除了崩溃错误之外,非崩溃功能错误(在本工作中简称为“非崩溃错误”),如无意的功能故障,无声的用户数据丢失和不正确的显示信息也很普遍,即使在流行的,经过良好测试的应用程序中也是如此。这些非崩溃功能错误通常由程序逻辑错误引起,并在图形用户界面(GUI)上表现出来。在实践中,这些错误在有效检测它们方面构成了重大挑战,因为(1)当前的实践严重依赖于昂贵的小规模手动验证(缺乏自动化);(2)现代全自动测试仅限于崩溃错误(缺乏测试预言机)。本文通过引入独立视图模糊来填补这一空白,这是一种用于检测Android应用程序中非崩溃功能错误的新颖的全自动方法。受变形测试的启发,我们的主要见解是利用Android应用程序的普遍独立视图属性,从一组验证某些应用程序属性的种子测试中制造属性保留突变测试。变异的测试有助于在额外的不利条件下测试测试应用程序。任何属性冲突都表明可能存在功能错误,需要进一步手动确认。我们已经实现了我们的方法作为一个自动化的,端到端的功能模糊工具,精灵。给定一个应用程序,(1)Genie自动检测非崩溃错误,而不需要人类提供的测试和预言(因此完全自动化);(2)检测到的非崩溃错误是多种多样的(因此是通用的,不限于特定的功能属性),这使Genie与以前的工作不同。
2021-10-05 cs.SE
GDPR-Bench-Android: A Benchmark for Evaluating Automated GDPR Compliance Detection in Android
本文提出首个用于评估Android应用中自动化GDPR合规性检测的综合基准GDPR-Bench-Android,包含1951个违规实例,并基于多粒度违规定位和多标签分类任务评估了11种方法,揭示了不同自动化范式的任务依赖性优势。
2025-11-01 cs.SE
PADRAIG: Precise Android Automated Input Generation
SFI Lero & , School of Computer Science and Statistics , Trinity College Dublin(SFI Lero 与 都柏林三一学院计算机科学与统计学院)
PADRAIG是基于模型的安卓测试输入生成框架,通过AUT控制流模型提升行覆盖率,在19款安卓应用上,其覆盖率比现有技术高16%,耗时减少84%。
2026-08-04 cs.SE
The Android Update Problem: An Empirical Study
许多手机供应商使用Android作为其底层操作系统,但经常对其进行扩展以添加新功能并使其与特定手机兼容。当新版本的Android发布时,手机供应商需要合并或重新应用他们的自定义和更改到新版本。这是一个困难和耗时的过程,往往导致新版本的延迟采用。在本文中,我们进行了一项实证研究,以了解手机供应商所做的更改的性质,与Android的原始开发中所做的更改。通过调查不同更改的重叠,我们还确定了自动支持合并它们的可能性。我们开发了一个公开可用的工具链,基于现有的工具的组合,研究这些变化及其重叠。作为代理案例研究,我们分析了流行的基于社区的Android变体LineageOS及其相应的Android版本的变化。我们调查并报告实践中发生的常见变化类型。我们的研究结果表明,LineageOS修改的子系统中有83%也会在下一个Android版本中进行修改。通过考虑重叠更改的性质,我们评估了自动化工具支持的可行性,以帮助手机供应商解决Android更新问题。我们的研究结果表明,LineageOS中56%的更改有可能被安全地自动化。
2018-03-20 cs.SE
Feedback-Driven Automated Whole Bug Report Reproduction for Android Apps
本文提出反馈驱动的方法ReBL,利用GPT-4和整份文本错误报告自动复现Android错误报告,在96份报告上实现90.63%成功率,优于三种现有工具。
2024-08-28 cs.SE
GIFdroid: Automated Replay of Visual Bug Reports for Android Apps
错误报告对于软件维护至关重要,它允许用户通知开发人员在使用软件时遇到的问题。然而,对于非技术用户来说,很难写清楚关于bug发生的描述。因此,越来越多的用户开始记录报告错误的屏幕,因为它很容易创建,并包含触发错误的详细过程。但是,由于记录中的长度和不清楚的操作,开发人员重现错误仍然是繁琐和耗时的。为了克服这些问题,我们提出了GIFdroid,一个轻量级的方法来自动重放的执行跟踪从视觉错误报告。GIFdroid采用图像处理技术从记录中提取关键帧,将其映射到GUI Transitions Graph中的状态,并生成这些状态的执行轨迹以触发bug。我们的自动化实验和用户研究证明了它的准确性,效率和实用性的方法。
2022-04-19 cs.SE
Fine-grained Code Coverage Measurement in Automated Black-box Android Testing
今天,有数百万的第三方Android应用程序。这些应用程序中有一些是错误的,甚至是恶意的。为了识别这些应用程序,包括Google在内的Android社区正在开发用于自动化黑盒测试和动态分析的新框架。代码覆盖率是评估这些框架有效性的最常见指标之一。此外,代码覆盖率被用作指导进化和模糊测试技术的适应度函数。然而,在黑盒Android应用程序测试中,没有可靠的工具来测量细粒度的代码覆盖率。我们提出了Android代码覆盖工具,简称ACVTool,它可以检测Android应用程序,并在类,方法和指令粒度的黑盒设置中测量代码覆盖率。在我们的实验中,ACVTool已经成功检测了96.9%的应用程序。它引入了一个可以忽略不计的插装时间开销,并且它的运行时开销对于自动化测试工具来说是可以接受的。我们在一个大规模的实验与Sapienz,一个国家的最先进的测试工具,细粒度的预防级别的代码覆盖率ACVTool提供的帮助,发现了更大的故障比粗粒度的代码覆盖率指标。
2018-12-27 cs.CR cs.SE
LDMDroid: Leveraging LLMs for Detecting Data Manipulation Errors in Android Apps
Xiamen University(厦门大学)
本文提出利用LLM开发LDMDroid框架,通过状态感知过程生成UI事件序列以提高数据操纵功能触发成功率,并利用视觉特征识别数据状态变化,有效检测数据操纵错误。
2026-05-09 cs.SE
DroidLink: Automated Generation of Deep Links for Android Apps
移动应用程序(app)已成为手持设备上访问互联网的主要入口。与Web不同,每个网页都有一个可直接访问的全局URL,应用程序的特定“内容页面”只能通过从着陆页使用几个操作来浏览应用程序才能打开。应用程序之间的互操作性相当固定,因此限制了应用程序之间的增值“链接数据”。最近,已经提出了深度链接,以使得能够利用可访问的统一资源标识符(URI)在外部定位和打开应用的特定页面。然而,为移动应用程序实现深度链接需要应用程序开发人员进行大量手动工作,这可能非常容易出错且耗时。在本文中,我们建议DroidLink为现有Android应用程序自动生成深度链接。我们设计了一个适合自动生成的深度链接模型。然后,我们探讨了页面的过渡,并建立了一个导航图的基础上静态和动态分析的Android应用程序。接下来,我们实现了一种更新机制,该机制可以不断重新访问目标应用并发现新页面,从而为应用的每个页面生成深度链接。最后,我们重新打包了支持深度链接的应用,但不需要额外的部署要求。我们为一些流行的应用程序生成深度链接,并证明了DroidLink的可行性。
2016-05-23 cs.SE
LELANTE: LEveraging LLM for Automated ANdroid TEsting
本文提出 LELANTE 框架,利用大型语言模型自动解释自然语言测试用例并直接在 Android 屏幕上执行操作,无需预编写脚本,在 390 个测试用例中达到 73% 成功率,有效提升了移动测试的可扩展性和适应性。
2025-04-29 cs.SE
To What Extent Is Stress Testing of Android TV Applications Automated in Industrial Environments?
基于Android的智能电视(TV)必须在各种硬件资源条件下在嵌入式程序环境中可靠地运行其应用程序。由于用于构建众多电视模型的各种硬件组件,电视模拟器通常没有足够的保真度来模拟各种电视模型,因此在对此类应用进行压力测试时仅被视为不可靠的替代品。因此,尽管在真实电视机上进行压力测试是繁琐的,但这是确保行业中这些应用程序可靠性的事实方法。在本文中,我们研究在工业环境中,智能电视应用程序的压力测试可以在多大程度上完全自动化。据我们所知,没有以前的工作已经解决了这个重要的问题。我们总结了从10个工业测试工程师那里收集的结果,他们在真实的生产环境中测试了20个这样的电视应用程序。我们的研究表明,行业所需的测试自动化支持高层次的GUI对象控制和状态检查,资源条件的设置和两者之间的相互作用。有了这些支持,一个电视型号的87%的工业测试规格可以完全自动化,其中71.4%被发现是完全可重复使用的,以测试后续的电视型号,主要升级的硬件,操作系统和应用程序。与没有此类支撑的压力测试相比,它代表了28%和38%的利润率的显着改善。
2015-09-23 cs.SE
Automated Deobfuscation of Android Native Binary Code
随着Android应用程序的普及,已经提出了不同的技术来增强应用程序保护。混淆技术作为防止逆向工程的一种有效方法,可以用于良性和恶意目的。近年来,由于Java字节码的局限性,越来越多的敏感逻辑或数据被实现为混淆的本机代码。因此,本机代码混淆成为安全分析理解复杂逻辑的一大障碍。在本文中,我们提出了DiANa,一个自动化系统,以促进Android应用程序中的本地二进制代码的去混淆。具体来说,给定由Obfuscator-LLVM(最流行的本机代码混淆器)混淆的二进制文件,DiANa能够恢复原始的控制流图。据我们所知,DiANa是第一个旨在解决Android原生二进制去混淆问题的系统。我们已经在不同的场景中应用DiANa,实验结果表明,DiANa的通用相似性比较指标的基础上的有效性。
2020-03-16 cs.CR cs.SE
How do Developers Test Android Applications?
实现移动应用程序的全自动测试最近已成为研究人员和从业人员的重要研究课题。已经提出了大量的工具和方法,通过增加手动测试实践和自动化测试过程的各个部分来帮助移动开发人员。然而,目前的自动化测试方法无法让开发人员相信它们的好处,导致大多数移动测试都是手动执行的。为了帮助设计支持移动测试方法的研究人员和从业人员了解开发人员的需求,我们分析了来自Android项目的102位开源贡献者关于他们在执行测试时的实践的调查回复。调查的重点是关于开发人员/测试人员在野外的实践和偏好的问题:(i)设计和生成测试用例,(ii)自动化测试实践,以及(iii)对质量度量的看法,例如用于确定测试质量的代码覆盖率。通过分析从这次调查中收集到的信息,我们汇编了一套知识体系,以帮助指导研究人员和专业人员根据不同开源开发人员的需求定制新的自动化测试方法。
2018-01-19 cs.SE
From Manual Android Tests to Automated and Platform Independent Test Scripts
由于移动应用程序非常受欢迎,并且通常是关键任务,因此公司投入了大量资源来测试他们提供给客户的应用程序。测试对于Android应用尤其重要,因为这些应用必须在多种设备和操作系统版本上运行。不幸的是,正如我们在与质量保证专业人员的多次采访中所证实的那样,应用程序测试是一项非常人力密集的活动,因此繁琐且容易出错。为了解决这个问题,并更好地支持Android应用程序的测试,我们提出了一种新的技术,允许测试人员轻松地为应用程序创建独立于平台的测试脚本,并自动在多个设备和操作系统版本上运行生成的测试脚本。该技术在不修改被测应用程序或运行时系统的情况下这样做,通过(1)拦截测试人员与应用程序的交互,以及(2)为测试人员提供直观的方式来指定预期结果,然后将其编码为测试神谕。我们在一个名为Barista的工具中实现了我们的技术,并使用该工具来评估我们方法的实用性和适用性。我们的研究结果表明,Barista可以忠实地编码用户定义的测试用例作为测试脚本与内置的预言机,生成测试脚本,可以在多个平台上运行,并可以胜过一个国家的最先进的工具,具有类似的功能。咖啡师和我们的实验基础设施是公开的。
2016-08-11 cs.SE
StoryDroid: Automated Generation of Storyboard for Android Apps
移动应用程序现在无处不在。在开发一个新的应用程序之前,开发团队通常会付出艰苦的努力来审查许多具有类似目的的现有应用程序。审查过程至关重要,因为它降低了市场风险,并为应用程序开发提供了灵感。然而,手动探索数百个现有的应用程序的不同角色(例如,产品经理,UI/UX设计师,开发人员)在开发团队中可能是无效的。例如,很难在短时间内完全探索应用程序的所有功能。受电影制作中故事板概念的启发,我们提出了一个系统StoryDroid,用于自动生成Android应用程序的故事板,并帮助不同的角色有效地审查应用程序。具体地说,StoryDroid提取活动转换图,并利用静态分析技术来呈现UI页面,从而使用呈现的页面可视化故事板。UI页面与对应的实现代码之间的映射关系(例如,布局代码、活动代码和方法层次结构)也被提供给用户。我们的综合实验表明,StoryDroid是有效的,确实有助于应用程序开发。StoryDroid的输出支持几个潜在的应用程序,例如UI设计和布局代码的推荐。
2019-02-15 cs.SE
Automated Test Transfer Across Android Apps Using Large Language Models
针对手动编写维护Android应用UI测试成本高、现有跨应用测试迁移方法难以适应现实变化的问题,提出基于LLMs的LLMigrate技术,实现97.5%迁移成功率、减少91.1%手动工作量,性能显著优于现有方法。
2025-04-20 cs.SE
Columbus: Android App Testing Through Systematic Callback Exploration
随着Android移动设备的不断普及,应用程序的自动化测试变得比以往任何时候都更加重要。Android应用程序是事件驱动的程序。不幸的是,通过与应用程序的界面交互来生成所有可能类型的事件对于自动化测试方法来说是一个挑战。回调驱动的测试通过直接调用应用回调消除了事件生成的需要。然而,现有的回调驱动测试技术假设Android回调的先验知识,并且它们依赖于熟悉Android API的人类专家来编写在调用之前准备回调参数的存根代码。由于Android API庞大且不断发展,现有技术只能支持Android框架中存在的一小部分回调。在这项工作中,我们介绍了Columbus,一种回调驱动的测试技术,它采用两种策略来消除对人类参与的需求:(i)它通过同时分析Android框架和测试中的应用程序来自动识别回调,以及(ii)它使用了一种组合,(原始参数)和类型引导的动态堆内省(对象参数)来生成有效的输入。最后,Columbus在测试过程中集成了两种新的反馈机制--数据依赖和崩溃指导,以增加触发崩溃的可能性,并最大限度地提高覆盖率。在我们的评估中,Columbus在崩溃和覆盖率方面都优于最先进的模型驱动、基于检查点和回调驱动的测试工具。
2023-02-17 cs.SE
Reinforcement Learning-Driven Test Generation for Android GUI Applications using Formal Specifications
Bogazici University(博阿齐奇大学)
针对移动图形用户界面(GUI)应用的自动测试生成已经有了很多研究。这些研究成功地演示了如何检测致命异常,并实现高代码和活动覆盖率与全自动测试生成引擎。然而,目前还不清楚这些引擎能够测试多少GUI功能。此外,这些引擎只实现隐式测试预言机。本文提出了一种基于强化学习驱动规范的Android测试生成器(FARLEAD-Android)。FARLEAD-Android接受GUI级别的形式化规范作为线性时间时态逻辑(LTL)公式。通过动态执行被测应用程序(AUT),它学习如何使用强化学习(RL)生成满足LTL公式的测试。LTL公式不仅指导测试生成,而且还充当指定的测试预言机,使开发人员能够通过更改公式为各种GUI功能定义自动化测试预言机。我们的评估表明,FARLEAD-Android在为指定的GUI功能生成测试方面比三种已知的方法(Random,Monkey和QBEa)更有效,并且性能更高。据我们所知,FARLEAD-Android是第一个使用正式规范的全自动移动GUI测试引擎。
2019-11-27 cs.AI cs.LG cs.SE
AndroVault: Constructing Knowledge Graph from Millions of Android Apps for Automated Analysis
Android数据驱动的研究近年来获得了很大的发展势头。数据的丰富为知识学习提供了便利,但同时也增加了数据预处理的难度。因此,为研究准备一套要求严格且准确的数据是很重要的。本文提出了AndroVault框架,它是一个集数据汇集、知识表示和知识抽取为一体的Android研究框架。它从2013年开始使用长期运行的网络爬虫进行数据汇集(包括应用和描述),这保证了数据的及时性;通过对收集的数据进行静态分析和动态分析,我们计算各种属性来表征Android应用。之后,我们使用知识图谱通过计算属性方面的相关性来连接所有这些应用程序;最后,我们利用逻辑推理,机器学习和相关性分析等多种技术来提取对特定研究问题有益的事实(更准确和要求更高的数据,无论是否是高级数据)。利用这些高质量的数据,我们成功地进行了许多研究工作,包括恶意软件检测,代码生成和Android测试。我们希望以认证的方式向研究界发布我们的数据,并鼓励他们进行富有成效的研究。
2017-11-21 cs.CR cs.SE
MobiCoMonkey - Context Testing of Android Apps
许多移动应用程序的功能取决于各种上下文、外部因素。根据不可预见的情况,移动应用程序甚至可能出现故障或崩溃。在本文中,我们介绍了一种自动化工具,允许开发人员针对自定义或自动生成的上下文场景测试应用程序,并通过模拟器帮助检测可能的错误。此外,它还报告了错误和上下文因素之间的联系,以便以后可以重现错误。它利用Android SDK和logcat提供的工具来注入事件并捕获应用程序执行的痕迹。
2018-04-07 cs.SE
An Automatically Verified Prototype of the Android Permissions System
在以前的工作德卢卡和卢娜提出了正式规范的理想化配方的权限模型的Android在Coq证明助手。这个正式的开发大约是23 Kbps的Coq代码,包括证明。这项工作的目的是表明,{log}(“setlog”)-一个可满足性求解器和约束逻辑程序设计语言-可以被用来作为一个有效的自动证明类的证明,必须履行的形式化验证的系统,如一个进行了德卢卡和卢娜。我们展示了Coq模型是如何在{log}中编码的,以及如何执行自动化证明。生成的{log}模型是Android权限系统的自动验证的可执行原型。在执行{log}中的所有证明后,提供了有关经验评估的详细数据。Coq和{log}的集成,以提供一个具有自动化证明和原型生成的框架进行了讨论。
2022-09-21 cs.LO cs.SE
Prompting Is All You Need: Automated Android Bug Replay with Large Language Models
针对 Android 缺陷复现依赖人工模式与预定义词汇的问题,本文提出基于 LLM 提示工程、少样本学习和思维链推理的 AdbGPT,无需训练即可高效复现缺陷。
2024-05-08 cs.SE
AndroScanner: Automated Backend Vulnerability Detection for Android Applications
Georgia Institute of Technology(佐治亚理工学院)
本文提出AndroScanner,通过静态与动态分析结合的方法,检测Android应用后端漏洞,发现5个漏洞,包括一个未报告的零日漏洞。
2026-04-15 cs.CR cs.NI cs.SE
Humanoid: A Deep Learning-based Approach to Automated Black-box Android App Testing
自动输入生成器广泛用于移动应用程序的大规模动态分析。这样的输入生成器必须不断地选择与哪个UI元素交互以及如何与它交互,以便在有限的时间预算内实现高覆盖率。目前,大多数输入生成器采用伪随机或蛮力搜索策略,这可能需要很长时间才能找到正确的输入组合,从而将应用程序驱动到新的重要状态。在本文中,我们提出了Humanoid,一种基于深度学习的方法,通过从人类交互中学习来生成GUI测试输入。我们的观点是,如果我们可以从人类生成的交互痕迹中学习,就有可能根据用户感知的重要性自动对测试输入进行优先级排序。我们设计并实现了一个深度神经网络模型,以了解最终用户如何与应用程序交互(具体来说,与哪些UI元素交互以及如何交互)。我们的实验表明,交互模型可以成功地优先考虑任何新UI的用户首选输入(前1名的准确率为51.2%,前10名的准确率为85.2%)。我们基于学习的模型为Android应用程序实现了一个输入生成器,并在开源应用程序和市场应用程序上对其进行了评估。结果表明,Humanoid能够实现比六个最先进的测试生成器更高的覆盖率。然而,进一步的分析表明,学习模型不是覆盖率提高的主要原因。虽然学习的交互模式可以以更高的概率驱动应用进入一些重要的GUI状态,但它对GUI状态搜索的宽度和深度的影响有限,这是长期提高测试覆盖率的关键。是否以及如何使用人类交互模式来提高覆盖率仍然是一个未知且具有挑战性的问题。
2020-12-30 cs.SE
Multi-Objective Improvement of Android Applications
针对移动应用非功能属性优化的权衡问题,该研究提出基于遗传改进的多目标优化方法与开源工具GIDroid,构建新基准,验证了其在性能优化上的有效性。
2023-08-22 cs.SE
Modelling Android applications through static analysis and systematic exploratory testing
SFI Lero & School of Computer Science, University College Dublin(都柏林大学学院计算机科学系);National Institute of Informatics(日本国立情报学研究所);School of Computer Science and Statistics, Trinity College Dublin(都柏林三一学院计算机科学与统计学院)
本文提出DroidGraph框架,结合静态分析与系统探索性测试为Android应用生成控制流模型,实验显示其能提升应用交互覆盖度并发现更多代码组件与回调链接。
2026-08-04 cs.SE
NaviDroid: A Tool for Guiding Manual Android Testing via Hint Moves
作为自动GUI测试的补充,手动测试是应用质量的最后一道防线,特别是在发现可用性和可访问性问题方面。然而,重复的动作和容易丢失的一些功能,使手工测试耗时,劳动密集和效率低下。受糖果粉碎游戏的启发,我们开发了一个名为NaviDroid的工具,用于通过突出显示的下一个操作来导航人类测试人员,以实现更有效和高效的测试。在NaviDroid中,它构建了一个丰富的状态转换图(STG),其中触发器动作作为两个相关状态的边。NaviDroid在STG的基础上,利用动态规划算法规划探索路径,并在运行时GUI中增加可视化提示动作,使测试人员能够快速探索未测试的状态,避免重复。自动化实验证明了NaviDroid的高覆盖率和高效的路径规划。用户研究进一步证实了它的有用性,在参与者覆盖更多的状态和活动,检测更多的错误在更短的时间内与对照组相比。NaviDroid演示视频:https://youtu.be/lShFyg_nTA0。
2022-05-27 cs.SE
An Empirical Investigation into the Reproduction of Bug Reports for Android Apps
与确保移动应用程序质量相关的关键任务之一是报告,管理和解决错误报告。因此,研究人员已经投入了大量资源来自动化移动应用程序错误管理过程的各种任务,例如复制和分类。然而,这些自动化方法的成功在很大程度上取决于它们所操作的错误报告的特征和属性。因此,了解移动应用程序错误报告对于推动报告管理技术的持续发展至关重要。虽然之前的研究已经检查了大量报告的高级统计数据,但我们目前缺乏对移动应用程序问题跟踪器中通常报告的信息如何与重现潜在故障所需的具体细节相关的深入调查。在本文中,我们对从GitHub上的Android应用程序中系统挖掘的180个可重现的错误报告进行了深入分析,并调查了报告中包含的信息与重现所述错误的任务之间的关系。在我们的分析中,我们关注三条信息:重现bug报告所需的环境、重现的步骤(S2R)和观察到的行为。关注这些信息,我们描述故障类型,识别用于报告信息的模式,并描述报告中信息的质量。我们发现bug是以多模态的方式报告的,环境并不总是提供的,S2R经常包含缺失或非特定的足够信息。这些发现对自动化错误复制技术以及更普遍的自动化错误报告管理方法具有重要意义。
2023-01-03 cs.SE
On-Device Bug Reporting for Android Applications
移动应用程序中出现的错误可能难以重现和修复,这是由于几个混杂因素,包括移动应用程序的高度GUI驱动性质、不同的上下文状态、不同的平台版本和设备碎片。很明显,开发人员需要以自动化工具的形式提供支持,以便更准确地报告应用程序缺陷,从而促进更高效和有效的错误修复。在本文中,我们提出了一个工具,旨在支持应用程序测试人员和开发人员在设备上的错误报告的过程中。我们的工具ODBR利用uiautomator框架和低级别事件流捕获来支持记录和回放一系列输入手势和传感器事件,这些事件描述了Android应用程序中的错误。
2018-01-18 cs.SE
Identifying and Characterizing Silently-Evolved Methods in the Android API
Android平台拥有超过500,000个提交和700多个贡献者,无疑是最大的工业规模软件项目之一。该项目提供了Android API,开发人员严重依赖此API来开发他们的Android应用程序。不幸的是,由于Android平台及其API的发展速度非常快,应用开发人员需要不断监控API的变化,以避免其应用中出现兼容性问题(\ie问题会导致应用在较新版本的API上运行时无法按预期工作)。尽管对Android API中的兼容性问题进行了大量研究,但研究社区尚未调查与沉默进化方法(SEM)相关的问题。这些方法的行为可能已经改变,但相应的文档没有相应地改变。由于应用程序开发人员依赖所提供的文档来发展其应用程序,因此对未适当记录的方法进行的更改可能会导致使用这些方法的应用程序出现意外故障。为了阐明这类问题,我们进行了一项大规模的实证研究,在该研究中,我们识别并描述了Android API的十个版本中的SEM。在这项研究中,我们确定了SEM,描述了变化的性质,并分析了SEM对一组1,000个真实Android应用程序的影响。我们的实验结果表明,SEM确实存在于Android API中,我们考虑的应用程序中有957个至少使用了一个SEM。基于这些结果,我们认为Android平台开发人员应该采取行动,以避免引入SEM,特别是那些涉及语义变化。这种情况突出了需要自动化技术和工具来帮助Android从…
2022-05-31 cs.SE
Automated and Context-Aware Repair of Color-Related Accessibility Issues for Android Apps
针对Android应用中文本与图像对比度等颜色无障碍问题,提出自动化上下文感知方法Iris,通过最优颜色求解和属性定位实现高成功率修复并保持设计风格一致。
2023-08-17 cs.SE
Spotting Setting-Related UI Display Bugs in Android Apps
School of Informatics (National Characteristic Demonstration Software School), Xiamen University(厦门大学信息学院(国家示范性软件学院));Fujian Engineering Research Center of High-Performance Intelligent Computing Systems(福建省高性能智能计算系统工程研究中心)
研究安卓应用因设置引发的用户界面显示错误,通过实证研究找模式作测试依据,提出工具SUDFinder,用注入测试活动确保覆盖,评估发现能有效识别错误,有一定精度,部分已被确认和修复。
2026-07-07 cs.SE
Breaking Android with AI: A Deep Dive into LLM-Powered Exploitation
Sam Houston State University(萨姆霍茨州立大学)
本研究利用LLM工具(如PentestGPT)自动化Android渗透测试中的root过程,通过与传统方法对比,评估其有效性、可靠性及可扩展性,并强调人类监督对确保准确性和伦理应用的必要性。
2025-09-09 cs.AI cs.SE
DroidLeaks: Benchmarking Resource Leak Bugs for Android Applications
Android应用中的资源泄漏漏洞非常普遍,可能导致严重的性能下降和系统崩溃。近年来,已经提出了几种资源泄漏检测技术来帮助Android开发人员正确管理系统资源。然而,目前还没有一个通用的bug基准来有效和可靠地比较这些技术,并定量地评估它们的优缺点。本文介绍了我们对构建这样一个基准的初步贡献。为了找到真正的资源泄漏漏洞,我们挖掘了34个大规模开源Android应用程序的124,215个代码修订。我们成功地从34个应用程序中的32个应用程序中发现了298个修复的资源泄漏,这些泄漏涵盖了各种资源类。为了了解这些漏洞的特征,我们进行了一项实证研究,揭示了Android应用中频繁发生资源泄漏的根本原因以及开发人员常见的故障模式。根据我们的发现,我们进一步实现了一个静态检查器,以检测Android应用程序中常见的资源泄漏模式。实验表明,该检测器能够有效地定位流行Android应用中的真实资源泄漏,验证了我们工作的实用性。
2016-11-24 cs.SE
An Investigation into the Use of Common Libraries in Android Apps
Android应用程序的打包模型要求将执行应用程序所需的整个代码运送到一个apk文件中。因此,对Android应用程序的分析通常会访问不属于应用程序功能的代码。这些代码通常由所有应用程序普遍使用的公共库提供。不幸的是,Android分析,例如,对于捎带检测和恶意软件检测,如果不考虑库代码的情况,可能会产生不准确的结果,因为库代码构成了应用程序功能中的噪声。尽管在研究Android库方面做出了一些努力,但Android研究的势头尚未产生一套完整的通用库,以进一步支持对Android应用程序的深入分析。在本文中,我们利用来自Google Play的约150万个应用程序的数据集来收集潜在的通用库,包括广告库。经过几步改进,我们最终收集了迄今为止最大的1,113个支持常见功能的库和240个用于广告的库。我们使用数据集来调查Android库的几个方面,包括它们的流行程度及其在Android应用程序代码中的比例。基于这些数据集,我们进一步进行了一些实证调查,以确认我们工作背后的动机。
2015-11-20 cs.SE
MDroid+: A Mutation Testing Framework for Android
变异测试在评估测试套件的有效性方面表现出了很大的潜力,同时在测试用例生成、选择和优先级排序方面也表现出了额外的应用。传统的突变测试通常利用一组简单的语言特定的源代码转换(称为操作符)来引入错误。然而,实证研究表明,变异测试是最有效的,这些简单的运营商必须与特定的运营商在测试中的软件的域。突变测试应用的一个具有挑战性的软件领域是移动应用程序。虽然移动设备和附带的应用程序已成为现代计算的支柱,但其开发中使用的框架和模式使得测试和验证特别困难。为了帮助衡量和确保移动测试实践的有效性,我们引入了MDroid+,这是一个用于Android应用程序突变测试的自动化框架。MDroid+包括来自十种经验推导的Android故障类型的38个突变运算符,并已应用于为50多个应用程序生成8,000多个突变体。
2018-02-13 cs.SE
MadDroid: Characterising and Detecting Devious Ad Content for Android Apps
广告推动了移动应用生态系统的经济发展。作为移动广告商业模式中的关键组成部分,移动广告内容一直被研究界所忽视,这带来了许多威胁,例如,传播恶意软件和不良内容。为了了解这些不正当广告行为的做法,我们对通过自动化应用程序测试收集的应用程序内容进行了大规模研究。在这项工作中,我们首先提供了一个全面的分类不正当的广告内容,包括五种行为属于两个类别:\emph{ad loading content}和\emph{ad clicking content}。然后,我们提出了MadDroid,一个框架,用于自动检测不正当的广告内容。MadDroid利用自动化应用程序测试框架和复杂的广告视图探索策略,有效收集广告相关的网络流量,并随后提取广告内容。然后,我们将专门的方法集成到框架中,以识别不正当的广告内容。我们已经将MadDroid应用于40,000个Android应用程序,发现大约6%的应用程序提供了不正当的广告内容,例如,分发无法通过传统应用市场下载的恶意应用。实验结果表明,不正当的广告内容是普遍存在的,这表明我们的社区应该投入更多的精力来检测和缓解不正当的广告,以建立一个值得信赖的移动广告生态系统。
2020-02-05 cs.CR cs.SE
Automatically Discovering, Reporting and Reproducing Android Application Crashes
移动开发人员在检测和报告应用程序中的崩溃时面临独特的挑战,这是由于其普遍的GUI事件驱动性质和额外的输入源(例如,传感器读数)。为了支持开发人员完成这些任务,我们引入了一种新颖的自动化方法,称为CRASHSCOPE。此工具根据静态和动态分析提供的几种策略,使用系统输入生成来探索给定的Android应用程序,其内在目标是触发崩溃。当检测到崩溃时,CRASHSCOPE会生成一个增强的崩溃报告,其中包含屏幕截图、详细的崩溃再现步骤、捕获的异常堆栈跟踪以及一个完全可重播的脚本,该脚本可在目标设备上自动再现崩溃。我们评估了CRASHSCOPE在发现崩溃方面的有效性,并将其与五种最先进的Android输入生成工具在61个应用程序上进行了比较。结果表明,CRASHSCOPE执行以及当前的工具,用于检测崩溃,并提供更详细的故障信息。此外,在一项分析八个真实Android应用程序崩溃的研究中,我们发现CRASHSCOPE的报告易于阅读,并且通过提供比人类书面报告更明确的信息来可靠地再现崩溃。
2017-06-04 cs.SE
Can You Mimic Me? Exploring the Use of Android Record & Replay Tools in Debugging
本文对 Android 记录与重放(R&R)工具在记录和重放非崩溃故障、崩溃 bug 及用户场景中的表现进行了全面实证研究,发现 17% 的场景、38% 的非崩溃 bug 和 44% 的崩溃 bug 无法可靠记录与重放,并指出了未来的改进方向。
2025-04-28 cs.SE
DPerm: Assisting the Migration of Android Apps to Runtime Permissions
Android应用在访问与隐私或系统完整性相关的资源时需要权限。从Android 6开始,必须在运行时询问这些权限。然而,迁移到新的权限模型给开发人员带来了许多挑战。首先,开发人员必须发现应用在何处使用权限,这需要权限规范。到目前为止,已经建立了几个这样的规范,但这些规范要么不精确,不完整,要么不支持所有类型的受保护资源。我们首先介绍DPSpec,这是一种基于Android SDK提供的几种文档格式构建的新型权限规范。与最先进的规范相比,它包含2.5倍的受保护方法条目,并在超过两倍的应用程序中检测危险的权限使用。开发人员面临的第二个挑战是在哪里插入权限请求,可能的位置受到请求机制的限制。我们还介绍了DPerm,这是一种针对Android应用程序的静态分析,可以在代码中推荐权限请求的位置。它通过上下文敏感性实现高精度,并通过通用的调用图增强算法对不完整的代码提高召回率。我们对32个应用程序的实证评估显示,准确率为96%,召回率为89%。
2017-06-15 cs.SE
Pairwise GUI Dataset Construction Between Android Phones and Tablets
Monash University(莫纳什大学)
针对手机与平板间无成对GUI数据集、制约深度学习用于自动化GUI开发的问题,本文提出首个安卓跨端成对GUI数据集Papt及配套采集方法,并通过实验分析了相关技术挑战。
2023-11-05 cs.AI cs.HC cs.SE
AndroZoo++: Collecting Millions of Android Apps and Their Metadata for the Research Community
我们从多个来源收集了越来越多的Android应用程序,包括官方Google Play应用程序市场和越来越多的旨在促进Android相关研究工作的应用程序的各种元数据。到目前为止,我们的数据集已经收集了超过500万个应用程序和20多种元数据,例如VirusTotal报告。我们收集此数据集的目的是为正在进行的研究工作做出贡献,并为Android应用提供新的潜在研究主题。通过向研究社区发布我们的应用程序和元数据集,我们还旨在鼓励我们的研究人员参与可重复的实验。本文将根据AndroZoo项目中收集的不断增长的应用程序和元数据不断更新。如果您有具体的元数据,你想从AndroZoo收集,而目前还没有提供,请让我们知道。因此,我们将在收集过程中优先考虑它,以便在短时间内将其提供给我们的研究人员。
2017-09-15 cs.SE
Static Analysis for Android GDPR Compliance Assurance
许多Android应用程序收集用户的数据。当他们这样做时,他们必须根据当前的法律框架保护这些收集的数据。自欧盟推出《通用数据保护条例》(GDPR)以来,这种数据保护变得更加重要。应用程序开发人员在整个应用程序开发过程中对数据保护的推理工具支持有限。虽然许多Android应用程序都声明了隐私策略,但隐私策略合规性检查目前是手动的,成本高昂,并且容易出错。隐私审计的主要挑战之一是法律隐私声明(英文文本)与Android应用程序用于保护用户隐私的技术措施之间存在巨大差距。在这篇论文中,我们将探讨在多大程度上我们可以使用静态分析来回答有关数据保护的重要问题。我们的主要目标是设计一种基于工具的方法,帮助应用程序开发人员和审计人员确保基于自动静态程序分析的Android应用程序中的数据保护。
2023-03-16 cs.CR cs.SE
Towards Understanding Android APIs: Official Lists, Vendor Customizations, and Real-World Usage
Southern University of Science and Technology(南方科技大学);Hong Kong University of Science and Technology(香港科技大学);McGill University(麦吉尔大学)
本文通过分析四个官方AALs,揭示其内容特征与演变,发现其不一致性和不稳定性,并探讨厂商定制API对现实应用的影响,为Android API研究提供可靠指导。
2026-04-16 cs.SE
Automated Generation of Accurate Privacy Captions From Android Source Code Using Large Language Models
University of Maine(缅因大学);Google Inc.(谷歌公司);University of Notre Dame(圣母大学)
本文提出PCapGen方法,利用大语言模型自动从Android源代码生成准确、简洁的隐私描述,有效解决现有方法的不足。
2026-01-09 cs.CR cs.SE
Scripted GUI Testing of Android Apps: A Study on Diffusion, Evolution and Fragility
背景有证据表明,移动应用程序没有像桌面应用程序那样经过彻底测试。特别是GUI测试通常是有限的。与基于Web的应用程序一样,移动应用程序也存在GUI测试脆弱性,即GUI测试类由于GUI中的微小修改而失败,而应用程序功能没有改变。目标。我们研究的目的是检查Android上GUI测试的扩散,以及保持测试类保持最新所需的更改量,特别是由于GUI测试脆弱性而导致的更改。我们定义的指标来表征测试类和测试方法的修改和演变,以及代理估计脆弱性引起的变化。法为了进行我们的实验,我们选择了六个广泛使用的开源工具,用于以前在文献中描述的移动应用程序的脚本GUI测试。我们已经挖掘了GitHub上使用这些工具的存储库,并计算了我们的指标集。结果我们发现,没有一个被考虑的GUI测试框架在GitHub上可用的开源Android项目中实现了重大传播。对于GUI测试项目,我们发现测试套件必须经常修改,具体来说,开发人员修改的LOC中有5%-10%属于测试,并且此类修改的相关部分(平均60%)是由脆弱性引起的。结论. GUI测试类的脆弱性是一个相关的问题,可能是开发人员采用自动化脚本GUI测试的障碍。Android脚本化GUI测试脆弱性的首次评估和测量可以为开发人员提供基准,并为脆弱性原因分类的定义奠定基础,以及缓解问题的可行指南。
2017-11-09 cs.SE
ChimpCheck: Property-Based Randomized Test Generation for Interactive Apps
我们考虑的问题,产生相关的执行跟踪测试丰富的交互式应用程序。丰富的交互式应用程序(例如移动平台上的应用程序)是复杂的有状态且通常是分布式的系统,其中使用用户交互(UI)事件序列充分运行应用程序以暴露缺陷既困难又耗时。特别是,在暴力随机UI练习工具和UI测试脚本之间存在根本的紧张关系,暴力随机UI练习工具是全自动的,但提供低相关性,UI测试脚本是手动的,但提供高相关性。在本文中,我们考虑了一种中间方法-实现脚本化和随机化UI测试的无缝融合。这种融合是在一个名为ChimpCheck的测试工具中原型化的,用于为Android应用程序编程,生成和执行基于属性的随机测试用例。我们的方法实现了这种融合,提供了一个高层次的,嵌入式领域特定的语言定义自定义生成器的模拟用户交互事件序列。下面是一个基于工业强度框架构建的组合子库,用于基于属性的测试(ScalaCheck)和Android测试(Android JUnit和Espresso),以实现Android开发的基于属性的随机测试。在开源Android应用程序中真实报告的问题的推动下,我们通过案例研究展示了ChimpCheck如何以紧凑的方式表达有效的测试模式。
2017-08-29 cs.SE
Do we agree on user interface aesthetics of Android apps?
内容:视觉美学越来越多地被视为感知可用性、交互和用户界面的整体评估的重要因素,特别是在移动应用程序方面。然而,仍然存在的问题是如何评估以及用户对视觉美学的认同程度。目的:本文分析了评价者对Android应用程序用户界面视觉美学的一致性,作为指导方针和评估模型的基础。方法:我们系统地收集了10位参与者对100个Android应用程序用户界面的视觉美学评分,并分析了频率分布,可靠性和影响设计方面。结果:一般来说,Android应用程序的用户界面被认为比美丽更丑。然而,评分员只是适度同意的视觉美学。分歧似乎与布局、形状、颜色、排版和背景图像的细微差异有关。结论:视觉美学是应用程序成功的关键因素。然而,评分员对视觉美感的看法存在相当大的分歧,这表明需要更好地了解移动应用程序的软件质量。
2018-12-21 cs.HC cs.SE
Do Android Taint Analysis Tools Keep Their Promises?
近年来,研究人员开发了许多工具来对Android应用程序进行污点分析。虽然所有相关文件的目的都是提供全面的经验评价,但评价目标不同或不明确,妨碍了可比性。有时,用于评估的应用程序没有精确描述。在其他情况下,作者使用一个既定的基准,但只涵盖部分。在其他情况下,评估在搜索的数据泄漏方面有所不同,或者缺乏可供比较的基本事实。所有这些局限性使得无法根据这些已公布的评价对各种工具进行真正的比较。因此,我们提出ReproDroid,一个框架,允许Android污点分析工具的准确比较。ReproDroid支持研究人员推断应用程序中数据泄漏的基本事实,自动将工具应用于基准测试,并评估所获得的结果。我们使用ReproDroid对六个主要的污点分析工具Amandroid、DIALDroid、DidFail、DroidSafe、FlowDroid和IccTA进行了平等的比较评估。结果在很大程度上是积极的,虽然四个工具违反了一些关于功能和准确性的承诺。最后,我们通过开放测试套件DroidBench的新改进版本为公正基准测试领域做出了贡献。
2019-07-30 cs.SE
Bamboo: LLM-Driven Discovery of API-Permission Mappings in the Android Framework
针对Android官方API权限文档不完善、现有映射发现方法适应性差等问题,本文提出基于大语言模型、结合双角色提示与API驱动代码生成的Bamboo工具,能高效发现API-权限映射,性能远超现有基线。
2025-10-05 cs.SE
Guided Bug Crush: Assist Manual GUI Testing of Android Apps via Hint Moves
移动应用程序是人们日常生活中不可或缺的。与自动化GUI测试相辅相成,手动测试是应用质量的最后一道防线。然而,重复的操作和容易丢失的功能使得手动测试耗时且效率低下。受糖果粉碎游戏的启发,华丽的糖果作为玩家的提示动作,我们提出了一种名为NaviDroid的方法,通过突出显示的下一个操作,更有效和高效的测试导航测试。在NaviDroid中,我们构建了一个丰富的状态转换图,其中触发动作作为两个相关状态的边缘。在此基础上,利用动态规划算法规划探索路径,并在GUI中增加可视化提示,使测试人员能够快速探索未测试的活动,避免重复探索。自动化实验证明了NaviDroid的高覆盖率和高效的路径规划,用户研究进一步证实了其实用性。NaviDroid可以帮助我们开发更强大的软件,在更关键的任务设置中工作,不仅通过执行更彻底的测试,而且通过将这些技术集成到开发管道的不同部分。
2022-01-28 cs.HC cs.SE
Characterizing Sensor Leaks in Android Apps
虽然手机传感器对于实现高级功能非常有价值,但攻击者可能会滥用手机传感器在Android应用程序中实施恶意活动,正如许多最先进的研究所证明的那样。因此,迫切需要规范移动传感器的使用,以防止它们被恶意攻击者利用。然而,尽管为实现这一目标作出了各种努力,检测Android应用程序中的隐私泄漏,我们还没有找到自动检测Android应用程序中传感器泄漏的方法。为了填补这一空白,我们设计并实现了一个新颖的原型工具SEEKER,它扩展了著名的FlowDroid工具,以检测Android应用程序中基于传感器的数据泄漏。SEEKER直接对Android应用程序的字节码进行以传感器为中心的静态污点分析,不仅报告传感器触发的隐私泄露,还报告泄露中涉及的传感器类型。使用超过40,000个真实Android应用程序的实验结果表明,SEEKER可以有效地检测Android应用程序中的传感器泄漏,恶意应用程序比良性应用程序对泄漏传感器数据更感兴趣。
2022-01-17 cs.CR cs.SE