我在网上看到了很多例子,都是在java中通过su系统命令打开一个shell的process子进程来操作系统文件。但这样的通用性其实非常不好:首先所有对文件操作依赖于机器自带的终端命令,如果机器的终端命令不完整,或返回值不标准,将会导致应用的功能受限;其次虽然我们可以通过jni调用c的方式来执行一些更加细致的高权限代码,但jni要提前编译,受制于目标平台的编译特性和库完整性,通用性和跨平台受到制约。
因此如何将android应用自身的java代码(即jvm主进程)提权root操作(而不是通过shell操作文件)是比较理想的方案。比如怎样在java代码中绑定一个1024以下的端口?
我没有说过要在没root过的设备上提权。我上述问题中提到的所有操作,都是在设备已安装su的前提下讨论的。
dalao,找到解决办法了吗,我遇到了同样的困惑