From 696309af0b4ac155222b41cfeb2c31245039eb77 Mon Sep 17 00:00:00 2001 From: Wang Han Date: Thu, 11 Mar 2021 11:40:16 +0800 Subject: [PATCH] [core] Uninstall old manager on boot automatically (#330) * [core] Uninstall old manager on boot automatically * Update PackageService.java --- .../main/java/org/lsposed/lspd/service/PackageService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/src/main/java/org/lsposed/lspd/service/PackageService.java b/core/src/main/java/org/lsposed/lspd/service/PackageService.java index 1fefa654..29b8d5f5 100644 --- a/core/src/main/java/org/lsposed/lspd/service/PackageService.java +++ b/core/src/main/java/org/lsposed/lspd/service/PackageService.java @@ -239,6 +239,13 @@ public class PackageService { if (pm == null) return false; try { + // Uninstall old manager first + PackageInfo oldPkgInfo = pm.getPackageInfo("io.github.lsposed.manager", 0, 0); + if (oldPkgInfo != null && oldPkgInfo.versionName != null) { + uninstallPackage(new VersionedPackage(oldPkgInfo.packageName, oldPkgInfo.versionCode)); + } + + // Uninstall manager on version or signature mismatch now PackageInfo pkgInfo = pm.getPackageInfo(packageName, 0, 0); if (pkgInfo != null && pkgInfo.versionName != null && pkgInfo.applicationInfo != null) { boolean versionMatch = pkgInfo.versionName.equals(BuildConfig.VERSION_NAME);