当前位置: 首页 > web >正文

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

文章目录

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

Android SDK中寻找traceroute代码

设备使用的是Android 11,在/system/bin下默认有traceroute6,但是没有找到traceroute。
在这里插入图片描述
SDK下只搜索到traceroute6的代码,没找到traceroute的

# ls ./external/iputils/traceroute*
./external/iputils/traceroute6.c

内置traceroute到SDK中

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

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

find vendor/ -name "*.mk" |xargs grep "COPY"

可以找到如下图所示的结果
在这里插入图片描述
有许多mk都用了拷贝文件到系统的方法,
在这里插入图片描述
3. 添加拷贝请求
其中vendor/xxx/proprietary/build/target_system_product.mk就是这次要使用的。
首先把bin文件拷贝到SDK下的external/iputils/目录中。
然后target_system_product.mk中添加

PRODUCT_COPY_FILES += external/iputils/traceroute:system/bin/traceroute
  1. 重新编译,在out目录下查询下是否存在traceroute
find out/ -name "traceroute"# 可以正常的搜索到,说明拷贝成功了
out/target/product/xx/system/bin/traceroute
  1. 烧录新固件到设备后开机, 用adb指令执行traceroute
    正常会打印如下信息:
    在这里插入图片描述
    说明集成traceroute指令到安卓设备中成功了。
    另外确保设备是连接网络的,否则指令会失败
traceroute -I www.baidu.comwww.baidu.com: No address associated with hostname
Cannot handle "host" cmdline arg `www.baidu.com' on position 1 (argc 2)

traceroute参数说明

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

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

-T 参数(使用 TCP SYN 包)

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

在这里插入图片描述

相关文章

Android设备推送traceroute命令进行网络诊断
作者:帅得不敢出门

http://www.xdnf.cn/news/13123.html

相关文章:

  • JS红宝书10.1-10.5 函数
  • PHP7内核剖析 学习笔记 第十章 扩展开发(1)
  • 【蓝桥杯嵌入式】【复盘】第15届国赛真题
  • 7种分类数据编码技术详解:从原理到实战
  • Java基于BS架构的OA流程可视化实战:从工作流引擎到前端交互(附完整源代码+论文框架)
  • 学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
  • ubuntu22.04有线网络无法连接,图标也没了
  • QT 仿网易云项目
  • React Native 开发环境搭建(全平台详解)
  • LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
  • 开始新的认识,对worldquant(50alpha)
  • NLP-文本表征(2011-2022)
  • 中国政务数据安全建设细化及市场需求分析
  • API网关Envoy的鉴权与限流:构建安全可靠的微服务网关
  • C++--string的模拟实现
  • JS红宝书笔记 - 3.3 变量
  • Spring Boot面试题精选汇总
  • 记录:外扩GPIOD访问报警告
  • 在ARM+Ascend NPU上适配Step-Audio模型
  • AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
  • 初识Docker——容器化革命核心概念
  • 解决HuggingFace不能git clone的问题
  • 基于Spring的Java公共资源模块开发与最佳实践
  • 在 Word中生成目录(Table of Contents, TOC)
  • MaaS与CC有哪些契合点
  • 在 Windows 11/10 中打开任务管理器的 6 种方法(无需 Ctrl+Alt+Delete)
  • npm符号链接
  • 象棋移动-第16届蓝桥STEMA省考Scratch真题第1题
  • 智能体革命:企业如何构建自主决策的AI代理?
  • UML 2.0 图的细分类别及其应用