我手机的 Android 有/system/lib/hw
以下文件:
- 传感器.exynos4.so
- 传感器.smdk4210.so
这些动态库位于传感器链中的某个位置,用于罗盘、陀螺仪和环境光等传感器。
第一个文件(sensors.exynos4.so)来自发行版本身(为 i9100 运行 CyanogenMod 10.1),第二个文件(sensors.smdk4210.so)是我从手机(SHW-M250S, “Korean S2”,i9100 的变体)并在那里复制。
问题1:什么在使用这些文件?
对系统中的所有二进制文件和库执行ldd
(实际上是 readelf 或 objdump)并没有透露这些文件的任何用户。我的结论:有人必须在动态链接后在运行时像插件一样加载它们!但是谁/什么?(请提供源代码文件名或代码浏览器链接)
这些库的用户在没有任何配置的情况下从第一个切换到第二个(在我把它放在那里之后)。我想深入了解这个谜团。
问题2:这些文件的来源在哪里?
这些文件包含(至少)传感器的配置(比如它在板上的定位、值范围和步骤)。我想为我的手机生成一个正确的。如果我有这两者的来源,那将很容易做到。– 只有 CyanogenMod 版本,我至少可以猜到必要的修正。
笔记:
- 没有猜测的答案。
- 如果您的部分答案是“二进制”:
- 将我指向 CyanogenMod 源中的 blob 或提取它们的脚本。
- 跟随链到第一个使用它们的开源库/程序。
- 这些问题并不是特定于设备的。– 回答任何设备时,情况应该相似(AOSP、AOKP、CyanogenMod,...)。