安卓调试及抓log方法
抓log
-
logcat使用
Android对日志分为mian的日志、system的日志、event的日志,kernel的日志,Radio的日志:[adb] logcat [] … [] …
-b 指定要查看的日志缓冲区,可以是system,events ,radio,main。默认值是system和main
-c 清除屏幕上的日志.
-
抓取上层的日志:
adb logcat-b system -b main -b events -b radio –v time >1.txt
-
抓取crash
logcat crash
-
抓取system_server log
logcat main | grep system_server
-
SELinux权限问题
logcat | grep denied //查看被拒绝的服务
-
-
adb 使用
抓取kernel的日志:
adb shell cat /proc/kmsg > .\kmsg.log #读取log,但日志缓冲区读取的数据会不在被保留
dmesg #不刷新缓冲区读取log
cat /proc/kmsg | tee -i kmsg.log #抓kernel log 保存到kmsg.log同时显示
抓取ANR的日志:
adb pull /data/anr/traces.txt D:\anr\
adb shell logcat -v time -f /dev/kmsg |
adb shell cat /proc/kmsg | tee kernel_logcat.txt
关闭所有seneor
echo 0 > /persist/sensors/sensors_settings
- 只读文件系统解决
mount -o remount / 重新挂载根分区
mount -o remount, rw / 以读写的模式重新挂载 根分区
mount -o remount, nosuid / 以不含suid的模式重新挂载根分区
mount -o remount, system/ 重新挂载system分区
- 如果需要push文件,需要
adb remount
adb push ……
- 读取sensors info,上层通过uevent事件获取sensors信息
sns_regedit_ssi -r
getenvent event0
-
读取sensor信息
dumpsys sensorservice ,查看sensor使用情况
-
获取事件信息
getevent
-
重启systemserver
adb shell kill -9 system_server
-
SElinux权限
ps -Z
ls -Z
-
service manger列表
dumpsys -l
-
查询OOM_ADJ
dumpsys activity
-
查看ADJ
cat sys/module/lowmemorykiller/parameters/adj
cat sys/module/lowmemorykiller/parameters/minfree
-
内存使用情况
cat /proc/meminfo
-
虚拟内存查看
cat /proc/pid/smaps
-
DOZE
- 强制进入Doze模式
dumpsys deviceidle force-idle
- 启用Doze模式
dumpsys deviceidle enable
- 关闭Doze模式
dumpsys deviceidle disable
- 查看Doze模式白名单
dumpsys deviceidle whitelist
- 强制进入Doze模式
-
jobschdule
-
查看所有
adb shell dumpsys jobscheduler
-
挂后台log
logcat -b kernel -f /sdcard/kernel.log -n 1024 -r 5 &
logcat -b all -f /sdcard/all.log &
logcat -b
-
亮屏时间统计log
-
高通平台电源键按下是绑定在PMIC上
drivers/platform/msm/qpnp-power-on.c ..... qpnp_pon_input_dispatch(struct qpnp_pon *pon,u32 pon_type){ .... pr_debug("PMIC input: code=%d, sts=0x%hhx\n", cfg->key_code, pon_rt_sts); .... }
-
关键log
- PMIC input --> kernel log 电源键按下
- PowerManagerService: Waking up from sleep (uid 10020)… --> main log 框架唤醒
- DisplayPowerController: Blocking screen on until initial contents have been drawn. --> system log 绘制界面
- power_screen_broadcast_send: 1 --> events log 发送亮屏广播
- power_screen_broadcast_done: [1,206,1] --> events lof 亮屏广播发送完成
- mdss_dsi_panel_bklt_dcs: level=255 --> kernel log 背光点亮
-
-
sm命令
usage: sm list-disks [adoptable] sm list-volumes [public|private|emulated|all] sm has-adoptable sm get-primary-storage-uuid sm set-force-adoptable [on|off|default] sm set-virtual-disk [true|false] sm partition DISK [public|private|mixed] [ratio] sm mount VOLUME sm unmount VOLUME sm format VOLUME sm benchmark VOLUME sm idle-maint [run|abort] sm fstrim sm forget [UUID|all] sm set-emulate-fbe [true|false]