Adb的全称为Android Debug Bridge:android调试桥梁。
adb root (获取手机root权限)
adb remount (重新挂载系统分区,使系统分区重新可写)
adb shell (进入目标设备的Linux Shell环境)
C:\Users\dddd>adb devices
List of devices attached
192.168.18.205:1379 device
adb start-server
adb kill-server
// 使用在线调试
adb tcpip 5555 // 设置调试端口号
adb connect ip // 链接ip设备
adb disconnect ip // 取消链接ip设备
// 使用usb调试
adb usb // 使用usb调试
ip为可以访问到的设备ip
当有多台设备连接时,需要在命令中夹杂 -s < specific device > 用以区分设备
如:
C:\Users\admin>adb devices
List of devices attached
efb1dc59 device
192.168.18.205:1379 device
C:\Users\admin>adb -s efb1dc59 install F:\Android-Project\jmrh\jungang-android\app\evn_test\release\4.apk
Success
adb shell pm list package
说明:
adb shell pm list packages // 查看所有应用
adb shell pm list packages -s // 查看系统应用
adb shell pm list packages -3 // 查看三方应用
//覆盖安装 -r
adb install -r app.apk
adb uninstall com.example.packagename
adb shell am force-stop xxxxxx
adb shell am start -n packagename/startactivityname
adb shell am start -n 包名/相对包名的类名
如:adb shell am start -n com.example.test/.MainActivity
上传文件:
adb push <本地文件><远程路径>
例如:adb push d:\3.txt storage/sdcard
下载文件:
adb pull <远程路径><本地路径>
例如:adb pull phone地址 F:\1
查看apk的签名
方法一、先用解压软件将APK解压,命令处理META-INF目录下的CERT.RSA文件
keytool -printcert -file F:\1\META-INF\CERT.RSA
方法二、直接用命令对APK进行处理
keytool -printcert -jarfile F:\1\2.apk
查看keystore的签名
命令:keytool -list -keystore F:\1\app_key
从机器上下载下来APK,之后,如何反编译呢?
下载APKTool,将apktool.jar 文件拷到APK同一个目录下,执行下面代码:
//查看APK的清单文件基本信息
aapt dump badging xxx.apk
获取序列号
adb get-serialno
获取 MAC 地址
adb shell cat /sys/class/net/wlan0/address
查看设备型号
adb shell getprop ro.product.model
查看 Android 系统版本
adb shell getprop ro.build.version.release
查看屏幕分辨率
adb shell wm size
查看屏幕密度
adb shell wm density
查看permissions adb shell pm list permissions
查看系统的危险权限dangerous permissions adb shell pm list permissions -d -g
列出当前进程
adb shell ps | findstr 包名
杀死某个包的进程
adb shell am force-stop 包名
获取内存:
adb shell dumpsys meminfo 包名
获取cpu:
adb shell dumpsys cpuinfo | findstr 包名
adb shell top -n 1 | findstr 包名
获取流畅度相关:
adb shell dumpsys gfxinfo 包名
//查看日志
adb logcat
//查看编码格式
chcp
//修改编码格式(如果存在乱码,修改编码格式为utf-8)
chcp 65001
附一个场景
在一个定制的PAD上,需要本地覆盖安装烧录进去的系统级app,发现提示签名文件不一致。在只有本地APK,没有PAD上的APK文件的情况下,如何验证这两个APK的签名文件是否一致?
来一波操作,各个步骤均有说明:
//查看连接的设备
C:\Users\admin>adb devices
List of devices attached
192.168.18.205:1379 device
//查看安装的应用包名
C:\Users\admin>adb shell pm list packages -s
package:com.cvte.maxhub.rciservice
//查看system下某个包名的path
C:\Users\admin>adb shell pm path com.xxxx.jungang.release
package:/system/app/WeidongyunLaunch/WeidongyunLaunch.apk
//复制下来这个位置的apk
C:\Users\admin>adb pull /system/app/WeidongyunLaunch/WeidongyunLaunch.apk f:\2
/system/app/WeidongyunLaunch/WeidongyunLaunch.apk: 1 file pulled. 3.2 MB/s (27207429 bytes in 8.012s)
//查看这个APK的签名文件信息
C:\Users\admin>keytool -printcert -jarfile f:\2\WeidongyunLaunch.apk
签名者 #1:
签名:
所有者: [email protected], CN=SEEWO, OU=SEEWOOS, O=SEEWO, L=Guangzhou, ST=GuangDong, C=CN
发布者: [email protected], CN=SEEWO, OU=SEEWOOS, O=SEEWO, L=Guangzhou, ST=GuangDong, C=CN
序列号: ba764c3b1dfe7fd5
有效期开始日期: Wed Dec 02 17:54:03 CST 2015, 截止日期: Sun Apr 19 17:54:03 CST 2043
证书指纹:
MD5: 5C:4C:65:E2:63:06:7B:76:8C:9D:74:2B:71:B0:B5:D9
SHA1: 35:57:F7:D9:35:CC:A5:89:D2:BA:54:E6:EA:28:4C:F3:E0:12:32:27
SHA256: FE:E3:E5:A3:FD:F7:CC:8C:DF:0C:27:EF:70:A0:92:AF:23:CF:11:DC:F2:28:58:C9:14:B3:58:BA:5A:EA:84:C1
签名算法名称: SHA1withRSA
版本: 3
//查看本地的某个APK的签名信息
C:\Users\admin>keytool -printcert -jarfile F:\Android-Project\jmrh\jungang-android\app\evn_test\release\军港-测试环境-v1.2.1正式版.201911071336.apk
签名者 #1:
签名:
所有者: CN=xxxx, OU=xxxx, O=xxxx, L=BeiJing, C=cn
发布者: CN=xxxx, OU=xxxx, O=xxxx, L=BeiJing, C=cn
序列号: 25db7c60
有效期开始日期: Thu Mar 21 20:31:22 CST 2019, 截止日期: Mon Mar 14 20:31:22 CST 2044
证书指纹:
MD5: 1A:F3:1F:48:23:AE:1B:FD:6C:6A:43:99:8D:02:2F:5E
SHA1: 42:C6:CC:B1:8B:1D:F0:C0:67:18:6D:D2:57:69:F0:AD:8A:F9:7F:69
SHA256: EA:B9:0D:C7:F6:78:67:E3:E1:F4:42:4D:58:03:2A:77:5D:7D:5B:A6:9E:A0:AE:31:AF:47:E9:8B:92:CA:6F:26
签名算法名称: SHA256withRSA
版本: 3
1、先用数据线连接android设备
2、adb usb
3、adb kill-server
4、adb tcpip 5555
5、adb connect 设备IP:5555