Runtime Integrity Checks in Android Applications
In order to hamper reverse engineering of applications and thwart repackaging attacks, some particularly security aware Android developers integrate runtime integrity checks into their program code. These checks verify at runtime that the operating system is in an original manufacturer-supplied state (no root possibilities for the end user, original firmware image, unmodified system partition) and the application has not been manipulated between submission by the developer and installation at the user.
In this research project, we provide an overview of different possibilities for integrity checking and proofing. To this end, several proposals from science and practice are discussed. Additionally, we present a study measuring the prevalence of runtime integrity checks in 99 popular Android applications.