-1
我試圖從運行應用程序的內部存儲(/data/data/%package%/..)
一個makefile文件生成文件被存儲在應用程序特定的文件夾在內部存儲一個run.sh文件觸發。我們可以從android應用程序的內部存儲執行make嗎?
shell腳本
06-24 17:14:16.893 E/File Manager: Shell: #!/system/bin/sh
06-24 17:14:16.893 E/File Manager: Shell: /data/data/com.mkmv.playground/files/appfldr/make -f /data/data/com.mkmv.playground/files/appfldr/tmp/Makefile
和日誌
06-24 17:14:16.956 E/File Manager: Execution Error: /system/bin/sh: sed: not found
/system/bin/sh: sed: not found
/system/bin/sh: sed: not found
/system/bin/sh: sed: not found
/system/bin/sh: sed: not found
上的appfldr
所有文件冉chmod 777
,只能白白結束。
此外,嘗試添加
"cd " + this.getFilesDir().getAbsolutePath() + "/appfldr \n";
的shell腳本,執行生成文件之前,沒有任何反應。
當我嘗試在紮根手機上運行相同操作時,即使沒有詢問超級用戶訪問權限,它也可以正常工作,無論是否帶有cd
。但是在一個無根的設備中它並不是。據我研究的主題,應用程序應該能夠從其私人文件夾執行。我錯在哪裏?
謝謝!
也許你需要一個紮根設備。 Android操作系統可能會阻止未連根的設備上的某些命令 – Zoe
但是,當我嘗試在根設備上嘗試時,超級用戶從未請求root訪問。即使當我檢查超級用戶日誌時,也沒有發現與應用程序相關的任何內容! –
紮根Android和非紮根Android仍然存在差異。即使你不要求超級用戶訪問,仍然有區別。 – Zoe