adb forward nc dd

本文介绍了一种用于嵌入式系统的EMMC备份方法,并提供了时间格式转换、已删除文件查找及文件查找的具体实现方式。同时,还展示了如何利用Wireshark进行网络数据包捕获。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备份emmc

{

        dd if=/dev/block/mmcblk0p28 |  busybox nc -l -p 11234

        adb forward tcp:11234 tcp:11234  && nc 127.0.0.1 11234 |dd of=out.img

}


时间格式转换

{        date -d @1287331200 }

查找ext4删除的文件

{        extundelete --inode 2 userdata.img }

查找文件

{

        touch -t 201509232200 201509232200

        touch -t 201509281000 201509281000

        find . -newer /home/firear/Projects/oppo/201509232200 ! -newer /home/firear/Projects/oppo/201509281000 

        find . -type f -newer /home/firear/Projects/oppo/201509232200 ! -newer /home/firear/Projects/oppo/201509281000 -exec tar -rvf         /home/firear/temp/1022/modifyFiles/a.tar {} \;

}


wireshark 抓包

{

        手机:

        tcpdump -n -s0 -w - | busybox nc -l -p 11234

       主机:

       adb forward tcp:11234 tcp:11234 && nc 127.0.0.1 11234 | wireshark -k -S -i -

}

### 关于 `adb forward` 命令的使用指南及常见问题解决方案 `adb forward` 是 Android Debug Bridge (ADB) 中的一个重要命令,用于创建从本地计算机到远程 Android 设备之间的网络端口转发通道。这种功能对于调试应用程序、测试网络服务以及实现跨平台通信非常有用[^1]。 --- #### 1. **基本语法** ```bash adb forward [--remove|-r] LOCAL SOCKET REMOTE_SOCKET ``` - `LOCAL SOCKET`: 表示本地机器上的监听地址和端口号。 - `REMOTE SOCKET`: 表示目标 Android 设备上的地址和端口号。 - 支持多种类型的套接字协议(如 TCP/IP 或 Unix Domain Socket)。 --- #### 2. **典型用法** ##### 创建单向端口映射 假设需要将本地计算机的 8080 端口映射到设备的 5037 端口: ```bash adb forward tcp:8080 tcp:5037 ``` 此时,在本地访问 `localhost:8080` 实际上会路由至设备上的 `tcp:5037` 地址。 --- ##### 移除现有的端口映射 如果不再需要某条已建立的转发规则,可以显式移除它: ```bash adb forward --remove tcp:8080 ``` 或者一次性清除所有当前活动中的转发规则: ```bash adb forward --remove-all ``` --- #### 3. **支持的套接字类型** 根据官方文档说明,`adb forward` 支持以下几种主要的套接字模式[^2]: | 类型 | 描述 | |------------|--------------------------------------------------------------| | `tcp:<port>` | 指定基于 TCP 协议的标准端口号码 | | `localabstract:<name>` | 抽象命名空间内的 Unix domain socket | | `localreserved:<name>` | 预留名称空间下的 Unix domain socket | | `localfilesystem:<path>` | 文件系统路径指向的实际 Unix domain socket | 例如,要绑定到一个抽象 UNIX 域套接字而非传统 IP/TCP 接口时,可以用如下方式定义: ```bash adb forward localabstract:testsocket tcp:9000 ``` --- #### 4. **解决常见问题** ##### 问题一:无法成功建立转发链接 当尝试执行 `adb forward` 后发现请求失败,可能原因包括但不限于以下几点: - **设备未正确连接**:确保 USB 调试已经开启,并且 ADB 已经识别到了目标装置[^3]。 - **端口冲突**:所选端口已被占用,请更换其他可用端口进行试验。 ##### 问题二:数据传输异常中断 如果观察到流量不稳定甚至完全停止流动的情况,建议检查以下几个方面: - **Wi-Fi 或有线网络质量不佳**:切换稳定的联网条件有助于改善状况。 - **防火墙拦截行为**:临时关闭不必要的安全防护措施以便排除干扰因素影响正常通讯过程。 ##### 问题三:多台设备共存环境下精确控制对象 在同时接入超过一台物理手机的情况下,默认操作可能会引起混淆现象发生。为此推荐附加 `-s SERIAL_NUMBER` 参数明确指明作用范围: ```bash adb -s <SERIAL> forward tcp:8080 tcp:5037 ``` --- ### 示例代码 下面展示一段利用 Python 自动化处理多个端口映射关系的小例子: ```python import os def setup_adb_forward(local_port, remote_port, device_serial=None): cmd_base = f'adb {"-s " + device_serial if device_serial else ""} forward' command = f'{cmd_base} tcp:{local_port} tcp:{remote_port}' try: output = os.system(command) return True if not output else False except Exception as e: print(e) return False # Example Usage success = setup_adb_forward(8080, 5037, 'emulator-5554') if success: print('Port forwarding established successfully.') else: print('Failed to establish port forwarding.') ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值