【发布时间】:2013-01-22 21:55:49
【问题描述】:
当我在该端口上写入数据时,我需要更改 /dev/tty* 文件的权限。我可以通过以 root 身份输入 adb shell 从 Windows 命令提示符更改权限。
但是当我重新启动设备时,权限不会保留。相反,它们被设置为默认值。
所以,每次我需要在重启后运行我的应用程序时,我都需要更改权限。
我尝试使用Runtime.exec() 方法从应用程序运行 adb 命令,但这并没有改变任何内容,因为应用程序没有更改文件所有权权限的权限。
这就是我从应用程序执行命令的方式(在这种情况下是在模拟器中测试的):
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("chown root:root /dev/ttyS0 \n");
os.writeBytes("chmod 777 /dev/ttyS0 \n");
os.writeBytes("exit\n");
os.flush();
os.close();
process.waitFor();
当“su”命令被执行时,它给出了错误su: uid 10044 not allowed to su
因此,在执行 chown 或 chmod 时会出现错误Unable to chmod Operation Not permitted
那么,如何更改该文件的权限和所有权?
非常感谢任何帮助!
谢谢!!
【问题讨论】:
-
模拟器还是设备?如果设备然后植根与否?你说“以编程方式从
android app运行adb root”是什么意思? -
它在设备中。为了通过命令提示符更改/dev/tty*文件的权限,我需要在给adb root命令后进入adb shell,即adb必须运行作为root ..如果不是,它不允许我更改权限
-
我可以通过命令提示符更改权限。但我想通过代码做类似的过程。
-
是不是root手机?你想从你的应用程序运行
adb命令吗? -
是的。这是一部有根电话.. 是的,我想从我的应用程序中运行
adb root命令