2021-01-26 12:40:25 +01:00
|
|
|
package com.topjohnwu.magisk;
|
|
|
|
|
|
|
|
import com.topjohnwu.magisk.utils.DynamicClassLoader;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
class InjectedClassLoader extends DynamicClassLoader {
|
|
|
|
|
|
|
|
InjectedClassLoader(File apk) {
|
2021-04-18 04:57:47 +02:00
|
|
|
super(apk);
|
2021-01-26 12:40:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@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;
|
|
|
|
}
|
|
|
|
}
|