【问题标题】:java.net.BindException: bind failed: EACCES (Permission denied) on a rooted devicejava.net.BindException:绑定失败:根设备上的 EACCES(权限被拒绝)
【发布时间】:2016-03-18 05:35:31
【问题描述】:

以下代码在有根的平板电脑上抛出“java.net.BindException: bind failed: EACCES (Permission denied)”:

 DatagramSocket ds = new DatagramSocket(67);

我认为绑定到特权端口 67 是允许在有根设备上的。任何人都可以对此有所了解吗?

【问题讨论】:

    标签: android sockets android-networking


    【解决方案1】:

    仅仅因为设备是“root”的,它不会授予任意应用程序以 root 权限执行任何他们想做的任何事情的权限。 Root 设备仅允许任意应用请求使用 su 命令行通过命令行以 root 权限执行新进程。

    See this, for example.

    【讨论】:

    • 感谢您的及时答复。我在代码中使用 Runtime.getRuntime().exec("su -c ifconfig eth0 up") 。是否有助于调用特权?
    • 不,您的主应用进程将永远无法使用 root 权限执行操作。
    • 感谢您的澄清。你碰巧知道解决这个问题的方法吗?
    • 如果我知道解决方法,我就不会在上面的评论中说“从不”。
    • 您能再帮我一个忙吗:是否可以编译到自定义 ROM 以允许应用程序拥有 root 权限?
    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 2017-07-10
    • 2012-09-07
    相关资源
    最近更新 更多