diff --git a/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java b/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java index 33a00dc4..7e2d4a44 100644 --- a/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java +++ b/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java @@ -242,8 +242,8 @@ public class PackageService { if (pkgInfo != null && pkgInfo.versionName != null && pkgInfo.applicationInfo != null) { boolean versionMatch = pkgInfo.versionName.equals(BuildConfig.VERSION_NAME); boolean signatureMatch = InstallerVerifier.verifyInstallerSignature(pkgInfo.applicationInfo); - if (versionMatch && signatureMatch) return false; - if (!signatureMatch || pkgInfo.versionCode > BuildConfig.VERSION_CODE) + if (versionMatch && signatureMatch && pkgInfo.versionCode >= BuildConfig.VERSION_CODE) return false; + if (!signatureMatch || !versionMatch && pkgInfo.versionCode > BuildConfig.VERSION_CODE) uninstallPackage(new VersionedPackage(pkgInfo.packageName, pkgInfo.versionCode)); } IPackageInstaller installerService = pm.getPackageInstaller();