chenxiaolong / BCR

A Basic Call Recorder for rooted Android devices
GNU General Public License v3.0
1.67k stars 109 forks source link

Clean package manager caches on boot #323

Closed chenxiaolong closed 1 year ago

chenxiaolong commented 1 year ago

On some devices, the system time is set too late in the boot process. This, for some reason, causes the package manager service to not update the cache entry in /data/system/package_cache despite the mtime of the apk being newer than the mtime of the cache entry [1]. The outdated cache entry causes BCR to crash with an error about the app theme not being derived from Theme.AppCompat. This commit works around the issue in a brute force way by deleting BCR's package manager cache entry on every boot.

[1] https://cs.android.com/android/platform/superproject/+/android-13.0.0_r42:frameworks/base/services/core/java/com/android/server/pm/parsing/PackageCacher.java;l=139

Fixes: #275, #303, #307