用户按键操作,唤醒屏幕
S00B134 04-19 02:46:37.926 951 1128 D WindowManager: Receive Input KeyEvent of Powerkey down
S00B138 04-19 02:46:37.929 951 1128 D WindowManager: wake Up From Power Key
S00B139 04-19 02:46:37.929 951 1128 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER, opPackageName=android)...
S00B140 04-19 02:46:37.942 951 989 I WindowManager: Screen turning on...
S00B148 04-19 02:46:37.950 951 951 I WindowManager: Started waking up... (why=ON_BECAUSE_OF_USER)
S00B14D 04-19 02:46:37.954 951 973 I DisplayManagerService: Display device changed state: "内置屏幕", ON
S00B14E 04-19 02:46:37.954 951 973 I DisplayManagerService: Display device changed state: "HDMI 屏幕", ON
S00B188 04-19 02:46:38.163 951 1128 D WindowManager: Receive Input KeyEvent of Powerkey up
手动息屏
10-17 08:08:31.832 977 977 I PowerManagerService: Powering off display group due to power_button (groupId= 0, uid= 1000)...
10-17 08:08:31.833 977 977 I PowerManagerService: Going to sleep due to power_button (uid 1000)...
10-17 08:08:31.838 977 1559 I PowerManagerService: Sleeping display group (groupId=0, uid=1000)...
10-17 08:08:31.839 977 1559 I PowerManagerService: Sleeping (uid 1000)...
10-17 08:08:32.456 977 14980 D PowerManagerService: userActivityNoUpdateLocked: Scene not defined, event:0
手动亮屏
S00B1F0 04-19 02:46:38.400 951 971 I WindowManager: Finished screen turning on...
S00B1F7 04-19 02:46:38.403 951 951 I WindowManager: Finished waking up... (why=ON_BECAUSE_OF_USER)
10-17 08:10:57.052 977 1634 I PowerManagerService: Powering on display group fromAsleep (groupId=0, uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER, opPackageName=android)...
10-17 08:10:57.053 977 1634 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER)...
10-17 08:10:57.306 977 1559 W PowerManagerService: Screen on took 269 ms
超时息屏
S003488 04-19 02:30:05.979 951 1444 I PowerManagerService: Going to sleep due to timeout (uid 1000)...
S00348F 04-19 02:30:05.982 951 989 I PowerManagerService: Sleeping (uid 1000)...
电源键唤醒屏幕,亮屏
S003775 04-19 02:30:38.174 951 1128 D WindowManager: Receive Input KeyEvent of Powerkey down
S003779 04-19 02:30:38.178 951 1128 D WindowManager: wake Up From Power Key
S00377A 04-19 02:30:38.179 951 1128 I PowerManagerService: Waking up from Asleep (uid=1000, reason=WAKE_REASON_POWER_BUTTON, details=android.policy:POWER, opPackageName=android)...
S00377E 04-19 02:30:38.181 951 989 I WindowManager: Screen turning on...
S003782 04-19 02:30:38.187 951 1414 D WindowManager: mKeyguardDelegate.ShowListener.onDrawn.
S003784 04-19 02:30:38.191 951 951 I WindowManager: Started waking up... (why=ON_BECAUSE_OF_USER)
S003796 04-19 02:30:38.370 951 1128 D WindowManager: Receive Input KeyEvent of Powerkey up
S0037F9 04-19 02:30:38.953 951 973 I WindowManager: All windows ready for display!
S0037FA 04-19 02:30:38.954 951 971 W WindowManager: Setting mWindowManagerDrawComplete
S003800 04-19 02:30:38.957 951 971 D WindowManager: finishScreenTurningOn: mAwake=true, mScreenOnEarly=true, mScreenOnFully=false, mKeyguardDrawComplete=true, mWindowManagerDrawComplete=true
S003801 04-19 02:30:38.957 951 971 I WindowManager: Finished screen turning on...
S003807 04-19 02:30:38.959 951 989 W PowerManagerService: Screen on took 786 ms
S00380A 04-19 02:30:38.960 951 951 I WindowManager: Finished waking up... (why=ON_BECAUSE_OF_USER)
06-10 14:22:07.344 1097 1261 I intercept_power: [ACTION_DOWN,0,0]
06-10 14:22:07.529 1097 1261 I intercept_power: [ACTION_UP,0,0]
亮灭屏幕
灭屏
05-11 03:18:16.755 594 594 D SurfaceFlinger: Setting power mode 0 on display 0
05-11 03:18:16.966 594 594 D SurfaceFlinger: Finished setting power mode 0 on display 0
亮屏
05-11 03:19:21.892 594 594 D SurfaceFlinger: Setting power mode 2 on display 0
05-11 03:19:22.099 594 594 D SurfaceFlinger: Finished setting power mode 2 on display 0
屏幕一直处于灭屏的状态
04-30 05:17:56.993 1534 1534 D BatteryMeterDrawable: Screen is off, stop charging anim
M325A1D 09-13 05:47:21.897 1352 1352 D BatteryMeterDrawable: onReceive level=100,plugType=1,status=2
旋转屏幕
00F105 10-15 10:53:05.990 4250 4250 D ScreenRecord: orientation changed, now 0
10-12 16:02:04.308 1384 1384 D VendorServices: Orientation changed: mOrientation :1->2 //竖屏转横屏
10-12 16:02:08.726 1384 1384 D VendorServices: Orientation changed: mOrientation :2->1 //横屏转竖屏
关机
12-16 19:13:14.971 901 1151 D WindowManager: Receive Input KeyEvent of Powerkey down
12-16 19:13:15.752 901 14847 I WindowManager: Input focus has changed to Window{35d1770 u0 ActionsDialog}
12-16 19:13:15.758 901 925 D WindowManager: update input focus to Window{35d1770 u0 ActionsDialog} , run:true
12-16 19:13:17.171 901 1151 D WindowManager: Receive Input KeyEvent of Powerkey up
重启
12-16 19:13:51.541 898 922 I WindowManager: No existing display settings, starting empty
12-16 19:13:51.556 898 922 I WindowManager: init SprdWindowManagerService
12-16 19:13:51.633 898 920 I WindowManager: registerSprdIntentFilter
12-16 19:13:51.634 898 920 I WindowManager: updateQuickStepStatus mQuickStepEnabled=true
12-16 19:13:51.799 898 898 I WindowManager: SAFE MODE not enabled
12-16 19:13:51.822 898 898 I WindowManager: Override config changes=60007dfc {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port ?uimode ?night -touch -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.2} for displayId=0
12-16 19:13:51.837 898 898 I WindowManager: Override config changes=8 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port ?uimode ?night finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.4} for displayId=0
12-16 19:13:53.232 898 898 I WindowManager: Override config changes=200 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.6} for displayId=0
12-16 19:13:53.351 898 898 D WindowManager: updateHasNavBar mCurrentUserId = 0 ,mBootHasNavbar=false ,mNavBarOverlay = false
12-16 19:13:53.351 898 898 D WindowManager: initNavStatus user0 mNaviHided = false mDynamicNavigationBar = false
12-16 19:13:53.386 898 943 I WindowManager: Screen turning on...
12-16 19:13:54.267 898 898 I WindowManager: Override config changes=100 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.8} for displayId=0
12-16 19:13:56.483 898 914 I WindowManager: Override config changes=100 {1.0 ?mcc?mnc [en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/h winConfig={ mBounds=Rect(0, 0 - 720, 1280) mAppBounds=Rect(0, 0 - 720, 1280) mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0} s.10} for displayId=0
12-16 19:13:56.489 898 914 D WindowManager: update app focus from null to ActivityRecord{372e640 u0 com.android.settings/.FallbackHome t2}
12-16 19:13:56.928 898 922 I WindowManager: Started waking up... (why=ON_BECAUSE_OF_UNKNOWN)
12-16 19:13:56.929 898 922 I WindowManager: Finished waking up... (why=ON_BECAUSE_OF_UNKNOWN)
12-16 19:13:56.929 898 922 I WindowManager: Screen turning on...
12-16 19:13:58.250 898 1284 E WindowManager: Window Session Crash
12-16 19:13:58.250 898 1284 E WindowManager: java.lang.IllegalArgumentException: Requested window null does not exist
12-16 19:13:58.250 898 1284 E WindowManager: at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:5519)
12-16 19:13:58.250 898 1284 E WindowManager: at com.android.server.wm.Session.actionOnWallpaper(Session.java:356)
12-16 19:13:58.250 898 1284 E WindowManager: at com.android.server.wm.Session.setWallpaperZoomOut(Session.java:382)
12-16 19:13:58.250 898 1284 E WindowManager: at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:1194)
12-16 19:13:58.250 898 1284 E WindowManager: at com.android.server.wm.Session.onTransact(Session.java:139)
12-16 19:13:58.250 898 1284 E WindowManager: at android.os.Binder.execTransactInternal(Binder.java:1159)
12-16 19:13:58.250 898 1284 E WindowManager: at android.os.Binder.execTransact(Binder.java:1123)
12-16 19:13:58.550 898 1457 I WindowManager: Input focus has changed to Window{2e899d4 u0 NotificationShade}
12-16 19:13:58.551 898 923 D WindowManager: update input focus to Window{2e899d4 u0 NotificationShade} , run:true
12-16 19:13:58.712 898 1457 V WindowManager: Orientation start waiting for draw, mDrawState=DRAW_PENDING in Window{2e899d4 u0 NotificationShade}, surfaceController Surface(name=NotificationShade)/@0x3f60803
12-16 19:13:58.729 898 923 V WindowManager: Orientation start waiting for draw, mDrawState=DRAW_PENDING in Window{be05759 u0 com.android.systemui.ImageWallpaper}, surfaceController Surface(name=com.android.systemui.ImageWallpaper)/@0xb5105fe
12-16 19:13:58.775 898 1457 D WindowManager: mKeyguardDelegate.ShowListener.onDrawn.
12-16 19:13:58.776 898 920 W WindowManager: Setting mKeyguardDrawComplete
12-16 19:13:58.778 898 923 V WindowManager: Orientation start waiting for draw, mDrawState=DRAW_PENDING in Window{2e899d4 u0 NotificationShade}, surfaceController Surface(name=NotificationShade)/@0x3f60803
12-16 19:13:59.327 898 922 I WindowManager: All windows ready for display!
12-16 19:13:59.328 898 920 W WindowManager: Setting mWindowManagerDrawComplete
12-16 19:13:59.328 898 920 D WindowManager: finishScreenTurningOn: mAwake=true, mScreenOnEarly=true, mScreenOnFully=false, mKeyguardDrawComplete=true, mWindowManagerDrawComplete=true
12-16 19:13:59.412 898 922 I WindowManager: ******* TELLING SURFACE FLINGER WE ARE BOOTED!
电池高温关机时输出特定信息
测验证方案:根据ylog或者adb logcat -vthreadtime | grep -E " ShutdownThread: Shutdown" 查看对应log信息:
如下:
04-13 10:13:14.255 6934 6934 I ShutdownThread: Shutdown, mReboot: false reason: userrequested
mReboot:false 说明是走的关机
高温关机的reason有以下两种情况
(1)reason:thermal,battery :battery,threamal中都能触发
(2)reason:thermal :只有threamal能触发
点击recent键
02-08 14:15:13.530 1624 1624 D OverviewProxyRecentsImpl: toggleRecentApps
02-08 14:15:13.530 1624 1624 D OverviewProxyRecentsImpl: toggleRecentApps: device is unlocked
02-08 14:15:13.530 1624 1624 D OverviewProxyRecentsImpl: toggleRecentApps: notify launcher through proxy
锁屏
E4D7306 10-10 13:59:11.556 765 1474 I wm_set_keyguard_shown: [1,0,0,setKeyguardShown]
电源键 灭屏
S00C15B 10-09 15:22:33.609 1673 1828 D WindowManager: Receive Input KeyEvent of Powerkey down
S00C182 10-09 15:22:33.791 1673 1828 D WindowManager: Receive Input KeyEvent of Powerkey up
S007B40 04-19 02:39:01.320 951 971 D ActivityTaskManager: Top Process State changed to PROCESS_STATE_TOP_SLEEPING
点击Home键
WindowManager: startDockOrHome: startReason= startDockOrHome
UNISOC-LAUNCHER3: LauncherAppMonitor, onReceiveHomeIntent
点击Back键
10-28 07:44:59.451 847 5391 I ActivityTaskManager: moveTaskToBack: Task{92dd47c #160 type=standard A=1000:com.android.settings.root U=0 visible=true mode=fullscreen translucent=false sz=1}
M03BFBC 12-13 20:42:13.953 1557 1557 I KeyButtonView: Back button event: ACTION_DOWN
M03C100 12-13 20:42:14.052 1557 1557 I KeyButtonView: Back button event: ACTION_UP
更改投屏模式
WindowManager: change to mirror display cast mode //更改投屏模式为手机模式(同显)
WindowManager: change to default display cast mode //更改投屏模式为电脑模式(异显)
接入第二屏
Line 70852: S00F183 08-10 18:26:23.385 1128 1146 D WindowManager: external display start to observe cast_mode
Line 70853: S00F184 08-10 18:26:23.386 1128 1146 D WindowManager: external display type:2
拔掉第二屏/移除第二屏
S027A87 11-17 11:43:23.090 8236 8612 V WiredAccessoryManager: status HDMI=0
S027A88 11-17 11:43:23.090 8236 8612 V WiredAccessoryManager: mask 51 state 0
S027A89 11-17 11:43:23.091 8236 8612 V WiredAccessoryManager: newName=31890000.dptx newState=0 headsetState=0 prev headsetState=16
M027A8A 11-17 11:43:23.093 509 585 I SPRDHWComposer: Excessive delay in drm_blank(): 3ms, dpms_mode:3
M027A8B 11-17 11:43:23.093 509 585 D SPRDHWComposer: HWCDisplay::HandleHotPlugReport <193>: displayName = External Display
M027A8C 11-17 11:43:23.093 509 585 D SPRDHWComposer: HWCDisplay::HandleHotPlugReport <229>: plug-out displayId 0xb4000071c27950f0
//WiredAccessoryManager(有线辅助管理器)
M027A8E 11-17 11:43:23.094 8236 8612 I WiredAccessoryManager: MSG_NEW_DEVICE_STATE
S027A90 11-17 11:43:23.094 8236 8236 V WiredAccessoryManager: headsetName: disconnected
M027A96 11-17 11:43:23.098 8236 8236 I AS.AudioDeviceInventory: dropping ACTION_AUDIO_BECOMING_NOISY
S027A97 11-17 11:43:23.101 8236 8606 I AS.AudioDeviceInventory: handleDeviceConnection(false dev:400 address: name:)
S027A98 11-17 11:43:23.102 8236 8606 I AS.AudioDeviceInventory: deviceKey:0x400:
S027A99 11-17 11:43:23.102 8236 8606 I AS.AudioDeviceInventory: deviceInfo:[DeviceInfo: type:0x400 (hdmi) name: addr: codec: 0] is(already)Connected:true
M027A9A 11-17 11:43:23.102 8095 8608 I APM_AudioPolicyManager: setDeviceConnectionStateInt() device: 0x400, state 0, address name format 0x0
M027A9B 11-17 11:43:23.103 509 595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false
M027A9C 11-17 11:43:23.103 8094 8094 E HWC2 : destroyLayer(12970367415421063408, 12970367417300419840) failed: BadDisplay (2)
M027A9D 11-17 11:43:23.104 509 595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false
M027A9E 11-17 11:43:23.104 8094 8094 E HWC2 : destroyLayer(12970367415421063408, 12970367417300378640) failed: BadDisplay (2)
M027A9F 11-17 11:43:23.104 509 595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false
M027AA0 11-17 11:43:23.104 8094 8094 E HWC2 : destroyLayer(12970367415421063408, 12970367417300381936) failed: BadDisplay (2)
M027AA1 11-17 11:43:23.104 509 595 E SPRDHWComposer: HWCDisplay::destroy_layer <90>: mInit is false
M027AA2 11-17 11:43:23.105 8079 13672 I audio_hw_ext: ext_contrtol_process:disconnect=1024
M027AA3 11-17 11:43:23.105 8094 8094 E HWC2 : destroyLayer(12970367415421063408, 12970367417300386880) failed: BadDisplay (2)
M027AA4 11-17 11:43:23.105 8094 8094 E HWComposer: destroyLayer failed for display 1: Invalid display
M027AA5 11-17 11:43:23.106 8094 8094 E HWComposer: destroyLayer failed for display 1: Invalid display
M027AA6 11-17 11:43:23.106 8094 8094 E HWComposer: destroyLayer failed for display 1: Invalid display
M027AA7 11-17 11:43:23.106 8094 8094 E HWComposer: destroyLayer failed for display 1: Invalid display
S027AA8 11-17 11:43:23.106 8236 8346 D LocalDisplayAdapter: remove display mCurrentDisplayInfo =
S027AA9 11-17 11:43:23.107 8236 8346 I DisplayManagerService: Display device removed: DisplayDeviceInfo{"HDMI Screen": uniqueId="local:1", 1920 x 1080, modeId 4, defaultModeId 4, supportedModes [{id=3, width=640, height=480, fps=60.0}, {id=4, width=1920, height=1080, fps=60.0}], colorMode 0, supportedColorModes [0], HdrCapabilities HdrCapabilities{mSupportedHdrTypes=[2, 3, 4], mMaxLuminance=500.0, mMaxAverageLuminance=200.0, mMinLuminance=0.5}, allmSupported false, gameContentTypeSupported false, density 213, 320.0 x 320.0 dpi, appVsyncOff 1000000, presDeadline 16666667, touch EXTERNAL, rotation 0, type EXTERNAL, address {port=1}, deviceProductInfo null, state ON, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION}
S027AAA 11-17 11:43:23.111 8236 8344 D ActivityTaskManager: finishAllActivitiesImmediatelyLocked: finishing ActivityRecord{cd5eaa8 u0 com.android.launcher3/.secondarydisplay.SecondaryDisplayLauncher t8}
Wallpaper Native Crash
后台进程且内存紧张的时候,会触发Trim Memory 80,而应用侧有业务需要在后台时仍进行绘制。
Trim memory 80由AMS触发,通过WMS下发给MM-graphic层。而graphic层拿到此消息后,对该应用进程的绘制线程里将surface、context进行清除。而此时发起了绘制,在view
begin DRAWING后报出native crash异常
查看launcher的配置
源码环境下,无需编译版本,直接执行 lunch命令,选择board后,会出现下边的log。
可通过该log,查看launcher的配置。
以s9863a1h10_go_32b_Natv board为例,运行后的log如下,配置符合预期:
device/sprd/sharkl3/common/DeviceCommon.mk:782: warning: "common/DeviceCommon.mk: version type: gms"
device/sprd/sharkl3/common/LauncherCommon.mk:9: warning: "common/LauncherCommon.mk: config begin, PRODUCT_GO_DEVICE:true TARGET_BUILD_VERSION: CHIPRAM_DDR_1G_LIMITED:ture"
device/sprd/sharkl3/common/LauncherCommon.mk:37: warning: "common/LauncherCommon.mk: this is 512M Go devices, don't dexpreopt speed launcher."
device/sprd/sharkl3/common/LauncherCommon.mk:85: warning: "common/LauncherCommon.mk:config done, launcher package is: Launcher3QuickStepGo"
device/sprd/sharkl3/common/LauncherCommon.mk:86: warning: "common/LauncherCommon.mk:config done, launcher features is: ro.launcher.showmeminfo=true ro.launcher.showclearmem=true ro.launcher.anim.app.exit=true ro.launcher.anim.launchtask=true ro.launcher.label.fastupdate=true"
Launcher
//允许主屏幕旋转
11-24 17:44:49.598 1915 1915 D UNISOC-LAUNCHER3: LauncherAppMonitor, onSharedPreferenceChanged, key:pref_allowRotation
11-24 17:44:49.598 1915 1915 D UNISOC-LAUNCHER3: RotationHelper, notifyChange, activityFlags:-1 mLastActivityFlags:5
//取消允许主屏幕旋转
11-24 17:44:38.087 1915 1915 D UNISOC-LAUNCHER3: LauncherAppMonitor, onSharedPreferenceChanged, key:pref_allowRotation
11-24 17:44:38.088 1915 1915 D UNISOC-LAUNCHER3: RotationHelper, notifyChange, activityFlags:5 mLastActivityFlags:-1
//从workspace上滑进入到allapps
11-24 23:25:03.310 12877 12877 D UNISOC-LAUNCHER3: ASCTouchController, onDragStart,state change with anim: Normal -> AllApps
Android Event log常用tag说明
screen_toggled:屏幕电源状态信息
其中 0 表示屏幕关闭,1 表示屏幕打开。
11-30 16:35:06.332 1145 1145 I screen_toggled: 1
11-30 16:35:16.734 1145 1145 I screen_toggled: 0
状态栏
状态栏没有下拉:
04-27 15:20:57.639 1098 6137 I notification_panel_hidden:
下拉状态栏完全展开:
04-27 15:21:45.970 1098 11208 I notification_panel_revealed: 5
系统发生重启
系统发生重启,通过查看lastlog中的kernel.log可以了解相关的重启原因
kernel.log中查看reboot的原因
录屏log
12-07 05:16:18.292 1091 2829 I ActivityTaskManager: START u0 {flg=0x10000000 cmp=com.android.systemui/.screenrecord.ScreenRecordDialog} from uid 10133, pid 1333
Line 194341: E040771 12-13 20:42:43.585 1166 7784 I am_create_service: [0,200009692,.RecordingService,10136,1557]
Line 194343: M040773 12-13 20:42:43.597 1557 1557 D RecordingService: registerContentObserver
Line 194344: M040774 12-13 20:42:43.600 1557 1557 D RecordingService: onStartCommand com.android.systemui.screenrecord.START
Line 194345: M040775 12-13 20:42:43.601 1557 1557 D RecordingService: recording with audio sourceNONE
Line 206021: M043411 12-13 20:43:07.585 1557 1557 D RecordingService: Screen Off, Stopping Recording.
Line 206022: M043412 12-13 20:43:07.585 1557 1557 D RecordingService: onStartCommand com.android.systemui.screenrecord.STOP
Line 206023: M043413 12-13 20:43:07.585 1557 1557 D RecordingService: notifying for user 0
Line 206146: M04348D 12-13 20:43:07.649 1557 19528 D RecordingService: saving recording
壁纸
//弹出设置壁纸对话框
M039FB3 12-13 20:42:07.427 19031 19031 E Dialog : show dialog view = DecorView@3fd2284[PreviewActivity]
//弹出壁纸加载对话框
M039FF7 12-13 20:42:08.263 19031 19031 E Dialog : show dialog view = DecorView@85ca9bd[PreviewActivity]
//销毁设置壁纸对话框
M03A005 12-13 20:42:08.351 19031 19031 E Dialog : remove dialog view = DecorView@3fd2284[PreviewActivity]
//销毁壁纸加载对话框
M03B57C 12-13 20:42:12.357 19031 19031 E Dialog : remove dialog view = DecorView@85ca9bd[PreviewActivity]
当前处于壁纸应用的首页
CustomizationPickerActivity/CustomizationPickerFragment
M03D294 12-16 16:32:41.226 18152 18152 D CustomizationPickerFragment: Section is not available: com.android.customization.model.themedicon.ThemedIconSectionController@4fd65cd
预加载完成 进入壁纸应用/进入到GridFragment界面
M03D8FA 12-16 16:32:45.290 4084 4128 D ModelPreload: Preload completed : true
点击4*4按钮,跳转到GridFragment界面
10-17 07:17:25.578 6104 6104 W RecyclerView: No adapter attached; skipping layout
屏幕分辨率
M01C847 12-17 16:44:21.078 7543 7543 D SuperResolutionSettings: resolution index = 0 width = 1080 height = 2400 name = FHD+
M01C848 12-17 16:44:21.079 7543 7543 D SuperResolutionSettings: resolution index = 1 width = 720 height = 1600 name = HD+
M01C853 12-17 16:44:21.106 7543 7543 D SuperResolutionSettings: lasted pref mode = 0
M01C854 12-17 16:44:21.107 7543 7543 D SuperResolutionSettings: current pref mode = 0
M01C8B4 12-17 16:44:21.772 7543 7543 D SuperResolutionSettings: onPreferenceTreeClick pref = HD+ 720 × 1600 key = 1
Settings Log
M014222 12-13 20:36:08.339 14258 14258 D SettingsActivity: Switching to fragment com.android.settings.deviceinfo.StorageDashboardFragment
M014223 12-13 20:36:08.339 14258 14258 D SubSettings: Launching fragment com.android.settings.deviceinfo.StorageDashboardFragment
点击了一下锁屏界面
pointerCount 0 -> 1 pointerCount 1 -> 0
12-07 06:14:57.981 1091 1195 D InputReader: syncTouch: pointerCount 0 -> 1, touching ids 0x00000000 -> 0x80000000, hovering ids 0x00000000 -> 0x00000000, canceled ids 0x00000000
12-07 06:14:57.982 1091 1195 D InputReader: dispatchTouches action DOWN now(ns): 11541171341014
12-07 06:14:57.982 1091 1195 D InputReader: notifyMotion call dispatcher
12-07 06:14:58.072 1091 1195 I InputReader: processEventsLocked: type=3 Count=3 code=57 value=-1 deviceId=4 when=11541261574000
12-07 06:14:58.073 1091 1195 D InputReader: syncTouch: pointerCount 1 -> 0, touching ids 0x80000000 -> 0x00000000, hovering ids 0x00000000 -> 0x00000000, canceled ids 0x00000000
12-07 06:14:58.073 1091 1195 D InputReader: dispatchTouches action UP now(ns): 11541262272399
12-07 06:14:58.073 1091 1195 D InputReader: notifyMotion call dispatcher
12-07 06:15:08.193 1091 1195 I InputReader: Reconfiguring input devices, changes=DISPLAY_INFO |
12-07 06:15:08.193 1091 1195 I InputReader: Disabling adaptive_ts (device 4) because the associated viewport is not active
之后就滑动锁屏界面,会出现大量的syncTouch: pointerCount 1 -> 1
InputReader: syncTouch: pointerCount 0 -> 1 syncTouch: pointerCount 1 -> 1 syncTouch: pointerCount 0 -> 1
进入到主屏幕设置,打开“通知圆点中显示数目”
UNISOC-LAUNCHER3: LauncherAppMonitor, onSharedPreferenceChanged, key:pref_notification_dots_ext
//Launcher切换桌面模式
12-31 08:37:17.417 2055 2129 D UNISOC-LAUNCHER3: Change Launcher style, restarting launcher
12-31 08:37:17.498 2055 2129 I droid.launcher: System.exit called, status: 0
12-31 08:37:17.498 2055 2129 I AndroidRuntime: VM exiting with result code 0, cleanup skipped.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | AI | AJ | AK | AL | AM | AN | AO | AP | AQ | AR | AS | AT | AU | AV | AW | AX | AY | AZ | BA | BB | BC | BD | BE | BF | BG | BH | BI | BJ | BK | BL | BM | BN | BO | BP | BQ |
second | cpu-cpu_percent[0] | cpu-iowtime[1] | cpu-cpu_frequency[2] | cpu-null[3] | cpu-null[4] | cpu-null[5] | cpu0-cpu_percent[0] | cpu0-iowtime[1] | cpu0-cpu_frequency[2] | cpu0-null[3] | cpu0-null[4] | cpu0-null[5] | cpu1-cpu_percent[0] | cpu1-iowtime[1] | cpu1-cpu_frequency[2] | cpu1-null[3] | cpu1-null[4] | cpu1-null[5] | cpu2-cpu_percent[0] | cpu2-iowtime[1] | cpu2-cpu_frequency[2] | cpu2-null[3] | cpu2-null[4] | cpu2-null[5] | cpu3-cpu_percent[0] | cpu3-iowtime[1] | cpu3-cpu_frequency[2] | cpu3-null[3] | cpu3-null[4] | cpu3-null[5] | cpu4-cpu_percent[0] | cpu4-iowtime[1] | cpu4-cpu_frequency[2] | cpu4-null[3] | cpu4-null[4] | cpu4-null[5] | cpu5-cpu_percent[0] | cpu5-iowtime[1] | cpu5-cpu_frequency[2] | cpu5-null[3] | cpu5-null[4] | cpu5-null[5] | cpu6-cpu_percent[0] | cpu6-iowtime[1] | cpu6-cpu_frequency[2] | cpu6-null[3] | cpu6-null[4] | cpu6-null[5] | cpu7-cpu_percent[0] | cpu7-iowtime[1] | cpu7-cpu_frequency[2] | cpu7-null[3] | cpu7-null[4] | cpu7-null[5] | irqs | ctxt | processes | procs_running | procs_blocked | totalram | freeram | cached | Reserve01 | Reserve02 | Reserve03 | Reserve04 | Reserve05 | Reserve06 |
//重启notificationlistener服务,用于通知圆点服务
S130C67 01-13 04:35:58.055 985 1557 W ActivityManager: Scheduling restart of crashed service com.android.launcher3/.notification.NotificationListener in 64000ms for connection
E130C68 01-13 04:35:58.055 985 1557 I am_schedule_service_restart: [0,com.android.launcher3/.notification.NotificationListener,64000]
切换桌面模式,会移除之前的NotificationListener,连接新的NotificationListener
S130C3A 01-13 04:35:58.032 985 1912 D NotificationListeners: Removing active service ComponentInfo{com.android.launcher3/com.android.launcher3.notification.NotificationListener}
S130C45 01-13 04:35:58.034 985 985 V NotificationListeners: 0 notification listener connection lost: ComponentInfo{com.android.launcher3/com.android.launcher3.notification.NotificationListener}
S130F08 01-13 04:35:58.613 985 985 V NotificationListeners: 0 notification listener service connected: ComponentInfo{com.android.launcher3/com.android.launcher3.notification.NotificationListener}
冻屏
- 冻结输入事件
- 强制结束App动画
- 截取当前屏幕并显示
logcat events中有大量的dvm_lock_sample信息。
dvm_lock_sample: [com.banyac.midrive.map,1,main,98,ReportUtil.java,119,-,189,19]
进程名,主线程?线程名,锁等待时间,下个持有者文件名,行号,上个持有者文件名,行号,等待百分比
E01A706 01-19 10:36:07.613 4265 4440 I dvm_lock_sample: [com.android.wallpaper,0,pool-5-thread-1,24991,ActivityThread.java,7066,android.content.IContentProvider android.app.ActivityThread.acquireProvider(android.content.Context, java.lang.String, int, boolean),-,7081,android.content.IContentProvider
打印此LOG时,线程即将持有锁。
上一个持有者文件名为“-”时,表示与下个持有者在同一个文件中
发生锁等待时这个LOG有概率打印,等待百分比越大,概率越大。具体请看代码。
开机log关键字
boot_progress_start | 系统进入用户空间,kernel启动完成 |
boot_progress_preload_start | Zygote启动 |
boot_progress_preload_end | Zygote结束 |
boot_progress_system_run | SystemServer ready,开始启动Android系统服务,如PMS,APMS等 |
boot_progress_pms_start | PMS开始扫描安装的应用 |
boot_progress_pms_system_scan_start | PMS先行扫描/system目录下的安装包 |
boot_progress_pms_data_scan_start | PMS扫描/data目录下的安装包 |
boot_progress_pms_scan_end | PMS扫描结束 |
boot_progress_pms_ready | PMS就绪 |
boot_progress_ams_ready | AMS就绪 |
boot_progress_enable_screen | AMS启动完成后开始激活屏幕,从此以后屏幕才能响应用户的触摸,它在WindowManagerService发出退出开机动画的时间节点之前,而真正退出开机动画还会花费少许时间,具体依赖animation zip 包中的desc.txt。wm_boot_animation_done才是用户感知到的动画结束时间节点 |
sf_stop_bootanim | SF设置service.bootanim.exit属性值为1,标志系统要结束开机动画了,可以用来跟踪开机动画结尾部分消耗的时间 |
wm_boot_animation_done | 开机动画结束 |
开机向导页面
mResumedActivity: ActivityRecord{6531e2a u0 com.google.android.setupwizard/.user.WelcomeActivity t8}
monkey开始得时间
data/local/tmp/tmp/monkey/monkey.log
测试中连接上wifi,自动校准时间:
M349307 11-14 16:35:31.558 15249 15249 D WifiSignalController: connected : true, level : 4, isDefault : true, inetCondition : 0, statusLabel : No internet
am_resume_activity
如昨日沟通,am_resume_activity:是server端调度发起的时间点,client端也就是你们的InCallActivity所在的应用10s之后才真正反馈执行resume成功,我们昨日看了下InCallActivity主线比较繁忙,请确认下你们的主线是否耗时,堵塞正常的生命周期调度,感谢!
am_restart_activity
如下log的打印说明AMS已经通知App进程执行SecureCameraActivity的launch流程(即该Activity的onCreate->onStart->onResume等)的执行,App主线程为何没有及时执行该流程,还请App同事确认主线程运行状态,感谢!
events.log:960: 00E457 12-28 12:37:24.181 720 3873 I am_restart_activity: [0,217467491,28,com.android.camera2/com.android.camera.SecureCameraActivity]
Native MMI
//开始进入factorytest流程
M0003E5 12-07 16:49:58.303 474 474 D sprd_fts:: ==== factory test start ====
//打开drm框架
M0007E9 12-07 16:49:58.672 474 474 D FACTORY : gr_init: gr_init open_drm!
//drm_init
M0007ED 12-07 16:49:58.672 474 474 D FACTORY : drm_init: drm_init dev_name=/dev/dri/card0,ret=14
M0007EE 12-07 16:49:58.672 474 474 D FACTORY : drm_init: drm_init dev_name=/dev/dri/card0,pdata->drm_fd=5
M000800 12-07 16:49:58.726 474 474 D sprd_fts:: mmitest lcd_size=1080*2160
M000801 12-07 16:49:58.726 474 474 D sprd_fts:: mmitest max_rows=25,max_items=14
//打开/dev/input节点正常
M000EA4 12-07 16:50:01.727 474 474 E FACTORY : ev_init: touchevent ev_init scucess[25][Inappropriate ioctl for device][43]
//表示PCBA.conf文件中,解析到当前行为空行。
M000EA6 12-07 16:50:01.727 474 474 D FACTORY : parse_config: can't check line =
.0.0.0
//进入到按键测试
M001436 12-07 16:50:10.144 474 474 D sprd_fts:: enter function:- 按键
camera流程分析
//进入流程
M0003E5 12-07 17:02:02.276 476 476 D sprd_fts:: ==== factory test start ====
M000713 12-07 17:02:02.505 476 476 D sprd_fts:: mmitest ui_init!!
//root menu下选择第四项
M001768 12-07 17:02:45.717 476 476 D sprd_fts:: the pressed key = 4
M001769 12-07 17:02:45.717 476 476 D sprd_fts:: press item No = 4
M00176A 12-07 17:02:45.717 476 476 D sprd_fts:: mmitest TOUCH SELECT_ITEM
//进入phone test menu界面
M00177D 12-07 17:02:45.918 476 476 D sprd_fts:: set menu function
M00177E 12-07 17:02:45.918 476 476 D sprd_fts:: PHONE_TEST_MENU: item_total = 27, page_total = 2
M00177F 12-07 17:02:45.918 476 476 D sprd_fts:: show phone test menu
//phone test menu界面点击第七项
M0017BC 12-07 17:02:48.011 476 476 D FACTORY : gr_flip: gr_flip gr_draw->data len: 3, 516 IN
M0017C0 12-07 17:02:48.180 476 476 D sprd_fts:: the pressed key = 7
M0017C1 12-07 17:02:48.180 476 476 D sprd_fts:: press item No = 7
M0017C2 12-07 17:02:48.180 476 476 D sprd_fts:: mmitest TOUCH SELECT_ITEM
//跳转到前置摄像头测试项
M0017D6 12-07 17:02:48.365 476 476 D sprd_fts:: enter function:- 前置摄像头
M0017D7 12-07 17:02:48.365 476 476 D FACTORY : chnl_is_support: AT+CAMERATEST is not supported
M0017D8 12-07 17:02:48.365 476 476 D FACTORY : test_fcamera_start_common: enter front camera test, cameraID= 1
//加载SO库
M0017DA 12-07 17:02:48.370 476 476 D FACTORY : camera_test_init: camera lib:/vendor/lib/hw/camera.ums512.so
M0017F4 12-07 17:02:48.638 476 476 I Cam3Factory: 69, SprdCamera3Factory: boot_mode = factorytest
M001CEF 12-07 17:02:51.171 476 476 D FACTORY : test_camera_start_comm: camera id:1, preview size:(720,960)
SensorHub相关log
pocket mode虚拟sensor所使用的物理sensor为acc,light,proximity,触发条件是手机不在水平位置,psensor处于遮挡状态,且光感值<3.
//注册监听Pocket mode
M02D7C3 10-09 16:35:53.799 4304 4304 D SensorManager: registerListenerImpl sensor = {Sensor name="Pocket mode", vendor="Sprd Group Ltd.", version=1, type=65538, maxRange=10.0, resolution=1.0, power=0.17, minDelay=0}, delayUs = 200000, latencyUs = 0, listener = com.android.server.wifi.scanner.WifiScanningServiceImpl$WifiSensorEventListener@5a4a589
M02D7C7 10-09 16:35:53.801 4304 4304 I WifiScanningService: onChange() mPocketModeSwitch = 1
M02D7C9 10-09 16:35:53.805 4304 4304 I WifiScanningService: handlePocketModeChanged() eventValue = 0 mPocketModeSwitch = 1 mInPocketMode = false
M02D9FA 10-09 16:36:49.983 4304 4304 I WifiScanningService: handlePocketModeChanged() eventValue = 1 mPocketModeSwitch = 1 mInPocketMode = true //传感器收到启动口袋模式event
M02D9FB 10-09 16:36:49.983 4304 4324 D PocketEventListener: PocketEventListener onPocketChanged event = 1.0 口袋模式(被遮挡 + 晃动)触发会上报1
S02D9FC 10-09 16:36:49.983 4304 4324 D DisableTouchModeFunc: onStartPocketMode //启动口袋模式
M02DD10 10-09 16:36:54.888 4304 4511 I WifiScanningService: Current mode is PocketMode
M02EDC8 10-09 16:37:14.889 4304 4511 I WifiScanningService: Current mode is PocketMode
M031099 10-09 16:37:34.889 4304 4511 I WifiScanningService: Current mode is PocketMode
M03324D 10-09 16:37:54.889 4304 4511 I WifiScanningService: Current mode is PocketMode
M034C74 10-09 16:38:14.892 4304 4511 I WifiScanningService: Current mode is PocketMode
M0364EC 10-09 16:38:35.056 4304 4511 I WifiScanningService: Current mode is PocketMode
M037AC2 10-09 16:38:55.059 4304 4511 I WifiScanningService: Current mode is PocketMode
M039BCF 10-09 16:39:15.064 4304 4511 I WifiScanningService: Current mode is PocketMode
M03B246 10-09 16:39:35.066 4304 4511 I WifiScanningService: Current mode is PocketMode
M03CD89 10-09 16:39:55.067 4304 4511 I WifiScanningService: Current mode is PocketMode
M03CDB5 10-09 16:39:56.493 4304 4324 D PocketEventListener: PocketEventListener onPocketChanged event = 0.0 解除会上报0
M03CDB7 10-09 16:39:56.493 4304 4304 I WifiScanningService: handlePocketModeChanged() eventValue = 0 mPocketModeSwitch = 1 mInPocketMode = false //传感器收到口袋模式退出的event
S03CDB9 10-09 16:39:56.494 4304 4324 D DisableTouchModeFunc: onStopPocketMode //停止口袋模式
提到的log是 Android11之后google的log。
另外Android10 和Android11及其之后的口袋模式方案不同。
Android 10的判断口袋模式下scan是不是被关闭的方式有两种:
1、就是Comment1 提到的 log输出:
10-09 16:37:14.889 4304 4511 I WifiScanningService: Current mode is PocketMode
这个log的打印出来就说明的scan不会再下发了。
2、再或者去kernel log里看看。测试这个时段有没有WIFI_CMD_SCAN字符串。
目前这份log上述两个特征随便哪个都符合。所以是起作用的。
M01B8E7 11-26 08:35:34.173 466 990 D SensorHub: SPRD[379]setEnable::handle[58], enabled[1] //打开距感
M01B927 11-26 08:35:34.307 466 466 D SensorHub: data: 5.000000, 0.000000, 19.000000, -nan, 0.000000, 0.000000 timestamp:582982000000 //上报远离
M01BC89 11-26 08:36:00.934 466 466 D SensorHub: data: 0.000000, 0.000000, 857.000000, -nan, 0.000000, 0.000000 timestamp:609607000000 //上报靠近,
M01C104 11-26 08:36:09.043 466 990 D SensorHub: SPRD[379]setEnable::handle[58], enabled[0]//关闭距感
11640.756:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 1835 th_h 2318,th_l 2214, cali_data_status=0
11725.650:SENSORHUB: proximity_sensor_procces_raw_data: Value=2042, th=2318, tl=2214, prox_status=5.000000
11749.976:SENSORHUB: proximity_sensor_procces_raw_data: Value=2361, th=2318, tl=2214, prox_status=0.000000
cali_data_status=0,表示未校准,而实际这台机器做过校准,说明这台机器之前在使用过程由于底噪与校准时相比,发生了大幅度变化,程序调用动态校准,重新计算了高低门限(2318和2214),舍弃了工厂校准系数(1828和1820),所以现在实际接近和远离距离与校准的3cm/5cm距离不一样
若确定eProxCaliArray中的静态校准参数配置合理,可以使用动态加载,添加校准算法来规避
stk3a5x测试机log\ap\000-0315_142509--0315_142948
10462.491:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 925 th_h 1452,th_l 1154, cali_data_status=2
10492.316:SENSORHUB: proximity_sensor_procces_raw_data: Value=1143, th=1452, tl=1154, prox_status=5.000000
10499.601:SENSORHUB: proximity_sensor_procces_raw_data: Value=1554, th=1452, tl=1154, prox_status=0.000000
cali_data_status=2,表示工厂手动校准,高低门限还是工厂校准时值
》第一次打开psensor
258.652:SENSORHUB: proximity_sensor_enable: enable sensor successed!
258.652:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 0
258.653:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 0
258.653:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 0
258.653:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 0 th_h 483,th_l 379, cali_data_status=0
258.677:SENSORHUB: proximity_sensor_procces_raw_data: Value=0, th=483, tl=379, prox_status=5.000000
258.778:SENSORHUB: proximity_sensor_procces_raw_data: Value=2433, th=483, tl=379, prox_status=0.000000
从log看,第一次打开psensor出现raw data为0,动态校准计算的高低门限分别为th_h 483,th_l 379,等数据稳定后,底噪在2000多,当前阈值明显不合理。
》第二次打开psensor
290.384:SENSORHUB: proximity_sensor_enable: enable sensor successed!
290.384:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 2397
290.385:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 2397
290.385:SENSORHUB: proximity_sensor_dynamic_cali: proximity_sensor_get_raw_data = 2397
290.385:SENSORHUB: proximity_sensor_dynamic_cali: Dynamic Cali noise 2397 th_h 2880,th_l 2776, cali_data_status=0
第二次打开psensor,数据基本稳定,动态校准算法计算的高低门限也合理,所以之后功能正常
请问贵司这颗sensor有配置eCmdGetStatusArray吗?若没配置,请配置上;若配置上后,依然有该问题,可以在setrate数组中设置丢帧,如:
static struct iic_unit eCmdSetRateArray[] = {
……
//在数组最后配置,丢4笔数据,延迟50ms
{
.operate = 0x04, .addr = 0x00, .val = 0x04, .mask = 0x32,
},
};
Line 4376: 01117 <6> [ 11.062692][03-31 15:59:55.062] sprd-sensor sprd-sensorhub: sensor_id=8 file_path=/mnt/vendor/productinfo/sensor_calibration_data/proximity
Line 4377: 01118 <6> [ 11.062800][03-31 15:59:55.062] sprd-sensor sprd-sensorhub: cal_file_size=30
Line 4378: 01119 <6> [ 11.063183][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[0]=0
Line 4379: 0111A <6> [ 11.063191][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[1]=0
Line 4380: 0111B <6> [ 11.063198][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[2]=0
Line 4381: 0111C <6> [ 11.063204][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[3]=0
Line 4382: 0111D <6> [ 11.063214][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[4]=170
Line 4383: 0111E <6> [ 11.063220][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[5]=8
Line 4384: 0111F <6> [ 11.063226][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[6]=0
Line 4385: 01120 <6> [ 11.063232][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[7]=0
Line 4386: 01121 <6> [ 11.063239][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[8]=185
Line 4387: 01122 <6> [ 11.063248][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[9]=8
Line 4388: 01123 <6> [ 11.063255][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[10]=0
Line 4389: 01124 <6> [ 11.063261][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[11]=0
Line 4390: 01125 <6> [ 11.063267][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[12]=6
Line 4391: 01126 <6> [ 11.063273][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[13]=0
Line 4392: 01127 <6> [ 11.063279][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[14]=0
Line 4393: 01128 <6> [ 11.063288][03-31 15:59:55.063] sprd-sensor sprd-sensorhub: raw_cali_data[15]=0
从以上log看,nv中保存的校准系数:
th_h:2218 ——3cm
th_l:2233 ——5cm
cali_flag:6 ——手动校准
1)这里th_h < th_l,不对。psensor校准部分,平台代码的标准是当th_h < th_l校准失败,不会保存校准系数,但贵司出现该情况,却保存了,请检查shub_core.c驱动;
2)由于th_h < th_l,开机下载校准参数时,不符合cm4代码要求,所以将校准状态标志位置0,即cm4侧以无工厂校准处理;
11.069:SENSORHUB: proximity_sensor_get_factory_cali_data: ps_threshold_high = 2218 ps_threshold_low = 2233 ground_noise = 0 cali_data_status = 0x0
3)由于cali_data_status = 0,即无工厂校准,故刚打开psensor时sensorhub调用动态校准算法;
psensor校准标准:
bsp/kernel/kernel4.14/drivers/iio/sprd_hub/shub_core.c
1036 static int check_proximity_cali_data(void *cali_data)
1037 {
1050 /* prox sensor factory auto calibration */
1051 if ((prox_cali.cali_flag & 0x01) == 0x01 &&
1052 prox_cali.ground_noise < PROX_SENSOR_MIN_VALUE) {
1053 dev_err(&sensor->sensor_pdev->dev,
1054 "prox sensor auto cali out of minrange failed!\n");
1055 return CALIB_STATUS_OUT_OF_MINRANGE;
1056 }
1057
1058 /* prox sensor factory manual calibration */
1059 if ((prox_cali.cali_flag & 0x06) == 0x06 &&
1060 prox_cali.high_threshold < prox_cali.low_threshold) {
1061 dev_err(&sensor->sensor_pdev->dev,
1062 "prox sensor cali failed! the high_thrd < low_thrd!\n");
1063 return -EINVAL;
1064 }
1065
1066 return 0;
1067 }
后面的距感上报的Value值很小,Value<tl,所以报的是远离;
186.442:SENSORHUB: proximity_sensor_procces_raw_data: Value=8, th=125, tl=75, prox_status=5.000000
201.619:SENSORHUB: proximity_sensor_procces_raw_data: Value=0, th=125, tl=75, prox_status=5.000000
从反馈的log看,通话中Psensor可以正常响应,AP侧有部分HAL层log没有抓取到,请帮忙再抓取一份ylog
操作如下:
如果需要在HAL层log中打印出Sensor上报事件详细数据log,在adb shell(root模式)下:echo “4 2” > /d/sensor/logctl。然后拨打电话复现问题,并提供ylog,谢谢
提供的log分析如下:
SP侧Psensor有频繁的接近远离响应 -> prox status = 0(接近)/5(远离)
654.128:SHUB: proximity_sensor_procces_raw_data: Value=59, th=120, tl=105, prox_status=5.000000
655.458:SHUB: proximity_sensor_procces_raw_data: Value=226, th=120, tl=105, prox_status=0.000000
655.720:SHUB: proximity_sensor_procces_raw_data: Value=61, th=120, tl=105, prox_status=5.000000
658.257:SHUB: proximity_sensor_procces_raw_data: Value=230, th=120, tl=105, prox_status=0.000000
ap侧
16:43:11.106 2564 2564 I ImsExternalCallTracker: onPhoneStateChanged : hasActiveCalls = true ---电话拨入
16:43:11.106 2564 2564 D ImsExternalCallTracker: refreshCallPullState
16:43:11.112 968 1131 D SensorManager: registerListenerImpl sensor = {Sensor name="Proximity Sensor", ---打开psensor
16:43:11.112 SensorHub: SPRD[450]batch::handle[58], flags[0], period_ns[200000000], timeout[0] ---sensorHUB中打开psensor
16:43:11.112 SensorHub: SPRD[379]setEnable::handle[58], enabled[1]
16:43:11.447 968 1131 D DisplayPowerController: Proximity Sensor changed distance= 5.0 positive= false ---dispaly接受到psensor的near/far的状态
16:43:18.416 968 1131 D DisplayPowerController: Proximity Sensor changed distance= 0.0 positive= true
16:43:18.759 968 1131 D DisplayPowerController: Proximity Sensor changed distance= 5.0 positive= false
16:43:19.907 968 1131 D DisplayPowerController: Proximity Sensor changed distance= 0.0 positive= true
16:43:20.310 968 1131 D DisplayPowerController: Proximity Sensor changed distance= 5.0 positive= false
如果想查看Psensor的实时数据,贵司可以通过cat d/sensor/raw_data_ps 读取该值,也可从代码方面,打开 d/sensor/raw_data_ps 文件节点并不断进行读操作来获取该值
请清除旧Log,抓取复现问题的Log,测试前请输入以下命令打开sensor Log
adb root
adb shell
echo 4 2 > d/sensor/logctl
echo 4 2 > sys/class/sprd_sensorhub/sensor_hub/logctl
PS:
//检查sensorhub Log是否打开
cplogctl state pmsh
on → 开始;off → 关闭
//打开sensorhub Log
cplogctl enable pmsh
高门限是3cm遮挡距离传感器获取的值,低门限是5cm遮挡距离传感器获取的值。高于高门限则判断为靠近,低于低门限则判断为远离。
framework层的SensorService的管理策略是:
第一个应用注册监听了距离传感器,此时会使能距离传感器,第二个应用监听距感,将不会再去使能了... 最后一个监听距感的应用不监听距感了,才会关闭距感。
另外SensorService会将收到的距感数据分给每个监听距感的应用。
驱动相关log
开始加载驱动
007D5 <14> [ 1.144811] c2[01-01 00:00:00.144] init: init first stage started!
//synaptics_td4320_spi_ts的加载顺序要优于synaptics_dsx_td4310
00F91 <3> [ 4.658505] c6[01-01 00:00:03.658] >>>>>>>>>>>syna_tcm_module_init: synaptics td4320 init start!<<<<<<<<<<<
00F92 <3> [ 4.658928] c6[01-01 00:00:03.658] syna_tcm_module_init: platform_driver_register success with: 0
00F93 <3> [ 4.658936] c6[01-01 00:00:03.658] >>>>>>>>>>>syna_tcm_module_init: synaptics td4320 init success!<<<<<<<<<<<
00F94 <7> [ 4.658985] c6[01-01 00:00:03.658] initcall init_module+0x0/0x1000 [synaptics_td4320_spi_ts] returned 0 after 427 usecs
00F95 <14> [ 4.659237] c6[01-01 00:00:03.659] modprobe: Loaded kernel module /vendor/lib/modules/synaptics_td4320_spi_ts.ko
00F96 <14> [ 4.659553] c6[01-01 00:00:03.659] modprobe: Loading module /vendor/lib/modules/synaptics_dsx_td4310.ko with args ''
00F97 <7> [ 4.672013] c6[01-01 00:00:03.672] calling init_module+0x0/0x1000 [synaptics_dsx_td4310] @ 241
sysrq: SysRq : Power Off 应该是cp侧请求关机的
init: Received sys.powerctl='reboot,userrequested' from pid: 703 (system_server)
这个是正常上层长按power按键选择重启会有上面打印
注意:wm_on_xxx_called的应用端events日志都是在相应的onXxx执行完之后才会打印。
wm_on_create_called onCreate