mirror of
https://github.com/topjohnwu/libsu.git
synced 2024-10-07 01:03:22 +00:00
Do not restore resource hack on LG devices
This commit is contained in:
parent
6a68ae3869
commit
1ab0711091
Binary file not shown.
@ -164,14 +164,13 @@ class RootServerMain extends ContextWrapper implements Callable<Object[]> {
|
||||
|
||||
// Calling many system APIs can crash on some LG ROMs
|
||||
// Override the system resources object to prevent crashing
|
||||
Resources systemRes = Resources.getSystem();
|
||||
Field systemResField = null;
|
||||
try {
|
||||
// This class only exists on LG ROMs with broken implementations
|
||||
Class.forName("com.lge.systemservice.core.integrity.IntegrityManager");
|
||||
// If control flow goes here, we need the resource hack
|
||||
Resources systemRes = Resources.getSystem();
|
||||
Resources wrapper = new ResourcesWrapper(systemRes);
|
||||
systemResField = Resources.class.getDeclaredField("mSystem");
|
||||
Field systemResField = Resources.class.getDeclaredField("mSystem");
|
||||
systemResField.setAccessible(true);
|
||||
systemResField.set(null, wrapper);
|
||||
} catch (ReflectiveOperationException ignored) {}
|
||||
@ -202,13 +201,6 @@ class RootServerMain extends ContextWrapper implements Callable<Object[]> {
|
||||
// Use classloader from the package context to run everything
|
||||
ClassLoader cl = context.getClassLoader();
|
||||
|
||||
// Restore the system resources object after classloader is available
|
||||
if (systemResField != null) {
|
||||
try {
|
||||
systemResField.set(null, systemRes);
|
||||
} catch (ReflectiveOperationException ignored) {}
|
||||
}
|
||||
|
||||
Class<?> clz = cl.loadClass(name.getClassName());
|
||||
Constructor<?> ctor = clz.getDeclaredConstructor();
|
||||
ctor.setAccessible(true);
|
||||
|
Loading…
Reference in New Issue
Block a user