rovo89 / Xposed

The native part of the Xposed framework (mainly the modified app_process binary).
Other
7.38k stars 1.47k forks source link

Lollipop: xposed can't find framework classes during initZygote #43

Closed Falseclock closed 9 years ago

Falseclock commented 9 years ago

Trying to find classes which are located inside services.jar

final Class<?> traceClass = XposedHelpers.findClass("com.android.server.usb.UsbDeviceManager.UsbHandler", null);
final Class<?> traceClass = XposedHelpers.findClass("com.android.server.notification.NotificationManagerService", null);
final Class<?> traceClass = XposedHelpers.findClass("com.android.server.InputMethodManagerService", null);

but getting error

06-08 00:08:02.336 I/Xposed  (  457): Loading modules from /data/app/kz.virtex.htc.tweaker-2/base.apk
06-08 00:08:02.406 I/Xposed  (  457):   Loading class kz.virtex.htc.tweaker.XMain
06-08 00:08:02.436 E/Xposed  (  457): de.robv.android.xposed.XposedHelpers$ClassNotFoundError: java.lang.ClassNotFoundException: com.android.server.usb.UsbDeviceManager.UsbHandler
06-08 00:08:02.436 E/Xposed  (  457):   at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:54)
06-08 00:08:02.436 E/Xposed  (  457):   at kz.virtex.htc.tweaker.mods.Services.hookUpdateAdbNotification(Services.java:85)
06-08 00:08:02.436 E/Xposed  (  457):   at kz.virtex.htc.tweaker.XMain.initZygote(XMain.java:66)
06-08 00:08:02.436 E/Xposed  (  457):   at de.robv.android.xposed.XposedBridge.loadModule(XposedBridge.java:498)
06-08 00:08:02.436 E/Xposed  (  457):   at de.robv.android.xposed.XposedBridge.loadModules(XposedBridge.java:447)
06-08 00:08:02.436 E/Xposed  (  457):   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:105)
06-08 00:08:02.436 E/Xposed  (  457): Caused by: java.lang.ClassNotFoundException: com.android.server.usb.UsbDeviceManager.UsbHandler
06-08 00:08:02.436 E/Xposed  (  457):   at java.lang.Class.classForName(Native Method)
06-08 00:08:02.436 E/Xposed  (  457):   at java.lang.Class.forName(Class.java:308)
06-08 00:08:02.436 E/Xposed  (  457):   at external.org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:823)
06-08 00:08:02.436 E/Xposed  (  457):   at de.robv.android.xposed.XposedHelpers.findClass(XposedHelpers.java:52)
06-08 00:08:02.436 E/Xposed  (  457):   ... 5 more
06-08 00:08:02.436 E/Xposed  (  457): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.server.usb.UsbDeviceManager.UsbHandler" on path: DexPathList[[zip file "/system/framework/XposedBridge.jar"],nativeLibraryDirectories=[/system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]]
06-08 00:08:02.436 E/Xposed  (  457):   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
06-08 00:08:02.436 E/Xposed  (  457):   at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
06-08 00:08:02.436 E/Xposed  (  457):   at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
06-08 00:08:02.436 E/Xposed  (  457):   ... 9 more
06-08 00:08:02.436 E/Xposed  (  457):   Suppressed: java.lang.ClassNotFoundException: com.android.server.usb.UsbDeviceManager.UsbHandler
06-08 00:08:02.436 E/Xposed  (  457):       at java.lang.Class.classForName(Native Method)
06-08 00:08:02.436 E/Xposed  (  457):       at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
06-08 00:08:02.436 E/Xposed  (  457):       at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
06-08 00:08:02.436 E/Xposed  (  457):       at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
06-08 00:08:02.436 E/Xposed  (  457):       ... 10 more
06-08 00:08:02.436 E/Xposed  (  457):   Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

it was 100% working on KK & JB

rovo89 commented 9 years ago

That's because Android's internals have changed, Xposed isn't responsible here. But it's easy to fix, see http://forum.xda-developers.com/showpost.php?p=58840569&postcount=7