注意:在shell下使用,无需输入adb前缀。在cmd中运行则需加上adb前缀。
权限&内核打印关闭
申请root权限
adb root
su
关闭内核打印
adb shell
echo 0 > /proc/sys/kernel/printk
日志
日志级别
Android 的日志分为如下几个优先级(priority):
- V —— Verbose(最低,输出得最多)
- D —— Debug
- I —— Info
- W —— Warning
- E —— Error
- F —— Fatal
- S —— Silent(最高,啥也不输出)
按某级别过滤日志则会将该级别及以上的日志输出。
按级别过滤日志
adb logcat ActivityManager:I MyApp:D *:S
表示输出 tag ActivityManager
的 Info 以上级别日志,输出 tag MyApp
的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。
按tag(关键字)过滤日志
# 模糊匹配打印多个关键字的log
logcat | grep "stopRecord" "recordProg" "showPfInfo"
# 只打印指定关键字的log
logcat Topmost:D -s "stopRecord"
logcat Topmost:D -s "recordProg"
logcat Topmost:D -s "showPfInfo"
按时间输出日志
# 日志输出直接打印在shell窗口中
logcat -v time
# 将日志输出存储到data/app-log.txt文件中
logcat -v time > /data/app-log.txt
# 将打印的日志拷贝到U盘根目录下
cp data/app-log.txt storage/external_storage/sda1/
过滤机器的MAC地址
getprop | grep serial
apk安装
系统apk安装
adb connect 10.88.188.108
adb remount
#adb push <apk在windown系统路径> <apk在机顶盒中的路径>
adb push C:\Users\lxy\Desktop\iTV.apk /system/app/iTV/
#重启让apk生效
adb shell reboot
如果项目的代码改动比较少,可能存在不编译的现象,则编译签名后的apk仍然是原来的apk。
挂载
挂载主要是为了对系统进行读写,主要应用在安装系统权限的apk前运行。
# 在shell运行的挂载命令
echo 1 > /sys/class/remount/need_remount\rmount -o remount /system\n
# 在cmd运行adb挂载命令
adb remount
抓取网络包
tcpdump -s 0 -w /data/net.pcap
截屏
screenshot /tmp/1.png
# 在cmd中拷贝机器中的截屏图片到电脑桌面
cp /tmp/1.png .\Desktop\1.png