Skip to main content

Android已允许app绑定特权端口这是通过 Connectivity/Tethering Mainline APEX 模块中的 eBPF cgroup 绑定钩子实现的

  1. Android已允许app绑定特权端口

    这是通过 Connectivity/Tethering Mainline APEX 模块中的 eBPF cgroup 绑定钩子实现的。

    该功能将作为 2026 年 5 月 Google Play 系统更新的一部分发布,该更新是 Android 17(包括最新 beta 版)的基本网络堆栈要求。

    由于这是通过 cgroup/bind eBPF 程序动态评估的,因此系统避免降低全局 net.ipv4.ip_unprivileged_port_start sysctl 权限或全局分配 CAP_NET_BIND_SERVICE 权限。相反,它会选择性地允许特定的常用协议:
    - TCP:20/21(FTP)、22(SSH/SFTP)、23(Telnet)、80(HTTP)、443(HTTPS)、445(SMB)、515(LPD)、631(IPP)
    - UDP:319/320(PTP),443(HTTP/3 / QUIC)

    激活此功能的条件:
    - Android 13(API 33)或更高版本。在此之前的版本中,相关的 eBPF 代码尚未包含在主线版本中。
    - 内核版本需为 5.15 或更高版本。这是一项硬性要求,因为旧版本内核缺少必要的 eBPF 返回标志基础架构,无法在绑定钩子期间绕过功能检查。
    - 设备必须能够接收并积极应用 Google Play 系统更新(涵盖大多数标准认证的手机和平板电脑)。

    注意:Android Auto、Wear、TV 或 Go 等应用可能会滞后,或者取决于系统供应商的完整 OTA 更新,具体取决于其主线实现情况。

    源代码应该会与 Android 17 的其他部分一起发布,预计会在以下位置发布:
    https://cs.android.com/android/platform/superproject/+/android-latest-release:packages/modules/Connectivity/bpf/progs/netd.c
OKHK