Support stub APK loading down to Android 5.0

This commit is contained in:
topjohnwu
2021-01-26 03:40:25 -08:00
parent f1295cb7d6
commit fba83e2330
11 changed files with 141 additions and 116 deletions
@@ -0,0 +1,33 @@
package com.topjohnwu.magisk;
import com.topjohnwu.magisk.utils.DynamicClassLoader;
import java.io.File;
class InjectedClassLoader extends DynamicClassLoader {
InjectedClassLoader(File apk) {
super(apk,
/* Use the base classloader as we do not want stub
* APK classes accessible from the main app */
Object.class.getClassLoader());
}
@Override
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
return super.loadClass(Mapping.get(name), resolve);
}
}
class RedirectClassLoader extends ClassLoader {
RedirectClassLoader() {
super(RedirectClassLoader.class.getClassLoader());
}
@Override
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
Class<?> clz = Mapping.internalMap.get(name);
return clz == null ? super.loadClass(name, resolve) : clz;
}
}