【问题标题】:How to add and manage a new network interface into android stack如何在 android 堆栈中添加和管理新的网络接口
【发布时间】:2022-10-10 20:36:44
【问题描述】:

我为移动 linux 内核开发了一个网络驱动程序。 我的网络设备 (pif0) 运行良好

ifconfig pif0 10.22.2.15
ping -I pif0 8.8.8.8

现在我希望该 android 堆栈能够跟踪此设备并将其设置为互联网的默认网关。

我认为我应该开发一些 java 类来跟踪我的新接口并对其进行管理,但我不知道如何使它们井井有条。

做过这个练习的任何人都可以建议吗?

【问题讨论】:

    标签: java android network-interface


    【解决方案1】:

    将网络视为以太网接口。

    您可以为您的界面使用默认名称“ethx”。在您的情况下,将pif0 重命名为eth0。这将导致它匹配为以太网接口,这将导致它被 android 堆栈跟踪。这几乎可以肯定地适用于您的用例。

    另一种选择是更新android资源覆盖config_ethernet_iface_regex以匹配您的pifx命名方案。

    【讨论】:

    • 它没有解决问题,我的接口先上后下,我的接口是调制解调器驱动程序,它没有被以太网跟踪器正确管理
    • 它先升后降,因为没有人使用它,ConnectivityService 在这种情况下将其拆除。根据您使用的 Android 版本,通过StringNetworkSpecifierEthernetNetworkSpecifier 提交NetworkRequest。您可以在网络启动之前提交此文件,这样它不会被拆除,或者您可以在网络启动之后提交它,在这种情况下它应该被打开。通过提交请求,它让ConnectivityService 知道这个网络是需要的,而不是拆除它。
    • 你能把你的回复开发成一点伪代码,或者java代码吗,你的回复听起来不错,我不是android java部分的专家,但我通过阅读你的回复开始理解,我使用的是android 11
    猜你喜欢
    • 2015-09-09
    • 2012-06-12
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多