[parasitic] Skip adding shortcut when manager is installed (#1189)

This commit is contained in:
LoveSy 2021-09-28 18:32:59 +08:00 committed by GitHub
parent 25ec7c4b1b
commit a3ce1b2556
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 8 deletions

View File

@ -85,7 +85,6 @@ public class ConfigManager {
private boolean verboseLog = true;
private String miscPath = null;
private final String manager = BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME;
private int managerUid = -1;
private final Handler cacheHandler;
@ -234,11 +233,11 @@ public class ConfigManager {
public synchronized void updateManager() {
if (!PackageService.isAlive()) return;
try {
PackageInfo info = PackageService.getPackageInfo(manager, 0, 0);
PackageInfo info = PackageService.getPackageInfo(BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME, 0, 0);
if (info != null) {
managerUid = info.applicationInfo.uid;
} else {
Log.w(TAG, "manager is not installed");
Log.i(TAG, "manager is not installed");
}
} catch (RemoteException ignored) {
}
@ -820,14 +819,14 @@ public class ConfigManager {
return true;
}
public boolean isManager(String packageName) {
return packageName.equals(manager);
}
public boolean isManager(int uid) {
return uid == managerUid;
}
public boolean isManagerInstalled() {
return managerUid != -1;
}
public String getPrefsPath(String fileName, int uid) {
int userId = uid / PER_USER_RANGE;
return miscPath + "/prefs" + (userId == 0 ? "" : String.valueOf(userId)) + "/" + fileName;

View File

@ -263,6 +263,10 @@ public class LSPManagerService extends ILSPManagerService.Stub {
public static void createOrUpdateShortcut() {
try {
if (ConfigManager.getInstance().isManagerInstalled()) {
Log.d(TAG, "Manager has installed, skip adding shortcut");
return;
}
while (!UserService.isUserUnlocked(0)) {
Log.d(TAG, "user is not yet unlocked, waiting for 1s...");
Thread.sleep(1000);

View File

@ -34,6 +34,8 @@ import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import org.lsposed.lspd.BuildConfig;
import java.util.Arrays;
public class LSPosedService extends ILSPosedService.Stub {
@ -149,7 +151,7 @@ public class LSPosedService extends ILSPosedService.Stub {
LSPManagerService.broadcastIntent(moduleName, userId);
}
if (moduleName != null && ConfigManager.getInstance().isManager(moduleName) && userId == 0) {
if (BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME.equals(moduleName) && userId == 0) {
Log.d(TAG, "Manager updated");
try {
ConfigManager.getInstance().updateManager();