替换系统库

时间:2013-12-13 11:29:38

标签: android android-ndk android-source

一般来说,是否可以编译系统库的自定义版本(比如libsurfaceflinger.so),将其复制到我的Android设备,重启并期望它能够正常工作?

我只是在集思广益,创建一款可以做到这一点的应用。显而易见的问题是二元不兼容,即。如果我针对AOSP 4.4编译lib,它可能无法在AOSP 2.3设备上运行。除此之外,这种方法有什么障碍吗?

编辑:假设的应用程序当然需要root。

2 个答案:

答案 0 :(得分:1)

另一个非常重要的问题是,除非您植入设备,否则您将无法更换系统库。

解决此问题的可能方法(取决于它无法运行的库,例如System.loadLibrary中使用的libcore)将更改库的名称并直接从您的应用程序加载此库(通过使用System.loadLibrary或来自本机源代码的dlopen。但是,正如我所说,我不确定它是否会起作用。

答案 1 :(得分:1)

是的,这是可能的。我在一个设备(使用自定义ROM)中尝试了类似的东西,它按预期工作。但它每次都不起作用。我的成功率为2:3。 (工作2次)