什么可以在 Android N+ 上加载私有原生库?

What can load private native libraries on Android N+?

我必须在我的应用程序中加载一些硬件独有的非 NDK(即私有)平台原生库;由于较长的依赖链和各个设备实现的差异,每个 Google's advice is not practical. Since the libraries are hardware specific, they can't be added to the NDK or VNDK.

捆绑了本机库的副本

由于甚至系统应用程序都不再允许加载私有本机库,因此我不确定 Android 组件是否能够加载。我无意中发现安装的应用程序和来自 /system/priv-app 的 运行 似乎获得通过,因为 /system/lib 被认为在他们的图书馆搜索路径上,但对他们的更新安装在通常的 /数据分区失去该访问权限(因此不能选择具有以后更新的存根特权应用程序)。我宁愿避免使用不可更新的 /system/priv-app 解决方案,而且无论如何我都没有在任何地方找到这种解决方法的记录,所以我怀疑它是否是一个官方且可靠的替代方案。

我可以访问我的设备的完整系统源代码,因此添加框架模块是一个很好的解决方案;但是,我不确定在这种情况下 'framework code' 的构成 and/or 是否可以访问 Android N+ 上的私有本机库。

Android 的哪些组件可以访问私有本机库?

可通过 ServiceManager 和 Context.getSystemService() 发现的系统服务是否可以访问私有本机库?

Aiui 这就是 VNDK 的用途。

What components of Android have access to private native libs?

系统服务。不是应用程序;正常程序。