簡體   English   中英

如何在根仿真器上創建的android應用程序中運行終端命令?

[英]How do you run terminal commands in a created android application on rooted emulator?

我目前正在創建一個將運行一些終端命令的android應用程序。 我使用的是默認情況下root附帶的genymotion Nexus 5(4.4.4)仿真器。 但是,為了測試一些常規命令,我做了以下操作:

Process process = Runtime.getRuntime().exec("su");
process = Runtime.getRuntime().exec(new String[]{"mkdir /sdcard/tmp1/"});
process = Runtime.getRuntime().exec(new String[]{"adb pull /sdcard/tmp3/new4.txt \"C:\\Users\\my_username\\Documents\\\""

當執行“ su”時,我從名為SuperUser的應用程序收到一條消息,提示我已獲得root特權。 但是,沒有其他命令被執行。 沒有tmp1目錄,我無法將手動添加到模擬器的new4.txt文件拖到我的documents文件夾中。

我在路徑字符串中是否缺少某些內容?

當執行“ su”時,我從名為SuperUser的應用程序收到一條消息,提示我已獲得root特權。

因此,我想您正在手機上運行代碼。 在這種情況下,您還要在電話上運行您要在主機上運行的第三個命令( adb pull )。

正如這個答案指出的那樣,您正在不同的子Shell中運行連續的命令。 因此,您的第一個su與第二個exec的上下文無關緊要。 要使用su執行命令,請參見su的手冊頁 一個簡單的例子是:

su - -c "whoami"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM