[英]Cannot run program "su ": error=13, Permission denied in Android Application
我的 DHCP 方法返回 flase。 從 val 進程中獲取錯誤:Process =Runtime.getRuntime().exec(commands)”這一行
在此處輸入代碼 //DHCP 設置功能>>
suspend fun dhcpSetup(): Boolean {
var success = true
success = success && runRootCommand("echo 1 > /proc/sys/net/ipv4/ip_forward")
success = success && runRootCommand("iptables -F")
success = success && runRootCommand("iptables -t nat -A POSTROUTING -j MASQUERADE")
success = success && runRootCommand("iptables -A FORWARD -j ACCEPT")
success = success && runRootCommand("iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination 8.8.8.8:53")
success = success && runRootCommand("iptables -A FORWARD -p udp -d 8.8.8.8 --dport 53 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT")
return success
}
//命令執行函數>>>
private suspend fun runRootCommand(command: String): Boolean {
val commands = arrayOf("su", "-c", command)
val start: Long = System.currentTimeMillis()
val process: Process = Runtime.getRuntime().exec(commands)
val result = process.waitFor()
val end: Long = System.currentTimeMillis()
Log.d("RootManager", "Command ${Arrays.toString(commands)} executed in ${end - start} ms " +
" with result $result")
return result == 0
}
su
表示超級用戶,這些命令僅適用於具有更高權限和一些擴展 API 訪問權限的根單元。 沒有 root = 沒有su
執行的可能性(在大多數情況下,設備上根本沒有su
執行程序)
順便提一句。 甚至你的方法名稱中都有“root”...... runRootCommand
android9.0,有root,但APP不是系統級無法運行程序“su”:error=13, Permission denied
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.