xDL icon indicating copy to clipboard operation
xDL copied to clipboard

对于未加载的so,无法正常打开

Open 2361788963 opened this issue 2 years ago • 1 comments

xDL Version

2.0.0

Android OS Version

8.1

Android ABIs

armeabi-v7a, arm64-v8a

Device Manufacturers and Models

Nexus 6p

Describe the Bug

执行函数LOGE("xdl_open1 %p",xdl_open("libxxx.so",XDL_TRY_FORCE_LOAD)); 我在函数进行了插桩输出 LOGE("xdl_linker_dlopen %p",xdl_linker_dlopen); LOGE("xdl_linker_load// >= Android 8.0"); LOGE("xdl_linker_caller_addr[%d] %p",i,xdl_linker_caller_addr[i]); LOGE("xdl_linker_load// >= Android 8.0 handle:%p",handle); 以下是结果 2023-12-25 09:45:52.485 21743-22152 MZHY com.mz.fkrdcg.a233 E xdl_linker_dlopen 0x78514dde3c 2023-12-25 09:45:52.485 21743-22152 MZHY com.mz.fkrdcg.a233 E xdl_linker_load// >= Android 8.0 2023-12-25 09:45:52.485 21743-22152 MZHY com.mz.fkrdcg.a233 E xdl_linker_caller_addr[0] 0x7850649000 2023-12-25 09:45:52.501 21743-22152 MZHY com.mz.fkrdcg.a233 E xdl_linker_caller_addr[1] 0x77cc39e000 2023-12-25 09:45:52.512 21743-22152 MZHY com.mz.fkrdcg.a233 E xdl_linker_caller_addr[2] 0x77c2047000 2023-12-25 09:45:52.513 21743-22152 MZHY com.mz.fkrdcg.a233 E xdl_linker_load// >= Android 8.0 handle:0x0 2023-12-25 09:45:52.513 21743-22152 MZHY com.mz.fkrdcg.a233 E xdl_open1 0x0 可以看到xdl_open返回的是null.

值得一提的是我直接使用dlopen反而还能正常打开so获取handle,先用dlopen打开so,再执行xdl_open也能获取到handle

2361788963 avatar Dec 25 '23 01:12 2361788963

你可能是用 xdl_open 在打开自己app的so库了?这种so需要用默认的dlopen打开,xdl不是用来干这个的。 XDL_TRY_FORCE_LOAD的行为是:先尝试在linker solist中查找已经open的同名库,如果没有找到,则已linker系统namespace作为caller尝试调用dlopen。

caikelun avatar Jan 03 '24 03:01 caikelun