Android Framework预装traceroute执行文件到system/bin下

文章目录

  • [Android SDK中寻找traceroute代码](#Android SDK中寻找traceroute代码)
  • 内置traceroute到SDK中
  • traceroute参数说明
    • [-I 参数(使用 ICMP Echo 请求)](#-I 参数(使用 ICMP Echo 请求))
    • [-T 参数(使用 TCP SYN 包)](#-T 参数(使用 TCP SYN 包))
  • 相关文章

Android SDK中寻找traceroute代码

设备使用的是Android 11,在/system/bin下默认有traceroute6,但是没有找到traceroute。

SDK下只搜索到traceroute6的代码,没找到traceroute的

bash 复制代码
# ls ./external/iputils/traceroute*
./external/iputils/traceroute6.c

内置traceroute到SDK中

  1. 下载可执行文件

    先参照这篇文章Android设备推送traceroute命令进行网络诊断下载traceroute的可执行文件

  2. 在vendor目录下的mk中查找关键字PRODUCT_COPY_FILES

bash 复制代码
find vendor/ -name "*.mk" |xargs grep "COPY"

可以找到如下图所示的结果

有许多mk都用了拷贝文件到系统的方法,

  1. 添加拷贝请求

其中vendor/xxx/proprietary/build/target_system_product.mk就是这次要使用的。

首先把bin文件拷贝到SDK下的external/iputils/目录中。

然后target_system_product.mk中添加

xml 复制代码
PRODUCT_COPY_FILES += external/iputils/traceroute:system/bin/traceroute
  1. 重新编译,在out目录下查询下是否存在traceroute
bash 复制代码
find out/ -name "traceroute"

# 可以正常的搜索到,说明拷贝成功了
out/target/product/xx/system/bin/traceroute
  1. 烧录新固件到设备后开机, 用adb指令执行traceroute
    正常会打印如下信息:

    说明集成traceroute指令到安卓设备中成功了。
    另外确保设备是连接网络的,否则指令会失败
bash 复制代码
traceroute -I www.baidu.com

www.baidu.com: No address associated with hostname
Cannot handle "host" cmdline arg `www.baidu.com' on position 1 (argc 2)

traceroute参数说明

-I 参数(使用 ICMP Echo 请求)

bash 复制代码
traceroute -I target_host
  • 作用:使用 ICMP Echo 请求(类似 ping 命令)作为探测包,而不是默认的 UDP 包。
  • 适用场景:
    当目标主机或中间路由器过滤 UDP 流量时,ICMP 可能更易通过。
    某些网络环境(如企业内网)可能对 ICMP 限制较少。
  • 注意:
    部分防火墙可能仍然拦截 ICMP 流量。

-T 参数(使用 TCP SYN 包)

bash 复制代码
traceroute -T target_host
  • 作用:使用 TCP SYN 包(建立连接的第一步)作为探测包。
  • 适用场景:
    当 UDP 和 ICMP 都被封锁时,TCP 通常是允许的(如 Web 流量使用 TCP 80/443 端口)。
    可通过-p指定目标端口(默认 80)。
  • 示例:
bash 复制代码
traceroute -T -p 443 www.baidu.com  # 使用TCP 443端口(HTTPS)
  • 注意
    需要root权限,否则可能会失败
bash 复制代码
You do not have enough privileges to use this traceroute method.
socket: Operation not permitted

相关文章

Android设备推送traceroute命令进行网络诊断

作者:帅得不敢出门

相关推荐
千里马学框架3 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone3 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc3 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo3 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077003 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼3 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone3 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen3 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone3 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui