首页
社区
课程
招聘
[求助]自己的so文件调用第三方so文件里的Java_开头的函数
发表于: 2015-5-27 16:14 10014

[求助]自己的so文件调用第三方so文件里的Java_开头的函数

2015-5-27 16:14
10014
求助一下,有一个需求,Android应用需要动态加载第三方的so,该so文件对外开放的函数名是Java_开头的

也就是我的程序的包名和第三方so的Java开头的函数后缀不一致,无法直接在Java层load和调用开放的函数。

请问,通过dlopen和dlsym加载和查找第三方so的这个函数,然后调用的思路是否可行?

目前尝试的是查找到了函数,可是调用死活不对,不知道是不是声明的方式不对。

谢谢各位

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1329
活跃值: (5159)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
将自己的程序包名及调用函数格式修改成和他so文件中导出函数一样的格式
2015-5-27 17:55
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
嗯,这样是可以,怎么样能达到我的包名可以不同呢?如果第三方so文件有做包名限制,如何解除限制,能否给个思路,谢谢。
2015-6-6 09:52
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
第三方so检查包名一般还是要通过context调getpackageName来检查.overoad context的这个方法就好了.
2015-6-14 17:02
0
雪    币: 260
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
通过dlopen和dlsym加载和查找第三方so的这个函数,是完全可行的,System.load(so)最终也是调用dlopen的。
2016-8-8 19:51
0
游客
登录 | 注册 方可回帖
返回