C. General-Purpose Instrumentation
Our app rewriting framework allows a user to gain valuable insight into the behavior of apps on their device. Aside from building a reference monitor, another use case of our system is that it can allow instrumentation of applications. Since our system can detect the call sites of target methods it can, for example, log every time a target method gets called. As a result, this could provide a useful tool for determining an application’s behavior by analyzing how often and which permissions the applications exercises. By adding logging to key method calls our system allows a user to add simple profiling capabilities to any app. Users can also gain insight into how applications use device resources like GPS, SMS, accelerometer, and network access.