Minimal stub APKs that block Google from automatically installing or updating unwanted system apps. Each stub declares the same package name as the target app but is signed with a different key, causing a signature mismatch that prevents the original from being pushed.
| Package | App Name | Google Play |
|---|---|---|
com.google.android.safetycore |
Android System SafetyCore | Play Store |
com.google.android.contactkeys |
Android System Key Verifier | Play Store |
com.google.android.verifier |
Android Developer Verifier | Play Store |
These packages may be pre-installed as system or privileged system apps. The commands available to you depend on whether your device has root access.
You can remove the packages from the current Android user using ADB:
adb shell pm uninstall --user 0 com.google.android.safetycore
adb shell pm uninstall --user 0 com.google.android.contactkeys
adb shell pm uninstall --user 0 com.google.android.verifierThis does not remove the original APK from the system partition. The packages remain available as pre-installed system apps and can potentially be restored by the system.
If pm uninstall --user 0 reports:
Failure [not installed for 0]
the package is already uninstalled for that user.
For packages that cannot be uninstalled for the user, disable them instead:
adb shell pm disable-user --user 0 com.google.android.safetycore
adb shell pm disable-user --user 0 com.google.android.contactkeys
adb shell pm disable-user --user 0 com.google.android.verifierWith root access, you can uninstall the packages using su:
adb shell su -c "pm uninstall com.google.android.safetycore"
adb shell su -c "pm uninstall com.google.android.contactkeys"
adb shell su -c "pm uninstall com.google.android.verifier"For system apps, removing the package with pm uninstall still does not
necessarily delete the APK from the read-only system partition. The APK may
return after a factory reset or system update.
The commands above target user 0. To see all users on the device:
adb shell pm list usersTo uninstall a package for another user:
adb shell pm uninstall --user <USER_ID> <PACKAGE>For example:
adb shell pm uninstall --user 10 com.google.android.verifierReplace <USER_ID> with the actual Android user ID.
- Each module is a valid Android APK with the exact package name of the target.
- The stubs are signed with your own key, not Google's key.
- When Google tries to install or update the real app, the signature mismatch prevents the existing stub from being replaced by the original package.
- The stubs contain no application code — only the required manifest and icon.
Download the latest APKs from GitHub Releases.
Download the APK for the package you want and install it normally on Android.
./gradlew assembleDebug
# or for release (requires signing config in local.properties):
./gradlew assembleReleasePush a tag to trigger a build and publish signed APKs as a GitHub Release:
git tag v1.0
git push origin v1.0