ADB常用命令(adb命令使用方法)
liuian 2025-06-09 23:30 14 浏览
文章关键词:电子数据取证、手机取证、计算机取证、电子物证
一、前言
ADB对于大家来说应该是很熟悉的了,但是大家对ADB所有的命令以及使用都知道吗?ADB对于我们取证人员来说其实是非常重要的,在一些无法常规的取证方式下,说不一定ADB命令能给我们一些帮助。
二、ADB是什么
ADB,即Android Debug Bridge是一种允许模拟器或已连接的Android设备进行通信的命令行工具,它可为各种设备操作提供便利,如安装和调试应用,并提供对Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。可以在Android SDK/platform-tools中找到ADB工具或下载ADB Kits。
三、连接的Android设备ADB
3.1 USB连接
通过USB连接来正常使用ADB需要以下步骤:
确认硬件状态正常(包括Android设备处于正常开机状态,USB连接线和各种接口完好)。
Android设备的开发者选项和USB调试模式已开启(可以在「设置」-「开发者选项」-「USB调试」打开USB调试)。
确认设备驱动状态正常(安装ADB驱动程序)。
通过USB线连接好电脑和设备后确认状态。
通过ADB devices命令查看设备连接情况。
3.2 WLAN连接(需要USB线)
借助USB通过WiFi连接来正常使用ADB需要以下步骤。
操作步骤:
将Android设备与要运行ADB的电脑连接到同一个WiFi。
将设备与电脑通过USB线连接(可通过ADB devices命令查看设备连接情况)。
通过ADB tcpip 5555命令让设备在5555端口监听TCP/IP连接。
断开USB连接。
找到设备的IP地址(可以在「设置」-「关于手机」-「状态信息」-「IP地址」查看IP地址)。
通过ADB connect <device-ip-address>命令使用IP地址将Android设备与电脑连接。
通过ADB devices命令查看设备连接情况。
使用完毕后可通过ADB disconnect <device-ip-address>命令断开无线连接。
3.3 WLAN连接(无需借助USB线)
注:需要root权限。不借助USB通过WiFi连接来正常使用ADB需要以下步骤:
在Android设备上安装一个终端模拟器(可通过Terminal Emulator for Android Downloads下载)。
将Android设备与要运行ADB的电脑连接到同一个WiFi。
打开Android设备上的终端模拟器,在里面依次运行命令:
1、su
2、setprop service.ADB.tcp.port 5555
找到设备的IP地址(可以在「设置」-「关于手机」-「状态信息」-「IP地址」查看IP地址)。
通过ADB connect<device-ip-address>命令使用IP地址将Android设备与电脑连接。
通过ADB devices命令查看设备连接情况。
3.4 列举部分关于此部分ADB命令:
ADB devices --- 获取当前连接的设备
ADB shell getprop --- 查看android设备的参数信息
ADB shell cat /proc/cpuinfo --- 查看CPU架构信息
ADB shell getprop ro.build.version.release --- 查看系统Android版本信息
ADB shell getprop ro.build.version.sdk --- 查看系统API版本信息
ADB shell df --- 获取手机磁盘空间
ADB shell dumpsys procstats --- 获取当前内存使用信息
ADB shell dumpsys gfxinfo --- 获取当前的制图状态
四、文件拷贝ADB
ADB push <本地路径> <远程路径> # 从电脑上发送文件到设备 【ADB push media /sdcard/ 把media文件夹整个拷贝到sd卡根目录】
ADB pull <远程路径> <本地路径> # 从设备下载文件到电脑 【ADB pull /system/media D:/ 把设备中的media目录整个拷贝到D盘】
五、通过ADB安装应用
安装应用的基本命令格式是:ADB install [-l] [-r] [-t] [-s] [-d] [-g] <XXX.apk>或者直接安装包通过ADB拷贝到手机中再进行安装ADB install XXX/XXX/XXX.apk。
ADB install 后面可以跟一些可选参数来控制安装APK的行为,可用参数及含义如下:
参数 含义
-l 将应用安装到保护目录 /mnt/asec
-r 允许覆盖安装
-t 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用
-s 将应用安装到 sdcard
-d 允许降级覆盖安装
-g 授予所有运行时权限
运行命令后可以看到输出内容,包含安装进度和状态,安装状态如下:
Success:代表安装成功。
Failure:代表安装失败。APK安装失败的情况有很多,Failure状态
之后有安装失败输出代码。常见安装失败输出代码、含义及可能的解决办法如下:
ADB是Android SDK里的一个工具,用这个工具可以直接操作管理Android模拟器或者真实的Android设备。它的主要功能有:
在设备上运行Shell命令;将本地APK软件安装至模拟器或Android设备;管理设备或手机模拟器上的预定端口;在设备或手机模拟器上复制或粘贴文件。
ADB是一个客户端-服务器程序,包括以下三个组件。
客户端:该组件发送命令,客户端在开发计算机上运行。您可以通过发出ADB命令从命令行终端调用客户端。
后台程序:该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。
服务器:该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。
六、总结
本次分享的ADB命令主要包括以下内容,虽内容有限,但均在取证过程中具有较高的实用价值。此外,关于ADB命令的运用,还涉及诸多方面,这是一个不断探索和进步的过程,后期会持续更新文章来深入探讨此命令的应用。
相关推荐
- 10种常见的MySQL错误,你可中招?
-
【51CTO.com快译】如果未能对MySQL8进行恰当的配置,您非但可能遇到无法顺利访问、或调用MySQL的窘境,而且还可能给真实的应用生产环境带来巨大的影响。本文列举了十种MySQL...
- MySQL主从如何保证数据一致性
-
MySQL主从(主备)搭建请点击基于Spring的数据库读写分离。MySQL主备基本原理假设主备切换前,我们的主库是节点A,节点B是节点A的备库,客户端的读写都是直接访问节点A,节点B只是将A的更新同...
- MySQL低版本升级操作流程
-
(关注“数据库架构师”公众号,提升数据库技能,助力职业发展)0-升级背景MySQL5.5发布于2010年,至今已有十年历史,官方已经停止更新。2008年发布的MySQL5.1版本,在2018年...
- MySQL数据库知识
-
MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...
- Mysql 8.4数据库安装、新建用户和数据库、表单
-
1、下载MySQL数据库yuminstall-ywgetperlnet-toolslibtirpc#安装wget和perl、net-tools、libtirpcwgethtt...
- mysql8.0新功能介绍
-
MySQL8.0新特性集锦一、默认字符集由latin1变为utf8mb4在8.0版本之前,默认字符集为latin1,utf8指向的是utf8mb3,8.0版本默认字符集为utf8mb4,utf8默...
- 全网最详细解决Windows下Mysql数据库安装后忘记初始root 密码方法
-
一、准备重置root的初始化密码Win+R键启动命令输入窗口;输入cmd打开命令执行窗口;##界面如下##输入命令:netstopmysqld#此操作会停止当前运行的...
- 互联网大厂面试:MySQL使用grant授权后必须flush privilege吗
-
从我上大学时,数据库概论老师就告诉我,MySQL使用grant对用户授权之后,一定记得要用flushprivilege命令刷新缓存,这样才能使赋权命令生效。毕业工作以后,在很多的技术文档上,仍然可以...
- # mysql 8.0 版本无法使用 sqlyog 等图形界面 登录 的解决方法
-
30万以下的理想L6来了##mysql8.0版本无法使用sqlyog等图形界面登录的解决方法当我们在cmd下登录mysql时正常时,用sqlyog等图形界面连接数据库时却...
- MySQL触发器介绍
-
前言:在学习MySQL的过程中,可能你了解过触发器的概念,不清楚各位是否有详细的去学习过触发器,最近看了几篇关于触发器的文档,分享下MySQL触发器相关知识。1.触发器简介触发器即trigg...
- 管理员常用的MySQL命令汇总(一)
-
以下是管理员常用的MySQL命令:以管理员身份连接到MySQL:mysql-uroot-p创建新的MySQL用户:CREATEUSER'username'@'...
- Linux(CentOS) 在线安装MySQL8.0和其他版本,修改root密码
-
一:安装MySQL数据库1),下载并安装MySQL官方的YumRepositorymysql官方仓库地址:https://dev.mysql.com/downloads/repo/yum/选择自...
- 解决 MySQL 8.0 一直拒绝 root 登录问题
-
Accessdeniedforuser'root'@'localhost'(usingpassword:YES)这个错误在网上搜一下,能看到非常多的此类...
- 大模型MCP之MYSQL安装
-
前言学习大模型的时候需要一个mysql,原因还是在公司使用电脑的时候不允许按照Docker-Desktop,我的宿主机其实是MAC,我习惯上还是在centsos上面安装,就发现这件过去很简单的事情居然...
- MySQL ERROR 1396
-
ERROR1396(HY000):OperationCREATEUSERfailedfor'usera'@'%'问题描述mysql>create...
- 一周热门
-
-
Python实现人事自动打卡,再也不会被批评
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
飞牛OS入门安装遇到问题,如何解决?
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)