For full context, see mailing-list thread:
https://groups.google.com/a/chromium.org/d/topic/chromium-dev/S7ueJ65wtv4/discussion
Repro steps:
1. Obtain root on the device
2. Install version A of the browser
3. Move the browser app to SD card (we don't allow it in the manifest, but with root privileges it is still possible)
4. Remove the SD card
5. Install version B of the browser with different v8 snapshot version as compared to A.
For some reason, PackageInfo.lastUpdateTime is not changed in this scenario, so resources are not extracted from the version B, instead, extracted resources from version A remain (the extracted resources are part of app data which is not part of ASEC container so it is not moved to SD card).
And this line from logcat looks interesting, because it describes what seems to be happening:
12-09 14:37:27.972 I/PackageManager( 820): Package com.yandex.browser codePath changed from /mnt/asec/com.yandex.browser-1/pkg.apk to /data/app/com.yandex.browser-1.apk; Retaining data and using new
An alternative scenario is to install version A on SD card 1, remove SD card 1, insert SD card 2, install version B on SD card 2, then remove SD card 2 and put SD card 1 back in.
Comment 1 by bugdroid1@chromium.org
, Dec 13 2016