[core] Fix uninstallPackage() check for old manager (#345)
This commit is contained in:
parent
ace4412d31
commit
04620f525e
|
|
@ -242,13 +242,7 @@ public class PackageService {
|
||||||
if (pm == null) return false;
|
if (pm == null) return false;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Uninstall old manager first
|
// Uninstall manager when needed
|
||||||
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);
|
PackageInfo pkgInfo = pm.getPackageInfo(packageName, 0, 0);
|
||||||
if (pkgInfo != null && pkgInfo.versionName != null && pkgInfo.applicationInfo != null) {
|
if (pkgInfo != null && pkgInfo.versionName != null && pkgInfo.applicationInfo != null) {
|
||||||
if ((pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_TEST_ONLY) != 0) {
|
if ((pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_TEST_ONLY) != 0) {
|
||||||
|
|
@ -258,9 +252,12 @@ public class PackageService {
|
||||||
boolean signatureMatch = InstallerVerifier.verifyInstallerSignature(pkgInfo.applicationInfo);
|
boolean signatureMatch = InstallerVerifier.verifyInstallerSignature(pkgInfo.applicationInfo);
|
||||||
if (versionMatch && signatureMatch && pkgInfo.versionCode >= BuildConfig.VERSION_CODE)
|
if (versionMatch && signatureMatch && pkgInfo.versionCode >= BuildConfig.VERSION_CODE)
|
||||||
return false;
|
return false;
|
||||||
if (!signatureMatch || !versionMatch && pkgInfo.versionCode > BuildConfig.VERSION_CODE)
|
if (packageName != BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME || !signatureMatch
|
||||||
|
|| !versionMatch && pkgInfo.versionCode > BuildConfig.VERSION_CODE)
|
||||||
uninstallPackage(new VersionedPackage(pkgInfo.packageName, pkgInfo.versionCode));
|
uninstallPackage(new VersionedPackage(pkgInfo.packageName, pkgInfo.versionCode));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Install manager
|
||||||
IPackageInstaller installerService = pm.getPackageInstaller();
|
IPackageInstaller installerService = pm.getPackageInstaller();
|
||||||
PackageInstaller installer;
|
PackageInstaller installer;
|
||||||
// S Preview
|
// S Preview
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue