LD_PRELOADING dlopen on android

时间:2015-06-11 06:14:28

标签: android c gcc android-ndk ld-preload

我很好奇我的应用程序在运行时使用了哪些库和Syscalls。所以我开始使用LD_PRELOAD和一些"系统调用"来调查我的应用程序。喜欢开放,访问和写作。

但是当我试图预加载dlopen时,为了找出加载了哪些库,我收到了这个错误:找不到符号:

def onchange_partner(self, cr, uid, ids, partner_id, context=None):

似乎dlsym无法第二次找到dlopen。我用-ldl和android NDK提供的arm-gcc编译了我预加载的* .so文件。使用-rdynamic也不起作用。

预加载工作正常但不适用于dlopen。也许你可以帮助我...

提前致谢

1 个答案:

答案 0 :(得分:0)

Android dlopen由链接器提供 ,因此在从预加载的库中查找RTLD_DEFAULT符号时,您需要使用dlopen。请参阅:bionic/libdl/libdl.cbionic/linker/linker.cpp