Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mywalkb committed Jul 9, 2023
2 parents d8b258c + 19c794b commit 0b79a90
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ protected void afterHookedMethod(MethodHookParam<?> param) {
return;
}

if (!isFirstPackage && !XposedHelpers.getBooleanField(loadedApk, "mIncludeCode")) {
Hookers.logD("LoadedApk#<init> mIncludeCode == false: " + mAppDir);
return;
}

if (!isFirstPackage && !XposedInit.getLoadedModules().getOrDefault(packageName, Optional.of("")).isPresent()) {
return;
}
Expand Down
28 changes: 27 additions & 1 deletion core/src/main/java/org/lsposed/lspd/impl/LSPosedContext.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package org.lsposed.lspd.impl;

import android.annotation.SuppressLint;
import android.app.ActivityThread;
import android.app.LoadedApk;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.ContextParams;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentSender;
Expand Down Expand Up @@ -69,6 +71,8 @@
import io.github.libxposed.api.errors.HookFailedError;
import io.github.libxposed.api.utils.DexParser;


@SuppressLint("NewApi")
public class LSPosedContext extends XposedContext {

private static final String TAG = "LSPosedContext";
Expand Down Expand Up @@ -115,6 +119,7 @@ public static void callOnSystemServerLoaded(XposedModuleInterface.SystemServerLo
}
}

@SuppressLint("DiscouragedPrivateApi")
public static boolean loadModule(ActivityThread at, Module module) {
try {
Log.d(TAG, "Loading module " + module.packageName);
Expand Down Expand Up @@ -160,7 +165,26 @@ public static boolean loadModule(ActivityThread at, Module module) {
}
args[i] = null;
}
var ctx = new LSPosedContext((Context) ctor.newInstance(args), module.packageName, module.apkPath, module.service);
var ci = (Context) ctor.newInstance(args);
var ctx = new LSPosedContext(ci, module.packageName, module.apkPath, module.service);
var setOuterContext = c.getDeclaredMethod("setOuterContext", Context.class);
setOuterContext.setAccessible(true);
setOuterContext.invoke(ci, new ContextWrapper(ci) {
@Override
public Resources getResources() {
return ctx.getResources();
}

@Override
public Resources.Theme getTheme() {
return ctx.getTheme();
}

@Override
public void setTheme(int resid) {
ctx.setTheme(resid);
}
});
for (var entry : module.file.moduleClassNames) {
var moduleClass = ctx.getClassLoader().loadClass(entry);
Log.d(TAG, " Loading class " + moduleClass);
Expand Down Expand Up @@ -235,11 +259,13 @@ public Context getApplicationContext() {

@Override
public void setTheme(int resid) {
getResources();
mBase.setTheme(resid);
}

@Override
public Resources.Theme getTheme() {
getResources();
return mBase.getTheme();
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
agp = "8.0.2"
kotlin = "1.8.22"
kotlin = "1.9.0"
nav = "2.6.0"
appcenter = "5.0.2"
libxposed = "100"
Expand Down

0 comments on commit 0b79a90

Please sign in to comment.