一般来说,有没有可能编译一个自定义版本的系统库(比如libsurfaceflinger.so),将其复制到我的安卓设备上,然后重启并期望它正常工作?
我只是在集思广益,想要创建一个可以做到这一点的应用程序。最明显的问题是二进制不兼容,即。如果我在AOSP 4.4上编译lib,它可能不能在AOSP 2.3设备上工作。除此之外,这种方法还有什么障碍吗?
编辑:假设的应用程序当然需要root用户。
发布于 2013-12-13 19:36:22
另一个非常重要的问题是,除非你已经在你的设备上建立了根,否则你将无法替换系统库。
这个问题的一个可能的解决方法(取决于它不能工作的库,例如System.loadLibrary中使用的libcore )将是更改库的名称,并直接从你的应用程序加载这个库(通过使用本地源代码中的System.loadLibrary或dlopen )。但是,正如我所说的,我不确定它是否会起作用。
发布于 2013-12-13 19:38:04
是的,这是可能的。我在一台设备上尝试了类似的东西(使用自定义rom),它的工作效果与预期一致。但并不是每次都能行得通。我的成功率是2:3。(2次成功)
https://stackoverflow.com/questions/20565438
复制相似问题