欢迎扫码关注哆啦安全视频号
一、Android Log系列日志获取
Android四类log buffer是main、radio、system、events
logcat
adb wait-for-device logcat
adb logcat -v time > logcat.txt //默认是-b main -b system
adb logcat -v time -b main //main log
adb logcat -v time -b radio //radio log
adb logcat -v time -b system //system log
adb logcat -v time -b events
adb logcat -v time -b crash
events log
adb logcat -v threadtime -b events
anr log
adb pull /data/anr
crash log
adb logcat -v time -b crash
tombstone log
adb pull /data/tombstones
dropbox log
adb pull /data/system/dropbox
core log
adb pull /data/log/core
开机log
adb shell dmesg > dmesg.txt
logcatch
adb pull /data/logcatch
qxdm log
adb pull /sdcard/logs
hprof log
在分析app时,通常需要分析app的java heap信息,如分析java的memory leak, 追查heap中相关变量情况等
在Android 中抓取app的hprof操作方式
使用am命令
adb shell am dumpheap {Process} file
adb shell am dumpheap com.android.phone /data/anr/phone.hprof
adb pull /data/anr/phone.hprof
使用DDMS命令
在DDMS中选择对应的process, 然后在Devices按钮栏中选择Dump Hprof file,保存即可
通过代码的方式
在android.os.Debug这个class中有定义相关的抓取hprof的method
public static void dumpHprofData(String fileName) throws IOException;
可以先获取IActivityManager接口,然后调用它的dumpheap方法
frameworks/base/cmds/am/src/com/android/commands/am/am.java
抓取回hprof后,就可以用hprof-conv命令将DVM 格式的hprof转换成标准的java命令的hprof
hprof-conv in.hprof out.hprof
然后使用如MAT之类的工具进行具体的分析
bugreport
adb bugreport > bugreport.txt
kernel log
adb shell
cat proc/kmsg > kmsg.txt
各类信息(如:进程信息,内存信息,进程是否异常,kernnel的log等)
adb shell dumpstate
adb shell dumpcrash
adb shell dumpsys
二、Android adb命令大全
清除应用数据与缓存
adb shell pm clear <packagename>
查看顶部Activity
adb shell dumpsys activity | findstr "mFocusedActivity"
查看正在运行的Services
adb shell dumpsys activity services [<packagename>]
应用管理
查看应用列表
adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
在adb shell pm list packages的基础上可以加一些参数进行过滤查看不同的列表,如下所示:
所有应用
查看手机端安装的所有app包名
adb shell pm list packages
系统应用
adb shell pm list packages -s
第三方应用
adb shell pm list packages -3
包名包含某字符串的应用
查看包名包含字符串per的应用列表
adb shell pm list packages per
当然也可以使用grep来过滤
adb shell pm list packages | grep per
安装APK
adb install [-lrtsdg] <path_to_apk>
查看应用安装路径
adb shell pm path <PACKAGE>
模拟按键/输入
adb shell input keyevent <keycode>
https://developer.android.com/reference/android/view/KeyEvent
HOME键
adb shell input keyevent 3
事件输入
使用adb shell input命令向屏幕输入一些信息(%s表示空格)
adb shell input text "insert%stext%shere"
使用adb shell input tap命令来模拟屏幕点击事件
adb shell input tap 500 1450
表示在屏幕上(500,1450)的坐标点上进行一次点击
使用adb shell input swipe命令来模拟手势滑动事件
adb shell input swipe 100 500 100 1450 100
表示从屏幕坐标(100,500)开始,滑动到(100,1450)结束,整个过程耗时100ms
使用adb shell input keyevent命令来模拟点按实体按钮的命令
adb shell input keyevent 25
该命令表示调低音量。数字25是在AOSP源码中的KeyEvent类里定义的一个事件常量。该类定义了将近300个事件常量
事件输出
dumpsys命令可以提供非常多的系统信息。可以通过adb shell service list来查看dumpsys能提供查询信息的服务,常用的如下所示:
http://aospxref.com/
http://androidxref.com/
WHAT 解释 对应的源码
1 a[ctivities] activity状态 dumpActivitiesLocked()
2 b[roadcasts] [PACKAGE_NAME] broadcast状态 dumpBroadcastsLocked()
3 s[ervices] [COMP_SPEC …] service状态 newServiceDumperLocked().dumpLocked
4 prov[iders] [COMP_SPEC …] content provider状态 dumpProwevidersLocked()
5 p[rocesses] [PACKAGE_NAME] 进程状态 dumpProcessesLocked()
6 o[om] 内存管理 dumpOomLocked()
7 i[ntents] [PACKAGE_NAME] pending intent状态 dumpPendingIntentsLocked()
8 r[ecents] 最近 activitydumpRecentsLocked()
9 perm[issions] URI授权情况 dumpPermissionsLocked()
10 all所有 activities信息 dumpActivity()
11 top 顶部activity信息 dumpActivity()
12 package package相关信息 dump()
adb shell dumpsys activity
adb shell dumpsys package
adb shell dumpsys window
adb shell dumpsys input
adb shell dumpsys power
adb shell dumpsys procstats
adb shell dumpsys battery
adb shell dumpsys alarm
adb shell dumpsys meminfo
adb shell dumpsys activity intents
adb shell dumpsys activity broadcasts
adb shell dumpsys activity providers
adb shell dumpsys activity permissions
adb shell dumpsys activity services
adb shell dumpsys activity recents
adb shell dumpsys activity activities
adb shell dumpsys activity processes
adb shell dumpsys activity services
ACTIVITY MANAGER SERVICES (dumpsys activity services)
User 0 active services:
* ServiceRecord{5262c97 u0 com.android.bluetooth/.hid.HidService}
intent={act=android.bluetooth.IBluetoothInputDevice cmp=com.android.bluetooth/.hid.HidService}
packageName=com.android.bluetooth
processName=com.android.bluetooth
baseDir=/system/app/Bluetooth/Bluetooth.apk
dataDir=/data/user_de/0/com.android.bluetooth
app=null
createTime=-35m26s683ms startingBgTimeout=--
lastActivity=-35m26s683ms restartTime=-- createdFromFg=true
Bindings:
* IntentBindRecord{d58cf92}:
intent={act=android.bluetooth.IBluetoothInputDevice cmp=com.android.bluetooth/.hid.HidService}
binder=null
requested=false received=false hasBound=false doRebind=false
* Client AppBindRecord{afb0d63 ProcessRecord{320a2da 928:com.android.systemui/u0a32}}
Per-process Connections:
ConnectionRecord{2a05e8 u0 com.android.bluetooth/.hid.HidService:@51ff30b}
All Connections:
ConnectionRecord{2a05e8 u0 com.android.bluetooth/.hid.HidService:@51ff30b}
* ServiceRecord{569cbfc u0 com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService}
intent={act=android.nfc.cardemulation.action.HOST_APDU_SERVICE cmp=com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService}
packageName=com.tencent.mm
processName=com.tencent.mm
permission=android.permission.BIND_NFC_SERVICE
baseDir=/data/app/com.tencent.mm-1/base.apk
dataDir=/data/user/0/com.tencent.mm
app=ProcessRecord{e381568 1767:com.tencent.mm/u0a71}
createTime=-35m22s823ms startingBgTimeout=--
lastActivity=-35m22s770ms restartTime=-35m22s770ms createdFromFg=true
Bindings:
* IntentBindRecord{88b0d60 CREATE}:
intent={act=android.nfc.cardemulation.action.HOST_APDU_SERVICE cmp=com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService}
binder=android.os.BinderProxy@9882219
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{1b052de ProcessRecord{44db82 1596:com.android.nfc/1027}}
Per-process Connections:
ConnectionRecord{86a52d0 u0 CR com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:@bf4293}
All Connections:
ConnectionRecord{86a52d0 u0 CR com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:@bf4293}
* ServiceRecord{2557d19 u0 org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent}
intent={cmp=org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent}
packageName=org.mokee.profiles
processName=org.mokee.profiles
permission=android.permission.BIND_TRUST_AGENT
baseDir=/system/app/Profiles/Profiles.apk
dataDir=/data/user/0/org.mokee.profiles
app=ProcessRecord{6a12e84 3705:org.mokee.profiles/u0a54}
createTime=-13m0s880ms startingBgTimeout=--
lastActivity=-13m0s848ms restartTime=-13m0s848ms createdFromFg=true
Bindings:
* IntentBindRecord{7071cbf CREATE}:
intent={cmp=org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent}
binder=android.os.BinderProxy@3839f8c
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{befc6d5 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{28efcf4 u0 CR FGS org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:@5696ec7}
All Connections:
ConnectionRecord{28efcf4 u0 CR FGS org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:@5696ec7}
* ServiceRecord{9d40554 u0 com.sohu.inputmethod.sogou/.SogouIME}
intent={act=android.view.InputMethod cmp=com.sohu.inputmethod.sogou/.SogouIME}
packageName=com.sohu.inputmethod.sogou
processName=com.sohu.inputmethod.sogou
permission=android.permission.BIND_INPUT_METHOD
baseDir=/data/app/com.sohu.inputmethod.sogou-1/base.apk
dataDir=/data/user/0/com.sohu.inputmethod.sogou
app=ProcessRecord{a82d438 3747:com.sohu.inputmethod.sogou/u0a83}
createTime=-12m58s596ms startingBgTimeout=--
lastActivity=-12m58s541ms restartTime=-12m58s541ms createdFromFg=true
Bindings:
* IntentBindRecord{16abeea CREATE}:
intent={act=android.view.InputMethod cmp=com.sohu.inputmethod.sogou/.SogouIME}
binder=android.os.BinderProxy@39ac5db
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{3912878 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{7740166 u0 CR !FG UI !VIS com.sohu.inputmethod.sogou/.SogouIME:@13ad5c1}
All Connections:
ConnectionRecord{7740166 u0 CR !FG UI !VIS com.sohu.inputmethod.sogou/.SogouIME:@13ad5c1}
* ServiceRecord{ad614d2 u0 com.android.email/.service.LegacyImapSyncAdapterService}
intent={cmp=com.android.email/.service.LegacyImapSyncAdapterService}
packageName=com.android.email
processName=com.android.email
baseDir=/system/app/Email/Email.apk
dataDir=/data/user/0/com.android.email
app=ProcessRecord{7aba4ed 2090:com.android.email/u0a59}
createTime=-35m17s70ms startingBgTimeout=-35m2s61ms
lastActivity=-35m17s7ms restartTime=-35m17s70ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=3
* ServiceRecord{8956eac u0 com.android.systemui/.keyguard.KeyguardService}
intent={cmp=com.android.systemui/.keyguard.KeyguardService}
packageName=com.android.systemui
processName=com.android.systemui
baseDir=/system/priv-app/SystemUI/SystemUI.apk
dataDir=/data/user_de/0/com.android.systemui
app=ProcessRecord{320a2da 928:com.android.systemui/u0a32}
createTime=-35m29s59ms startingBgTimeout=--
lastActivity=-35m27s887ms restartTime=-35m29s21ms createdFromFg=true
Bindings:
* IntentBindRecord{3f2fb51 CREATE}:
intent={cmp=com.android.systemui/.keyguard.KeyguardService}
binder=android.os.BinderProxy@8addfb6
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{8f5e4b7 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{7b002a u0 CR com.android.systemui/.keyguard.KeyguardService:@7f4515}
ConnectionRecord{a908dbd u0 CR com.android.systemui/.keyguard.KeyguardService:@d311114}
All Connections:
ConnectionRecord{7b002a u0 CR com.android.systemui/.keyguard.KeyguardService:@7f4515}
ConnectionRecord{a908dbd u0 CR com.android.systemui/.keyguard.KeyguardService:@d311114}
* ServiceRecord{e95e392 u0 projekt.substratum/.services.binder.InterfacerBinderService}
intent={cmp=projekt.substratum/.services.binder.InterfacerBinderService}
packageName=projekt.substratum
processName=projekt.substratum
baseDir=/system/app/Substratum/Substratum.apk
dataDir=/data/user/0/projekt.substratum
app=ProcessRecord{33f7345 2379:projekt.substratum/u0a61}
createTime=-35m15s116ms startingBgTimeout=-35m0s115ms
lastActivity=-35m15s116ms restartTime=-35m15s116ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{43853a8 u0 projekt.interfacer/.services.JobService}
intent={act=projekt.interfacer.INITIALIZE pkg=projekt.interfacer}
packageName=projekt.interfacer
processName=projekt.interfacer
permission=projekt.interfacer.permission.ACCESS_SERVICE
baseDir=/system/priv-app/ThemeInterfacer/ThemeInterfacer.apk
dataDir=/data/user/0/projekt.interfacer
app=ProcessRecord{97b92a2 2406:projekt.interfacer/1000}
createTime=-35m15s9ms startingBgTimeout=--
lastActivity=-35m14s960ms restartTime=-35m14s960ms createdFromFg=false
Bindings:
* IntentBindRecord{8ec5424 CREATE}:
intent={act=projekt.interfacer.INITIALIZE pkg=projekt.interfacer}
binder=android.os.BinderProxy@61afb8d
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{e304142 ProcessRecord{33f7345 2379:projekt.substratum/u0a61}}
Per-process Connections:
ConnectionRecord{fe3dfcb u0 CR projekt.interfacer/.services.JobService:@3814a9a}
All Connections:
ConnectionRecord{fe3dfcb u0 CR projekt.interfacer/.services.JobService:@3814a9a}
* ServiceRecord{e50345f u0 com.android.systemui/.ImageWallpaper}
intent={act=android.service.wallpaper.WallpaperService cmp=com.android.systemui/.ImageWallpaper}
packageName=com.android.systemui
processName=com.android.systemui
permission=android.permission.BIND_WALLPAPER
baseDir=/system/priv-app/SystemUI/SystemUI.apk
dataDir=/data/user_de/0/com.android.systemui
app=ProcessRecord{320a2da 928:com.android.systemui/u0a32}
createTime=-35m29s91ms startingBgTimeout=--
lastActivity=-35m28s542ms restartTime=-35m29s23ms createdFromFg=true
Bindings:
* IntentBindRecord{97a1553 CREATE}:
intent={act=android.service.wallpaper.WallpaperService cmp=com.android.systemui/.ImageWallpaper}
binder=android.os.BinderProxy@cac8e90
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{c48c389 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{b7f3ffc u0 CR FGSA UI com.android.systemui/.ImageWallpaper:@a8438ef}
All Connections:
ConnectionRecord{b7f3ffc u0 CR FGSA UI com.android.systemui/.ImageWallpaper:@a8438ef}
* ServiceRecord{b7ad94 u0 com.android.systemui/.doze.DozeService}
intent={act=android.service.dreams.DreamService cmp=com.android.systemui/.doze.DozeService}
packageName=com.android.systemui
processName=com.android.systemui
permission=android.permission.BIND_DREAM_SERVICE
baseDir=/system/priv-app/SystemUI/SystemUI.apk
dataDir=/data/user_de/0/com.android.systemui
app=ProcessRecord{320a2da 928:com.android.systemui/u0a32}
createTime=-9m35s259ms startingBgTimeout=--
lastActivity=-9m35s259ms restartTime=-9m35s259ms createdFromFg=true
Bindings:
* IntentBindRecord{b852f8e CREATE}:
intent={act=android.service.dreams.DreamService flg=0x800000 cmp=com.android.systemui/.doze.DozeService}
binder=android.os.BinderProxy@206b3af
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{ff403bc ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{939fde7 u0 CR FGS com.android.systemui/.doze.DozeService:@a5adfa6}
All Connections:
ConnectionRecord{939fde7 u0 CR FGS com.android.systemui/.doze.DozeService:@a5adfa6}
* ServiceRecord{b96fb33 u0 com.android.bluetooth/.pbap.BluetoothPbapService}
intent={act=android.bluetooth.IBluetoothPbap cmp=com.android.bluetooth/.pbap.BluetoothPbapService}
packageName=com.android.bluetooth
processName=com.android.bluetooth
baseDir=/system/app/Bluetooth/Bluetooth.apk
dataDir=/data/user_de/0/com.android.bluetooth
app=null
createTime=-35m26s676ms startingBgTimeout=--
lastActivity=-35m26s676ms restartTime=-- createdFromFg=true
Bindings:
* IntentBindRecord{3710f45}:
intent={act=android.bluetooth.IBluetoothPbap cmp=com.android.bluetooth/.pbap.BluetoothPbapService}
binder=null
requested=false received=false hasBound=false doRebind=false
* Client AppBindRecord{e28b69a ProcessRecord{320a2da 928:com.android.systemui/u0a32}}
Per-process Connections:
ConnectionRecord{4659239 u0 com.android.bluetooth/.pbap.BluetoothPbapService:@ef5aa00}
All Connections:
ConnectionRecord{4659239 u0 com.android.bluetooth/.pbap.BluetoothPbapService:@ef5aa00}
* ServiceRecord{666562e u0 com.mokee.aegis/.service.ManageHibernateService}
intent={cmp=com.mokee.aegis/.service.ManageHibernateService}
packageName=com.mokee.aegis
processName=com.mokee.aegis
baseDir=/system/priv-app/Aegis/Aegis.apk
dataDir=/data/user/0/com.mokee.aegis
app=ProcessRecord{c44aef0 2295:com.mokee.aegis/1000}
createTime=-35m15s808ms startingBgTimeout=-35m0s807ms
lastActivity=-35m15s808ms restartTime=-35m15s808ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{ab59ca2 u0 com.tencent.mm/.booter.CoreService}
intent={cmp=com.tencent.mm/.booter.CoreService}
packageName=com.tencent.mm
processName=com.tencent.mm:push
baseDir=/data/app/com.tencent.mm-1/base.apk
dataDir=/data/user/0/com.tencent.mm
app=ProcessRecord{b46c608 2397:com.tencent.mm:push/u0a71}
createTime=-35m13s601ms startingBgTimeout=-34m58s598ms
lastActivity=-5m11s488ms restartTime=-35m13s601ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=5
Bindings:
* IntentBindRecord{414dbcb CREATE}:
intent={cmp=com.tencent.mm/.booter.CoreService}
binder=android.os.BinderProxy@1db9fa8
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{9185ac1 ProcessRecord{e381568 1767:com.tencent.mm/u0a71}}
Per-process Connections:
ConnectionRecord{310f22c u0 CR com.tencent.mm/.booter.CoreService:@a4195df}
All Connections:
ConnectionRecord{310f22c u0 CR com.tencent.mm/.booter.CoreService:@a4195df}
* ServiceRecord{42bcc69 u0 com.android.bluetooth/.a2dp.A2dpService}
intent={act=android.bluetooth.IBluetoothA2dp cmp=com.android.bluetooth/.a2dp.A2dpService}
packageName=com.android.bluetooth
processName=com.android.bluetooth
baseDir=/system/app/Bluetooth/Bluetooth.apk
dataDir=/data/user_de/0/com.android.bluetooth
app=null
createTime=-35m29s59ms startingBgTimeout=--
lastActivity=-35m29s59ms restartTime=-- createdFromFg=true
Bindings:
* IntentBindRecord{d4ba266}:
intent={act=android.bluetooth.IBluetoothA2dp cmp=com.android.bluetooth/.a2dp.A2dpService}
binder=null
requested=false received=false hasBound=false doRebind=false
* Client AppBindRecord{59369a7 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{a03eb03 u0 com.android.bluetooth/.a2dp.A2dpService:@7ea1fb2}
All Connections:
ConnectionRecord{a03eb03 u0 com.android.bluetooth/.a2dp.A2dpService:@7ea1fb2}
* ServiceRecord{603751d u0 com.qualcomm.qcrilmsgtunnel/.QcrilMsgTunnelService}
intent={cmp=com.qualcomm.qcrilmsgtunnel/.QcrilMsgTunnelService}
packageName=com.qualcomm.qcrilmsgtunnel
processName=com.qualcomm.qcrilmsgtunnel
permission=com.qualcomm.permission.USE_QCRIL_MSG_TUNNEL
baseDir=/system/app/qcrilmsgtunnel/qcrilmsgtunnel.apk
dataDir=/data/user/0/com.qualcomm.qcrilmsgtunnel
app=ProcessRecord{12436ee 2341:com.qualcomm.qcrilmsgtunnel/1001}
createTime=-35m15s507ms startingBgTimeout=-35m0s506ms
lastActivity=-35m15s507ms restartTime=-35m15s507ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{460b775 u0 com.android.systemui/.SystemUIService}
intent={cmp=com.android.systemui/.SystemUIService}
packageName=com.android.systemui
processName=com.android.systemui
baseDir=/system/priv-app/SystemUI/SystemUI.apk
dataDir=/data/user_de/0/com.android.systemui
app=ProcessRecord{320a2da 928:com.android.systemui/u0a32}
createTime=-35m29s5ms startingBgTimeout=--
lastActivity=-35m29s5ms restartTime=-35m29s5ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{7dd919d u0 com.tencent.mm/.service.ProcessService$MMProcessService}
intent={cmp=com.tencent.mm/.service.ProcessService$MMProcessService}
packageName=com.tencent.mm
processName=com.tencent.mm
baseDir=/data/app/com.tencent.mm-1/base.apk
dataDir=/data/user/0/com.tencent.mm
app=ProcessRecord{e381568 1767:com.tencent.mm/u0a71}
createTime=-35m19s435ms startingBgTimeout=--
lastActivity=-35m19s431ms restartTime=-35m19s435ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
Bindings:
* IntentBindRecord{81f0e54 CREATE}:
intent={cmp=com.tencent.mm/.service.ProcessService$MMProcessService}
binder=android.os.BinderProxy@48ee1fd
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{5f7ef2 ProcessRecord{e381568 1767:com.tencent.mm/u0a71}}
Per-process Connections:
ConnectionRecord{6af41e3 u0 CR com.tencent.mm/.service.ProcessService$MMProcessService:@8230612}
All Connections:
ConnectionRecord{6af41e3 u0 CR com.tencent.mm/.service.ProcessService$MMProcessService:@8230612}
* ServiceRecord{913ecaf u0 android/.hardware.location.GeofenceHardwareService}
intent={cmp=android/.hardware.location.GeofenceHardwareService}
packageName=android
processName=system
permission=android.permission.LOCATION_HARDWARE
baseDir=/system/framework/framework-res.apk
dataDir=null
app=ProcessRecord{6645015 791:system/1000}
createTime=-35m28s352ms startingBgTimeout=--
lastActivity=-35m28s351ms restartTime=-35m28s351ms createdFromFg=true
Bindings:
* IntentBindRecord{282f943 CREATE}:
intent={cmp=android/.hardware.location.GeofenceHardwareService}
binder=android.hardware.location.GeofenceHardwareService$1@688bbc0
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{7eca0f9 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{80fac8e u0 CR android/.hardware.location.GeofenceHardwareService:@4ab1489}
All Connections:
ConnectionRecord{80fac8e u0 CR android/.hardware.location.GeofenceHardwareService:@4ab1489}
* ServiceRecord{c5cee7 u0 com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService}
intent={act=com.sogou.udp.push.IConfigRetriever cmp=com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService}
packageName=com.sohu.inputmethod.sogou
processName=com.sohu.inputmethod.sogou:push_service
baseDir=/data/app/com.sohu.inputmethod.sogou-1/base.apk
dataDir=/data/user/0/com.sohu.inputmethod.sogou
app=ProcessRecord{ceba3c4 4158:com.sohu.inputmethod.sogou:push_service/u0a83}
createTime=-10m54s896ms startingBgTimeout=--
lastActivity=-8m54s503ms restartTime=-10m54s844ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=2
Bindings:
* IntentBindRecord{262983e CREATE}:
intent={act=com.sogou.udp.push.IConfigRetriever cmp=com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService}
binder=android.os.BinderProxy@c51e69f
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{11dd3ec ProcessRecord{a82d438 3747:com.sohu.inputmethod.sogou/u0a83}}
Per-process Connections:
ConnectionRecord{65f54a6 u0 CR com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:@2be6e01}
All Connections:
ConnectionRecord{65f54a6 u0 CR com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:@2be6e01}
* ServiceRecord{530dacf u0 org.mokee.mkaudio.service/.MKAudioService}
intent={cmp=org.mokee.mkaudio.service/.MKAudioService}
packageName=org.mokee.mkaudio.service
processName=org.mokee.mkaudio.service
permission=mokee.permission.BIND_CORE_SERVICE
baseDir=/system/priv-app/MKAudioService/MKAudioService.apk
dataDir=/data/user_de/0/org.mokee.mkaudio.service
app=ProcessRecord{f3c178f 1046:org.mokee.mkaudio.service/u0a12}
createTime=-35m28s525ms startingBgTimeout=--
lastActivity=-35m28s496ms restartTime=-35m28s496ms createdFromFg=true
Bindings:
* IntentBindRecord{4cd53b5 CREATE}:
intent={cmp=org.mokee.mkaudio.service/.MKAudioService}
binder=android.os.BinderProxy@debfa4a
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{2f84dbb ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{58d63ad u0 CR org.mokee.mkaudio.service/.MKAudioService:@5c4c8c4}
All Connections:
ConnectionRecord{58d63ad u0 CR org.mokee.mkaudio.service/.MKAudioService:@5c4c8c4}
* ServiceRecord{9a08da3 u0 com.android.server.telecom/.components.BluetoothPhoneService}
intent={cmp=com.android.server.telecom/.components.BluetoothPhoneService}
packageName=com.android.server.telecom
processName=system
baseDir=/system/priv-app/Telecom/Telecom.apk
dataDir=/data/user_de/0/com.android.server.telecom
app=ProcessRecord{6645015 791:system/1000}
createTime=-35m27s919ms startingBgTimeout=--
lastActivity=-35m27s919ms restartTime=-35m27s919ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{6edaa94 u0 com.sohu.inputmethod.sogou/com.sogou.udp.push.SGPushMessageService}
intent={act=com.sogou.pushservice.action.bind.RECEIVE cmp=com.sohu.inputmethod.sogou/com.sogou.udp.push.SGPushMessageService}
packageName=com.sohu.inputmethod.sogou
processName=com.sohu.inputmethod.sogou:push_service
baseDir=/data/app/com.sohu.inputmethod.sogou-1/base.apk
dataDir=/data/user/0/com.sohu.inputmethod.sogou
app=ProcessRecord{ceba3c4 4158:com.sohu.inputmethod.sogou:push_service/u0a83}
createTime=-10m54s107ms startingBgTimeout=--
lastActivity=-10m54s107ms restartTime=-10m54s107ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{dbb8a7f u0 com.android.server.telecom/.components.TelecomService}
intent={act=com.android.ITelecomService cmp=com.android.server.telecom/.components.TelecomService}
packageName=com.android.server.telecom
processName=system
baseDir=/system/priv-app/Telecom/Telecom.apk
dataDir=/data/user_de/0/com.android.server.telecom
app=ProcessRecord{6645015 791:system/1000}
createTime=-35m29s139ms startingBgTimeout=--
lastActivity=-35m29s139ms restartTime=-35m29s139ms createdFromFg=true
Bindings:
* IntentBindRecord{50a42d8 CREATE}:
intent={act=com.android.ITelecomService cmp=com.android.server.telecom/.components.TelecomService}
binder=com.android.server.telecom.TelecomServiceImpl$1@cc7631
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{df77116 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{75edf9e u0 CR IMP FGS com.android.server.telecom/.components.TelecomService:@959e9d9}
All Connections:
ConnectionRecord{75edf9e u0 CR IMP FGS com.android.server.telecom/.components.TelecomService:@959e9d9}
* ServiceRecord{d674d6f u0 com.android.smspush/.WapPushManager}
intent={act=com.android.internal.telephony.IWapPushManager cmp=com.android.smspush/.WapPushManager}
packageName=com.android.smspush
processName=com.android.smspush
permission=com.android.smspush.WAPPUSH_MANAGER_BIND
baseDir=/system/app/WAPPushManager/WAPPushManager.apk
dataDir=/data/user/0/com.android.smspush
app=ProcessRecord{35dca1c 1684:com.android.smspush/u0a60}
createTime=-35m23s185ms startingBgTimeout=--
lastActivity=-35m23s126ms restartTime=-35m23s126ms createdFromFg=true
Bindings:
* IntentBindRecord{3d40a97 CREATE}:
intent={act=com.android.internal.telephony.IWapPushManager cmp=com.android.smspush/.WapPushManager}
binder=android.os.BinderProxy@44cb484
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{5c1446d ProcessRecord{52a1cf2 1091:com.android.phone/1001}}
Per-process Connections:
ConnectionRecord{185184e u0 CR com.android.smspush/.WapPushManager:@7a7d749}
ConnectionRecord{caf89c0 u0 CR com.android.smspush/.WapPushManager:@cec3f43}
All Connections:
ConnectionRecord{185184e u0 CR com.android.smspush/.WapPushManager:@7a7d749}
ConnectionRecord{caf89c0 u0 CR com.android.smspush/.WapPushManager:@cec3f43}
* ServiceRecord{f37320b u0 android/com.android.internal.backup.LocalTransportService}
intent={act=android.backup.TRANSPORT_HOST cmp=android/com.android.internal.backup.LocalTransportService}
packageName=android
processName=system
permission=android.permission.CONFIRM_FULL_BACKUP
baseDir=/system/framework/framework-res.apk
dataDir=null
app=ProcessRecord{6645015 791:system/1000}
createTime=-35m23s537ms startingBgTimeout=--
lastActivity=-35m23s537ms restartTime=-35m23s537ms createdFromFg=true
Bindings:
* IntentBindRecord{f7188a2 CREATE}:
intent={act=android.backup.TRANSPORT_HOST cmp=android/com.android.internal.backup.LocalTransportService}
binder=android.app.backup.BackupTransport$TransportImpl@b598630
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{a44b933 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{c217dda u0 CR android/com.android.internal.backup.LocalTransportService:@2bf6b85}
All Connections:
ConnectionRecord{c217dda u0 CR android/com.android.internal.backup.LocalTransportService:@2bf6b85}
* ServiceRecord{665db53 u0 org.mokee.weatherservice/.WeatherManagerService}
intent={cmp=org.mokee.weatherservice/.WeatherManagerService}
packageName=org.mokee.weatherservice
processName=org.mokee.weatherservice
permission=mokee.permission.BIND_CORE_SERVICE
baseDir=/system/priv-app/WeatherManagerService/WeatherManagerService.apk
dataDir=/data/user/0/org.mokee.weatherservice
app=ProcessRecord{2bc625 1563:org.mokee.weatherservice/u0a30}
createTime=-35m23s434ms startingBgTimeout=--
lastActivity=-35m23s267ms restartTime=-35m23s267ms createdFromFg=true
Bindings:
* IntentBindRecord{2294f0 CREATE}:
intent={cmp=org.mokee.weatherservice/.WeatherManagerService}
binder=android.os.BinderProxy@9baba69
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{f838cee ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{9241cea u0 CR org.mokee.weatherservice/.WeatherManagerService:@f5bdcd5}
All Connections:
ConnectionRecord{9241cea u0 CR org.mokee.weatherservice/.WeatherManagerService:@f5bdcd5}
* ServiceRecord{e443319 u0 com.android.location.fused/.FusedLocationService}
intent={act=com.android.location.service.FusedLocationProvider cmp=com.android.location.fused/.FusedLocationService}
packageName=com.android.location.fused
processName=system
permission=android.permission.WRITE_SECURE_SETTINGS
baseDir=/system/priv-app/FusedLocation/FusedLocation.apk
dataDir=/data/user_de/0/com.android.location.fused
app=ProcessRecord{6645015 791:system/1000}
createTime=-35m28s390ms startingBgTimeout=--
lastActivity=-35m28s390ms restartTime=-35m28s390ms createdFromFg=true
Bindings:
* IntentBindRecord{e07b58f CREATE}:
intent={act=com.android.location.service.FusedLocationProvider cmp=com.android.location.fused/.FusedLocationService}
binder=com.android.location.provider.LocationProviderBase$Service@e34101c
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{abb9425 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{358c260 u0 CR !FG !VIS com.android.location.fused/.FusedLocationService:@4a7663}
All Connections:
ConnectionRecord{358c260 u0 CR !FG !VIS com.android.location.fused/.FusedLocationService:@4a7663}
* ServiceRecord{85d606f u0 android/com.android.server.content.SyncJobService}
intent={cmp=android/com.android.server.content.SyncJobService}
packageName=android
processName=system
permission=android.permission.BIND_JOB_SERVICE
baseDir=/system/framework/framework-res.apk
dataDir=null
app=ProcessRecord{6645015 791:system/1000}
createTime=-35m28s213ms startingBgTimeout=--
lastActivity=-35m28s212ms restartTime=-35m28s212ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=true callStart=true lastStartId=1
* ServiceRecord{91ede65 u0 com.mokee.audiofx/.service.AudioFxService}
intent={cmp=com.mokee.audiofx/.service.AudioFxService}
packageName=com.mokee.audiofx
processName=com.mokee.audiofx
baseDir=/system/priv-app/AudioFX/AudioFX.apk
dataDir=/data/user/0/com.mokee.audiofx
app=ProcessRecord{ea0d3fa 1626:com.mokee.audiofx/u0a3}
createTime=-35m15s795ms startingBgTimeout=--
lastActivity=-35m15s794ms restartTime=-35m15s794ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{2351859 u0 com.android.email/.service.ImapService}
intent={cmp=com.android.email/.service.ImapService}
packageName=com.android.email
processName=com.android.email
permission=com.android.email.permission.ACCESS_PROVIDER
baseDir=/system/app/Email/Email.apk
dataDir=/data/user/0/com.android.email
app=ProcessRecord{7aba4ed 2090:com.android.email/u0a59}
createTime=-35m17s63ms startingBgTimeout=--
lastActivity=-34m29s610ms restartTime=-35m17s62ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
Bindings:
* IntentBindRecord{29f89fa CREATE}:
intent={cmp=com.android.email/.service.ImapService}
binder=android.os.BinderProxy@b541bab
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{4801208 ProcessRecord{7aba4ed 2090:com.android.email/u0a59}}
Per-process Connections:
ConnectionRecord{f14f4a0 u0 CR com.android.email/.service.ImapService:@3eb09a3}
All Connections:
ConnectionRecord{f14f4a0 u0 CR com.android.email/.service.ImapService:@3eb09a3}
* ServiceRecord{86c9dab u0 com.android.bluetooth/.map.BluetoothMapService}
intent={act=android.bluetooth.IBluetoothMap cmp=com.android.bluetooth/.map.BluetoothMapService}
packageName=com.android.bluetooth
processName=com.android.bluetooth
baseDir=/system/app/Bluetooth/Bluetooth.apk
dataDir=/data/user_de/0/com.android.bluetooth
app=null
createTime=-35m26s680ms startingBgTimeout=--
lastActivity=-35m26s680ms restartTime=-- createdFromFg=true
Bindings:
* IntentBindRecord{a364da1}:
intent={act=android.bluetooth.IBluetoothMap cmp=com.android.bluetooth/.map.BluetoothMapService}
binder=null
requested=false received=false hasBound=false doRebind=false
* Client AppBindRecord{4c4bc6 ProcessRecord{320a2da 928:com.android.systemui/u0a32}}
Per-process Connections:
ConnectionRecord{e60b332 u0 com.android.bluetooth/.map.BluetoothMapService:@83f3f3d}
All Connections:
ConnectionRecord{e60b332 u0 com.android.bluetooth/.map.BluetoothMapService:@83f3f3d}
* ServiceRecord{8356a28 u0 org.mokee.mkparts/cn.jpush.android.service.PushService}
intent={cmp=org.mokee.mkparts/cn.jpush.android.service.PushService}
packageName=org.mokee.mkparts
processName=org.mokee.mkparts
baseDir=/system/priv-app/MKParts/MKParts.apk
dataDir=/data/user_de/0/org.mokee.mkparts
app=ProcessRecord{894bfc5 2021:org.mokee.mkparts/1000}
createTime=-35m17s921ms startingBgTimeout=--
lastActivity=-35m17s874ms restartTime=-35m17s921ms createdFromFg=false
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=3
Bindings:
* IntentBindRecord{b6c787 CREATE}:
intent={cmp=org.mokee.mkparts/cn.jpush.android.service.PushService}
binder=android.os.BinderProxy@80846b4
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{44922dd ProcessRecord{894bfc5 2021:org.mokee.mkparts/1000}}
Per-process Connections:
ConnectionRecord{8e5404b u0 CR org.mokee.mkparts/cn.jpush.android.service.PushService:@121dd1a}
All Connections:
ConnectionRecord{8e5404b u0 CR org.mokee.mkparts/cn.jpush.android.service.PushService:@121dd1a}
* ServiceRecord{2be8709 u0 com.android.phone/.TelephonyDebugService}
intent={cmp=com.android.phone/.TelephonyDebugService}
packageName=com.android.phone
processName=com.android.phone
permission=android.permission.DUMP
baseDir=/system/priv-app/TeleService/TeleService.apk
dataDir=/data/user_de/0/com.android.phone
app=ProcessRecord{52a1cf2 1091:com.android.phone/1001}
createTime=-35m27s318ms startingBgTimeout=--
lastActivity=-35m27s318ms restartTime=-35m27s318ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1
* ServiceRecord{cb7b4e9 u0 android.ext.services/.notification.Ranker}
intent={act=android.service.notification.NotificationRankerService cmp=android.ext.services/.notification.Ranker}
packageName=android.ext.services
processName=android.ext.services
permission=android.permission.BIND_NOTIFICATION_RANKER_SERVICE
baseDir=/system/priv-app/ExtServices/ExtServices.apk
dataDir=/data/user_de/0/android.ext.services
app=ProcessRecord{b8b6c08 1465:android.ext.services/u0a8}
whitelistManager=true
createTime=-35m29s817ms startingBgTimeout=--
lastActivity=-35m23s640ms restartTime=-35m23s640ms createdFromFg=true
Bindings:
* IntentBindRecord{fb15e52 CREATE}:
intent={act=android.service.notification.NotificationRankerService cmp=android.ext.services/.notification.Ranker}
binder=android.os.BinderProxy@eae5523
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{a3d1a20 ProcessRecord{6645015 791:system/1000}}
Per-process Connections:
ConnectionRecord{277911b u0 CR FGS android.ext.services/.notification.Ranker:@e5aaf2a}
All Connections:
ConnectionRecord{277911b u0 CR FGS android.ext.services/.notification.Ranker:@e5aaf2a}
* ServiceRecord{b779fa1 u0 com.android.bluetooth/.pan.PanService}
intent={act=android.bluetooth.IBluetoothPan cmp=com.android.bluetooth/.pan.PanService}
packageName=com.android.bluetooth
processName=com.android.bluetooth
baseDir=/system/app/Bluetooth/Bluetooth.apk
dataDir=/data/user_de/0/com.android.bluetooth
app=null
createTime=-35m26s684ms startingBgTimeout=--
lastActivity=-35m26s684ms restartTime=-- createdFromFg=true
Bindings:
* IntentBindRecord{eba0fd9}:
intent={act=android.bluetooth.IBluetoothPan cmp=com.android.bluetooth/.pan.PanService}
binder=null
requested=false received=false hasBound=false doRebind=false
* Client AppBindRecord{e30d9e ProcessRecord{320a2da 928:com.android.systemui/u0a32}}
Per-process Connections:
ConnectionRecord{358b4e7 u0 com.android.bluetooth/.pan.PanService:@97612a6}
All Connections:
ConnectionRecord{358b4e7 u0 com.android.bluetooth/.pan.PanService:@97612a6}
Connection bindings to services:
* ConnectionRecord{358c260 u0 CR !FG !VIS com.android.location.fused/.FusedLocationService:@4a7663}
binding=AppBindRecord{abb9425 com.android.location.fused/.FusedLocationService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@4a7663 flags=0x40000005
* ConnectionRecord{7b002a u0 CR com.android.systemui/.keyguard.KeyguardService:@7f4515}
binding=AppBindRecord{8f5e4b7 com.android.systemui/.keyguard.KeyguardService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@7f4515 flags=0x1
* ConnectionRecord{86a52d0 u0 CR com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:@bf4293}
binding=AppBindRecord{1b052de com.tencent.mm/.plugin.appbrand.jsapi.nfc.hce.HCEService:com.android.nfc}
conn=android.os.BinderProxy@bf4293 flags=0x1
* ConnectionRecord{8e5404b u0 CR org.mokee.mkparts/cn.jpush.android.service.PushService:@121dd1a}
binding=AppBindRecord{44922dd org.mokee.mkparts/cn.jpush.android.service.PushService:org.mokee.mkparts}
conn=android.os.BinderProxy@121dd1a flags=0x1
* ConnectionRecord{7740166 u0 CR !FG UI !VIS com.sohu.inputmethod.sogou/.SogouIME:@13ad5c1}
binding=AppBindRecord{3912878 com.sohu.inputmethod.sogou/.SogouIME:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@13ad5c1 flags=0x60000005
* ConnectionRecord{65f54a6 u0 CR com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:@2be6e01}
binding=AppBindRecord{11dd3ec com.sohu.inputmethod.sogou/com.sogou.udp.push.PushService:com.sohu.inputmethod.sogou}
conn=android.os.BinderProxy@2be6e01 flags=0x1
* ConnectionRecord{c217dda u0 CR android/com.android.internal.backup.LocalTransportService:@2bf6b85}
binding=AppBindRecord{a44b933 android/com.android.internal.backup.LocalTransportService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@2bf6b85 flags=0x1
* ConnectionRecord{fe3dfcb u0 CR projekt.interfacer/.services.JobService:@3814a9a}
binding=AppBindRecord{e304142 projekt.interfacer/.services.JobService:projekt.substratum}
conn=android.os.BinderProxy@3814a9a flags=0x1
* ConnectionRecord{f14f4a0 u0 CR com.android.email/.service.ImapService:@3eb09a3}
binding=AppBindRecord{4801208 com.android.email/.service.ImapService:com.android.email}
conn=android.os.BinderProxy@3eb09a3 flags=0x1
* ConnectionRecord{80fac8e u0 CR android/.hardware.location.GeofenceHardwareService:@4ab1489}
binding=AppBindRecord{7eca0f9 android/.hardware.location.GeofenceHardwareService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@4ab1489 flags=0x1
* ConnectionRecord{2a05e8 u0 com.android.bluetooth/.hid.HidService:@51ff30b}
binding=AppBindRecord{afb0d63 com.android.bluetooth/.hid.HidService:com.android.systemui}
conn=android.os.BinderProxy@51ff30b flags=0x0
* ConnectionRecord{28efcf4 u0 CR FGS org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:@5696ec7}
binding=AppBindRecord{befc6d5 org.mokee.profiles/org.cyanogenmod.profiles.ProfilesTrustAgent:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@5696ec7 flags=0x4000001
* ConnectionRecord{58d63ad u0 CR org.mokee.mkaudio.service/.MKAudioService:@5c4c8c4}
binding=AppBindRecord{2f84dbb org.mokee.mkaudio.service/.MKAudioService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@5c4c8c4 flags=0x1
* ConnectionRecord{185184e u0 CR com.android.smspush/.WapPushManager:@7a7d749}
binding=AppBindRecord{5c1446d com.android.smspush/.WapPushManager:com.android.phone}
conn=android.os.BinderProxy@7a7d749 flags=0x1
* ConnectionRecord{a03eb03 u0 com.android.bluetooth/.a2dp.A2dpService:@7ea1fb2}
binding=AppBindRecord{59369a7 com.android.bluetooth/.a2dp.A2dpService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@7ea1fb2 flags=0x0
* ConnectionRecord{6af41e3 u0 CR com.tencent.mm/.service.ProcessService$MMProcessService:@8230612}
binding=AppBindRecord{5f7ef2 com.tencent.mm/.service.ProcessService$MMProcessService:com.tencent.mm}
conn=android.os.BinderProxy@8230612 flags=0x1
* ConnectionRecord{e60b332 u0 com.android.bluetooth/.map.BluetoothMapService:@83f3f3d}
binding=AppBindRecord{4c4bc6 com.android.bluetooth/.map.BluetoothMapService:com.android.systemui}
conn=android.os.BinderProxy@83f3f3d flags=0x0
* ConnectionRecord{75edf9e u0 CR IMP FGS com.android.server.telecom/.components.TelecomService:@959e9d9}
binding=AppBindRecord{df77116 com.android.server.telecom/.components.TelecomService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@959e9d9 flags=0x4000041
* ConnectionRecord{358b4e7 u0 com.android.bluetooth/.pan.PanService:@97612a6}
binding=AppBindRecord{e30d9e com.android.bluetooth/.pan.PanService:com.android.systemui}
conn=android.os.BinderProxy@97612a6 flags=0x0
* ConnectionRecord{310f22c u0 CR com.tencent.mm/.booter.CoreService:@a4195df}
binding=AppBindRecord{9185ac1 com.tencent.mm/.booter.CoreService:com.tencent.mm}
conn=android.os.BinderProxy@a4195df flags=0x1
* ConnectionRecord{939fde7 u0 CR FGS com.android.systemui/.doze.DozeService:@a5adfa6}
binding=AppBindRecord{ff403bc com.android.systemui/.doze.DozeService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@a5adfa6 flags=0x4000001
* ConnectionRecord{b7f3ffc u0 CR FGSA UI com.android.systemui/.ImageWallpaper:@a8438ef}
binding=AppBindRecord{c48c389 com.android.systemui/.ImageWallpaper:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@a8438ef flags=0x22000001
* ConnectionRecord{caf89c0 u0 CR com.android.smspush/.WapPushManager:@cec3f43}
binding=AppBindRecord{5c1446d com.android.smspush/.WapPushManager:com.android.phone}
conn=android.os.BinderProxy@cec3f43 flags=0x1
* ConnectionRecord{a908dbd u0 CR com.android.systemui/.keyguard.KeyguardService:@d311114}
binding=AppBindRecord{8f5e4b7 com.android.systemui/.keyguard.KeyguardService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@d311114 flags=0x1
* ConnectionRecord{277911b u0 CR FGS android.ext.services/.notification.Ranker:@e5aaf2a}
binding=AppBindRecord{a3d1a20 android.ext.services/.notification.Ranker:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@e5aaf2a flags=0x5000001
* ConnectionRecord{4659239 u0 com.android.bluetooth/.pbap.BluetoothPbapService:@ef5aa00}
binding=AppBindRecord{e28b69a com.android.bluetooth/.pbap.BluetoothPbapService:com.android.systemui}
conn=android.os.BinderProxy@ef5aa00 flags=0x0
* ConnectionRecord{9241cea u0 CR org.mokee.weatherservice/.WeatherManagerService:@f5bdcd5}
binding=AppBindRecord{f838cee org.mokee.weatherservice/.WeatherManagerService:system}
conn=android.app.LoadedApk$ServiceDispatcher$InnerConnection@f5bdcd5 flags=0x1
如果输出内容太多,只想关注运行的Activity结构层次其他的无所谓,可以使用grep命令来过滤
adb shell dumpsys activity | grep -i 'run'
Running activities (most recent first):
Run #0: ActivityRecord{d1e6b5a u0 org.mokee.lawnchair/ch.deletescape.lawnchair.Launcher t365}
ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)
User #0: state=RUNNING_UNLOCKED
获取cpu信息
adb shell dumpsys cpuinfo
获取内存信息
adb shell dumpsys meminfo
要获取具体应用的内存信息,可加上包名
adb shell dumpsys meminfo PACKAGE_NAME
获取当前界面的UI信息
adb shell dumpsys activity top
获取当前界面的Activity
adb shell dumpsys activity
adb shell dumpsys activity top
adb shell dumpsys activity top | findstr ACTIVITY
获取package信息
adb shell dumpsys package
获取某个包的信息
adb shell dumpsys package PACKAGE_NAME
获取通知信息
adb shell dumpsys notification
获取wifi信息
adb shell dumpsys wifi
获取电源管理信息
adb shell dumpsys power
获取电话信息
adb shell dumpsys telephony.registry
发送广播
adb shell am broadcast [options] <INTENT>
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
系统预定义广播及正常触发时机
强制停止应用
adb shell am force-stop <packagename>
查看APP有哪些进程
adb shell dumpsys activity p <packagename> | grep -i ='ProcessRecord' | grep -i 'PID'
查看APP使用了哪些服务
adb shell dumpsys activity s <package name> | grep -i 'ServiceRecord'
查看当前APP的内存使用情况
adb shell dumpsys meminfo <package name>
收紧内存
adb shell am send-trim-memory <pid> <level>
adb shell am send-trim-memory 342 RUNNING_LOW
表示向pid=342的进程,发出level=RUNNING_LOW的收紧内存命令
查看占用内存前6的app
adb shell top -m 6
查询各进程内存使用情况
adb shell procrank
查看当前内存占用
adb shell cat /proc/meminfo
查看IO内存分区
adb shell cat /proc/iomem
查看日志
Android系统的日志分为两部分,底层的Linux内核日志输出到/proc/kmsg,Android的日志输出到/dev/log
按级别过滤日志
Android的日志分为如下几个优先级(priority)
V——Verbose(最低,输出得最多)
D——Debug
I——Info
W——Warning
E——Error
F——Fatal
S——Silent(最高,啥也不输出)
adb logcat ActivityManager:I MyApp:D *:S
adb logcat -v long ActivityManager:I *:S
清空日志
adb logcat -c
内核日志
adb shell dmesg
屏幕分辨率
adb shell wm size
屏幕密度
adb shell wm density
显示屏参数
adb shell dumpsys window displays
恢复原分辨率
adb shell wm size reset
IP/Mac地址
adb shell ifconfig | grep Mask
adb shell cat /sys/class/net/wlan0/address
adb shell cat /proc/cpuinfo
adb shell cat /proc/meminfo
adb shell cat /system/build.prop
硬件与系统属性
adb shell getprop <属性名>
adb shell settings get secure android_id
adb shell dumpsys iphonesubinfo
getDeviceId
getDeviceIdForSubscriber
getImeiForSubscriber
getDeviceSvn
getSubscriberId
getSubscriberIdForSubscriber
getGroupIdLevel1
getGroupIdLevel1ForSubscriber
getIccSerialNumber
getIccSerialNumberForSubscriber
getLine1Number
getLine1NumberForSubscriber
getLine1AlphaTag
getLine1AlphaTagForSubscriber
getMsisdn
getMsisdnForSubscriber
getVoiceMailNumber
getVoiceMailNumberForSubscriber
getCompleteVoiceMailNumber
getCompleteVoiceMailNumberForSubscriber
getVoiceMailAlphaTag
getVoiceMailAlphaTagForSubscriber
getIsimImpi
getIsimDomain
getIsimImpu
getIsimIst
getIsimPcscf
getIsimChallengeResponse
getIccSimChallengeResponse
关闭USB调试模式
adb shell settings put global adb_enabled 0
允许/禁止访问非SDK API(不需要设备获得Root权限)
允许访问非SDK API
adb shell settings put global hidden_api_policy_pre_p_apps 1
adb shell settings put global hidden_api_policy_p_apps 1
禁止访问非SDK API
adb shell settings delete global hidden_api_policy_pre_p_apps
adb shell settings delete global hidden_api_policy_p_apps
重新挂载system分区为可写
adb root
adb remount
adb shell
mount -o rw,remount -t ext4 /
mount -o rw,remount -t ext4 /system
setenforce 0
mount -o remount,rw -t yaffs2 /dev/block/platform/msm_sdcc.1/by-name/system /system
查看连接过的WiFi密码
adb shell
su
cat /data/misc/wifi/*.conf
使用Monkey进行压力测试
Monkey可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试
adb shell monkey -p <packagename> -v 500
开启/关闭WiFi
adb root
adb shell svc wifi enable
adb root
adb shell svc wifi disable
重启到Recovery模式
adb reboot recovery
重启到Fastboot模式
adb reboot bootloader
启用/禁用SELinux
启用SELinux
adb root
adb shell setenforce 1
禁用SELinux
adb root
adb shell setenforce 0
查看进程
adb shell ps
查看实时资源占用情况
adb shell top
查看进程UID
两种方案
adb shell dumpsys package <packagename> | grep userId=
adb shell dumpsys package com.demo.cn | grep userId=
userId=10394
adb shell cat /proc/<pid>/status | grep Uid
adb shell
ps | grep com.demo.cn
u0_a394 28635 770 1795812 78736 SyS_epoll_ 0000000000 S com.demo.cn
cat /proc/28635/status | grep Uid
Uid: 10394 10394 10394 10394
速查 | ADB 用法大全
https://www.wanandroid.com/blog/show/2310
https://developer.android.com/studio/command-line/adb
https://github.com/mzlogin/awesome-adb
https://blog.csdn.net/zhangbijun1230/article/details/79740582
欢迎关注"哆啦安全"公众号和视频号,后续还有更多分享!
推荐阅读
Android系统中run-as和su命令的源码解析(升降权限)
Android系统定制之Android.mk和Android.bp语法详解(精通版)
关注、点赞、分享、转发
原文始发于微信公众号(哆啦安全):Android系统定制/测试(Crash/ANR等Bug/性能分析必备技巧)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论