gpt4 book ai didi

android - 如何将 LD_PRELOAD 与 Android 的媒体服务器一起使用?

转载 作者:行者123 更新时间:2023-11-29 01:20:29 25 4
gpt4 key购买 nike

我可以将 LD_PRELOAD 与普通的 native 应用程序一起使用,例如ls:

LD_PRELOAD=/path/to/my/library.so ls

经过一些搜索,我还可以通过设置这样的属性将它与 java 应用程序一起使用:

adb shell setprop wrap.com.some.app LD_PRELOAD=/path/to/my/library.so

但是我对将 LD_PRELOAD 与 mediaserver 进程一起使用很感兴趣。这很棘手,因为它一直在后台运行。如果你杀死它,它会自动重新启动。我可以开始“二审”:

LD_PRELOAD=/path/to/my/library.so /system/bin/mediaserver

它会加载我的库,尽管“第二个实例”不会在任何播放中使用。始终原始媒体服务器将处理媒体操作。那么有什么方法可以在不修改设备上的init.rc文件的情况下将LD_PRELOAD与mediaserver一起使用吗?

最佳答案

事实证明,有一种方法可以做到这一点。我必须做以下事情:

adb root
adb remount
adb pull /system/bin/mediaserver
echo "LD_PRELOAD=/path/to/my/library.so /system/bin/mediaserver_orig" > mediaserver
adb shell mv /system/bin/mediaserver /system/bin/mediaserver_orig
adb push mediaserver /system/bin/mediaserver

然后我杀死了 mediaserver,它(令人惊讶地)没有自动启动,所以我还必须手动启动它:

adb shell
/system/bin/mediaserver &

无论如何都可以做到这一点,所以如果没有人有更好的答案,我会接受我的回答。

只有一个警告 - 当我回到之前的状态时:

adb shell mv /system/bin/mediaserver_orig /system/bin/mediaserver

并重启设备,媒体服务器仍然没有自动启动!所以这不是你想在你关心的设备上做的事情,因为在这种状态下,如果你不手动启动媒体服务器,设备将不会完成。虽然这种现象可能是因为我在玩chown,所以可能与描述的过程无关,但无论如何你已经被警告过。

关于android - 如何将 LD_PRELOAD 与 Android 的媒体服务器一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37050743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com