最近在开发一个自动抢红包的插件,首先把6.5.3版本的xposed插件和重打包版本都已经搞定了;前两天微信又发布了6.5.4版本,其中加入了一个timingIdentifier字段来防止自动抢红包,无奈加急搞了两个晚上,终于把xposed插件和重打包版本也弄出来了,但6.5.4重打包版本有一个问题,微信运行过程中总是闪退,看闪退日志貌似是与libdvm.so有关,对这一块了解不多,实在搞不出来,crash日志如下:
V(13806) SignalHander Entered (jni crash monitor)
V(13806) On Thread start. (jni crash monitor)
I(13806) before unwind signal thread (crash)
F(13806) Process: com.tencent.mm (MicroMsg_Crash)
F(13806) Crash Thread: 14613(total:78) (MicroMsg_Crash)
F(13806) Date/Time: 2107-01-23 +8.00 21:34:02.123 (MicroMsg_Crash)
F(13806) Live Time: 74s (MicroMsg_Crash)
F(13806) Device: R7007 android-18 (MicroMsg_Crash)
F(13806) Exception info: (MicroMsg_Crash)
F(13806) Siginfo: errno:0, pid:1608238039, uid:0, process:UNKNOWN (MicroMsg_Crash)
I(13806) after unwind signal thread (crash)
F(13806) (MicroMsg_Crash)
F(13806) *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** (MicroMsg_Crash)
F(13806) Build fingerprint: OPPO/R7007/R7007:4.3/JLxxxC/13xxxxxxxx67:user/release-keys (MicroMsg_Crash)
F(13806) pid: 13806, tid: 14613 >>> com.tencent.mm <<< (MicroMsg_Crash)
F(13806) signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 5fdbc3d7 (MicroMsg_Crash)
I(13806) after dump thread backtrace (crash)
F(13806) #00 pc 0x6efca /system/lib/libdvm.so (dvmCanPutArrayElement+5) (MicroMsg_Crash)
F(13806) #01 pc 0x24918 /system/lib/libdvm.so (dvmAsmSisterStart+984) (MicroMsg_Crash)
F(13806) #02 pc 0x2e218 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) (MicroMsg_Crash)
F(13806) #03 pc 0x62df1 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292) (MicroMsg_Crash)
F(13806) #04 pc 0x4f2bd /system/lib/libdvm.so (???) (MicroMsg_Crash)
F(13806) #05 pc 0x5175d /system/lib/libandroid_runtime.so (???) (MicroMsg_Crash)
F(13806) #06 pc 0x65c91 /system/lib/libandroid_runtime.so (android::NativeInputEventSender::receiveFinishedSignals(_JNIEnv*)+196) (MicroMsg_Crash)
F(13806) #07 pc 0x65d13 /system/lib/libandroid_runtime.so (android::NativeInputEventSender::handleEvent(int, int, void*)+50) (MicroMsg_Crash)
F(13806) #08 pc 0x15161 /system/lib/libutils.so (android::Looper::pollInner(int)+468) (MicroMsg_Crash)
F(13806) #09 pc 0x1520d /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92) (MicroMsg_Crash)
F(13806) #10 pc 0x6b6dd /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) (MicroMsg_Crash)
F(13806) #11 pc 0x203cc /system/lib (MicroMsg_Crash)
F(13806) libdvm.so (dvmPlatformInvoke+112) (MicroMsg_Crash)
F(13806) #12 pc 0x50d97 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398) (MicroMsg_Crash)
F(13806) #13 pc 0x29860 /system/lib/libdvm.so (???) (MicroMsg_Crash)
F(13806) #14 pc 0x2e218 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) (MicroMsg_Crash)
F(13806) #15 pc 0x630af /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+350) (MicroMsg_Crash)
F(13806) #16 pc 0x6acd3 /system/lib/libdvm.so (???) (MicroMsg_Crash)
F(13806) #17 pc 0x29860 /system/lib/libdvm.so (???) (MicroMsg_Crash)
F(13806) #18 pc 0x2e218 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184) (MicroMsg_Crash)
F(13806) #19 pc 0x62df1 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292) (MicroMsg_Crash)
F(13806) #20 pc 0x4c97b /system/lib/libdvm.so (???) (MicroMsg_Crash)
F(13806) #21 pc 0x4f133 /system/lib/libandroid_runtime.so (???) (MicroMsg_Crash)
F(13806) #22 pc 0x4fde3 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+378) (MicroMsg_Crash)
F(13806) #23 pc 0x208f /system/bin/app_process (???) (MicroMsg_Crash)
F(13806) #24 pc 0xd (MicroMsg_Crash)
F(13806) 37 /system/lib/libc.so (__libc_init+50) (MicroMsg_Crash)
F(13806) #25 pc 0x1bd4 /system/bin/app_process (???) (MicroMsg_Crash)
I(13806) after dump stack (crash)
I(13806) after dump jni exception (crash)
I(26894) Process com.tencent.mm (pid 13806) has died. (ActivityManager)
D(26868) Process 13806 terminated by signal (7) (Zygote)
6.5.4版本重打包时我做的手脚是:在classes.dex和classes2.dex这两个文件注入了一些代码
6.5.3版本重打包只是对classes.dex文件注入了代码,classses2.dex并没有修改
在6.5.3版本中,若是对classes2.dex也作修改,貌似也会出现闪退
我猜测难道是因为multi dex机制下,只能对classes.dex作修改?
实现想不透,求大神解疑~~~
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课