Rprop / ndk_dlopen

a lightweight ndk utility that helps to bypass Android N's classloader-namespace restriction

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

vivo android8.1 手机dlopen /system/lib/libart.so时报signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0xffdb2544错误,怀疑是arm 32bit指令没有对齐?

yunshouhu opened this issue · comments

12-05 21:27:57.347 12206 12206 E VivoData.AnalyticsMessages: uploadSingleFromDBWithAppId: 48
12-05 21:27:57.347 12206 12206 D PhoneApp: handleMessage what = 14
12-05 21:27:57.347 12327 12327 I crash_dump32: performing dump of process 12294 (target tid = 12294)
12-05 21:27:57.348 12327 12327 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-05 21:27:57.348 12327 12327 F DEBUG : Build fingerprint: 'vivo/PD1730C/PD1730C:8.1.0/OPM1.171019.011/compil05072002:user/release-keys'
12-05 21:27:57.348 12327 12327 F DEBUG : Revision: '0'
12-05 21:27:57.348 12327 12327 F DEBUG : ABI: 'arm'
12-05 21:27:57.348 12327 12327 F DEBUG : pid: 12294, tid: 12294, name: com.xxx.xxx >>> com.xxx.xxx <<<
12-05 21:27:57.348 12327 12327 F DEBUG : signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0xffdb2544
12-05 21:27:57.348 12327 12327 F DEBUG : r0 ca4f0350 r1 ffdb2544 r2 00000000 r3 e817b955
12-05 21:27:57.348 12327 12327 F DEBUG : r4 00000000 r5 ffdb354c r6 ffdb2544 r7 000786fb
12-05 21:27:57.348 12327 12327 F DEBUG : r8 00000000 r9 e817b955 sl 00000000 fp 00000121
12-05 21:27:57.348 12327 12327 F DEBUG : ip ffdb3574 sp ffdb250c lr ecce3537 pc ecce54c0 cpsr 600d0030
12-05 21:27:57.349 12206 12329 V SingleDBHelper: ~~~~onOpen
12-05 21:27:57.352 12206 12329 E VivoData.SingleWorker: single delay message:48
12-05 21:27:57.355 12206 12329 V SingleDBHelper: ~~~~onOpen
12-05 21:27:57.355 12327 12327 F DEBUG :
12-05 21:27:57.355 12327 12327 F DEBUG : backtrace:
12-05 21:27:57.355 12327 12327 F DEBUG : #00 pc 000054c0 /system/bin/linker (__dl__Z9do_dlopenPKciPK17android_dlextinfoPKv+39)
12-05 21:27:57.355 12327 12327 F DEBUG : #1 pc 00003533 /system/bin/linker (__dl__ZL10dlopen_extPKciPK17android_dlextinfoPKv+42)
12-05 21:27:57.355 12327 12327 F DEBUG : #2 pc 000010b1 /system/lib/libdl.so (dlopen+4)
12-05 21:27:57.355 12327 12327 F DEBUG : #3 pc 00000953 /system/lib/libart.so (offset 0x27a000)
12-05 21:27:57.358 1975 2634 V VivoStats: note what = 21, arg1 = 55, arg2 = 60
12-05 21:27:57.358 2443 25784 V pemm : noteFPS prefps = 55, curfps = 60

他是走Thumb指令模式,在ndk_dlopen返回时崩溃。机型为android8.1 vivo Z1 PD1730C_A_1.12.2版本。

commented

是返回时还是调用时

看日志的堆栈已经进入linker函数里面了,应该是返回时崩溃的。

commented

已修复

使用最新版本的代码测试,vivo android8.1 32bit arm已经正常了。多谢!