waylaidwanderer / PowerNapForXposed-Development

Power Nap for Xposed issue tracker
http://repo.xposed.info/module/net.jzhang.powernap
5 stars 0 forks source link

NoSuchMethodError when trying alternative service hook #10

Closed ghost closed 7 years ago

ghost commented 7 years ago

Hi,

Running CM13.0 on a OPX, I have had this issue since upgrading to Android 6.0 Relevant Xposed Log : http://hastebin.com/tahuficixe.vbs

10-30 05:53:56.926 I/Xposed ( 2239): [Power Nap] Trying alternative service hook. 10-30 05:53:56.927 E/Xposed ( 2239): java.lang.NoSuchMethodError: com.android.server.am.ActiveServices#startServiceLocked(android.app.IApplicationThread,android.content.Intent,java.lang.String,int,int,int,android.content.Context)#exact 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.XposedHelpers.findMethodExact(XposedHelpers.java:337) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:178) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:253) 10-30 05:53:56.927 E/Xposed ( 2239): at net.jzhang.powernap.xposed.WakeLockManager.try17to21ServiceHook(WakeLockManager.java:217) 10-30 05:53:56.927 E/Xposed ( 2239): at net.jzhang.powernap.xposed.WakeLockManager.hookServices(WakeLockManager.java:191) 10-30 05:53:56.927 E/Xposed ( 2239): at net.jzhang.powernap.xposed.WakeLockManager.handleLoadPackage(WakeLockManager.java:130) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:34) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:61) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:106) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.XposedInit$3$1.beforeHookedMethod(XposedInit.java:135) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:314) 10-30 05:53:56.927 E/Xposed ( 2239): at com.android.server.SystemServer.startBootstrapServices() 10-30 05:53:56.927 E/Xposed ( 2239): at com.android.server.SystemServer.run(SystemServer.java:289) 10-30 05:53:56.927 E/Xposed ( 2239): at com.android.server.SystemServer.main(SystemServer.java:176) 10-30 05:53:56.927 E/Xposed ( 2239): at java.lang.reflect.Method.invoke(Native Method) 10-30 05:53:56.927 E/Xposed ( 2239): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 10-30 05:53:56.927 E/Xposed ( 2239): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 10-30 05:53:56.927 E/Xposed ( 2239): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)

For a fix, may I recommend

XposedBridge.hookAllMethods("com.android.server.am.ActiveServices", lpparam.classLoader, "startServiceLocked", new XC_MethodHook() {
    @Override
    protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
        super.beforeHookedMethod(param);
        //now check the build code and execute the relevant code for the hook
    }
});

Thanks for your work -Rijul

waylaidwanderer commented 7 years ago

I added another try/catch condition to that specific hook like you suggested.