Title:
Dynodroid: An Input Generation System for Android Apps
Dynodroid: An Input Generation System for Android Apps
Author(s)
MacHiry, Aravind
Tahiliani, Rohan
Naik, Mayur
Tahiliani, Rohan
Naik, Mayur
Advisor(s)
Editor(s)
Collections
Supplementary to
Permanent Link
Abstract
We present a system Dynodroid for generating relevant inputs
to unmodified Android apps. Dynodroid views an app
as an event-driven program that interacts with its environment
by means of a sequence of events through the Android
framework. By instrumenting the framework once and for
all, Dynodroid monitors the reaction of an app upon each
event in a lightweight manner, using it to guide the generation
of the next event to the app. Dynodroid also allows
interleaving events from machines, which are better at generating
a large number of simple inputs, with events from
humans, who are better at providing intelligent inputs.
We evaluated Dynodroid on 50 open-source Android apps,
and compared it with two prevalent approaches: users manually
exercising apps, and Monkey, a popular fuzzing tool.
Dynodroid, humans, and Monkey covered 55%, 60%, and
53%, respectively, of each app’s Java source code on average.
Monkey took 20X more events on average than Dynodroid.
Dynodroid also found 9 bugs in 7 of the 50 apps, and
6 bugs in 5 of the top 1,000 free apps on Google Play.
Sponsor
Date Issued
2012
Extent
Resource Type
Text
Resource Subtype
Technical Report