赞
踩
adb的全称为Android Debug Bridge,就是起到调试桥的作用,也就是说,安卓手机和电脑设备中间的桥梁。通过adb我们可以使用电脑操控安卓手机调试Android程序
adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯
adb是 android SDK里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备(如nessus 5x手机). 它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的 端口映射
* 计算机和设备之间上传/下载/删除文件
* 将本地apk软件安装至模拟器或Android设备
ADB是一个 客户端–服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是Android设备.
adb shell 连接真机/模拟器终端 adb devices 列出连接的设备(-l表示长输出) adb -s 1234567890 当多个设备及模拟器运行时 连接指定设备 adb start-server 开启adb服务 adb kill-server 关闭adb服务,杀掉进程 adb shell reboot 重启手机 adb shell reboot fastboot 重启手机并启动fastboot模式 adb shell wipe data 擦除data,即恢复出厂设置 adb remount ,意思是将设备改为可读可写,显示remount succeeded就代表命令执行成功 有些设备并不能直接adb remount,必须要先以root身份进入,先执行adb root,在执行adb remount adb pull 手机文件路径 电脑目标路径 adb push 电脑文件路径 手机目标路径 adb uninstall <软件名> 卸载软件且删除配置和缓存文件 adb uninstall -k <软件名> 如果加 -k参数, 为卸载软件 但是保留配置和缓存文件 adb connect 设备ip:5555(如:192.168.1.81;5555) 安装WiFiAdb.apk wifiadb会提供ip的端口号 即可完成 连接 adb shell pm list package 查询已安装包名列表 adb shell pm list package -s 列出系统应用 adb shell pm list package -3 列出第三方的应用 adb shell pm list package -i 列出来源 adb shell pm list package -f 列出包名和路径 adb shell pm path packagename 列出应用apk的位置 adb shell pm dump packagename 列出应用的详细信息 adb shell pm clear (apk包名) 清除应用数据与缓存 adb shell am start -n com.android.browser/.BrowserActivyty 启动指定activity adb shell am start -S activityname 先停止应用再启动 adb shell am force-stop packagename 结束应用 adb shell am kill 杀指定后台进程 adb shell am kill-all 杀所有后台进程 adb shell am force-stop Package(包名) 强杀进程 adb shell dumpsys activity | find "mF" 指定查询"mF"的activity信息 adb get-serialno 获取设备的ID和序列号
调试: bugreport [PATH] 将错误报告写入给定的PATH[default==bugreport.zip]; 如果PATH是一个目录,那么错误报告将保存在该目录中。 不支持压缩错误报告输出到stdout的设备。 jdwp 列出托管jdwp传输的进程的pid logcat 显示设备日志(logcat--有关更多信息的帮助) 网络: connect HOST[:PORT] 通过TCP/IP连接到设备[默认端口=5555] disconnect [HOST[:PORT]] 断开与给定TCP/IP设备的连接[默认端口=5555],或全部 forward --list 列出所有socket连接 forward [--no-rebind] LOCAL REMOTE tcp:<port>(<local>可以是“tcp:0”以选择任何打开的端口) localabstract:<unix域套接字名称> localreserved:<unix域套接字名称> 本地文件系统:<unix域套接字名称> dev:<字符设备名称> jdwp:<进程pid>(仅限远程) forward --remove LOCAL 删除特定的socket连接 forward --remove-all 删除所有socket连接 备份/恢复: backup [-f FILE] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [PACKAGE...] 将设备数据的存档写入FILE[default=backup.adb] 如果提供了-all/-shared,则包列表是可选的 -apk/-noapk: 备份/不备份.apk文件 (default -noapk) -obb/-noobb: 备份/不备份.obb文件 (default -noobb) -shared|-noshared: 备份/不备份共享存储 (default -noshared) -all:备份所有已安装的应用程序 -system|-nosystem: 包括/不包括所有系统应用程序 (default -system) restore FILE 从指定目录恢复设备内容
adb install 扩展命令 安装[-lrtsdg]程序包 安装多个[-lrtsdpg]程序包。。。 将软件包推送到设备并安装 -l: 正向锁定应用 -r: 替换现有应用程序 -t: 允许测试包 -s: 在SD卡上安装应用程序 -d: 允许版本代码降级(仅限可调试的包) -p: 部分应用程序安装(仅安装多个) -g: 授予所有运行时权限 卸载[-k]程序包 从设备中删除此应用程序包 “-k”:保留数据和缓存目录
注意:
需要注意的事情事,在adb shell 连接手机以后,就是linux命令去操作手机,以上的命令是直接运行的,部分命令在连接手机以后,省略adb shell 即可执行命令,
N5x 配套adb
https://dl-ssl.google.com/android/repository/latest_usb_driver_windows.zip
SDK Platform-Tools 替换adb
https://developer.android.com/studio/releases/platform-tools?hl=zh-cn
Linux下安装
apt install adb
使用ADB可以强行删除系统预装的软件,也可以备份恢复手机里的软件,也可以强制停止指定正在运行的安卓程序,也可以debug模式启动APP来调试app,ADB在app逆向中主导着不可或缺的地位。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。