RV-Android: Efficient Parametric Android Runtime Verification, a Brief Tutorial

  title={RV-Android: Efficient Parametric Android Runtime Verification, a Brief Tutorial},
  author={Philip Daian and Yli{\`e}s Falcone and Patrick O'Neil Meredith and Traian-Florin Serbanuta and Shin'ichi Shiriashi and Akihito Iwai and Grigore Rosu},
RV-Android is a new freely available open source runtime library for monitoring formal safety properties on Android. RV-Android uses the commercial RV-Monitor technology as its core monitoring library generation technology, allowing for the verification of safety properties during execution and operating entirely in userspace with no kernel or operating system modifications required. RV-Android improves on previous Android monitoring work by replacing the JavaMOP framework with RV-Monitor, a… 

ADRENALIN-RV: Android Runtime Verification Using Load-Time Weaving

ADRENALIN-RV, a new runtime verification tool for Android that weaves monitoring code at load time and is able to instrument all loaded classes, was able to detect violations that cannot be detected by other tools.

Multi-Process Runtime Verification for Android

This paper introduces a new runtime verification framework for Android, capable of performing runtime verification across multiple Android components in different processes, and features an extended regular expression formalism, allowing one to specify complete analyses covering the whole Android system.

Capturing Inter-process Communication for Runtime Verification on Android

This paper describes an RV framework for Android, capable of performing RV across multiple Android components in different processes by capturing inter-process-communication events and features an extended regular expression formalism.

Extended Code Coverage for AspectJ-Based Runtime Verification Tools

This paper presents a new compiler that translates runtime-verification aspects written in AspectJ to DiSL, and shows that it is possible to use existing, unmodified runtime verification tools on top of the DiSL framework to bypass the limitations of Aspect J.

Non-functional Testing of Runtime Enforcers in Android

The approach relies on a combination of automatic test generation and runtime monitoring of multiple key performance indicators for mobile systems and shows that it can detect performance issues that might be introduced by automatically generated enforcers.

Functional test generation from UI test scenarios using reinforcement learning for android applications

FARLEAD‐Android is the first fully automated mobile GUI testing engine that uses formal specifications and achieves higher performance in generating tests for UI test scenarios than three known engines: Random, Monkey and QBEa.

Fast Witness Generation for Readable GUI Test Scenarios via Generalized Experience Replay

FARLEAD2 is proposed, an automated witness generator that uses unambiguous, monitorable, and easy-to-read staged test scenarios (STSs) to specify expected behavior and maximizes its effectiveness and performance using generalized experienced replay (GER) to exploit the experience gathered from previously witnessed scenarios on new, unwitnessed test scenarios.

Reinforcement Learning-Driven Test Generation for Android GUI Applications using Formal Specifications

FARLEAD-Android is the first fully automated mobile GUI testing engine that uses formal specifications and achieves higher performance in generating tests for specified GUI functions than three known approaches, Random, Monkey, and QBEa.

ITL Monitor: compositional runtime analysis with Interval Temporal Logic

The thesis introduces a new first-occurrence operator (B) into ITL and explores its properties, which are the basis of the translation from runtime monitors to their corresponding ITL formulae.

Runtime Verification of User Interface Guidelines in Mobile Devices

This paper presents a methodology, based on runtime verification, for the automated testing of user interface guidelines of Android applications, and presents a method for checking compliance with respect to these guidelines by the application developer.



Runtime Verification and Enforcement for Android Applications with RV-Droid

Several experiments were carried out that demonstrated the effectiveness of RV-Droid on monitoring (security) properties and how it works with existing runtime verification frameworks for (pure) Java programs.

Highly precise taint analysis for Android applications

FlowDroid is presented, a novel and highly precise taint analysis for Android applications that achieves 93% recall and 86% precision, greatly outperforming the commercial tools AppScan Source and Fortify SCA.

FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps

FlowDroid is presented, a novel and highly precise static taint analysis for Android applications that successfully finds leaks in a subset of 500 apps from Google Play and about 1,000 malware apps from the VirusShare project.

Using GUI ripping for automated testing of Android applications

The results show that the GUI-based test cases are able to detect severe, previously unknown, faults in the underlying code, and the structured exploration outperforms a random approach.

RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties

More than 150 formal specifications manually derived from the Java API documentation of commonly used packages, as well as a series of novel techniques which resulted in a new runtime verification system, RV-Monitor, which is capable of monitoring all its specifications simultaneously and runs substantially faster than other state-of-the-art runtime verification systems.

Weave droid: aspect-oriented programming on Android devices: fully embedded or in the cloud

  • Yliès FalconeS. Currea
  • Computer Science
    2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
  • 2012
Weave Droid is an Android application that makes Aspect-Oriented Programming (AOP) on Android devices possible and user-friendly. It allows to retrieve applications and aspects and weave them

Collaborative Runtime Verification with Tracematches

The results show that spatial partitioning almost completely eliminates runtime overhead (for any particular benchmark copy) on many of the test cases, and that temporal partitioning scales well and provides runtime verification on a "pay as you go" basis.

Runtime Verification Meets Android Security

A dynamic security mechanism for Android-powered devices based on runtime verification is introduced, which lets users monitor the behaviour of installed applications. The general idea and a

Understanding Android Security

Android's security model is described and attempts to unmask the complexity of secure application development, identifying lessons and opportunities for future enhancements.

Domain-Specific Software Architectures for Guidance, Navigation and Control

Two languages and associated tools for capturing and analyzing two different views of the architecture of an embedded system designed to address real-time, fault-tolerance, secure partitioning, and scalable multiprocessor issues are described.