parent
5d28c7ca6d
commit
b5aff15919
|
|
@ -40,7 +40,6 @@ import de.robv.android.xposed.XposedHelpers;
|
|||
import de.robv.android.xposed.callbacks.XC_LoadPackage;
|
||||
|
||||
public class LoadedApkGetCLHooker extends XC_MethodHook {
|
||||
|
||||
private final LoadedApk loadedApk;
|
||||
private final String packageName;
|
||||
private final String processName;
|
||||
|
|
@ -64,7 +63,7 @@ public class LoadedApkGetCLHooker extends XC_MethodHook {
|
|||
}
|
||||
|
||||
try {
|
||||
Hookers.logD("LoadedApk#getClassLoader starts");
|
||||
Hookers.logD("LoadedApk#getClassLoader starts: isFirst=" + isFirstApplication);
|
||||
|
||||
Object mAppDir = XposedHelpers.getObjectField(loadedApk, "mAppDir");
|
||||
ClassLoader classLoader = (ClassLoader) param.getResult();
|
||||
|
|
@ -76,11 +75,11 @@ public class LoadedApkGetCLHooker extends XC_MethodHook {
|
|||
|
||||
XC_LoadPackage.LoadPackageParam lpparam = new XC_LoadPackage.LoadPackageParam(
|
||||
XposedBridge.sLoadedPackageCallbacks);
|
||||
lpparam.packageName = this.packageName;
|
||||
lpparam.processName = this.processName;
|
||||
lpparam.packageName = packageName;
|
||||
lpparam.processName = processName;
|
||||
lpparam.classLoader = classLoader;
|
||||
lpparam.appInfo = loadedApk.getApplicationInfo();
|
||||
lpparam.isFirstApplication = this.isFirstApplication;
|
||||
lpparam.isFirstApplication = isFirstApplication;
|
||||
|
||||
IBinder moduleBinder = serviceClient.requestModuleBinder(lpparam.packageName);
|
||||
if (moduleBinder != null) {
|
||||
|
|
@ -94,6 +93,7 @@ public class LoadedApkGetCLHooker extends XC_MethodHook {
|
|||
} finally {
|
||||
if (unhook != null) {
|
||||
unhook.unhook();
|
||||
unhook = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -604,6 +604,7 @@ public class ConfigManager {
|
|||
continue;
|
||||
}
|
||||
var module = cachedModule.get(modulePackageName);
|
||||
assert module != null;
|
||||
for (ProcessScope processScope : processesScope) {
|
||||
cachedScope.computeIfAbsent(processScope,
|
||||
ignored -> new LinkedList<>()).add(module);
|
||||
|
|
@ -612,6 +613,7 @@ public class ConfigManager {
|
|||
var appId = processScope.uid % PER_USER_RANGE;
|
||||
for (var user : UserService.getUsers()) {
|
||||
var moduleUid = user.id * PER_USER_RANGE + appId;
|
||||
if (moduleUid == processScope.uid) continue; // skip duplicate
|
||||
var moduleSelf = new ProcessScope(processScope.processName, moduleUid);
|
||||
cachedScope.computeIfAbsent(moduleSelf,
|
||||
ignored -> new LinkedList<>()).add(module);
|
||||
|
|
@ -637,7 +639,7 @@ public class ConfigManager {
|
|||
return;
|
||||
}
|
||||
}
|
||||
Log.d(TAG, "cached Scope");
|
||||
Log.d(TAG, "cached scope");
|
||||
cachedScope.forEach((ps, modules) -> {
|
||||
Log.d(TAG, ps.processName + "/" + ps.uid);
|
||||
modules.forEach(module -> Log.d(TAG, "\t" + module.packageName));
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 3d2e1f5fc73ae09ebe889f2c6ddfc49c57dda2c9
|
||||
Subproject commit 20413748f0bac79ca480909cdce48723f600ff90
|
||||
Loading…
Reference in New Issue