我在网上看到了很多例子,都是在java中通过su系统命令打开一个shell的process子进程来操作系统文件。但这样的通用性其实非常不好:首先所有对文件操作依赖于机器自带的终端命令,如果机器的终端命令不完整,或返回值不标准,将会导致应用的功能受限;其次虽然我们可以通过jni调用c的方式来执行一些更加细致的高权限代码,但jni要提前编译,受制于目标平台的编译特性和库完整性,通用性和跨平台受到制约。
因此如何将android应用自身的java代码(即jvm主进程)提权root操作(而不是通过shell操作文件)是比较理想的方案。比如怎样在java代码中绑定一个1024以下的端口?
我没有说过要在没root过的设备上提权。我上述问题中提到的所有操作,都是在设备已安装su的前提下讨论的。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
然而如果机子并没有root,你如何提?一般普通应用想要获取root也就是执行su,通过superuser之类的权限管理给用户一个提示,才能获取。还有一个问题是android系统级目录默认是只读的,即使有root你也改不了,只能通过命令进行重挂载。。如果随便一个应用能在没有root过的机子上获取到root权限的话,那你也太小看android了