一般来说,是否可以编译一个自定义版本的系统库(比如libsurfaceflinger.so
),将其复制到我的android设备上,重新启动并期望它正常工作?
我只是在集思广益,想创建一个可以做到这一点的应用程序。最明显的问题是二进制不兼容,也就是说,如果我根据aosp 4.4编译lib,它可能在aosp 2.3设备上不起作用。除此之外,这种做法还有什么障碍吗?
编辑:假设的应用程序当然需要根目录。
最佳答案
另一个非常重要的问题是,除非您已经为设备设置了根,否则将无法替换系统库。
解决此问题的可能方法(取决于它不起作用的库,例如从system.loadlibrary使用的libcore)是更改库的名称并直接从应用程序加载此库(通过使用system.loadlibrary或从本机源代码dlopen
)。但是,正如我所说,我不确定它是否会起作用。