首页
电脑工具
安卓工具
技术文章
资源分享
中文编程
其它资料
登录
搜索
登录
搜索
435000
累计撰写
382
篇文章
累计收到
0
条评论
首页
栏目
首页
电脑工具
安卓工具
技术文章
资源分享
中文编程
其它资料
登录
包含标签 【ADB】 的文章
2025-3-26
ADB——连接手机的三种方式
https://www.cnblogs.com/zhuminghui/p/10457674.html 有USB连接 硬件状态正常。 包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好。 Android 设备的开发者选项和 USB 调试模式已开启。 可以到「设置」-「开发者选项」-「Android 调试」查看。 如果在设置里找不到开发者选项,那需要通过一个彩蛋来让它显示出来:在「设置」-「关于手机」连续点击「版本号」7 次。 设备驱动状态正常。 这一点在 Linux 和 Mac OS X 下基本不用操心,在 Windows 下有可能遇到需要安装驱动的情况,确认这一点可以右键「计算机」-「属性」,到「设备管理器」里查看相关设备上是否有黄色感叹号或问号,如果没有就说明驱动状态已经好了。否则可以下载一个手机助手类程序来安装驱动先。 以上3点都确保OK后,执行命令 adb devices # 看到xxxxxx device即表示连接成功 无线连接 —— 通过IP 操作步骤: 将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。 将设备与电脑通过 USB 线连接,可通过命令 adb devices 查看是否连接成功 让设备在 5555 端口监听 TCP/IP 连接: adb tcpip 5555 断开 USB 连接。 找到设备的 IP 地址。 一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用命令查看 adb shell ifconfig | grep Mask # 或 adb shell ifconfig wlan0 ''' 下面的inet addr就是IP地址 wlan0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx inet addr:172.30.96.xx Bcast:172.30.111.xx Mask:255.255.240.xx inet6 addr: xx::xx:xx:xx:xx/xx Scope: Link UP BROADCAST RUNNING MULTICAST MTU:xxx Metric:1 RX packets:xxx errors:0 dropped:xxx overruns:0 frame:0 TX packets:xxx errors:xx dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:xxx RX bytes:xxx TX bytes:xxx ''' 通过 IP 地址连接设备。 adb connect <device-ip-address> # <device-ip-address> 就是上一步中找到的设备 IP 地址。 确认连接状态。 adb devices # <device-ip-address>:5555 device说明连接成功。 如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行第6步;如果还是不行的话,通过 adb kill-server 重新启动 adb 然后从头再来一次试试。 断开无线连接 adb disconnect <device-ip-address> 无线连接 —— 需要root利用IP地址进行的无线连接是官方文档里介绍的方法,需要借助于 USB 数据线来实现无线连接。root 账户可以完成真正意义上的无线连接在 Android 设备上安装一个终端模拟器。已经安装过的设备可以跳过此步。终端模拟器下载地址是:Terminal Emulator for Android Downloads将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。打开 Android 设备上的终端模拟器,在里面依次运行命令:su setprop service.adb.tcp.port 5555找到 Android 设备的 IP 地址。同上在电脑上通过 adb 和 IP 地址连接 Android 设备。adb connect <device-ip-address> # 看到 connected to <device-ip-address>:5555 这样的输出则表示连接成功 注:有的设备,比如小米 5S + MIUI 8.0 + Android 6.0.1 MXB48T,可能在第 5 步之前需要重启 adbd 服务,在设备的终端模拟器上运行:restart adbd # 如果 restart 无效,尝试以下命令: stop adbd start adbd 查询已连接的设备 adb devices ''' 输出格式 [serialNumber] [state] 输出示例 List of devices attached cf264b8f device emulator-5554 device 10.129.164.6:5555 device ''' 输出格式中的state有三种可能: offline —— 表示设备未连接成功或无响应。 device —— 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。 no device —— 没有设备/模拟器连接。 以上输出显示当前已经连接了三台设备/模拟器,cf264b8f、emulator-5554 和 10.129.164.6:5555 是它们各自的 SN。从 emulator-5554 这个名字可以看出它是一个 Android 模拟器,而 10.129.164.6:5555 这种形为 : 的 serialNumber 一般是无线连接的设备或 Genymotion 等第三方 Android 模拟器。
2025年-3月-26日
6 阅读
0 评论
技术文章
2025-3-26
adb命令整理大全(最详细篇幅)
https://www.52pojie.cn/thread-683104-1-1.html 由于adb命令实在太多,网上搜索一大把,但是讲的都不是很详细,因工作需要所以打算自己整理一份出来,免得每次都去百度,供大家使用!觉得好的可以收藏,记得免费评分哦! adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。 adb有什么用?:借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作! 常用命令: 1.显示当前运行的全部模拟器: adb devices 2.启动ADB adb start-server 3.停止ADB adb kill-server 4.安装应用程序: adb install -r [apk文件] -l #锁定该程序-r #重新安装该程序,保存数据-s #安装在SD卡内,而不是设备内部存储 例:adb install --r D:\mm.apk 5.卸载应用程序: adb uninstall [packagename] 例:adb uninstall com.tencent.mm -k #不删除程序运行所产生的数据和缓存目录(如软件的数据库文件) 例:adb uninstall -k com.tencent.mm 讲手机设备中的文件copy到本地计算机:adb pull 设备目录 本地目录例:adb pull /sdcard/mm.txt D:\(讲内存卡根目录的txt文件copy到D盘根目录) 7.将本地计算机的文件copy到手机设备中adb push 本地目录 手机设备目录例:adb push D:\mm.txt /sdcard 8.查看adb命令帮助信息: adb help 9.截屏例:adb shell screencap -p 截图文件路径 10.查看指定包名应用的数据库储存信息(包括储存的SQL语句) 例:adb shell dumpsys dbinfo[packagename] 11.查看指定的进程或则进程id的内存信息adb shell dumpsys meminfo[packagename/pid]可以查看进程当前的内存情况 例:adb shell dumpsys meminfo com.tencent.mm 12.查看指定包名应用的详细信息(相当于AndroidMainfest.xml中内容) adb shell dumpsys [packagename]例:adb shell dumpsys com.tencent.mm 13.查看当前应用的activity信息adb shell dumpsys activity top查看bug报告: adb bugreport 14.列出手机装的所有apk包名 adb shell pm list packages 系统应用:adb shell pm list packages -s 第三方应用:adb shell pm list packages -3 使用grep过滤 :adb shell pm list packages | grep qq 15.清除应用缓存信息: adb shell pm clear [packagename] 16.通过adb启动应用程序页面 adb shell am start -n[包名+activity名] 例:adb shell am start -n com.tencent.mm/.ui.SplashAcitvity 强制停止应用有些时候应用卡死了,需要强制停止,则执行以下命令:adb shell am force-stop // 如:adb shell am force-stop cn.androidstar.demo 17、记录无线通讯日志:一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录: adb shell logcat -b radio 18、获取设备的ID和序列号: adb get-product adb get-serialno 19、访问数据库SQLite3 adb shell sqlite3#cd system/sd/data //进入系统内指定文件夹 ls //列表显示当前文件夹内容 rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件 rm xxx //删除文件xxx rmdir xxx //删除xxx的文件夹 20.导出设备信息 adb get-serialno > 序列号.txt adb shell cat /sys/class/net/wlan0/address > MAC地址.txt adb shell getprop ro.product.model > 设备型号.txt adb shell getprop ro.build.version.release> 系统版本.txt adb shell pm list packages -s > 系统应用的所有包名.txt adb shell pm list packages -3 > 第三方应用包名.txt adb shell wm size > 屏幕分辨率.txt adb shell wm density > 屏幕密度.txt adb shell cat /proc/cpuinfo > CPU信息.txt adb shell pm list permissions -f > 权限.txt adb shell pm list users -f > 用户.txt 21.重启adb reboot 还有2个非常有用的命令: 1.备份adb backup [-f ] [-apk|-noapk][-shared|-noshared] [-all] [-system|nosystem] [] 例:adb backup -f mm.ab -noapk -noshared -nosystemcom.tencent.mm你可以使用的最基本的命令是很简单的 adb backup -all 它将使用默认方式备份应用和设备的数据(不包含apk)到当前目录下并保存为文件backup.ab ※这个命令有可能不对每个设置都有效,如果你出现像这种 "adb: cannot open file ./backup.ab"的错误,使用 adb backup -all -fC:\backup.ab来代替,其中路径C:\可根据喜好替换 对各个参数的解释: -f 用这个来选择备份文件存储在哪里,例如-f /backup/mybackup.ab将会使文件存储在根磁盘(Windows的C盘等等)下一个名为backup的文件夹里,并且备份文件名为mybackup.ab -apk|-noapk 这个决定是否在备份里包含apk或者仅仅只备份应用数据,个人推荐使用-apk以免有的应用在应用市场找不到,如果不使用则默认的是-noapk -shared|-noshared 这个参数用于决定是否备份设备共享的SD card内容,默认是-noshare,主要包括内部存储中的音乐、图片和视频,因此为保险起见,建议加上-share -all 这个参数是一种简单地表达“所有应用”的说法,package参数可以选择备份单独的应用,如果你不是备份某个应用,使用-all备份整个系统 -system|-nosystem 这个参数决定-all标签是否包含系统应用,默认的是-system,根据情况可选择是否用-nosystem 如果你知道应用安装包的名称(例如com.google.android.apps.plus),就可以使用该参数备份特定应用。 3.当决定如何执行备份后,输入你喜欢的命令,在华为G700上测试,使用命令 adb backup -apk -all 2.使用run-as在非root情况获取沙盒数据(前提是开启debuggable模式) shell@android:/data \$ run-as com.your.package run-as com.your.package shell@android:/data/data/com.your.package \$ cd /data/data/com.your.package cd /data/data/com.your.package shell@android:/data/data/com.your.package \$ ls ls cache databases lib shared_prefs shell@android:/data/data/com.your.package \$ cd databases cd databases shell@android:/data/data/com.your.package/databases \$ ls yourpackagename.db \$ cat preferences.db > /mnt/sdcard/yourpackagename.db 将你要访问的package目录下的db文件拷贝到sdcard中,这样就可以正常访问了! 对文件进行增删 法1:adb shell "run-aspackage.name chmod 666 /data/data/package.name/databases/file" adb pull /data/data/package.name/databases/file . adb shell "run-aspackage.name chmod 600 /data/data/package.name/databases/file" adb exec-out run-as package.name cat databases/file > file 法2:> adb shellshell \$ run-as com.example.packageshell \$ chmod 666 databases/fileshell \$ exit 'run-as'shell \$ cp /data/data/package.name/databases/file /sdcard/shell \$ run-as com.example.packageshell \$ chmod 600 databases/file> adb pull /sdcard/file . 更新一些反编译常用命令: 1.查看当前进程的内存的加载情况啊: cat /proc/7654/maps 查看当前进程内存的映射情况 2.查看当前应用使用的端口号信息: cat /proc/[pid]/net/tcp 3.查看进程的状态信息: cat /proc/[pid]/status可以通过该命令获取到当前进程的包名,PID,PPID等等重要信息(比较实用的命令) 4.查看一个dex文件的详细信息 dexdump [dex文件路径] 5.使用aapt命令获取apk的清单文件 aapt dump xmltree [apk包] [需要查看的资源文件xml] 例:aapt dump xmltree mm.apk AndroidMainfest.xml > demo.txt(讲mm应用中的AndroidMainfest.xml文件导入到新建的demo.txt文本中) 这里可能大家有个误区,aapt命令是与adb命令不是同一个命令,如果要使用和adb一样需要配置环境变量,也可以在SDK的build-tools文件夹内,shift+右键在此处打开命令窗口使用该命令!
2025年-3月-26日
5 阅读
0 评论
技术文章