ADB_Aron
2018-01-08 10:21:19 2 举报
AI智能生成
ADB常用命令,喜欢就点个赞吧!
作者其他创作
大纲/内容
adb基础命令
<div>查看连接计算机的设备:adb devices</div>
<span style="font-family: Tahoma, Helvetica, SimSun, sans-serif; font-size: 14px; line-height: 21px; text-align: left;">adb wait-for-device #等待设备</span>
<div>重启机器:adb reboot</div>
关机: adb shell reboot -p
adb reboot -p会重启
刷机
QFIL低格刷机
进入9008端口
adb进入9008端口
adb reboot edl
fastboot 进入9008端口
fastboot oem edl
进入手机fastboot模式,执行命令 <br>fastboot oem edl 进入高通CPU9008端口
点击Browser
172.16.7.71/y3
选一个分支
如dev,mp
172.16.7.71/y3/coolyota_msm8953_dev\
选一个版本
Y3_V1801081_P1_DPX_userdebug\qfil
打开prog_emmc_firehose_8953_ddr.mbn
点击Load XML
X:\y3\coolyota_msm8953_dev\Y3_V1801081_P1_DPX_userdebug\qfil
选第一个文件
rawprogram_unsparse.xml
打开
patch0.xml
继续打开
第一次刷机需要注意
点击上方Configuration
勾选Reset After Download
不能勾选Erase All Before 否则会清除NV数据
确定是9008端口,点击Download开始刷机
fastboot刷机
<div>重启到bootloader,即刷机模式fastboot线刷:</div><div>adb reboot bootloader</div>
fastboot flash system system.img
fastboot erase userdata
fastboot erase boot
fastboot erase cache
fastboot erase system
fastboot flash recovery recovery.img
fastboot flash boot boot.img
fastboot update update.zip
fastboot reboot
重启手机
<div>重启到recovery,即恢复模式:</div><div>adb reboot recovery</div>
<div>查看log:adb logcat</div>
<span style="font-family: 'Microsoft Yahei', Tahoma, Simsun; font-size: 14px; line-height: 21px; text-align: start;">windows下: adb logcat > d:\log.txt</span><br style="word-wrap: break-word; font-family: 'Microsoft Yahei', Tahoma, Simsun; font-size: 14px; line-height: 21px; text-align: start;"><span style="font-family: 'Microsoft Yahei', Tahoma, Simsun; font-size: 14px; line-height: 21px; text-align: start;">linux 下: adb logcat > ~/log.txt</span>
adb logcat -b radio > log.txt
过滤log信息
<span style="font-family: 'Microsoft Yahei', Tahoma, Simsun; font-size: 12px; line-height: 24px; text-align: start;">Linux系统 adb logcat | grep xx-- > ~/log.txt <br>windows下可以用 adb logcat -s xx-- > d:\log.txt </span>
adb start-server 和 adb kill-server
adb install 和 adb uninstall
<div>从本地复制文件到设备:</div><div>adb push <local> <remote> </div><div>从设备复制文件到本地:</div><div>adb pull <remote> <local> </div>
adb push folder/. remote
push 文件夹里面的文件
adb push icons/. sdcard/icons/
对于文件名带空格的 需要加双引号
高级命令
adb disable-verity
userdebug版本remount不成功时执行后重启生效, 1.0.36以上版本可用,
打开墨水屏
adb shell dumpsys SurfaceFlinger
type 0为主屏,type 1为ink屏
adb root & adb remount
adb shell service call SurfaceFlinger 2001 i32 2
Result: Parcel(NULL) 则success
adb shell am start -n 包名/包+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)
包名
adb shell am start 包名
am start com.android.music
-p 包名
adb shell monkey -p com.UCMobile -c android.intent.category.LAUNCHER 1
adb shell am start -p com.android.launcher3
然后再选择Activity
adb shell dumpsys package | grep xx
关闭应用
adb shell am force-stop com.UCMobile
adb shell am force-stop com.android.jv.ink.launcherink
-a android.intent.action.MAIN<br>VIEW
adb shell am start -n com.android.jv.ink.launcherink/.ui.home.JvMainActivity
adb shell am start -n com.baoliyota.reader/com.baoliyota.reader.ui.LoadActivity
adb shell am start -n com.zeusis.factorytest/.base.MainActivity
开机工程模式输入该命令<br>切换至正常模式并重启
adb shell fctd -b normal
会正常重启
修改文件权限
adb shell chmod 644 system/priv-app/SystemUI/SystemUI.apk
<div>fastboot oem get-number</div>
adb shell
<a href="http://www.jianshu.com/p/f8ab9c64de52" target="_blank" class="title" style="box-sizing: border-box; color: rgb(150, 150, 150); text-decoration: none; cursor: pointer; margin: -7px 0px 4px; display: inherit; font-size: 18px; font-weight: 700; line-height: 1.5; font-family: -apple-system, 'SF UI Display', Arial, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif; text-align: left;">那些好用到跳,但是记不住的ADB命令</a>
截图录屏
截图: adb shell /system/bin/screencap -p /sdcard/1.png
adb shell /system/bin/screencap -d 3 -p /sdcard/screenshot.png
adb shell system/bin/screencap -p sdcard/sign.png
录屏
adb shell screenrecord /sdcard/demo.mp4
API19及以上
adb pull /sdcard/demo.mp4
问题
因为手机分辨率太高,我试用了一下使用模拟器截屏,发现会报错:”unable to create encoder input surface (err=-38)”,后面查资料发现是系统bug,在高版本的模拟器上不再支持截屏命令,也就是目前只能使用设备截屏。<br>我在使用工具转Gif时把分辨率改小,图片会模糊很多,录屏时就设置分辨率效果会好很多(我的手机是1440*2560,生成320*480的图,效果也只能这样了),命令如下:<br>
adb shell screenrecord –size 848x480 /sdcard/demo.mp4
进入手机目录
重命名: mv oldName newName
删除文件: rm Name 注:加-r是文件夹
ls –l 查看文件详细信息
getevent
查看点击Touch事件如:测试TP功能
模拟点击
input keyevent 26 相当于按了power
adb shell input tap 200 800
<div>input text <string></div><div> input keyevent <key code number or name></div><div> input tap <x> <y> 点击触摸</div><div> input swipe <x1> <y1> <x2> <y2>滑动</div>
800 800 USB调试<br>900 1100 允许<br>1000 1700 下一步<br>540 1250 开始使用<br>有虚拟键
无虚拟键
900 1700 USB弹窗取消
900 200 桌面4.1
700 1150 桌面3,4
子主题
子主题
0 270 540 810 1080<br>320<br>640<br>960<br>1280<br>1600<br>1920
900 1450 桌面右下角4,5
swipe 900 600 90 600 右滑
input text <string> //输入文本
input text "de"
input text "https://aff.antss019.com/aff/g4mR"
input text de
解锁
adb shell input swipe 500 900 500 70
上滑解锁
swipe 表示滑动,从500,900滑动到500,70
左滑
adb shell input swipe 50 500 500 500
右滑
adb shell input swipe 500 500 50 500
无效adb shell rm /data/system/gesture.key
Event
3
Home 回到首页
4
返回 back
adb shell input keyevent 4
上 | KEYCODE_DPAD_UP 19 -103 | KEYCODE_DPAD_RIGHT 22 -106 |<br>下 | KEYCODE_DPAD_DOWN 20 -108 | KEYCODE_DPAD_LEFT 21 -105<br>左 | KEYCODE_VOLUME_UP 24 -115 | KEYCODE_DPAD_UP 19 -103<br>右 | KEYCODE_VOLUME_DOWN 25 -114 | KEYCODE_DPAD_DOWN 20 -108<br>X | 小米监测不到,打开系统多任务菜单 | KEYCODE_MENU 82 -127<br>Y | KEYCODE_ESCAPE 111 -1 | KEYCODE_ESCAPE 111 -1 <br>A | KEYCODE_PAGE_DOWN 93 -109 | KEYCODE_PAGE_DOWN 93 -109<br>B | | KEYCODE_ENTER 66 -0<br>切换 | KEYCODE_MEDIA_EJECT 129 -161 |
同时按下双键
录屏 开关机键+音量加<br>
input keyevent 26&input keyevent 24
截屏 开关机键+音量减
长按
input keyevent --longpress 26<br>
查看运行的activity和Service
adb shell dumpsys activity
adb shell dumpsys activity | grep activity
dumpsys activity | grep activity
最上层获得焦点的activity
adb shell dumpsys activity | adb shell grep top-activity
dumpsys activity | grep top-activity
adb shell dumpsys activity | grep top-activity
dumpsys window|grep mCurrentFocus
精确 没有多余信息
adb shell dumpsys activity activities
dumpsys activity activities
adb shell dumpsys activity 包名
fragment 和view层级
adb shell am stack list
如果无效可能手机版本低,可以试试
adb shell am stack boxes
服务Service
adb shell service list <br>
查看后台services信息
service list | grep log
service list | grep ComPress
adb shell dumpsys activity services
dumpsys activity services | grep log
dumpsys activity services | grep MyService<br>
dumpsys activity services | grep Compre
上传的时候 可以查到,上传完还在
启动服务
am startservice -n {包(package)名}/{包名}.{服务(service)名称}
-a action
广播
dumpsys | grep BroadcastRecord
dumpsys | grep BatteryBroadcastReceiver
模拟发送广播
adb shell am broadcast -a action
<div>[-a <ACTION>]</div><div>[-d <DATA_URI>]</div><div>[-t <MIME_TYPE>] </div><div>[-c <CATEGORY> [-c <CATEGORY>] ...] </div><div>[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...] </div><div>[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...] </div><div>[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...] </div><div>[-n <COMPONENT>]</div><div>[-f <FLAGS>] [<URI>]</div>
adb shell am broadcast -a com.android.test --es test_string "this is test string" --ei test_int 100 --ez test_boolean true
adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei level 80 --ei scale 100
通知Notification
adb shell dumpsys notification | grep "Notification("
查询系统属性
getprop
pm 包管理器
隐藏应用
<div>输入pm list packages | grep hwouc 回车 </div><div> 这个是显示所有手里面安装的包名列表,grep的功能是进行过滤,hwouc是华为系统里面的更新软件包名,如果是华为手机直接可以用,如果是其他手机请百度下吧。正常来说应该出现com.huawei.android.hwouc,就说明一切正常。</div><div><br></div><div>输入pm hide com.huawei.android.hwouc 回车 </div><div> 这部命令是隐藏/冻结了hwouc软件</div><div><br></div><div>输入pm list packages | grep hwouc 回车 </div><div> 这时候就发现搜索不到软件,确定了可以隐藏/冻结了软件。</div>
禁用应用
<div>pm enable [–user USER_ID] PACKAGE_OR_COMPONENT 恢复为激活状态 </div><div>pm disable [–user USER_ID] PACKAGE_OR_COMPONENT 修改为禁用状态 </div><div>pm list packages -d 查看禁用的列表 (返回的package name 的列表)</div>
多台设备时
adb -s DeviceId shell
adb -s SH0A6PL00243 shell
运行其它命令和运行pull命令一样的,只是在adb和cmd之间需要额外添加-s <serial number="">即可</serial><br><serial number=""></serial>
sqlite3数据库
cd data/data/项目包名/databases<br>
cd data/data/com.zhangyue.iReader.Eink/databases/<br>
cd data/data/com.itel.launcher/databases/<br>
ls
sqlite3 audioBook.db<br>
sqlite3 iReader.db
sqlite3 launcher.db<br>
常用命令
.tables
.table<br>
查询表
.header on<br>
显示表头 表结构<br>
select * from audioList;<br>
select * from booklist;
select * from workspaceScreens;<br>
.exit
其他命令
手机信息
adb get-serialno
获取序列号
adb shell cat /proc/iomem
查看IO内存分区:
内存 memory
adb shell cat /proc/meminfo
查看当前内存占用:
dumpsys meminfo<br>
内存总体情况
含PSS
adb shell dumpsys meminfo com.android.launcher3<br>
实时显示内存(可区分应用)
adb shell top -m 8 -s vss<br>
Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
top -m 8 -s vss
adb shell top -m 8 -s rss
Resident Set Size 实际使用物理内存(包含共享库占用的内存)
top -m 8 -s rss
adb shell top -m 8 -s pss
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)<br>USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)<br>一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
adb shell procrank<br>
内容很多
pss dumpsys 44M procrank 29M AS 19M ???
Pss(KB)<br> ------<br> Java Heap: 3836<br> Native Heap: 3428<br> Code: 7384<br> Stack: 36<br> Graphics: 0<br> Private Other: 7304<br> System: 21672<br><br> TOTAL: 43660 TOTAL SWAP PSS: 14567 <br>
系统应用平分了系统所占内存
屏幕
adb shell dumpsys window displays
adb shell dumpsys window displays |head -n 3
adb shell wm size
存储空间
adb shell df
cpu
adb shell dumpsys cpuinfo<br>
adb shell cat proc/cpuinfo
adb shell top -m 3 -s cpu<br>
Usage: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]<br> -m num Maximum number of processes to display.<br> -n num Updates to show before exiting.<br> -d num Seconds to wait between updates.<br> -s col Column to sort by (cpu,vss,rss,thr).<br> -t Show threads instead of processes.<br> -h Display this help screen. <br>
查看cpu频率
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1766400
时间
修改时间
date [时间戳]
设置
<br>adb shell settings put system autoshutdown_timeout 28800000<br> <br>1分钟 : 60000<br>10分钟 :600000 <br>20分钟 :1200000<br>adb shell settings get system autoshutdown_timeout
0 条评论
下一页