You are a security engineer auditing this app's local storage and encryption design before deployment.
A developer stores a symmetric encryption key in Android SharedPreferences using MODE_PRIVATE and encodes it as a Base64 string. They argue it is safe because MODE_PRIVATE prevents other apps from reading the file. What are the two scenarios that invalidate this argument?
- A.Scenario 1 - a rooted device (root process bypasses DAC); Scenario 2 - an ADB backup or physical extraction on Android versions before full backup removal can read the SharedPreferences XML file containing the Base64 key
- B.Scenario 1 - the preference file is world-readable on Android 6 or newer (MODE_WORLD_READABLE became the platform default after Marshmallow); Scenario 2 - Google Play's pre-launch scanner opens shared_prefs during automated review then mirrors the contents into the developer console report
- C.Scenario 1 - a second package declaring the same applicationId gains read access through the shared user id path (installer collisions resolve by signature alone); Scenario 2 - the Base64 key falls to brute force whenever the underlying secret runs shorter than sixteen bytes of entropy