我需要在該端口上寫入數據時更改/ dev/tty *文件的權限。我可以通過以root用戶身份輸入adb shell來更改Windows命令提示符下的權限。以編程方式更改android中tty端口的權限和所有權
但是,當我重新啓動設備,權限不會持久。相反,它們被設置爲默認值。
因此,每次我需要在重新啓動後運行我的應用程序時,我需要更改權限。
我試圖通過使用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: uid 10044 not allowed to su
由於這個原因,上執行chown或chmod會給出錯誤Unable to chmod Operation Not permitted
那麼,如何更改該文件的權限和所有權?
任何幫助,高度讚賞!
謝謝!
模擬器或設備?如果設備然後紮根或不?你說什麼「通過編程從'android app'運行'adb root'? – Shaiful
它在設備中。爲了通過命令提示符更改/ dev/tty *文件的權限,我需要在給出adb root命令後輸入adb shell,即.adb必須以root身份運行。如果不是,它不允許我更改權限 –
,並且可以通過命令提示符更改權限。但我想通過代碼來完成類似的過程。 –