LiveDroid: Identifying and Preserving Mobile App State in Volatile Runtime Environments
summary
LiveDroid automatically discovers and preserves the minimal app state needed to survive activity restarts by static analysis and runtime patches. It defines necessary instance state and uses a backward interprocedural analysis built on Soot and FlowDroid, then injects saving/restoring code and a runtime module that serializes objects with Gson. Applied to many real apps, the analyzer runs in ~1 minute, finds 46% with external state and 33% with internal state, identifies internal state as 1.5% of access paths, yields 16× save and 9× restore speedups, and fixes 46 newly found state bugs.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:25Volatile Runtime Environment
- 2:42Example Issue: Selected Account Lost
- 3:32Prior Work
- 5:34Necessary Instance State (NISTATE)
- 7:25Analysis Details: Callbacks Modeling
- 9:46Runtime: Save/Restore NISTATE
- 10:19Runtime: Alias Grounding
- 11:15Runtime: Other Complexities
- 11:41Implementation
- 12:52Evaluation: Results
related talks
36mManaging Data Restoration with the Architecture Components
38mActivities in the Wild: Exploring the Activity Lifecycle
45mFalsehoods Android Developers Believe About Lifecycles
51mAndrosia: A step ahead in securing in-memory Android application data
23mMaster of Lifecycle
30m2017 DevFestMN Emmett Wilson
24mLightweight Realtime & Offline Data Storage on Android without a Database
24mMake the Most of Android Vitals
