1. 如何打印 pr_debug的信息
adb root
adb remount
adb shell
echo 'file xxx.c +p' > /sys/kernel/debug/dynamic_debug/control
echo 'file xxx.c +p' > /sys/kernel/debug/dynamic_debug/control
stop logs4androidadb shell cat /proc/kmsg | tee kernel.txtadb root && adb remount && adb shell "echo 'file sprdfb_main.c +p' > /sys/kernel/debug/dynamic_debug/control"
&& adb shell stop slog && adb shell cat /proc/kmsg | tee 333.txt2.抓取framebufferadb shell gsnap /data/1.jpg /dev/graphics/fb0adb shell screencap -p /data/pic.png
3.log同时输出到conole与fileadb shell logcat | tee user.txtadb shell cat /proc/kmsg | tee kernel.txt4.关闭一个cpuxxxx上双核关闭一个,只跑cpu0echo 0 > sys/devices/system/cpu/cpu1/online5.android中某文件仅打印特定log#define LOG_TAG "xxxx"#define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, fmt, ##args)LOGI("display %d", aaa);6.property get调试方法1.代码中加上property_get("key", *value, *default_value)并一句get到的value值(返回值)进行处理2.用adb触发条件adb rootadb shell setprop "key" value7.开启hwc的logsudo adb shellsetprop debug.hwc.info 18.dumpsys SurfaceFlinger9.关闭light sleep
echo 0 > /sys/module/cpuidle_scx35/parameters/light_sleep_en
10. locat print all message
logcat -b all -v threadtime -v usec -v printable -D -f /data/zslogs/logcat/logcat -r 4096 -n 128
# -b all: print all
# -v threadtime: print current time
# -v usec: make sure the time unit is usec
# -v printable: not sure
# -D: 分离kernel与logcat来显示
# -f: save to file system
# -r: size to be saved of per file
# -n: number of files
10. 离线日志
on post-fs-data#zs_logcatd service ready to gomkdir /data/zslogs 0755 log logsetprop ro.zslogd.ready 1on property:ro.build.type=eng && property:ro.zslogd.ready=1setprop persist.zslogd.logcatd zs_logcatdsetprop persist.zslogd.battd zs_battd#setprop persist.zslogd.tcpdumpd zs_tcpdumpdon property:ro.build.type=userdebug && property:ro.zslogd.ready=1setprop persist.zslogd.logcatd zs_logcatdsetprop persist.zslogd.battd zs_battd#setprop persist.zslogd.tcpdumpd zs_tcpdumpdon property:persist.sys.zs.pm.beta=true && property:ro.zslogd.ready=1setprop persist.zslogd.logcatd zs_logcatdsetprop persist.zslogd.battd zs_battd#setprop persist.zslogd.tcpdumpd zs_tcpdumpdon property:persist.zslogd.logcatd=zs_logcatd# all exec/services are called with umask(077), so no gain beyond 0700mkdir /data/zslogs/logcat 0755 log logstart zs_logcatdon property:persist.zslogd.logcatd=0stop zs_logcatdservice zs_logcatd /system/bin/logcat -b all -v threadtime -v usec -v printable -D -f /data/zslogs/logcat/logcat -r 4096 -n 128class late_startuser loggroup logdisabledseclabel u:r:zs_logcatd:s0writepid /dev/cpuset/system-background/tasks
11. Android System Information and How to enable light/deep sleep
grover:/ # dumpsys deviceidle -h
dumpsys deviceidle -h
Device idle controller (deviceidle) commands:helpPrint this help text.step [light|deep]Immediately step to next state, without waiting for alarm.force-idle [light|deep]Force directly into idle mode, regardless of other device state.force-inactiveForce to be inactive, ready to freely step idle states.unforceResume normal functioning after force-idle or force-inactive.get [light|deep|force|screen|charging|network]Retrieve the current given state.disable [light|deep|all]Completely disable device idle mode.enable [light|deep|all]Re-enable device idle mode after it had previously been disabled.enabled [light|deep|all]Print 1 if device idle mode is currently enabled, else 0.whitelistPrint currently whitelisted apps.whitelist [package ...]Add (prefix with +) or remove (prefix with -) packages.tempwhitelistPrint packages that are temporarily whitelisted.tempwhitelist [-u] [package ..]Temporarily place packages in whitelist for 10 seconds.
grover:/ # dumpsys deviceidle enabled
dumpsys deviceidle enabled
0
grover:/ # dumpsys deviceidle enable all dumpsys deviceidle enable all Deep idle mode enabled
Light idle mode enable
grover:/ # dumpsys deviceidle enabled
dumpsys deviceidle enabled
1
grover:/ # dumpsys deviceidle whitelist
dumpsys deviceidle whitelist
system-excidle,com.android.providers.downloads,10010
system,com.android.providers.downloads,10010
grover:/ # PS D:\adb>
grover:/ # dumpsys deviceidle
dumpsys deviceidleSettings:light_after_inactive_to=+5m0s0mslight_pre_idle_to=+10m0s0mslight_idle_to=+5m0s0mslight_idle_factor=2.0light_max_idle_to=+15m0s0mslight_idle_maintenance_min_budget=+1m0s0mslight_idle_maintenance_max_budget=+5m0s0msmin_light_maintenance_time=+5s0msmin_deep_maintenance_time=+30s0msinactive_to=+15m0s0mssensing_to=+4m0s0mslocating_to=+30s0mslocation_accuracy=20.0mmotion_inactive_to=+10m0s0msidle_after_inactive_to=+15m0s0msidle_pending_to=+5m0s0msmax_idle_pending_to=+10m0s0msidle_pending_factor=2.0idle_to=+1h0m0s0msmax_idle_to=+6h0m0s0msidle_factor=2.0min_time_to_alarm=+1h0m0s0msmax_temp_app_whitelist_duration=+5m0s0msmms_temp_app_whitelist_duration=+1m0s0mssms_temp_app_whitelist_duration=+20s0msnotification_whitelist_duration=+30s0msWhitelist (except idle) system apps:com.android.providers.downloadsWhitelist system apps:com.android.providers.downloadsWhitelist (except idle) all app ids:10010Whitelist all app ids:10010mLightEnabled=false mDeepEnabled=falsemForceIdle=falsemMotionSensor={Sensor name="Significant Motion Detector", vendor="QTI", version=2, type=17, maxRange=1.0, resolution=1
.0, power=0.12998962, minDelay=-1}
mCurDisplay=Display id 0: DisplayInfo{"Built-in Screen", uniqueId "local:0", app 240 x 204, real 240 x 204, largest ap p 240 x 204, smallest app 204 x 168, mode 1, defaultMode 1, modes [{id=1, width=240, height=204, fps=-1.0E9}], colorTran sformId 1, defaultColorTransformId 1, supportedColorTransforms [{id=1, colorTransform=0}], hdrCapabilities android.view. Display$HdrCapabilities@61017e2, rotation 0, density 240 (160.421 x 161.925) dpi, layerStack 0, appVsyncOff 0, presDeadl ine 999999, type BUILT_IN, state DOZE_SUSPEND, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}, DisplayMetrics{density=1.5 , width=240, height=204, scaledDensity=1.5, xdpi=160.421, ydpi=161.925}, isValid=truemScreenOn=falsemNetworkConnected=falsemCharging=truemMotionActive=falsemNotMoving=falsemLocating=false mHasGps=false mHasNetwork=false mLocated=falsemState=ACTIVE mLightState=ACTIVEmInactiveTimeout=+15m0s0ms