如何查询 Android 允许的 dlopen 路径

问题描述

我们一直在将在 linux 下开发的语言分析工具移植到移动平台。

在执行期间,这些工具将通过 dlopen 加载一个特定于语言的模块 (.so)。

由于这些模块很大(~1Gb),它们无法打包到应用程序 apk 中。

我开始将它们与数据文件一起放入任意目录,但在 android 下,dlopen 拒绝加载它们。

返回的错误消息列出了 dlopen 将接受以从以下位置加载外部库的目录:

permitted_paths="/data:/mnt/expand:/data/data/<app name>"

众所周知,我们不能将路径硬编码到我们的应用程序中,我试图找到一个可以返回允许路径的系统调用,但没有成功 - PackageInfo 调用不包含必要的数据。

是否有一种可靠的方法可以查询系统以获取要使用的正确路径?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)