亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有root權限無法在android上運行iperf3

沒有root權限無法在android上運行iperf3

藍山帝景 2023-12-21 10:40:17
我需要制作運行 iperf3 庫的 android 應用程序,因此我使用 android-ndk-r20 編譯了“iperf3”,并進行了更改iperf_api.cchar buf[] = "/tmp/iperf3.XXXXXX";我已經替換為char buf[] = "/data/local/tmp/iperf3.XXXXXX";,弄清楚如何將其與我的 Android 應用程序打包并運行。但我不知道如何在沒有“su”(root)權限的情況下運行它。運行良好的代碼:ArrayList<String> commandLine = new ArrayList<String>();commandLine.add("su");commandLine.add("-c");commandLine.add(getApplicationContext().getApplicationInfo().nativeLibraryDir+"/libiperf3.so -c speedtest.hostkey.ru -t 10 -i 5 -P 3 -d");Process process = Runtime.getRuntime().exec(commandLine.toArray(new String[0]));它與“su”配合得很好,但我需要讓它在沒有 root 的情況下工作。當我嘗試相同的代碼但將“su”替換為“sh”時,我收到此錯誤:iperf3: error - unable to create a new stream: Permission denied我不知道如何讓它工作,Google Play 商店中有一些應用程序在沒有 root 權限的情況下使用 iperf3,所以這是可能的。我做錯了什么?
查看完整描述

2 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

我想出了如何讓它發揮作用。在編譯“iperf3”之前,您需要更改“iperf_api.c”中的以下行

char buf[] = "/tmp/iperf3.XXXXXX";

char buf[] = "/data/data/your.package.name/cache/iperf3.XXXXXX"; 并且效果很好!我希望我幫助了某人。


查看完整回答
反對 回復 2023-12-21
?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

當您將以下任何環境變量設置為可寫目錄(即cacheDir)時,它也可以工作:TMPDIRTEMPTMP

例如: Os.setenv("TEMP", CACHE_DIR, true)

在函數中檢查臨時目錄iperf_api.c iperf_new_stream。


查看完整回答
反對 回復 2023-12-21
  • 2 回答
  • 0 關注
  • 411 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號