adb shell settings put
global
device_provisioned
1
//boot to Home Screen
//go to setting -> system -> Developer options -> OEM unlocking
adb reboot bootloader
fastboot flashing unlock
//fastboot getvar unlocked
//press volume up key
fastboot reboot
adb root
adb disable-verity
adb reboot
adb root
adb remount
adb shell getprop
"ro.boot.flash.locked"
//返回值0表示已解锁,1表示未解锁
adb root;adb disable-verity;adb reboot
//adb多条命令执行,可以用分号隔开
adb shell top | grep app_name
//查看app_name的pid进程
adb shell pm clear 包名
//清除某个应用的缓存
adb shell ps | findstr
"com"
//查看所有以com开头的进程
adb shell pm list packages
//查看手机里面所有包名
adb shell monkey -p 包名
100
//指定app产生随机事件100次
adb shell monkey -p 包名 -v -v
100
//指定app产生随机事件100次并发送详细的activity信息
adb shell dumpsys | findstr
"mFocusedActivity"
//将程序运行在前台,通过命令查看应用包名称
adb logcat |
grep
"AndroidRuntime"
//过滤运行错误,过滤多个字符串,用
"|"
分割开
adb logcat |
grep
"AndroidRuntime|System.err"
logcat日志分析
adb
logcat -b events
adb
logcat -b events -d
logcat
-b events -v threadtime
adb
logcat -b main
adb
logcat -b radio
adb
logcat -b system
adb
logcat | grep -iE "settingupdate|recovery|uncrypt" //打印系统级log
adb
logcat -b events | grep am_ //过滤activity相关日志
打印activity堆栈
adb
shell dumpsys activity activities | sed -En -e
'/Running activities/,/Run #0/p'
adb shell dumpsys activity | grep clock
过滤已有文件的日志
grep -rn
"搜索的内容"
路径
grep -rn
"Parameter"
/home/test/shell
/*
logcat日志分析
(1).如果event中出现anr,搜索“am_anr”关键字
(2).如果是logcat log,搜索关键字“ANR”,接着需要看/data/anr下traces.txt文件的栈信息再进行分析
ActivityManager日志相关分析
(1).TagName分析
am_low_memory
//位于AMS.killAllBackgroundProcesses或者AMS.appDiedLocked,记录当前Lru进程队列长度。
am_pss
//位于AMS.recordPssSampleLocked()
am_meminfo
//位于AMS.dumpApplicationMemoryUsage
am_proc_start
//位于AMS.startProcessLocked,启动进程
am_proc_bound
//位于AMS.attachApplicationLocked
am_kill
//位于ProcessRecord.kill,杀掉进程
am_anr
//位于AMS.appNotResponding
am_crash
//位于AMS.handleApplicationCrashInner
am_wtf /位于AMS.handleApplicationWtf
am_activity_launch_time
//位于ActivityRecord.reportLaunchTimeLocked(),后面两个参数分别是thisTime和 totalTime.
am_activity_fully_drawn_time
//位于ActivityRecord.reportFullyDrawnLocked, 后面两个参数分别是thisTime和 totalTime
am_broadcast_discard_filter
//位于BroadcastQueue.logBroadcastReceiverDiscardLocked
am_broadcast_discard_app
//位于BroadcastQueue.logBroadcastReceiverDiscardLocked
adb logcat -b events | findstr “am_proc_died | am_proc_start”
//查看进程的启动信息,每个进程的启动信息和死亡信息
(2).Activity生命周期相关分析
am_on_resume_called
//位于AT.performResumeActivity
am_on_paused_called
//位于AT.performPauseActivity, performDestroyActivity
am_resume_activity
//位于AS.resumeTopActivityInnerLocked
am_pause_activity
//位于AS.startPausingLocked
am_finish_activity
//位于AS.finishActivityLocked, removeHistoryRecordsForAppLocked
am_destroy_activity
//位于AS.destroyActivityLocked
am_focused_activity
//位于AMS.setFocusedActivityLocked, clearFocusedActivity
am_restart_activity
//位于ASS.realStartActivityLocked
am_create_activity
//位于ASS.startActivityUncheckedLocked
am_new_intent
//位于ASS.startActivityUncheckedLocked
am_task_to_front
//位于AS.moveTaskToFrontLocked
(3).Window相关分析
wm_task_moved
//位于TaskStack.positionTask()
Power分析
power_sleep_requested
//位于PMS.goToSleepNoUpdateLocked
power_screen_state
//位于Notifer.handleEarlyInteractiveChange, handleLateInteractiveChange
battery_level: [
22
,
3660
,
34.8
]
//剩余电量22%, 电池电压3.66v, 电池温度34.8℃
power_screen_state: [
0
,
3
,
0
,
0
]
//灭屏状态(0), 屏幕超时(3). 当然还有其他设备管理策略(1),其他理由都为用户行为(2)
power_screen_state: [
1
,
0
,
0
,
0
]
//亮屏状态(1)
Activities分析
1).看焦点activity, 关键字am_focused_activity
2).进程启动历史, 关键字Start proc
3).确认设备是否抖动, 关键字am_proc_died和am_proc_start,检查是否在短时间内出现了大量的这样的log
adb shell dumpsys activity
//查询AMS服务相关的信息
adb shell dumpsys
window
//查询WMS服务相关的信息
adb shell dumpsys activity s 包名
//查询某个App所有的Service状态
adb shell dumpsys activity b 包名
//查询某个App所有的广播状态
adb shell dumpsys activity a 包名
//查询某个App所有的Activity状态
adb shell dumpsys activity a 包名
//查询某个App的进程状态
adb shell dumpsys activity top
//当前界面app状态
adb shell dumpsys activity oom
//查看进程状态
Android音量设置流程及调试方法
dumpsys
media
.audio_policy
//查询系统的流音量
Mixer设备查询
Mixer的一些设备状态对于定位Audio问题非常有帮助,这些设备里包括控制通路开关、音量、增益等;这些配置对于Audio是能够正常使用,起着至关重要的作用
Android系统内置了一些查询和设置命令
amix -
c
0
//查询
amix -
c
0
1
1
//设置
amix -
c
0
//重新查询之后发现修改的配置已经生效
alsa_amixer -
c
0
contents
//和amix的使用方法类似,只是展现的格式有些差异
原文始发于微信公众号(哆啦安全):Android系统定制及adb日志调试方法
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论