Apply patch da1daf of mywalkb/LSPosed_mod
From Android 14 QPR3 and forward, the classloader of injected app (com.android.shell) does not contain the apk manager, so in hook getClassLoader there is a new check when it got a negative response the apk manager is injected in classloader, so parasitic manager can start correctly. Co-authored-by: mywalk <66966897+mywalkb@users.noreply.github.com>
This commit is contained in:
parent
8e96b8de21
commit
2e0de88eca
|
|
@ -123,7 +123,17 @@ public class ParasiticManagerHooker {
|
|||
protected void afterHookedMethod(MethodHookParam param) {
|
||||
var pkgInfo = getManagerPkgInfo(null);
|
||||
if (pkgInfo != null && XposedHelpers.getObjectField(param.thisObject, "mApplicationInfo") == pkgInfo.applicationInfo) {
|
||||
sendBinderToManager((ClassLoader) param.getResult(), managerService.asBinder());
|
||||
var sSourceDir = pkgInfo.applicationInfo.sourceDir;
|
||||
var pathClassLoader = param.getResult();
|
||||
|
||||
Hookers.logD("LoadedApk getClassLoader " + pathClassLoader);
|
||||
var pathList = XposedHelpers.getObjectField(pathClassLoader, "pathList");
|
||||
List<String> lstDexPath = (List<String>)XposedHelpers.callMethod(pathList, "getDexPaths");
|
||||
if (!lstDexPath.contains(sSourceDir)) {
|
||||
Utils.logW("Could not find manager apk injected in classloader");
|
||||
XposedHelpers.callMethod(pathClassLoader, "addDexPath", sSourceDir);
|
||||
}
|
||||
sendBinderToManager((ClassLoader) pathClassLoader, managerService.asBinder());
|
||||
unhooks[0].unhook();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue