2013-01-25 85 views
0

我在我的應用程序中創建了一些按鈕,用於執行一個bash cmd。Android:發送onClick bash命令到/ dev/null

這裏是我的字符串:

final String[] test = {"su","-c","echo test > /system/test.txt"}; 

這CMD的作品,事實上,我可以看到/系統中的test.txt文件/裏面的線路測試。

我的問題是:當我按下exec按鈕時,cmd設備用字符串「echo test /system/text.txt」創建一個烤麪包。 我猜這是因爲「-c」,反正:

final String[] test = {"su","echo test > /system/test.txt"}; 

將無法​​正常工作,並且:

final String[] test = {"su","-c","echo test > /system/test.txt >> /dev/null"}; 

將無法​​正常工作,以及創造出乾杯「回聲test /system/test.txt/dev/null「

有沒有什麼辦法可以避免這個」問題「?

此外,任何人都可以告訴我一個小功能,創建一個旋轉輪吐司當我onClick按鈕,執行它?

謝謝!

+0

這可能是su hack對您的特定手機的一種副作用,旨在讓用戶對應用程序如何使用它有一種模糊的想法。順便說一句,您正在執行一個shell命令,但該shell可能不是bash,而是工具箱或可能的busybox。 –

+0

爲了澄清,/ dev/null不是答案,因爲stdout和stderr都不參與創建Toast。這是非常有意的,這個用戶安全通知*不*是可以隱藏的東西。 –

回答

-1

這從su手工提取物應該清楚你的問題有關-c選項:

-c, --command=COMMAND pass a single COMMAND to the shell with -c

而且

final String[] test = {"su","-c","echo test > /system/test.txt >> /dev/null"}; 

將無法​​工作,因爲Android的沒有/dev/null設備。爲了得到它的工作,你需要在su之後有一個-c選項,並且擺脫/dev/null。您可以使用android API來刪除此文件。

+0

你好,命令本身運作良好!我不需要刪除文件!我需要刪除當我點擊執行命令的按鈕時出現的吐司! – iGio90

+0

我不明白。如果你不想在那裏展示你的結果,你爲什麼創建這個烤麪包? – Kristopher

+0

無論何時執行bash「su -c cmd」命令,都會出現「toast」:例如,當您執行一個已經授予root權限的應用程序時......一旦您打開它並且它會執行「su」toast消息說:「這個程序現在擁有root訪問」 ......在我的情況下出現 「這個程序是現在的root訪問權限 回聲測試>等」 – iGio90