[parasitic] Skip adding shortcut when manager is installed (#1189)
This commit is contained in:
parent
25ec7c4b1b
commit
a3ce1b2556
|
|
@ -85,7 +85,6 @@ public class ConfigManager {
|
||||||
private boolean verboseLog = true;
|
private boolean verboseLog = true;
|
||||||
private String miscPath = null;
|
private String miscPath = null;
|
||||||
|
|
||||||
private final String manager = BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME;
|
|
||||||
private int managerUid = -1;
|
private int managerUid = -1;
|
||||||
|
|
||||||
private final Handler cacheHandler;
|
private final Handler cacheHandler;
|
||||||
|
|
@ -234,11 +233,11 @@ public class ConfigManager {
|
||||||
public synchronized void updateManager() {
|
public synchronized void updateManager() {
|
||||||
if (!PackageService.isAlive()) return;
|
if (!PackageService.isAlive()) return;
|
||||||
try {
|
try {
|
||||||
PackageInfo info = PackageService.getPackageInfo(manager, 0, 0);
|
PackageInfo info = PackageService.getPackageInfo(BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME, 0, 0);
|
||||||
if (info != null) {
|
if (info != null) {
|
||||||
managerUid = info.applicationInfo.uid;
|
managerUid = info.applicationInfo.uid;
|
||||||
} else {
|
} else {
|
||||||
Log.w(TAG, "manager is not installed");
|
Log.i(TAG, "manager is not installed");
|
||||||
}
|
}
|
||||||
} catch (RemoteException ignored) {
|
} catch (RemoteException ignored) {
|
||||||
}
|
}
|
||||||
|
|
@ -820,14 +819,14 @@ public class ConfigManager {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isManager(String packageName) {
|
|
||||||
return packageName.equals(manager);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isManager(int uid) {
|
public boolean isManager(int uid) {
|
||||||
return uid == managerUid;
|
return uid == managerUid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isManagerInstalled() {
|
||||||
|
return managerUid != -1;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPrefsPath(String fileName, int uid) {
|
public String getPrefsPath(String fileName, int uid) {
|
||||||
int userId = uid / PER_USER_RANGE;
|
int userId = uid / PER_USER_RANGE;
|
||||||
return miscPath + "/prefs" + (userId == 0 ? "" : String.valueOf(userId)) + "/" + fileName;
|
return miscPath + "/prefs" + (userId == 0 ? "" : String.valueOf(userId)) + "/" + fileName;
|
||||||
|
|
|
||||||
|
|
@ -263,6 +263,10 @@ public class LSPManagerService extends ILSPManagerService.Stub {
|
||||||
|
|
||||||
public static void createOrUpdateShortcut() {
|
public static void createOrUpdateShortcut() {
|
||||||
try {
|
try {
|
||||||
|
if (ConfigManager.getInstance().isManagerInstalled()) {
|
||||||
|
Log.d(TAG, "Manager has installed, skip adding shortcut");
|
||||||
|
return;
|
||||||
|
}
|
||||||
while (!UserService.isUserUnlocked(0)) {
|
while (!UserService.isUserUnlocked(0)) {
|
||||||
Log.d(TAG, "user is not yet unlocked, waiting for 1s...");
|
Log.d(TAG, "user is not yet unlocked, waiting for 1s...");
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@ import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import org.lsposed.lspd.BuildConfig;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class LSPosedService extends ILSPosedService.Stub {
|
public class LSPosedService extends ILSPosedService.Stub {
|
||||||
|
|
@ -149,7 +151,7 @@ public class LSPosedService extends ILSPosedService.Stub {
|
||||||
LSPManagerService.broadcastIntent(moduleName, userId);
|
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");
|
Log.d(TAG, "Manager updated");
|
||||||
try {
|
try {
|
||||||
ConfigManager.getInstance().updateManager();
|
ConfigManager.getInstance().updateManager();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue