Further fix support for Android 12

Fix #32
This commit is contained in:
LoveSy 2021-12-08 20:03:29 +08:00
parent dc0c63e857
commit 36f058f554
3 changed files with 21 additions and 3 deletions

View File

@ -47,6 +47,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.zip.ZipFile;
import de.robv.android.xposed.XC_MethodHook;
@ -161,7 +162,24 @@ public class LSPApplication extends ApplicationServiceClient {
mPackages.remove(appInfo.packageName);
appLoadedApk = activityThread.getPackageInfoNoCheck(appInfo, compatInfo);
XposedHelpers.setObjectField(mBoundApplication, "info", appLoadedApk);
Log.i(TAG, "appClassLoader initialized: " + appLoadedApk.getClassLoader());
var activityClientRecordClass = XposedHelpers.findClass("android.app.ActivityThread$ActivityClientRecord", ActivityThread.class.getClassLoader());
var fixActivityClientRecord = (BiConsumer<Object, Object>)(k, v) -> {
if (activityClientRecordClass.isInstance(v)) {
var pkgInfo = XposedHelpers.getObjectField(v, "packageInfo");
if (pkgInfo == stubLoadedApk) {
Log.d(TAG, "fix loadedapk from ActivityClientRecord");
XposedHelpers.setObjectField(v, "packageInfo", appLoadedApk);
}
}
};
var mActivities = (Map<?, ?>) XposedHelpers.getObjectField(activityThread, "mActivities");
mActivities.forEach(fixActivityClientRecord);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
var mLaunchingActivities = (Map<?, ?>) XposedHelpers.getObjectField(activityThread, "mLaunchingActivities");
mLaunchingActivities.forEach(fixActivityClientRecord);
}
Log.i(TAG, "hooked app initialized: " + appLoadedApk);
return (Context) XposedHelpers.callStaticMethod(Class.forName("android.app.ContextImpl"), "createAppContext", activityThread, stubLoadedApk);
} catch (Throwable e) {

View File

@ -6,7 +6,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.0-beta02'
classpath 'com.android.tools.build:gradle:7.0.3'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31'
}
}

2
core

@ -1 +1 @@
Subproject commit c205f8a2c9d2f207b2ce6de14d0054f5220a0b10
Subproject commit d1098f04abbcc2a91ef211055c60c1a992b899d1