我遇到了一個可能很容易解決的問題,但我似乎無法找到答案。Android strace(或任何linux二進制文件)執行
我正試圖在Android設備上運行的不同進程上執行strace。我已經通過將strace二進制文件複製到/ system/xbin(就像模擬器一樣)並且工作得很好。我的問題是我通過引導程序複製了二進制文件,我不希望用戶必須經歷這些。
所以我發現這個偉大的教程,從一個應用程序中運行的二進制文件:
http://gimite.net/en/index.php?Run%20native%20executable%20in%20Android%20App
我按照教程,做這樣的:
- 複製使用strace的二進制/數據/ data/com.mypackage
- 更改執行權限到二進制文件(我也試過用777)
嘗試執行它
Process process = Runtime.getRuntime()。exec(「/ data/data/com.mypackage/strace -p PID -o/sdcard/folder_I_know_it_works」);
我知道命令是正確的,因爲當我從/ XBIN /系統執行它,它完美的作品。當我運行從應用程序中複製的那個時,我得到空輸出。我只爲自己的流程獲得適當的輸出,所以我明白這是一個權限問題。
我沒有提到,我的應用程序當然擁有root權限。我也嘗試將所有者更改爲strace二進制文件作爲root:root和system:system並且沒有任何內容。
綜上所述:我需要就一個二進制相同的權限,我從我的應用程序複製到手機內存比我有開/ XBIN/strace的
我在做什麼錯找到了一個二進制?
另一個好的解決方案是找到一種方法,將strace從具有根權限的應用程序中複製到/ system/xbin。有任何想法嗎?
非常感謝!